/* D-system / BLUE HOUR — a moving field guide for the night shift. */
:root {
  --ink: #10254b;
  --blue: #164dc7;
  --blue-deep: #0b2861;
  --gold: #efc765;
  --gold-pale: #f9e9b5;
  --orange: var(--blue);
  --orange-hot: #113fa6;
  --lime: var(--gold-pale);
  --paper: #fafaf6;
  --line: #d7dfeb;
  --muted: #66738a;
}
body {
  background-color: #081d44;
  background-image: radial-gradient(ellipse at 4% 20%,#2152aa 0,transparent 47%),radial-gradient(ellipse at 100% 80%,#153e83 0,transparent 50%),linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);
  background-size: auto,auto,42px 42px,42px 42px;
}
body::before { background: radial-gradient(circle at 18% 15%,#f4d57a14,transparent 25%),radial-gradient(circle at 85% 78%,#5d8dff22,transparent 28%); }
.page { border-color:#d7e2f944; box-shadow:0 0 80px #020e2966; }
.reading-progress { background:var(--gold); box-shadow:0 0 12px #efc76577; }
.left-rail,.right-rail { color:#f3f6ff; }
.rail-eyebrow { color:#c7d8ff; letter-spacing:2.1px; }
.rail-eyebrow::before { content:""; display:block; height:1px; width:40px; margin:0 auto 17px; background:var(--gold); }
.rail-wordmark { border-color:var(--gold); background:#0a2457; box-shadow:5px 5px 0 #0002; }
.rail-title em { background:linear-gradient(transparent 68%,#efc7653d 68%,#efc7653d 96%,transparent 96%); color:var(--gold); }
.wordmark>span { color:var(--gold); }
.rail-proof small { color:#c2cdea; }
.rail-sub { border-color:#9cb4df80; }
.right-rail h2>span,.index-nav a>span { color:#9db5e3; }
.index-nav a.is-active,.index-nav a.is-active>span,.index-nav a:hover { color:var(--gold); }
.index-nav a { transition:color .25s,transform .35s; }
.index-nav a.is-active { transform:translateX(7px); }
.index-kicker { color:#bfcef0; }
.status-dot { background:var(--gold); box-shadow:0 0 0 4px #efc76518; }
.motion-toggle { color:inherit; border-color:#a1b8db88; min-height:32px; }
.right-rail .motion-toggle { color:#cbd8f3; }
.topbar { background:linear-gradient(120deg,#153f9b,#092657); border-color:var(--gold); box-shadow:0 6px 15px #09265720; }
.small-cta { background:var(--gold); color:var(--ink); }
#mobile-menu { background:var(--blue-deep); border-color:var(--gold); }
.menu-motion { display:block; padding:9px 0; min-height:42px; color:var(--gold); font-size:12px; }
.cta { background:linear-gradient(110deg,#f6d984,var(--gold) 55%,#e5b64f); border-color:var(--gold); color:var(--ink); box-shadow:inset 0 0 0 3px #fff9,0 6px 0 #133c7220,0 12px 24px #08214818; }
.cta:hover { box-shadow:inset 0 0 0 3px #fff9,0 8px 0 #133c7215,0 16px 28px #08214825; }
.cta::after { content:""; position:absolute; pointer-events:none; inset:-60% auto -60% -35%; width:24%; background:linear-gradient(90deg,transparent,#fff8,transparent); transform:skewX(-20deg); animation:gold-sweep 6.5s ease-in-out infinite; }
.arrow-circle { background:var(--blue-deep); color:var(--gold); }
.mobile-sticky { background:#092657; border-color:#092657; box-shadow:0 5px 25px #00143855; }
.mobile-sticky a:last-child { background:var(--gold); color:var(--ink); }
.paper-grid { background-image:linear-gradient(#194fc60a 1px,transparent 1px),linear-gradient(90deg,#194fc60a 1px,transparent 1px); }
.hero-card { background-color:#f8f9f5; box-shadow:0 5px 0 #173f8812; }
.hero-card h1 { position:relative; z-index:5; }
.hero-line { animation:title-arrive .65s .08s both cubic-bezier(.17,.75,.3,1.2); }
.hero-card h1 strong { color:var(--blue); text-shadow:4px 5px 0 #efc76560; animation:title-arrive .7s .18s both cubic-bezier(.17,.75,.3,1.2); }
.hero-question { animation:title-arrive .7s .32s both cubic-bezier(.17,.75,.3,1.2); }
.hero-eyebrow { color:#18386d; }
.hero-scene { isolation:isolate; }
.crew-sprite { background-image:url("/lp/assets/nightlife-crew.webp"); }
.hero-character { transform-origin:50% 95%; translate:0 var(--scene-y,0px); rotate:var(--scene-rotate,0deg); animation:character-breathe 4.5s ease-in-out infinite; will-change:transform; }
.hero-character.is-waving { animation:character-hello .75s ease-in-out 1; }
.hero-bubble { background:var(--gold-pale); border-color:var(--blue-deep); color:var(--ink); transition:scale .25s,rotate .25s; box-shadow:3px 4px 0 #0b286113; min-height:57px; }
.hero-bubble:hover { scale:1.06; rotate:-4deg; }
.hero-bubble::after { background:var(--gold-pale); border-color:var(--blue-deep); }
#hero-greeting { white-space:pre-line; }
.hero-bubble small { display:block; font:700 6px/1.7 var(--sans); letter-spacing:.4px; margin-top:4px; }
.hero-label { animation:label-arrive .65s .75s both; }
.hero-label>span { background:var(--blue-deep); }
.hero-label em { color:var(--gold); }
.hero-brand { background:linear-gradient(115deg,var(--blue),var(--blue-deep)); }
.hero-brand>span:last-child { color:#c6d6f5; }
.terminal { background:#0b2861; color:#f0f4ff; border:1px solid #8ca8e233; box-shadow:6px 7px 0 #164dc714; }
.terminal-dots span { color:#9bb6e5; font-size:6px; letter-spacing:.6px; }
.terminal-orange { color:var(--gold); font-size:8px; margin-right:5px; }
.terminal-success { color:#f4d888; }
.terminal-cursor { background:var(--gold); }
.hero-feed-line { opacity:0; animation:feed-arrive 7.5s ease infinite; }
.hero-feed-line:nth-of-type(2) { animation-delay:.6s; }
.hero-feed-line:nth-of-type(3) { animation-delay:1.2s; }
.orbit { border-color:#164dc738; animation:orbit-turn 30s linear infinite; }
.orbit::after { background:var(--gold); box-shadow:0 0 0 5px #efc76525; }
.hero-spark { position:absolute; z-index:1; color:var(--gold); animation:sparkle 4s ease-in-out infinite; }
.spark-one { left:33px; top:163px; font-size:32px; }
.spark-two { left:49%; top:4px; font-size:19px; animation-delay:-2s; }
.ticker { border-color:var(--blue-deep); }
.ticker span { border-color:#254773; color:var(--blue-deep); }
.ticker-track { animation:marquee 28s linear infinite; }
.scroll-invitation { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px 15px; padding:0 0 25px; }
.scroll-invitation>a { display:flex; align-items:center; gap:9px; font:800 9px var(--display); letter-spacing:1.4px; color:var(--blue); }
.scroll-invitation>a>span:last-child { font:15px Arial; animation:scroll-cue 2s ease-in-out infinite; }
.scroll-line { height:1px; width:22px; background:var(--gold); }
.mobile-motion { display:none; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

/* A small, original night-service scene. The four beats are user selectable. */
.night-section { background:linear-gradient(160deg,#e9effb,#f4f6fc 65%); border-top:2px solid var(--ink); overflow:hidden; }
.night-section .section-kicker { color:var(--blue); }
.night-stage { position:relative; border:2px solid #0c2a63; border-radius:19px; overflow:hidden; background:#081e48; color:white; margin-top:30px; box-shadow:6px 7px 0 #143f9e19; }
.stage-topline { display:flex; justify-content:space-between; align-items:center; gap:6px; padding:13px 15px; border-bottom:1px solid #abc5ff25; background:#0b2861; }
.stage-open { display:flex; align-items:center; gap:6px; color:#d2dfff; font:700 9px var(--display); letter-spacing:1.1px; }
.stage-open i { width:5px; height:5px; border-radius:50%; background:var(--gold); box-shadow:0 0 8px #efc76588; }
#night-time { font:800 22px/1 var(--display); letter-spacing:1px; color:var(--gold); }
.night-floor { height:300px; position:relative; overflow:hidden; background:linear-gradient(150deg,#0c2d69,#06172e); isolation:isolate; }
.floor-grid { position:absolute; inset:70px -45px -70px; background-image:linear-gradient(#7aabf51f 1px,transparent 1px),linear-gradient(90deg,#7aabf51f 1px,transparent 1px); background-size:35px 35px; transform:perspective(350px) rotateX(35deg) rotateZ(-9deg); transform-origin:center top; }
.floor-halo { position:absolute; width:190px; height:190px; border-radius:50%; background:#2565d81e; filter:blur(20px); transition:background 1s,transform 1s; }
.halo-one { left:-55px; top:0; }
.halo-two { right:-50px; bottom:-30px; background:#efc76513; }
.floor-counter { position:absolute; left:35%; top:17px; width:39%; height:58px; background:linear-gradient(125deg,#2460c2,#153d85); border:1px solid #8eb4f07c; border-radius:8px 8px 12px 12px; transform:skewY(-4deg); box-shadow:0 8px 0 #051730; }
.floor-counter>span { position:absolute; right:8px; bottom:10px; font:italic 900 13px Arial; color:#f3d78e; }
.floor-counter i { position:absolute; left:14px; top:8px; width:32px; height:23px; background:#b3d2f6; border:4px solid #0a1d3b; border-radius:4px; transform:rotate(-6deg); box-shadow:0 3px 0 #071934; }
.floor-table { position:absolute; width:59px; height:36px; border:1px solid #7997c6; background:linear-gradient(120deg,#405d8e,#16345e); border-radius:50%; transform:rotate(-9deg); box-shadow:0 7px 0 #07172e,0 13px 12px #0003; transition:background .8s,box-shadow .8s; }
.floor-table>span { position:absolute; top:9px; left:22px; font:800 11px var(--display); color:#adbedb; }
.table-one { left:12%; top:112px; }
.table-two { right:13%; top:137px; }
.table-three { left:43%; top:221px; }
.shift-person { position:absolute; width:103px; transition:transform 1s cubic-bezier(.23,.7,.26,1),opacity .7s,filter .7s; z-index:4; }
.shift-person>.crew-sprite { width:100%; transform-origin:50% 100%; }
.shift-person>b { display:block; position:absolute; left:50%; bottom:-6px; translate:-50% 0; border:1px solid #c4d8ff60; border-radius:4px; padding:2px 7px; background:#06172edb; color:#dbe8ff; font:700 8px/1.2 var(--display); letter-spacing:1px; }
.shift-system { left:42%; top:20px; width:112px; }
.shift-handy { left:5%; top:76px; }
.shift-order { right:3%; top:140px; }
.shift-manager { left:24%; top:177px; width:96px; }
.shift-system .crew-sprite { animation:stage-idle 4.4s ease-in-out infinite; }
.shift-handy .crew-sprite { animation:stage-idle 4.4s -1s ease-in-out infinite; }
.shift-order .crew-sprite { animation:stage-idle 4.4s -2s ease-in-out infinite; }
.shift-manager .crew-sprite { animation:stage-idle 4.4s -3s ease-in-out infinite; }
.order-path { position:absolute; border-top:1px dashed #efc76588; transform-origin:left center; opacity:0; transition:opacity .5s; z-index:2; }
.path-one { left:24%; top:135px; width:40%; transform:rotate(-24deg); }
.path-two { left:56%; top:97px; width:37%; transform:rotate(42deg); }
.order-dot { width:7px; height:7px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px #efc76520,0 0 14px #efc76588; position:absolute; opacity:0; z-index:5; }
.dot-one { left:25%; top:134px; }
.dot-two { left:81%; top:178px; }
.night-ticket { position:absolute; z-index:6; right:13px; top:16px; width:103px; padding:11px 9px 13px; background:#fff5d9; color:var(--ink); box-shadow:4px 6px 0 #0002; rotate:7deg; transform:translateY(-6px); border-radius:3px 3px 1px 1px; transition:transform .7s,rotate .7s; }
.night-ticket::after { content:""; position:absolute; bottom:-4px; left:0; right:0; height:5px; background:linear-gradient(135deg,#fff5d9 3px,transparent 0) 0 0 / 7px 5px; }
.night-ticket small { display:block; font-size:8px; font-weight:700; margin-bottom:5px; }
.night-ticket strong { display:block; font:900 20px/1.15 var(--display); color:var(--blue); white-space:nowrap; }
.ticket-rule { display:block; height:2px; width:90%; margin-top:8px; background:#183b7630; }
.ticket-rule.short { width:57%; margin-top:4px; }
.stage-message { position:absolute; bottom:17px; right:12px; z-index:7; padding:5px 11px; border:1px solid #f6db94; border-radius:20px; background:#0d3577; color:#fce8b2; font-size:10px; font-weight:800; box-shadow:0 4px 10px #0002; }
.floor-spark { position:absolute; color:var(--gold); opacity:.6; animation:sparkle 4s ease-in-out infinite; }
.fs-one { top:21px; left:17%; font-size:17px; }
.fs-two { top:223px; right:37%; font-size:13px; animation-delay:-2s; }
.stage-caption { border-top:1px solid #729de52a; background:#0c2a63; padding:18px 20px 22px; min-height:151px; }
.stage-caption>span { display:inline-block; font:800 11px var(--display); color:var(--gold); letter-spacing:1px; }
.stage-caption h3 { font-size:22px; line-height:1.5; font-weight:900; letter-spacing:-.5px; margin:5px 0 8px; }
.stage-caption p { font-size:11px; line-height:1.9; color:#d1def6; }
.night-progress { height:3px; background:#091c40; }
.night-progress>span { display:block; height:100%; width:25%; background:var(--gold); transition:width .8s cubic-bezier(.2,.7,.3,1); }
.night-controls { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin-top:17px; }
.night-controls button { min-height:61px; border:1.5px solid #bccbe4; border-radius:10px; background:#fff9; color:#577197; transition:transform .25s,background .25s,border-color .25s; }
.night-controls button[aria-pressed=true] { background:var(--blue); color:white; border-color:var(--blue); box-shadow:0 4px 0 #0b2861; transform:translateY(-2px); }
.night-controls small { display:block; font:700 11px var(--display); letter-spacing:1px; }
.night-controls span { display:block; font-size:13px; font-weight:800; margin-top:3px; }
.stage-bottom { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:16px; }
.stage-bottom p { font-size:10px; color:#59708f; }
.stage-play { min-height:32px; padding:5px 9px; border-radius:20px; border:1px solid #a4b9da; background:transparent; color:#244f90; font-size:9px; }
.stage-play>span:first-child { font-size:13px; vertical-align:middle; }
.night-stage[data-step="1"] .shift-handy { transform:translate(15px,-13px) rotate(-4deg); }
.night-stage[data-step="1"] .shift-order { transform:translate(-5px,-21px) rotate(4deg); }
.night-stage[data-step="1"] .table-one,.night-stage[data-step="1"] .table-two { background:#907e46; box-shadow:0 7px 0 #07172e,0 0 25px #efc76528; }
.night-stage[data-step="1"] .order-path { opacity:1; }
.night-stage[data-step="1"] .dot-one { animation:send-order-a 2.3s ease-in-out infinite; }
.night-stage[data-step="1"] .dot-two { animation:send-order-b 2.3s .6s ease-in-out infinite; }
.night-stage[data-step="1"] .night-ticket { rotate:-5deg; transform:translateY(6px); }
.night-stage[data-step="2"] .shift-system { transform:translate(-14px,25px) rotate(-3deg); }
.night-stage[data-step="2"] .shift-handy { transform:translate(34px,7px); }
.night-stage[data-step="2"] .night-ticket { rotate:0deg; transform:translate(-9px,43px) scale(1.12); }
.night-stage[data-step="2"] .floor-counter { border-color:var(--gold); box-shadow:0 8px 0 #051730,0 0 22px #efc76528; }
.night-stage[data-step="3"] .shift-manager { transform:translate(19px,-19px) scale(1.14); z-index:8; }
.night-stage[data-step="3"] .shift-system { transform:translate(-4px,6px); }
.night-stage[data-step="3"] .shift-handy { transform:translate(-3px,15px); }
.night-stage[data-step="3"] .night-ticket { rotate:-6deg; transform:translate(-8px,105px); }
.night-stage[data-step="3"] .halo-two { background:#efc7652b; transform:scale(1.3); }
.night-stage[data-step="3"] .floor-spark { animation:sparkle 2.7s ease-in-out infinite; font-size:21px; }

/* Scroll rhythm and character reactions carry the reference's comic energy. */
.crew-section { background:#f8f9f6; }
.crew-tab { border-color:#173964; box-shadow:3px 4px 0 #173964; }
.crew-tab.is-active,.crew-tab[aria-selected=true] { background:#e7efff; border-color:var(--blue); box-shadow:3px 4px 0 var(--blue); }
.crew-tab[data-app-target=order].is-active { background:#e4f2f1; border-color:#245d69; box-shadow:3px 4px 0 #245d69; }
.crew-tab[data-app-target=manager].is-active { background:#f0edfb; border-color:#5c4c90; box-shadow:3px 4px 0 #5c4c90; }
.crew-tab .crew-sprite { transform-origin:50% 95%; transition:transform .35s cubic-bezier(.2,.8,.2,1.3); }
.crew-tab:hover .crew-sprite,.crew-tab:focus-visible .crew-sprite { transform:translateY(-7px) rotate(-5deg); }
.crew-tab.is-active .crew-sprite { animation:crew-selected 3.5s ease-in-out infinite; }
.crew-tabs>.crew-tab:nth-child(2) { --reveal-delay:80ms; }
.crew-tabs>.crew-tab:nth-child(3) { --reveal-delay:150ms; }
.crew-tabs>.crew-tab:nth-child(4) { --reveal-delay:220ms; }
.app-panel.is-active { animation:panel-arrive .4s ease both; }
.dark-grid { background-color:#0b2861; background-image:linear-gradient(#b5d3ff0b 1px,transparent 1px),linear-gradient(90deg,#b5d3ff0b 1px,transparent 1px); }
.dark-grid .section-kicker,.dark-grid .small-label { color:var(--gold); }
.promise-intro h2 em,.statement em,.contact-section h2 em { color:var(--gold); }
.promise-card .down-arrow { color:var(--blue); }
.promise-card.is-visible .down-arrow { animation:scroll-cue 1.4s .6s 2; }
.feature-tags span { color:#173b70; border-color:#7693bb; }
.order-route>strong { background:var(--blue); border-color:var(--blue-deep); box-shadow:3px 3px 0 var(--blue-deep); }
.statement { position:relative; overflow:hidden; }
.statement::after { content:"GOOD NIGHT"; position:absolute; pointer-events:none; top:24px; left:-8px; font:900 112px/.9 var(--display); color:#b3cfff08; letter-spacing:-3px; rotate:-8deg; z-index:0; }
.statement>* { position:relative; z-index:1; }
.mini-crew .crew-sprite { animation:team-bounce 4.8s ease-in-out infinite; transform-origin:50% 95%; }
.mini-crew .crew-sprite:nth-child(2) { animation-delay:-3.6s; }
.mini-crew .crew-sprite:nth-child(3) { animation-delay:-2.4s; }
.mini-crew .crew-sprite:nth-child(4) { animation-delay:-1.2s; }
.official-screen { border-color:var(--blue-deep); }
.device-bar { background:var(--blue-deep); }
.screen-tab.is-active,.screen-tab[aria-selected=true] { background:var(--blue-deep); }
.big-proof>strong { color:var(--blue); text-shadow:3px 4px 0 #efc7655c; }
.plan-tab.is-active,.plan-tab[aria-selected=true] { background:var(--blue); border-color:var(--blue); color:white; }
.plan-card { border-top-color:var(--blue); }
.switch-offer { background:#fff5d9; border-color:#c89c35; }
.offer-tag { background:var(--gold); border-color:var(--gold); color:var(--ink); }
.switch-offer strong { color:var(--blue); }
.switch-offer>a { border-color:#dec995; }
.flow-list li>span { background:var(--blue-deep); color:var(--gold); box-shadow:0 0 0 1px var(--blue-deep); }
.contact-bubble,.contact-bubble::after { background:var(--gold-pale); }
.contact-bubble { animation:bubble-sway 5s ease-in-out infinite; }
.contact-art .crew-sprite { transform-origin:50% 95%; animation:character-breathe 4.5s ease-in-out infinite; }
.contact-note { color:#c1cfe9; }
.footer { background:#eaf0f9; }
.footer .wordmark>span { color:var(--blue); }
.back-top:hover { background:var(--blue); }
.js-ready [data-reveal] { opacity:0; transform:translateY(24px); transition:opacity .7s var(--reveal-delay,0ms),transform .7s var(--reveal-delay,0ms) cubic-bezier(.2,.75,.25,1); }
.js-ready [data-reveal].is-visible { opacity:1; transform:none; }
.js-ready h2[data-reveal] { transform:translateY(24px); transition:transform .85s cubic-bezier(.2,.7,.2,1),opacity .7s; }
.js-ready h2[data-reveal].is-visible { transform:none; }
.motion-off [data-reveal] { clip-path:none!important; }
.motion-off .hero-feed-line { opacity:1!important; }
.motion-off .hero-character { translate:none!important; rotate:none!important; }
.motion-off *,.motion-off *::before,.motion-off *::after { animation:none!important; transition:none!important; }

@keyframes title-arrive { from { opacity:0; translate:0 22px; scale:.96; } to { opacity:1; translate:0 0; scale:1; } }
@keyframes label-arrive { from { opacity:0; translate:-25px 0; } to { opacity:1; translate:0 0; } }
@keyframes character-breathe { 0%,100% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-7px) rotate(1deg); } }
@keyframes character-hello { 0%,100% { transform:rotate(0); } 25% { transform:translateY(-12px) rotate(-7deg); } 65% { transform:translateY(-6px) rotate(6deg); } }
@keyframes team-bounce { 0%,24%,100% { transform:translateY(0) rotate(0); } 10% { transform:translateY(-11px) rotate(-4deg); } 17% { transform:translateY(-2px) rotate(3deg); } }
@keyframes crew-selected { 0%,70%,100% { transform:translateY(0) rotate(0); } 80% { transform:translateY(-7px) rotate(-3deg); } 90% { transform:translateY(-2px) rotate(2deg); } }
@keyframes stage-idle { 0%,100% { transform:translateY(0) rotate(-.5deg); } 50% { transform:translateY(-3px) rotate(1deg); } }
@keyframes gold-sweep { 0%,75% { left:-35%; } 93%,100% { left:125%; } }
@keyframes feed-arrive { 0%,7% { opacity:0; translate:0 4px; } 13%,85% { opacity:1; translate:0 0; } 95%,100% { opacity:0; translate:0 -2px; } }
@keyframes orbit-turn { to { transform:rotate(360deg); } }
@keyframes sparkle { 0%,100% { opacity:.45; transform:scale(.75) rotate(0deg); } 50% { opacity:1; transform:scale(1.1) rotate(18deg); } }
@keyframes scroll-cue { 0%,100% { translate:0 0; } 55% { translate:0 5px; } }
@keyframes panel-arrive { from { opacity:.2; translate:0 9px; } to { opacity:1; translate:0 0; } }
@keyframes bubble-sway { 0%,100% { rotate:-2deg; } 50% { rotate:2deg; translate:0 -3px; } }
@keyframes send-order-a { 0% { opacity:0; transform:translate(0,0); } 15%,75% { opacity:1; } 100% { opacity:0; transform:translate(100px,-48px); } }
@keyframes send-order-b { 0% { opacity:0; transform:translate(0,0); } 15%,75% { opacity:1; } 100% { opacity:0; transform:translate(-82px,-86px); } }

@media(min-width:1001px) { .left-rail .mini-crew { margin-top:27px; } }
@media(max-width:1000px) {
  .mobile-motion { display:inline-block; font-size:9px; color:#45618b; padding:2px 5px; }
  .hero-character { animation:character-breathe 4.5s ease-in-out infinite; }
  .ticker-track { animation:marquee 28s linear infinite; }
  .terminal-cursor { animation:blink 1.1s steps(2,end) infinite; }
}
@media(max-width:540px) {
  body { background:var(--paper); }
  .page { box-shadow:none; }
  .hero-card h1 strong { text-shadow:3px 4px 0 #efc76560; }
  .hero-bubble { right:11px; top:2px; padding:8px 11px; }
  .hero-bubble small { font-size:5.5px; letter-spacing:0; }
  .hero-feed-line { font-size:8px; }
  .terminal-success { font-size:7px; }
  .terminal-dots span { font-size:5px; letter-spacing:.1px; }
  .spark-one { left:25px; top:151px; font-size:25px; }
  .scroll-invitation { gap:6px 8px; padding-bottom:23px; }
  .scroll-invitation>a { font-size:8px; letter-spacing:1px; gap:6px; }
  .scroll-line { width:14px; }
  .night-stage { margin-top:24px; border-radius:15px; }
  .stage-topline { padding:12px 12px; }
  .stage-open { font-size:8px; letter-spacing:.7px; gap:5px; }
  #night-time { font-size:20px; }
  .night-floor { height:277px; }
  .shift-system { width:100px; left:40%; top:24px; }
  .shift-handy { width:90px; left:3%; top:80px; }
  .shift-order { width:90px; right:0; top:142px; }
  .shift-manager { width:88px; left:21%; top:173px; }
  .floor-counter { width:42%; left:30%; }
  .floor-counter>span { font-size:11px; }
  .table-one { left:9%; top:109px; }
  .table-two { right:11%; top:136px; }
  .table-three { left:42%; top:217px; }
  .night-ticket { width:91px; right:9px; top:15px; padding:9px 8px 11px; }
  .night-ticket small { font-size:7px; }
  .night-ticket strong { font-size:18px; }
  .stage-message { bottom:14px; right:8px; font-size:9px; padding:4px 9px; }
  .stage-caption { padding:17px 17px 20px; min-height:155px; }
  .stage-caption h3 { font-size:21px; }
  .stage-caption p { font-size:12px; }
  .night-controls { gap:6px; }
  .night-controls button { min-height:58px; }
  .night-controls small { font-size:10px; }
  .night-controls span { font-size:12px; }
  .stage-bottom { gap:5px; }
  .stage-bottom p { font-size:9px; }
  .stage-play { font-size:8px; }
  .night-stage[data-step="2"] .night-ticket { transform:translate(-3px,42px) scale(1.06); }
  .night-stage[data-step="3"] .night-ticket { transform:translate(-3px,105px); }
}
@media(max-width:370px) {
  .scroll-invitation { gap:4px; }
  .scroll-invitation>a { font-size:7px; letter-spacing:.7px; }
  .mobile-motion { font-size:8px; }
  .night-floor { height:253px; }
  .shift-system { width:88px; }
  .shift-handy { width:81px; }
  .shift-order { width:80px; top:131px; }
  .shift-manager { width:78px; top:161px; }
  .table-three { top:202px; }
  .night-ticket { width:81px; }
  .night-ticket strong { font-size:16px; }
  .floor-counter i { width:27px; left:8px; }
  .floor-counter>span { font-size:9px; }
  .stage-caption h3 { font-size:19px; }
  .stage-message { font-size:8px; right:6px; bottom:11px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-feed-line { opacity:1; }
  .js-ready h2[data-reveal] { clip-path:none; }
  .hero-character { translate:none; rotate:none; }
}
