/* A garment becomes a world. All movement is driven by ordinary page scrolling. */
.suit-journey { position:relative; }
.journey-worlds,.journey-vignette,.journey-ending,.journey-captions,.journey-controls,.journey-progress,.journey-exploded,.journey-detail,.journey-hardware,.journey-tie { display:none; }
.journey-on { height:560svh; background:#101010; }
.journey-on .journey-stage { position:sticky; top:0; height:100svh; min-height:560px; overflow:hidden; isolation:isolate; background:#101010; }
.journey-on .hero { position:absolute; inset:0; width:100%; height:100%; max-width:none; min-height:0; margin:0; background:var(--paper); padding:54px 4.5% 85px; }
.journey-on .hero-art { max-width:none; mix-blend-mode:multiply; will-change:transform; }
.journey-on .mascot-control { width:160%; max-width:850px; animation:none!important; }
.journey-on .hero-copy,.journey-on .hero-bottom,.journey-on .stamp,.journey-on .mascot-help,.journey-on .office-pause { opacity:var(--journey-copy,1); }
.journey-on .hero-copy { translate:0 var(--journey-copy-y,0); }
.journey-on .hero-bottom { bottom:90px; }
.journey-on .mascot-help { display:none; }
@media(min-width:701px) {
  .rewards-widget-ready .hero-bottom { right:278px; flex-wrap:wrap; align-items:center; gap:10px 24px; line-height:1.5; }
  .rewards-widget-ready .hero-bottom a { max-width:100%; }
}
.journey-on .office-weather { opacity:var(--journey-copy,1); }
.journey-on .journey-camera { transform:rotate(-5deg)!important; animation:none!important; translate:none!important; scale:1!important; transition:none!important; }
.journey-on .journey-hardware,.journey-on .journey-exploded { position:absolute; display:block; inset:0; width:100%; height:100%; object-fit:contain; mix-blend-mode:normal; opacity:0; pointer-events:none; }
.journey-on .journey-tie { position:absolute; display:block; width:22%; height:28%; object-fit:fill; top:39.3%; left:42.3%; transform-origin:53% 8%; pointer-events:none; opacity:0; }
.journey-on .journey-worlds { display:block; position:absolute; inset:0; pointer-events:none; }
.journey-world { position:absolute; inset:0; opacity:0; visibility:hidden; overflow:hidden; }
.journey-world img { width:100%; height:100%; object-fit:cover; display:block; transform-origin:50% 50%; }
.journey-on .journey-vignette { display:block; position:absolute; inset:0; pointer-events:none; opacity:0; background:linear-gradient(180deg,#10101045,transparent 25%,transparent 55%,#101010d9); }
.journey-on .journey-captions { display:block; position:absolute; left:6%; bottom:16%; max-width:85%; opacity:0; pointer-events:none; color:var(--ink); }
.journey-chapter { font:600 12px/1.4 var(--body); letter-spacing:.14em; }
.journey-line { font:800 clamp(2.6rem,5vw,5.5rem)/.96 var(--display); letter-spacing:-.025em; margin:14px 0 0; text-wrap:balance; max-width:13ch; }
.journey-dark .journey-captions { color:#f9f9f9; }
.journey-dark .journey-line { max-width:none; }
.journey-on .journey-ending { display:flex; position:absolute; inset:0; flex-direction:column; align-items:center; justify-content:center; padding:70px 6% 100px; text-align:center; color:#fafafa; opacity:0; }
.journey-ending > p { font:600 12px/1.4 var(--body); letter-spacing:.16em; margin:0 0 25px; }
.journey-ending h2 { font:900 clamp(4rem,8vw,6rem)/.88 var(--display); letter-spacing:-.025em; }
.journey-ending h2 span { color:var(--red); }
.journey-ending a { display:inline-flex; align-items:center; gap:22px; min-height:48px; border-bottom:1px solid #777; margin-top:35px; font:600 14px/1.4 var(--body); }
.journey-ending a:hover { color:var(--red); border-color:var(--red); }
.journey-on .journey-controls { display:flex; position:absolute; left:6%; bottom:27px; right:6%; align-items:center; gap:25px; color:var(--ink); }
.journey-cue { font:700 12px/1.5 var(--body); letter-spacing:.08em; }
.journey-skip { display:inline-flex; gap:10px; min-height:44px; align-items:center; border-bottom:1px solid currentColor; font:500 12px/1.3 var(--body); }
.journey-dark .journey-controls { color:#eee; }
.journey-on .journey-progress { display:block; position:absolute; bottom:0; left:0; right:0; height:3px; background:#7773; }
.journey-progress > span { display:block; height:100%; background:var(--red); transform-origin:left; transform:scaleX(0); }
.journey-enabled .journey-card { transform-origin:50% 0; backface-visibility:hidden; border-radius:18px 18px 0 0; position:relative; }
.journey-enabled .journey-card:focus-within { transform:none!important; }
/* Small, usable receipt. Financial data comes from the existing verified reward feed. */
.rewards-float { position:fixed; z-index:7; right:18px; bottom:max(18px,env(safe-area-inset-bottom)); width:236px; border:1px solid #454545; border-radius:12px; background:#151515; color:#fafafa; box-shadow:0 8px 28px #0002; overflow:hidden; }
.rewards-float-top { display:flex; justify-content:space-between; align-items:center; padding:5px 5px 0 16px; gap:6px; }
.rewards-float-top > span { font:600 10px/1.4 var(--body); letter-spacing:.08em; color:#ccc; }
.rewards-float-top > button { display:grid; place-items:center; flex:none; width:44px; height:44px; padding:0; border:0; border-radius:6px; background:transparent; color:#ccc; cursor:pointer; }
.rewards-float-top > button:hover { background:#333; color:#fafafa; }
#float-content { display:flex; flex-direction:column; gap:5px; padding:0 16px 14px; }
.float-heading { font:500 10px/1.3 var(--body); letter-spacing:.06em; color:#ddd; }
.float-amount { display:flex; align-items:baseline; flex-wrap:wrap; gap:7px; }
.float-amount strong { font:800 32px/1 var(--display); letter-spacing:-.015em; font-variant-numeric:tabular-nums; }
.float-amount > span { color:#ff646a; font:700 14px/1 var(--display); }
.float-value { font:500 12px/1.5 var(--body); color:#ddd; }
.float-time { display:flex; align-items:center; gap:7px; font:400 10px/1.4 var(--body); color:#bdbdbd; }
.rewards-float.is-stale .rewards-float-top > span { color:#efc998; }
.rewards-float.is-minimized { width:208px; }
.rewards-float.is-minimized .rewards-float-top { padding-bottom:5px; }
.rewards-float.is-minimized #float-content { display:none; }
.menu-is-open .rewards-float,body:has(dialog[open]) .rewards-float,body:has(:fullscreen) .rewards-float { visibility:hidden; }
@media(min-width:1100px) { .journey-on .hero { grid-template-columns:1.15fr 1fr; } }
@media(max-width:1099px) {
  .journey-on .journey-stage { min-height:540px; }
  .journey-on .hero { padding-top:85px; }
  .journey-on .journey-captions { bottom:22%; }
}
@media(max-width:700px) {
  .journey-on { height:490svh; }
  .journey-on .journey-stage { min-height:590px; }
  .journey-on .hero { display:block; padding:32px 6% 60px; }
  .journey-on .hero-copy { max-width:100%; }
  .journey-on .hero .eyebrow { font-size:10px; margin:0 0 13px; }
  .journey-on .hero h1 { font-size:clamp(3.5rem,15vw,5.2rem); }
  .journey-on .hero-firm-counter { margin:15px 0 0; gap:13px; }
  .journey-on .hero-firm-counter strong { font-size:30px; }
  .journey-on .hero-firm-counter span { font-size:10px; }
  .journey-on .hero-description { margin:12px 0 15px; font-size:13px; line-height:1.5; }
  .journey-on .hero .button-red { width:auto; min-height:43px; padding:12px 15px; font-size:11px; gap:22px; }
  .journey-on .hero-art { position:absolute; right:-5%; left:22%; top:31%; height:50%; margin:0; min-height:0; }
  .journey-on .hero-art .mascot-control { width:min(104vw,420px); max-width:none; top:0; right:-3%; }
  .journey-on .hero-art .stamp { top:8%; right:10%; width:65px; height:65px; font-size:8px; }
  .journey-on .hero-art .stamp strong { font-size:19px; }
  .journey-on .mascot-help,.journey-on .hero-bottom { display:none; }
  .journey-on .office-pause { top:16px; right:15px; }
  .journey-on .journey-captions { left:6%; top:110px; bottom:auto; }
  .journey-line { font-size:clamp(2.2rem,9.5vw,4rem); max-width:14ch; }
  .journey-chapter { font-size:10px; }
  .journey-on .journey-controls { left:6%; right:auto; bottom:120px; gap:14px; flex-wrap:wrap; max-width:60%; }
  .journey-cue { font-size:10px; }
  .journey-skip { font-size:11px; }
  .journey-on .journey-ending { padding:100px 6% 160px; }
  .journey-ending h2 { font-size:clamp(4rem,18vw,6rem); }
  .journey-ending > p { font-size:10px; letter-spacing:.12em; }
  .journey-enabled .journey-card { border-radius:12px 12px 0 0; }
  .rewards-float { right:10px; bottom:max(10px,env(safe-area-inset-bottom)); width:202px; border-radius:10px; }
  .rewards-float-top { padding:2px 3px 0 12px; }
  .rewards-float-top > span { font-size:9px; }
  #float-content { padding:0 12px 10px; gap:3px; }
  .float-heading { font-size:9px; }
  .float-amount strong { font-size:27px; }
  .float-value { font-size:11px; }
  .float-heading,.float-time { display:none; }
  .rewards-float-top { min-height:20px; padding:8px 44px 0 12px; }
  .rewards-float-top > button { position:absolute; right:2px; top:2px; }
  .rewards-float-top > span { font-size:8px; }
  .rewards-float.is-minimized .rewards-float-top { min-height:44px; padding-top:5px; }
  .rewards-float.is-minimized { width:190px; }
}
@media(max-height:740px) and (max-width:700px) {
 .journey-on .hero { padding-top:22px; }
 .journey-on .hero h1 { font-size:3.5rem; }
 .journey-on .hero-art { top:40%; right:-10%; }
 .journey-on .hero-art .mascot-control { width:340px; }
 .journey-on .journey-controls { bottom:90px; max-width:43%; gap:0; }
}
@media(max-width:360px) {
 .journey-on .hero-art .mascot-control { width:260px; }
 .journey-on .hero-art .stamp { right:18%; top:-8%; }
 .journey-on .journey-controls { bottom:95px; width:80px; max-width:80px; gap:6px; flex-direction:column; align-items:flex-start; }
 .journey-cue { font-size:8px; }
 .journey-skip { font-size:9px; gap:6px; }
 .journey-skip svg { flex:none; width:12px; }
}
@media(prefers-reduced-motion:reduce) {
 .journey-card { transform:none!important; border-radius:0!important; }
}
