/* ================================================================
   PASSPORT / VOYAGE-INSPIRED BOOK PRESENTATION
   Isolated from the rest of the portal on purpose.
   ================================================================ */
.hd-voyage-book{position:relative;display:grid;grid-template-columns:1fr 1fr;max-width:860px;min-height:390px;margin:26px auto 30px;filter:drop-shadow(0 22px 24px rgba(0,0,0,.35));isolation:isolate}
.hd-voyage-page{position:relative;overflow:hidden;min-width:0;padding:30px 32px 34px;color:#543c2b;background:linear-gradient(135deg,#fff8e8 0%,#f5e7c8 58%,#ead6ae 100%);border:1px solid rgba(160,126,72,.7)}
.hd-voyage-page:before,.hd-voyage-page:after{content:"";position:absolute;pointer-events:none}.hd-voyage-page:before{inset:12px;border:1px solid rgba(166,116,65,.35);background:repeating-radial-gradient(ellipse at 20% 20%,transparent 0 12px,rgba(126,93,65,.045) 13px 14px,transparent 15px 28px)}.hd-voyage-page:after{inset:0;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.32) 45%,transparent 62%);opacity:.45}
.hd-voyage-idpage{border-radius:18px 2px 2px 18px;box-shadow:inset -18px 0 24px -24px #4c3323}.hd-voyage-stamppage{border-radius:2px 18px 18px 2px;box-shadow:inset 18px 0 24px -24px #4c3323}
.hd-voyage-spine{position:absolute;z-index:5;top:0;bottom:0;left:50%;width:18px;transform:translateX(-50%);background:linear-gradient(90deg,rgba(67,43,29,.36),rgba(255,248,225,.22) 48%,rgba(67,43,29,.34));box-shadow:0 0 12px rgba(48,31,22,.24);pointer-events:none}
.hd-voyage-page-label{position:relative;z-index:2;font-size:.58rem;letter-spacing:.22em;font-weight:900;color:#967355;border-bottom:1px solid rgba(126,86,53,.3);padding-bottom:9px}
.hd-voyage-emblem{position:relative;z-index:2;width:88px;height:88px;margin:34px auto 15px;display:grid;place-items:center;border:2px solid #b37d54;border-radius:50%;font-size:2.1rem;color:#a66e49;box-shadow:inset 0 0 0 7px #f2dfbd,inset 0 0 0 8px rgba(166,110,73,.35)}
.hd-voyage-id-title{position:relative;z-index:2;text-align:center;font-family:Georgia,serif;font-size:1.55rem;line-height:1.05;letter-spacing:.12em;font-weight:900;color:#65442f}.hd-voyage-id-copy{position:relative;z-index:2;max-width:270px;margin:16px auto 20px;text-align:center;font-size:.68rem;line-height:1.55;color:#7b604a}.hd-voyage-id-rule{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;gap:10px;color:#80583b}.hd-voyage-id-rule b{font:900 2rem/1 Georgia,serif}.hd-voyage-id-rule span{font-size:.55rem;letter-spacing:.14em;font-weight:900}.hd-voyage-mrz{position:absolute;z-index:2;left:24px;right:24px;bottom:18px;padding-top:8px;border-top:1px dashed rgba(103,72,50,.4);font-family:monospace;font-size:.52rem;letter-spacing:.09em;white-space:nowrap;overflow:hidden;color:#7e634d}
.hd-voyage-stamppage .hd-passport-stamps{position:relative;z-index:2;display:grid;grid-template-columns:repeat(2,1fr);gap:14px 18px;margin:26px 0 22px}.hd-voyage-stamppage .hd-passport-stamps span{position:relative;display:grid;place-items:center;aspect-ratio:1.65/1;max-width:none;width:100%;border:1px dashed rgba(126,85,58,.38);border-radius:7px;background:rgba(255,250,235,.34);transform:rotate(var(--stamp-rot,0deg));color:#aa8a70}.hd-voyage-stamppage .hd-passport-stamps span:nth-child(3n+1){--stamp-rot:-2deg}.hd-voyage-stamppage .hd-passport-stamps span:nth-child(3n+2){--stamp-rot:1.5deg}.hd-voyage-stamppage .hd-passport-stamps span:nth-child(3n){--stamp-rot:-.8deg}.hd-voyage-stamppage .hd-passport-stamps span.is-stamped{border:0;background:transparent}
.hd-voyage-stamp-empty{font-style:normal;font:700 .64rem/1 Georgia,serif;color:#b49a80}.hd-voyage-stamp-mark{display:grid;place-items:center;width:68px;height:68px;border:3px double #a95445;border-radius:50%;font-style:normal;font:900 .66rem/1.05 Georgia,serif;letter-spacing:.08em;color:#a95445;opacity:.88;box-shadow:inset 0 0 0 4px #f4e4c6,inset 0 0 0 5px rgba(169,84,69,.6);text-shadow:0 0 1px rgba(169,84,69,.25)}.hd-voyage-stamp-mark:after{content:"STREAM";position:absolute;margin-top:38px;font-size:.34rem;letter-spacing:.12em}.hd-voyage-page-number{position:absolute;z-index:2;right:28px;bottom:18px;font-size:.48rem;letter-spacing:.16em;font-weight:900;color:#9b795e}
@media(max-width:760px){.hd-voyage-book{grid-template-columns:1fr;max-width:470px}.hd-voyage-stamppage{min-height:420px}.hd-voyage-spine{display:none}}
@media(max-width:430px){.hd-voyage-stamppage{padding:24px 20px 30px}.hd-voyage-stamppage .hd-passport-stamps{gap:10px}.hd-voyage-stamp-mark{width:58px;height:58px}}

/* Twitch identity block: uses the profile data already loaded by the portal; no extra request. */
.hd-voyage-identity{position:relative;z-index:2;display:grid;grid-template-columns:92px minmax(0,1fr);gap:16px;align-items:center;margin:28px 0 18px;padding:14px;border:1px solid rgba(126,86,53,.28);background:rgba(255,250,235,.38);border-radius:10px}
.hd-voyage-avatar{width:92px;height:108px;padding:4px;border:0;background:transparent;box-shadow:none;transform:none;flex:0 0 auto}
.hd-voyage-avatar[data-profile-frame]{width:92px;height:108px;background:transparent;filter:none}
.hd-voyage-avatar[data-profile-frame]::before{background-size:100% 100%}
.hd-voyage-avatar[data-profile-frame] img,.hd-voyage-avatar[data-profile-frame]>span{background:#dcc5a3;color:#76543c;font:900 2rem/1 Georgia,serif}
.hd-voyage-avatar img,.hd-voyage-avatar span{display:grid;place-items:center;width:100%;height:100%;object-fit:cover;background:#dcc5a3;color:#76543c;font:900 2rem/1 Georgia,serif}
.hd-voyage-identity-copy{min-width:0}.hd-voyage-identity-copy>strong{display:block;margin-top:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:900 1.08rem/1.1 Georgia,serif;color:#5d402e}.hd-voyage-identity-copy>small{display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:.58rem/1.2 monospace;color:#8c6b52}
.hd-voyage-twitch{display:flex;align-items:center;gap:6px;min-width:0;color:#6441a5}.hd-voyage-twitch-logo{display:grid;place-items:center;width:22px;height:22px;border:2px solid currentColor;border-radius:5px;font-size:.7rem;transform:rotate(-2deg)}.hd-voyage-twitch b{font-size:.58rem;letter-spacing:.12em}.hd-voyage-twitch i{margin-left:auto;padding:4px 6px;border:1px solid rgba(102,75,55,.28);border-radius:999px;font-style:normal;font-size:.43rem;letter-spacing:.08em;font-weight:900;color:#876d59;background:rgba(255,255,255,.35);white-space:nowrap}.hd-voyage-twitch i.is-active{color:#33704b;border-color:rgba(51,112,75,.4);background:rgba(87,151,104,.1)}
.hd-voyage-idpage .hd-voyage-id-title{text-align:left;margin-top:4px;font-size:1.25rem}.hd-voyage-idpage .hd-voyage-id-copy{text-align:left;margin:10px 0 14px;max-width:none}.hd-voyage-idpage .hd-voyage-id-rule{justify-content:flex-start}
@media(max-width:760px){.hd-voyage-idpage{display:block;border-radius:14px 14px 2px 2px;min-height:0}.hd-voyage-stamppage{border-radius:2px 2px 14px 14px}.hd-voyage-book{grid-template-columns:1fr}.hd-voyage-spine{display:none}.hd-voyage-mrz{display:none}}
@media(max-width:430px){.hd-voyage-identity{grid-template-columns:72px minmax(0,1fr);gap:12px}.hd-voyage-avatar,.hd-voyage-avatar[data-profile-frame]{width:72px;height:85px}.hd-voyage-twitch{flex-wrap:wrap}.hd-voyage-twitch i{margin-left:0}.hd-voyage-idpage{padding:24px 20px 28px}}

/* Passport earned-state polish: clearly mark collected stamps in HexDeck green. */
.hd-voyage-stamppage .hd-passport-stamps span.is-stamped{
  border:2px solid rgba(74,190,132,.78);
  background:radial-gradient(circle at 50% 45%,rgba(91,210,151,.24) 0 38%,rgba(35,112,77,.14) 39% 64%,rgba(255,250,235,.28) 65% 100%);
  color:#2f8b5c;
  font:900 1.25rem/1 Georgia,serif;
  text-shadow:0 0 10px rgba(73,190,131,.24);
  box-shadow:inset 0 0 0 5px rgba(255,250,235,.48),inset 0 0 0 7px rgba(74,190,132,.18),0 0 14px rgba(74,190,132,.14);
}
.hd-voyage-stamppage .hd-passport-stamps span.is-stamped::before{
  content:"ABGESTEMPELT";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,18px);
  font:900 .34rem/1 sans-serif;
  letter-spacing:.12em;
  color:#3c8f64;
  white-space:nowrap;
}
.hd-passport-state.is-done{
  border-color:rgba(88,218,158,.52)!important;
  color:#83e6b0!important;
  background:rgba(37,125,82,.16)!important;
  box-shadow:inset 0 0 0 1px rgba(88,218,158,.08),0 0 12px rgba(88,218,158,.08);
}
