:root {
  --ink:#17221d;
  --muted:#66706a;
  --paper:#f7f4ec;
  --panel:#fffefa;
  --green:#155b46;
  --green-2:#23765d;
  --green-soft:#e5f0e9;
  --amber:#d8943d;
  --amber-soft:#fbefd9;
  --line:#d9ddd6;
  --shadow:0 18px 50px rgba(34,49,40,.16);
  --safe-top:max(14px,env(safe-area-inset-top));
  --safe-bottom:max(16px,env(safe-area-inset-bottom));
}

*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;overflow:hidden;background:#e8e7e1;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI",sans-serif}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible{outline:3px solid rgba(35,118,93,.28);outline-offset:2px}
button:active{transform:translateY(1px)}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(34px,10vw,47px);line-height:.98;letter-spacing:-.055em}
h2{margin-bottom:8px;font-size:28px;line-height:1.15;letter-spacing:-.035em}
h3{margin-bottom:5px;font-size:16px;line-height:1.35}
p{color:var(--muted);font-size:14px;line-height:1.65}

.rotate{display:none}
.game-shell{width:100%;height:100dvh}
.phone{position:relative;width:100%;max-width:430px;height:100dvh;margin:0 auto;overflow:hidden;background:var(--paper);box-shadow:var(--shadow)}
.sound-toggle{position:absolute;top:calc(var(--safe-top) + 3px);right:16px;z-index:60;display:grid;grid-template-columns:18px auto;gap:3px;place-items:center;min-width:46px;height:34px;padding:0 8px;border:1px solid rgba(255,255,255,.52);border-radius:999px;background:rgba(13,28,22,.62);color:#fff;box-shadow:0 5px 16px rgba(4,12,8,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.sound-toggle span{position:relative;font:900 16px/1 Georgia,serif}.sound-toggle small{font-size:7px;font-weight:900;letter-spacing:.08em}
.sound-toggle[data-enabled="false"]{background:rgba(31,35,33,.48);color:rgba(255,255,255,.72)}
.sound-toggle[data-enabled="false"] span::after{content:"";position:absolute;top:50%;left:-2px;width:20px;height:1.5px;transform:rotate(-45deg);border-radius:99px;background:currentColor}
.screen{position:absolute;inset:0;display:none;flex-direction:column;overflow:hidden;background:var(--paper)}
.screen.active{display:flex;animation:enter .24s ease both}
@keyframes enter{from{opacity:.5;transform:translateX(10px)}to{opacity:1;transform:none}}

.topbar{position:relative;z-index:12;display:grid;grid-template-columns:40px 1fr 96px;align-items:center;min-height:58px;padding:var(--safe-top) 16px 8px;background:rgba(247,244,236,.94)}
.topbar>b{text-align:center;font-size:12px;letter-spacing:.02em}
.topbar.transparent{position:absolute;top:0;right:0;left:0;color:#fff;background:linear-gradient(rgba(9,20,15,.6),transparent)}
.topbar.transparent .icon-button{background:rgba(15,24,19,.48);color:#fff}
.scene-topbar{background:linear-gradient(rgba(9,20,15,.4),transparent)}
.icon-button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.9);font-size:19px;box-shadow:0 3px 10px rgba(20,32,25,.08)}
.scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 20px calc(116px + var(--safe-bottom));scrollbar-width:none}
.scroll::-webkit-scrollbar{display:none}
.bottom{position:absolute;right:0;bottom:0;left:0;z-index:15;padding:12px 20px var(--safe-bottom);background:linear-gradient(transparent,rgba(247,244,236,.96) 18%,var(--paper) 46%)}

.button{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;padding:13px 18px;border:0;border-radius:16px;background:var(--green);color:#fff;font-size:15px;font-weight:800;box-shadow:0 9px 22px rgba(21,91,70,.2)}
.button.secondary{border:1px solid var(--line);background:var(--panel);color:var(--ink);box-shadow:none}
.button.text{min-height:42px;background:transparent;color:var(--green);box-shadow:none}
.button[disabled]{opacity:.42;cursor:not-allowed}
.button-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.eyebrow{margin:0 0 8px;color:var(--green-2);font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.note{margin-top:22px;padding:11px 12px;border-radius:13px;background:var(--amber-soft);color:#694b23;font-size:11px;line-height:1.55}
.fiction{display:flex;gap:7px;align-items:flex-start;margin:10px 0;padding:9px 10px;border-radius:11px;background:rgba(255,255,255,.9);color:#626a65;font-size:10px;line-height:1.45}
.fiction b{color:var(--green)}

.title-screen{justify-content:flex-end;overflow-x:hidden;overflow-y:auto;background:linear-gradient(155deg,#fbf7ec 0 53%,#e5efe8 100%)}
.title-screen::before{content:"";position:absolute;top:9%;left:50%;width:330px;height:330px;transform:translateX(-50%);border:1px solid rgba(21,91,70,.18);border-radius:50%;box-shadow:0 0 0 42px rgba(35,118,93,.035),0 0 0 84px rgba(35,118,93,.025)}
.title-gallery{position:absolute;inset:0;z-index:0;overflow:hidden;background:transparent;pointer-events:none}
.title-gallery::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,16,12,.12),rgba(7,16,12,.2) 36%,rgba(7,16,12,.86) 77%,rgba(7,16,12,.97));opacity:0;transition:opacity 1.2s ease}
.title-gallery-image{position:absolute;inset:-3%;width:106%;height:106%;object-fit:cover;object-position:50% 50%;opacity:0;transform:scale(1.03);transition:opacity 1.35s ease;will-change:opacity,transform}
.title-gallery-image.active{opacity:1}
.title-gallery-image.pan-left{animation:title-photo-pan-left 14s ease-in-out infinite alternate}
.title-gallery-image.pan-right{animation:title-photo-pan-right 14s ease-in-out infinite alternate}
@keyframes title-photo-pan-left{from{transform:translate3d(2.2%,0,0) scale(1.03)}to{transform:translate3d(-2.2%,0,0) scale(1.1)}}
@keyframes title-photo-pan-right{from{transform:translate3d(-2.2%,0,0) scale(1.1)}to{transform:translate3d(2.2%,0,0) scale(1.03)}}
.title-screen.has-gallery{background:#14271f}
.title-screen.has-gallery .title-gallery{background:#14271f}
.title-screen.has-gallery::before{opacity:0}
.title-screen.has-gallery .title-gallery::after{opacity:1}
.title-screen.has-gallery .topbar{color:#fff;background:linear-gradient(rgba(7,16,12,.48),transparent)}
.title-screen.has-gallery .title-orbit{color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.title-screen.has-gallery .title-orbit::before,.title-screen.has-gallery .title-orbit::after{filter:drop-shadow(0 0 7px rgba(255,255,255,.26))}
.title-screen.has-gallery .title-copy{color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.54)}
.title-screen.has-gallery .title-copy .eyebrow{color:#c6f2e3}
.title-screen.has-gallery .language-trigger{text-shadow:none;background:rgba(255,255,255,.91)}
.title-orbit{position:absolute;top:17%;left:50%;display:grid;place-items:center;width:230px;height:230px;transform:translateX(-50%);border:0;border-radius:50%;color:var(--green)}
.title-orbit::before,.title-orbit::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.title-orbit::before{inset:0;border:1px solid rgba(255,255,255,.28);border-top:2px solid rgba(236,185,98,.88);border-right-color:rgba(255,255,255,.06);box-shadow:inset 0 0 18px rgba(236,185,98,.055);animation:title-orbit-forward 12s linear infinite}
.title-orbit::after{inset:16px;border:1px solid rgba(193,235,221,.34);border-bottom:2px solid rgba(68,197,153,.9);border-left-color:rgba(255,255,255,.05);box-shadow:0 0 14px rgba(68,197,153,.08);animation:title-orbit-reverse 8.5s linear infinite}
.title-orbit span{position:relative;z-index:1;font-size:62px;font-weight:300;letter-spacing:-.06em}
.title-orbit small{position:absolute;bottom:51px;z-index:1;font-size:8px;font-weight:900;letter-spacing:.18em}
@keyframes title-orbit-forward{to{transform:rotate(360deg)}}
@keyframes title-orbit-reverse{to{transform:rotate(-360deg)}}
.title-copy{position:relative;z-index:3;padding:330px 24px calc(24px + var(--safe-bottom))}
.title-copy h1{margin-bottom:14px}
.language-trigger{display:grid;grid-template-columns:38px 1fr 24px;gap:10px;align-items:center;width:100%;min-height:56px;margin:14px 0 12px;padding:8px 12px;border:1px solid rgba(21,91,70,.22);border-radius:15px;background:rgba(255,255,255,.78);text-align:left;box-shadow:0 5px 16px rgba(35,48,40,.05)}
.language-trigger-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--green-soft);color:var(--green);font-size:17px;font-weight:900}
.language-trigger-copy small,.language-trigger-copy strong{display:block}
.language-trigger-copy small{margin-bottom:2px;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.language-trigger-copy strong{font-size:13px}
.language-trigger-arrow{color:var(--green);font-size:20px;font-weight:900;text-align:center}

.language-dialog[hidden]{display:none}
.language-dialog{position:absolute;inset:0;z-index:70;display:grid;align-items:end;isolation:isolate}
.language-backdrop{position:absolute;inset:0;border:0;background:rgba(15,25,20,.42);backdrop-filter:blur(2px);animation:fade-in .18s ease both}
.language-sheet{position:relative;z-index:1;padding:19px 18px calc(20px + var(--safe-bottom));border-radius:25px 25px 0 0;background:var(--panel);box-shadow:0 -18px 45px rgba(22,36,28,.2);animation:sheet-up .22s ease-out both}
.language-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}
.language-sheet-header h2{margin:0;font-size:23px}
.language-close{display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:24px;line-height:1}
.language-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.language-option{position:relative;min-height:49px;padding:10px 34px 10px 12px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);font-size:12px;font-weight:800;text-align:left}
.language-option.selected{border-color:var(--green);background:var(--green-soft);color:var(--green)}
.language-option.selected::after{content:"✓";position:absolute;top:50%;right:12px;transform:translateY(-50%);font-size:14px;font-weight:900}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes sheet-up{from{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:none}}

.choice-list{display:grid;gap:12px;margin-top:22px}
.choice{display:grid;grid-template-columns:50px 1fr 24px;gap:13px;align-items:center;width:100%;padding:16px;border:1px solid var(--line);border-radius:19px;background:var(--panel);text-align:left;box-shadow:0 7px 20px rgba(43,54,47,.06)}
.choice .symbol{display:grid;place-items:center;width:50px;height:50px;border-radius:15px;background:var(--green-soft);color:var(--green);font-size:22px;font-weight:900}
.choice strong,.choice small{display:block}
.choice strong{margin-bottom:3px;font-size:15px}
.choice small{color:var(--muted);font-size:11px;line-height:1.45}
.choice .arrow{font-size:21px;color:#9ba39e}

.visits-scroll{padding-bottom:calc(42px + var(--safe-bottom))}
.visits-status{min-height:18px;margin:14px 0 8px;color:var(--muted);font-size:11px;font-weight:700}
.visit-list{display:grid;gap:10px}
.visit-card{display:grid;grid-template-columns:42px minmax(0,1fr) 18px;gap:11px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--ink);text-decoration:none;box-shadow:0 5px 15px rgba(35,48,40,.05)}
.visit-card:focus-visible{outline:3px solid rgba(21,91,70,.28);outline-offset:2px}
.visit-number{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,var(--green-soft),#dceadf);color:var(--green);font-size:11px;font-weight:900}
.visit-copy{min-width:0}
.visit-copy strong,.visit-copy small,.visit-permalink{display:block}
.visit-copy strong{overflow:hidden;margin-bottom:3px;font-size:13px;text-overflow:ellipsis;white-space:nowrap}
.visit-copy small{color:var(--muted);font-size:9px;line-height:1.45}
.visit-permalink{overflow:hidden;margin-top:4px;color:var(--green-2);font:8px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}
.visit-arrow{color:#9ba39e;font-size:20px}
.visit-pagination{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center;margin-top:15px}
.visit-pagination[hidden]{display:none}
.visit-pagination .button{min-height:42px;padding:8px 6px;border-radius:13px;font-size:11px}
.visit-pagination span{min-width:52px;color:var(--muted);font-size:10px;font-weight:800;text-align:center}

.candidate{display:grid;grid-template-columns:76px 1fr 24px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.candidate:last-child{border:0}
.candidate-image{height:70px;overflow:hidden;border-radius:13px;background:var(--green-soft)}
.candidate-image img{display:block;width:100%;height:100%;object-fit:cover}
.candidate-image.park,.candidate-image.public{display:grid;place-items:center;font-size:27px}
.candidate-image.park{background:linear-gradient(145deg,#dfead5,#aad29b)}
.candidate-image.public{background:linear-gradient(145deg,#e4e6ea,#b7bfca)}
.candidate h3{font-size:14px}
.candidate p{margin:0;font-size:10px;line-height:1.45}
.candidate button{border:0;background:transparent;font-size:21px}
.candidate-list{display:grid;gap:10px;margin-top:12px}
.candidate-list .candidate{grid-template-columns:52px 1fr 20px;width:100%;padding:12px;border:1px solid var(--line);border-radius:15px;background:var(--panel);text-align:left;box-shadow:0 5px 15px rgba(35,48,40,.05)}
.candidate-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--green-soft);color:var(--green);font-size:20px;font-weight:900}
.candidate-copy{min-width:0}
.candidate-copy strong,.candidate-copy small{display:block}
.candidate-copy strong{margin-bottom:4px;font-size:13px}
.candidate-copy small{overflow:hidden;color:var(--muted);font-size:9px;line-height:1.45;text-overflow:ellipsis}
.inline-error{margin:18px 0;padding:15px;border:1px solid #e0b0a8;border-radius:15px;background:#fff1ee}
.inline-error[hidden]{display:none}
.inline-error b{font-size:13px;color:#7e3028}
.inline-error p{margin:7px 0 12px;color:#793b34;font-size:11px;white-space:pre-wrap}
.inline-error .button{margin-top:7px}

.map-topbar{position:absolute;top:0;right:0;left:0;background:transparent}
.map{position:relative;flex:1;min-height:0;overflow:hidden;background:#e2e8de;background-image:linear-gradient(31deg,transparent 47%,#fff 48%,#fff 54%,transparent 55%),linear-gradient(100deg,transparent 38%,#cbd4d8 39%,#cbd4d8 42%,transparent 43%),linear-gradient(-38deg,transparent 61%,#fafaf7 62%,#fafaf7 68%,transparent 69%),repeating-linear-gradient(0deg,rgba(69,102,76,.08) 0 1px,transparent 1px 55px),repeating-linear-gradient(90deg,rgba(69,102,76,.08) 0 1px,transparent 1px 62px)}
.map::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 17%,rgba(105,160,104,.22) 0 45px,transparent 46px),radial-gradient(circle at 13% 72%,rgba(105,160,104,.2) 0 55px,transparent 56px)}
.live-map-shell{background:#dde5df;background-image:none}
.live-map-shell::after{display:none}
.google-map{position:absolute;inset:0 0 210px;background:linear-gradient(145deg,#dbe9df,#b9cfc0)}
.google-map.test-map{display:grid;place-items:center;padding:95px 20px 30px}
.google-map.test-map button{padding:20px 28px;border:2px dashed rgba(21,91,70,.5);border-radius:18px;background:rgba(255,255,255,.84);color:var(--green)}
.google-map.test-map b,.google-map.test-map span{display:block}
.google-map.test-map span{margin-top:5px;font-size:11px}
.map-search{position:absolute;top:calc(var(--safe-top) + 54px);right:16px;left:16px;z-index:5;display:flex;gap:9px;align-items:center;padding:13px 14px;border-radius:14px;background:#fff;box-shadow:0 7px 24px rgba(44,58,48,.14);font-size:12px}
.live-map-search{padding:7px 8px 7px 12px}
.live-map-search input{min-width:0;flex:1;padding:7px 3px;border:0;outline:0;background:transparent;font:inherit}
.live-map-search button{padding:8px 12px;border:0;border-radius:10px;background:var(--green);color:#fff;font-size:10px;font-weight:900}
.map-loading{position:absolute;top:calc(var(--safe-top) + 116px);left:50%;z-index:4;max-width:82%;padding:8px 11px;transform:translateX(-50%);border-radius:999px;background:rgba(255,255,255,.92);color:var(--green);font-size:10px;box-shadow:0 4px 14px rgba(30,45,36,.12)}
.map-loading[hidden]{display:none}
.map-loading.error{border-radius:12px;color:#7e3028;white-space:normal}
.pin{position:absolute;z-index:4;display:grid;place-items:center;width:42px;height:42px;border:3px solid #fff;border-radius:50% 50% 50% 9px;transform:rotate(-45deg);background:var(--green);color:#fff;box-shadow:0 7px 16px rgba(28,55,40,.25);font-size:10px;font-weight:900}
.pin span{transform:rotate(45deg)}
.pin.shop{top:38%;left:54%}
.pin.park{top:27%;left:20%;background:#5c8b54}
.pin.home{top:57%;left:30%;background:#3b4540}
.pin.station{top:21%;right:9%;background:#b16b46}
.map-sheet{position:absolute;right:0;bottom:0;left:0;z-index:7;padding:10px 20px calc(18px + var(--safe-bottom));border-radius:25px 25px 0 0;background:var(--panel);box-shadow:0 -10px 30px rgba(39,52,43,.12)}
.live-map-shell .map-sheet{max-height:46%;overflow-y:auto}
.map-sheet p{font-size:12px}
.handle{width:38px;height:4px;margin:0 auto 14px;border-radius:999px;background:#d4d7d2}
.map-search-results{display:grid;gap:6px;max-height:160px;margin:8px 0;overflow-y:auto}
.map-result{display:grid;grid-template-columns:28px 1fr 14px;gap:8px;align-items:center;width:100%;padding:8px;border:1px solid var(--line);border-radius:11px;background:#fff;text-align:left}
.map-result.map-focused{border-color:rgba(20,121,92,.55);background:linear-gradient(110deg,#f3fbf7,#fff 72%);box-shadow:0 0 0 2px rgba(20,121,92,.1),0 8px 20px rgba(25,72,57,.1)}
.map-result.map-focused .candidate-symbol{background:var(--green);color:#fff}
.map-result .candidate-symbol{width:28px;height:28px;border-radius:8px;font-size:12px}
.map-result .candidate-copy strong{font-size:11px}
.map-result .candidate-copy small{font-size:8px}

.hero{position:relative;min-height:48%;overflow:hidden;background:#ced7d0}
.hero img{display:block;width:100%;height:100%;object-fit:cover}
.hero .photo-label{position:absolute;top:calc(var(--safe-top) + 45px);left:17px;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.9);font-size:9px;font-weight:800}
.hero .photo-credit{position:absolute;right:9px;bottom:8px;padding:4px 6px;border-radius:5px;background:rgba(21,30,25,.72);color:#fff;font-size:7px}
.confirm-hero{min-height:55%}
.confirm-copy{padding-top:18px}
.future-hero{min-height:100%;isolation:isolate;background:#101b17}
.future-exterior-frame{position:absolute;inset:-1.5%;z-index:1;overflow:hidden;animation:future-exterior-focus 16s ease-in-out infinite alternate;will-change:transform}
.future-exterior-frame>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:saturate(1.06) contrast(1.03)}
@keyframes future-exterior-focus{0%{transform:translate3d(-.7%,0,0) scale(1.015)}50%{transform:translate3d(.45%,-.35%,0) scale(1.035)}100%{transform:translate3d(.8%,0,0) scale(1.02)}}
.future-hero::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(3,10,7,.24),transparent 25%,transparent 43%,rgba(4,11,8,.42) 62%,rgba(4,11,8,.96) 88%,#040b08)}
.future-hero>.photo-label{z-index:4}
.future-arrival-copy{position:absolute;right:21px;bottom:calc(96px + var(--safe-bottom));left:21px;z-index:3;color:#fff;text-align:left;text-shadow:0 3px 22px rgba(0,0,0,.82);animation:future-title-arrive .72s cubic-bezier(.2,.8,.2,1) both}
.future-arrival-copy>span{display:block;margin-bottom:5px;color:#bfe9da;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.future-place-title{margin:0;color:#fff;font-size:29px;line-height:1.07;text-wrap:balance}
.future-arrival-copy p{display:-webkit-box;margin:7px 0 0;overflow:hidden;color:rgba(255,255,255,.84);font-size:11px;font-weight:650;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.future-copy{position:absolute;right:21px;bottom:calc(17px + var(--safe-bottom));left:21px;z-index:3;color:#fff}
.future-copy p{color:rgba(255,255,255,.82)}
.future-copy .eyebrow{color:#aee6d4}
.future-copy .fiction{background:rgba(255,255,255,.12);color:rgba(255,255,255,.82)}
.future-copy .fiction b{color:#c7f6e5}
.future-copy .button{margin-top:0;border:1px solid rgba(255,255,255,.22);background:rgba(49,126,100,.88);box-shadow:0 14px 32px rgba(0,0,0,.3);backdrop-filter:blur(12px);animation:future-enter-arrive .72s .12s cubic-bezier(.2,.8,.2,1) both}
@keyframes future-title-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes future-enter-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.meal-screen{isolation:isolate;background:#07110d;color:#fff}
.meal-establish{visibility:hidden;position:absolute;inset:0;z-index:7;overflow:hidden;background:#111b16;opacity:0;pointer-events:none}
.meal-establish img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:saturate(1.04) contrast(1.03);transform:scale(1.01);will-change:transform}
.meal-establish::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,10,7,.12),transparent 38%,rgba(3,9,6,.55) 68%,rgba(3,9,6,.94));pointer-events:none}
.meal-establish>.photo-label{position:absolute;top:calc(var(--safe-top) + 47px);left:17px;z-index:2;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.9);color:var(--ink);font-size:9px;font-weight:800;letter-spacing:.03em;box-shadow:0 4px 14px rgba(0,0,0,.16)}
.meal-service-copy{position:absolute;right:22px;bottom:36px;left:22px;z-index:2;color:#fff;text-shadow:0 3px 18px rgba(0,0,0,.72)}
.meal-service-copy small,.meal-service-copy strong{display:block}.meal-service-copy small{margin-bottom:8px;color:#d7f3e8;font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.meal-service-copy strong{max-width:345px;font-size:22px;line-height:1.22;text-wrap:balance}
.meal-screen.meal-arriving .meal-establish{visibility:visible;animation:meal-establish-depart var(--meal-arrival-duration,2.6s) cubic-bezier(.55,.04,.22,1) both}
.meal-screen.meal-arriving .meal-establish img{animation:meal-service-pan var(--meal-arrival-duration,2.6s) cubic-bezier(.42,0,.2,1) both}
.meal-screen.meal-arriving .meal-establish>.photo-label,.meal-screen.meal-arriving .meal-service-copy{animation:meal-service-copy-exit var(--meal-arrival-duration,2.6s) ease-in both}
.meal-screen.meal-arriving .meal-visual{animation:meal-plate-arrive var(--meal-arrival-duration,2.6s) cubic-bezier(.18,.74,.14,1) both}
.meal-screen.meal-arriving .meal-visual::before{animation:meal-plate-glint var(--meal-arrival-duration,2.6s) ease-out both}
.meal-screen.meal-arriving .meal-light-bloom{animation:meal-arrival-bloom var(--meal-arrival-duration,2.6s) ease-out both}
.meal-screen.meal-arriving .meal-visual>.photo-label{animation:meal-table-label-arrive var(--meal-arrival-duration,2.6s) ease-out both}
.meal-screen.meal-arriving .meal-copy{animation:meal-copy-arrive var(--meal-arrival-duration,2.6s) cubic-bezier(.2,.75,.18,1) both}
.meal-visual{position:absolute;inset:0;z-index:0;overflow:hidden;background:#111b16}
.meal-scene-image,.meal-taste-image{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(1.04) contrast(1.03);will-change:opacity,transform}
.meal-scene-image{position:relative;z-index:0;object-position:50% 50%;transform:scale(1.025);animation:meal-camera-breathe 12s ease-in-out infinite alternate}
.meal-taste-image{position:absolute;inset:0;z-index:1;object-position:68% 50%;opacity:0;transform:scale(1.025);transform-origin:66% 56%}
.meal-visual::before{content:"";position:absolute;inset:-16% -48%;z-index:3;background:linear-gradient(102deg,transparent 37%,rgba(255,235,184,.06) 45%,rgba(255,227,155,.72) 50%,rgba(255,250,226,.12) 56%,transparent 64%);opacity:0;transform:translate3d(-58%,0,0) rotate(-5deg);mix-blend-mode:screen;pointer-events:none}
.meal-visual::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(2,8,5,.2),transparent 22%,transparent 46%,rgba(3,9,6,.58) 65%,rgba(3,9,6,.98) 88%);pointer-events:none}
.meal-visual>.photo-label{position:absolute;top:calc(var(--safe-top) + 47px);left:17px;z-index:5;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.9);color:var(--ink);font-size:9px;font-weight:800;letter-spacing:.03em;box-shadow:0 4px 14px rgba(0,0,0,.16)}
.meal-light-bloom{position:absolute;inset:-12%;z-index:1;background:radial-gradient(circle at 54% 47%,rgba(255,213,134,.16),transparent 30%);mix-blend-mode:screen;pointer-events:none}
.meal-steam{position:absolute;top:31%;left:50%;z-index:3;width:44%;height:27%;opacity:0;transform:translateX(-50%);pointer-events:none}
.meal-screen[data-serving-effect="steam"] .meal-steam,.meal-screen[data-serving-effect="chill"] .meal-steam{opacity:1}
.meal-steam i{position:absolute;bottom:0;width:24%;height:94%;border-left:2px solid rgba(255,249,232,.3);border-radius:50%;filter:blur(2px);opacity:.18;animation:meal-steam-rise 3.8s ease-in-out infinite}
.meal-steam i:nth-child(1){left:18%;animation-delay:-2.1s}.meal-steam i:nth-child(2){left:48%;height:78%;animation-delay:-.8s}.meal-steam i:nth-child(3){left:72%;height:86%;animation-delay:-3s}
.meal-screen[data-serving-effect="chill"] .meal-steam{top:43%;height:14%}
.meal-screen[data-serving-effect="chill"] .meal-steam i{width:13px;height:13px;border:1px solid rgba(220,248,255,.65);background:radial-gradient(circle,rgba(237,253,255,.58),rgba(176,231,244,.08) 65%,transparent 70%);border-radius:50%;filter:blur(.2px);box-shadow:0 0 14px rgba(187,239,255,.35);animation:meal-chill-glint 4.6s ease-in-out infinite}
.meal-sensory-pulse{position:absolute;top:39%;left:51%;z-index:3;width:74px;height:92px;opacity:0;mix-blend-mode:screen;pointer-events:none}.meal-sensory-pulse i{--wisp-start:-12deg;--wisp-end:9deg;--wisp-x:-12px;position:absolute;bottom:0;left:7px;width:12px;height:64px;border-radius:50%;background:linear-gradient(180deg,transparent,rgba(255,235,184,.08) 18%,rgba(255,218,135,.62) 58%,transparent);filter:blur(4px);opacity:0;transform:translate3d(0,14px,0) rotate(var(--wisp-start)) scale(.58,.45)}.meal-sensory-pulse i:nth-child(2){--wisp-start:7deg;--wisp-end:-7deg;--wisp-x:5px;left:29px;height:78px;width:14px}.meal-sensory-pulse i:nth-child(3){--wisp-start:23deg;--wisp-end:38deg;--wisp-x:15px;left:50px;height:57px;width:10px}
.meal-taste-feedback{position:absolute;top:56%;right:24px;left:24px;z-index:5;padding:18px 19px;border:1px solid rgba(255,255,255,.24);border-radius:18px;background:linear-gradient(125deg,rgba(5,14,10,.97),rgba(42,27,11,.96));box-shadow:0 18px 44px rgba(0,0,0,.48);opacity:0;transform:translateY(18px) scale(.97);pointer-events:none}
.meal-taste-feedback small,.meal-taste-feedback strong{display:block}.meal-taste-feedback small{margin-bottom:5px;color:#efd18a;font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.meal-taste-feedback strong{color:#fff;font-size:17px;line-height:1.42;text-shadow:0 2px 13px rgba(0,0,0,.5)}
.meal-copy{position:absolute;right:0;bottom:0;left:0;z-index:4;padding:0 20px calc(19px + var(--safe-bottom));text-shadow:0 2px 16px rgba(0,0,0,.48)}
.meal-place{display:block;margin-bottom:7px;color:#d7f3e8;font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.meal-copy h2{max-width:350px;margin:0 0 8px;color:#fff;font-size:29px;line-height:1.08;text-shadow:0 3px 18px rgba(0,0,0,.72)}
.meal-copy p{display:-webkit-box;max-width:350px;margin:0 0 8px;overflow:hidden;color:rgba(255,255,255,.83);font-size:12px;font-weight:650;line-height:1.48;text-shadow:0 2px 12px rgba(0,0,0,.72);-webkit-box-orient:vertical;-webkit-line-clamp:2}
.meal-future-detail{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:7px;margin:0 0 12px;padding:8px 10px;border:1px solid rgba(208,244,231,.22);border-radius:11px;background:rgba(5,20,15,.66);box-shadow:0 7px 20px rgba(0,0,0,.16);backdrop-filter:blur(8px)}
.meal-future-detail small{padding-top:1px;color:#aee6d4;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.meal-future-detail strong{display:-webkit-box;overflow:hidden;color:#fff;font-size:10px;line-height:1.45;text-shadow:0 2px 10px rgba(0,0,0,.5);-webkit-box-orient:vertical;-webkit-line-clamp:2}
.meal-copy .button{min-height:51px;background:linear-gradient(108deg,#b77534,#efd18a);color:#25170b;text-shadow:none;box-shadow:0 10px 26px rgba(0,0,0,.3)}
.meal-screen.tasting .meal-scene-image{animation:meal-service-release var(--meal-taste-duration,1.5s) ease-in both}
.meal-screen.tasting .meal-taste-image{animation:meal-taste-focus var(--meal-taste-duration,1.5s) cubic-bezier(.16,.72,.15,1) both}
.meal-screen.tasting .meal-visual::before{animation:meal-taste-match-cut var(--meal-taste-duration,1.5s) cubic-bezier(.2,.72,.2,1) both}
.meal-screen.tasting .meal-light-bloom{animation:meal-taste-bloom var(--meal-taste-duration,1.5s) ease-out both}
.meal-screen.tasting .meal-steam i{animation-duration:.9s;opacity:.42}
.meal-screen.tasting .meal-sensory-pulse{opacity:1}.meal-screen.tasting .meal-sensory-pulse i{animation:meal-sensory-wisp var(--meal-sensory-duration,825ms) var(--meal-sensory-delay-1,600ms) cubic-bezier(.2,.62,.24,1) both}.meal-screen.tasting .meal-sensory-pulse i:nth-child(2){animation-delay:var(--meal-sensory-delay-2,690ms)}.meal-screen.tasting .meal-sensory-pulse i:nth-child(3){animation-delay:var(--meal-sensory-delay-3,780ms)}
.meal-screen.tasting .meal-copy{animation:meal-copy-taste var(--meal-taste-duration,1.5s) ease-in both}
.meal-screen.tasting .meal-taste-feedback{animation:meal-taste-reveal var(--meal-taste-duration,1.5s) cubic-bezier(.16,.72,.15,1) both}
@keyframes meal-camera-breathe{from{transform:scale(1.025) translateY(0)}to{transform:scale(1.065) translateY(-.7%)}}
@keyframes meal-service-release{0%,10%{opacity:1;transform:scale(1.04)}15%{opacity:.18;transform:scale(1.07)}18%,100%{opacity:0;transform:scale(1.085)}}
@keyframes meal-establish-depart{0%,78%{opacity:1;transform:scale(1)}100%{visibility:hidden;opacity:0;transform:scale(1.055)}}
@keyframes meal-service-pan{0%,24%{transform:scale(1.17) translateY(3.8%)}72%,100%{transform:scale(1.025) translateY(0)}}
@keyframes meal-service-copy-exit{0%,62%{opacity:1;transform:none}76%,100%{opacity:0;transform:translateY(-8px)}}
@keyframes meal-plate-arrive{0%,64%{opacity:.45;transform:scale(1.12) translateY(4%)}100%{opacity:1;transform:none}}
@keyframes meal-plate-glint{0%,72%{opacity:0;transform:translate3d(-58%,0,0) rotate(-5deg)}82%{opacity:.78}100%{opacity:0;transform:translate3d(58%,0,0) rotate(-5deg)}}
@keyframes meal-arrival-bloom{0%,68%{opacity:.08;transform:scale(.82)}86%{opacity:1;transform:scale(1.22)}100%{opacity:.34;transform:scale(1)}}
@keyframes meal-table-label-arrive{0%,86%{opacity:0;transform:translateY(7px)}100%{opacity:1;transform:none}}
@keyframes meal-copy-arrive{0%,88%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:none}}
@keyframes meal-steam-rise{0%{opacity:0;transform:translate3d(0,16%,0) scale(.88)}42%{opacity:.36}100%{opacity:0;transform:translate3d(14%,-18%,0) scale(1.12)}}
@keyframes meal-chill-glint{0%,100%{opacity:0;transform:translate3d(-10px,10px,0) scale(.5)}38%{opacity:.58}72%{opacity:.15;transform:translate3d(18px,-22px,0) scale(1.25)}}
@keyframes meal-taste-focus{0%,13%{opacity:0;transform:scale(1.13) translateY(-1.8%)}18%{opacity:1;transform:scale(1.09) translateY(-1%)}45%{opacity:1;transform:scale(1.085) translateY(-1%)}82%{opacity:1;transform:scale(1.11) translateY(-1.5%)}100%{opacity:.72;transform:scale(1.18) translate3d(-2.6%,-2.2%,0)}}
@keyframes meal-taste-match-cut{0%,5%{opacity:0;transform:translate3d(-58%,0,0) rotate(-5deg) scaleX(.7)}11%{opacity:.78}15%{opacity:1;transform:translate3d(0,0,0) rotate(-5deg) scaleX(1.5)}22%{opacity:.2}28%,100%{opacity:0;transform:translate3d(58%,0,0) rotate(-5deg) scaleX(.8)}}
@keyframes meal-taste-bloom{0%{opacity:.3;transform:scale(.9)}45%{opacity:1;transform:scale(1.28)}100%{opacity:.2;transform:scale(1.55)}}
@keyframes meal-sensory-wisp{0%{opacity:0;transform:translate3d(0,14px,0) rotate(var(--wisp-start)) scale(.58,.45)}18%{opacity:.66}62%{opacity:.3}100%{opacity:0;transform:translate3d(var(--wisp-x),-58px,0) rotate(var(--wisp-end)) scale(1.18,1.72)}}
@keyframes meal-copy-taste{0%{opacity:1;transform:none}16%,100%{opacity:0;transform:translateY(10px)}}
@keyframes meal-taste-reveal{0%,34%{opacity:0;transform:translateY(14px) scale(.98)}44%,82%{opacity:1;transform:none}92%,100%{opacity:0;transform:translateY(-6px) scale(1.01)}}
.adventure-screen{background:#111b16}
.adventure-visual{position:relative;z-index:1;flex:0 0 auto;width:100%;aspect-ratio:1;overflow:hidden;background:#111b16}
.adventure-background{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;background:#111b16}
.adventure-visual::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(5,13,9,.2),transparent 24%,transparent 70%,rgba(5,13,9,.26));pointer-events:none}
.adventure-visual .photo-label{position:absolute;top:calc(var(--safe-top) + 47px);left:17px;z-index:4;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.88);font-size:9px;font-weight:800;box-shadow:0 4px 12px rgba(12,24,17,.12)}
.adventure-character{position:absolute;right:-3%;bottom:0;z-index:3;display:block;width:auto;height:96%;object-fit:contain;object-position:bottom right;filter:drop-shadow(0 13px 11px rgba(2,7,5,.42)) drop-shadow(0 0 1px rgba(232,219,255,.5));pointer-events:none;transform:translateZ(0)}
.conversation-stage{position:absolute;inset:0;z-index:3;overflow:visible;transform:translate3d(0,0,0) scale(1);translate:0 0;scale:1;transform-origin:48% 40%;transition:transform .58s cubic-bezier(.18,.72,.16,1),translate .58s cubic-bezier(.18,.72,.16,1),scale .58s cubic-bezier(.18,.72,.16,1),transform-origin .58s ease;pointer-events:none;will-change:transform,translate,scale}
.conversation-stage::before{content:"";position:absolute;inset:0;z-index:0;opacity:0;background:radial-gradient(circle at 38% 35%,rgba(255,236,198,.44),transparent 41%);transition:opacity .58s ease,background .58s ease;pointer-events:none}
.conversation-stage::after{content:"";position:absolute;inset:-4%;z-index:5;background:linear-gradient(104deg,transparent 18%,rgba(255,246,228,.22) 48%,transparent 76%);opacity:0;transform:translateX(-34%) skewX(-8deg);pointer-events:none}
.character-guest{right:-5%;bottom:-143%;height:240%}
.conversation-character{opacity:0;transform:translate3d(5%,1.4%,0) scale(.985);transition:opacity .28s ease-out;will-change:opacity,transform}
.conversation-character.active{opacity:1}
.screen[data-screen="inside"]{--expression-transition-duration:.34s}
.screen[data-screen="inside"] .adventure-visual::before{content:"";position:absolute;inset:0;z-index:2;background:radial-gradient(circle at 72% 36%,rgba(255,242,211,.2),transparent 31%),linear-gradient(90deg,rgba(5,12,9,.18),transparent 42%);transition:background .58s ease;pointer-events:none}
.screen[data-screen="inside"] .adventure-background{transition:opacity .58s ease}
.screen[data-screen="inside"][data-conversation-pose="neutral"] .conversation-stage{transform:translate3d(0,0,0) scale(1)}
.screen[data-screen="inside"][data-conversation-pose="curious"] .conversation-stage{transform:translate3d(-1.2%,.35%,0) scale(1.035)}
.screen[data-screen="inside"][data-conversation-pose="earnest"] .conversation-stage{transform:translate3d(-.7%,1.2%,0) scale(1.08)}
.screen[data-screen="inside"][data-conversation-pose="surprised"] .conversation-stage{transform:translate3d(-1.6%,-.2%,0) scale(1.045)}
.screen[data-screen="inside"][data-conversation-pose="confident"] .conversation-stage{transform:translate3d(.4%,.7%,0) scale(1.065)}
.screen[data-screen="inside"][data-conversation-pose="playful"] .conversation-stage{transform:translate3d(-2%,.35%,0) scale(1.025)}
.screen[data-screen="inside"][data-conversation-staging="push-in"] .conversation-stage{translate:-3.2% .7%;scale:1.055;transform-origin:34% 39%}
.screen[data-screen="inside"][data-conversation-staging="counter-shift"] .conversation-stage{translate:2.2% .35%;scale:1.042;transform-origin:65% 38%}
.screen[data-screen="inside"][data-conversation-staging="close-hold"] .conversation-stage{translate:-1.5% 1.15%;scale:1.078;transform-origin:43% 42%}
.screen[data-screen="inside"][data-conversation-staging="push-in"] .conversation-stage::before{opacity:.66;background:radial-gradient(circle at 29% 34%,rgba(255,232,185,.5),transparent 40%)}
.screen[data-screen="inside"][data-conversation-staging="counter-shift"] .conversation-stage::before{opacity:.54;background:radial-gradient(circle at 58% 31%,rgba(202,224,255,.38),transparent 38%)}
.screen[data-screen="inside"][data-conversation-staging="close-hold"] .conversation-stage::before{opacity:.72;background:radial-gradient(circle at 42% 39%,rgba(255,220,169,.52),transparent 36%)}
.screen[data-screen="inside"][data-conversation-pose="curious"] .adventure-background,.screen[data-screen="inside"][data-conversation-pose="surprised"] .adventure-background{opacity:.95}
.screen[data-screen="inside"][data-conversation-pose="earnest"] .adventure-background,.screen[data-screen="inside"][data-conversation-pose="confident"] .adventure-background{opacity:.78}
.screen[data-screen="inside"][data-conversation-pose="earnest"] .adventure-visual::before,.screen[data-screen="inside"][data-conversation-pose="confident"] .adventure-visual::before{background:radial-gradient(circle at 43% 35%,rgba(255,242,211,.28),transparent 29%),linear-gradient(90deg,rgba(5,12,9,.08),rgba(5,8,12,.34) 88%)}
.screen[data-screen="inside"][data-director-posture="closer"] .character-guest{right:-10%;bottom:-151%;height:250%}
.screen[data-screen="inside"][data-director-posture="reserved"] .character-guest{right:1%;bottom:-134%;height:228%}
.screen[data-screen="inside"][data-director-posture="diagonal"] .character-guest{right:-9%;bottom:-145%;height:243%;transform-origin:65% 70%}
.screen[data-screen="inside"][data-director-posture="closeup"] .character-guest{right:-15%;bottom:-162%;height:270%}
.screen[data-screen="inside"][data-director-posture="wide"] .character-guest{right:3%;bottom:-112%;height:206%}
.screen[data-screen="inside"][data-director-style="intimate"] .adventure-visual::before{background:radial-gradient(circle at 69% 34%,rgba(255,224,183,.32),transparent 35%),linear-gradient(90deg,rgba(5,12,9,.24),transparent 48%)}
.screen[data-screen="inside"][data-director-style="mystic"] .adventure-visual::before{background:radial-gradient(circle at 66% 28%,rgba(191,166,255,.26),transparent 32%),linear-gradient(90deg,rgba(8,7,28,.26),transparent 50%)}
.screen[data-screen="inside"][data-director-style="brisk"] .conversation-stage{transition-duration:.32s}
.screen[data-screen="inside"][data-director-style="ceremonial"] .adventure-visual::before{background:radial-gradient(circle at 66% 31%,rgba(255,218,143,.3),transparent 36%),linear-gradient(90deg,rgba(31,17,7,.42),transparent 54%)}
.screen[data-screen="inside"][data-director-style="shadow"] .adventure-visual::before{background:linear-gradient(90deg,rgba(2,4,15,.62),transparent 62%),radial-gradient(circle at 74% 28%,rgba(125,98,205,.24),transparent 31%)}
.screen[data-screen="inside"][data-director-style="intimate"]{--expression-transition-duration:.46s}
.screen[data-screen="inside"][data-director-style="mystic"]{--expression-transition-duration:.5s}
.screen[data-screen="inside"][data-director-style="brisk"]{--expression-transition-duration:.22s}
.screen[data-screen="inside"][data-director-style="ceremonial"]{--expression-transition-duration:.42s}
.screen[data-screen="inside"][data-director-style="shadow"]{--expression-transition-duration:.4s}
.screen[data-screen="inside"].active .adventure-background{animation:restaurant-memory-drift 16s ease-in-out infinite alternate;will-change:opacity,transform}
.screen[data-screen="inside"].active .adventure-visual::before{animation:restaurant-light-breathe 6.4s ease-in-out infinite alternate;will-change:opacity,transform}
.screen[data-screen="inside"].active .conversation-character.active{animation:guest-entrance .58s cubic-bezier(.18,.72,.16,1) both,character-presence 5.8s .58s ease-in-out infinite alternate}
.screen[data-screen="inside"].active.conversation-changing .conversation-character.expression-leaving{animation:guest-expression-leave var(--expression-transition-duration) cubic-bezier(.22,.7,.2,1) both}
.screen[data-screen="inside"].active.conversation-changing .conversation-character.active.expression-entering{animation:guest-expression-enter var(--expression-transition-duration) cubic-bezier(.22,.7,.2,1) both,character-presence 5.8s var(--expression-transition-duration) ease-in-out infinite alternate}
.screen[data-screen="inside"].active .adventure-beat-caption,.screen[data-screen="inside"].active .adventure-message{animation:guest-copy-reveal .42s ease-out both}
.screen[data-screen="inside"].active .adventure-beat-caption{animation-delay:.14s}.screen[data-screen="inside"].active .adventure-message{animation-delay:.2s}
.screen[data-screen="inside"].conversation-changing .adventure-beat-caption,.screen[data-screen="inside"].conversation-changing .adventure-message{animation:guest-copy-change .38s cubic-bezier(.18,.72,.16,1) both}
.screen[data-screen="inside"].conversation-changing .adventure-message{animation-delay:.07s}
.screen[data-screen="inside"].conversation-changing .conversation-stage::after{animation:conversation-focus-sweep .58s cubic-bezier(.18,.72,.16,1) both}
.screen[data-screen="inside"][data-director-style="intimate"].conversation-changing .conversation-stage::after{background:radial-gradient(circle at 52% 38%,rgba(255,231,201,.5),rgba(255,209,166,.12) 36%,transparent 62%);animation:conversation-focus-bloom .68s ease-out both}
.screen[data-screen="inside"][data-director-style="mystic"].conversation-changing .conversation-stage::after{inset:-18%;background:conic-gradient(from 38deg,transparent,rgba(199,172,255,.38),transparent 31%,rgba(121,206,255,.22),transparent 62%);animation:conversation-focus-orbit .72s cubic-bezier(.18,.72,.16,1) both}
.screen[data-screen="inside"][data-director-style="brisk"].conversation-changing .conversation-stage::after{background:linear-gradient(112deg,transparent 28%,rgba(255,248,225,.58) 48%,transparent 61%);animation:conversation-focus-cut .3s ease-out both}
.screen[data-screen="inside"][data-director-style="ceremonial"].conversation-changing .conversation-stage::after{background:radial-gradient(ellipse at 50% 42%,transparent 27%,rgba(255,222,145,.48) 30%,rgba(255,222,145,.1) 43%,transparent 58%);animation:conversation-focus-halo .82s ease-out both}
.screen[data-screen="inside"][data-director-style="shadow"].conversation-changing .conversation-stage::after{background:linear-gradient(96deg,rgba(4,4,15,.72),rgba(70,51,124,.3) 44%,transparent 68%);animation:conversation-focus-shadow .64s cubic-bezier(.2,.74,.2,1) both}
.screen[data-screen="inside"].conversation-to-shoe .conversation-stage{transform-origin:60% 76%;animation:conversation-hand-focus var(--guest-to-shoe-duration) cubic-bezier(.18,.72,.16,1) both}
.screen[data-screen="inside"].conversation-to-shoe .adventure-background{animation:restaurant-memory-drift 16s ease-in-out infinite alternate,conversation-background-focus var(--guest-to-shoe-duration) ease both}
.screen[data-screen="inside"].conversation-to-shoe .adventure-dialogue{animation:conversation-dialogue-drop var(--guest-to-shoe-duration) ease both}
.screen[data-screen="inside"].conversation-to-shoe .adventure-visual::after{z-index:6;animation:conversation-match-flash var(--guest-to-shoe-duration) ease both}
.adventure-beat-caption{display:block;margin:2px 0 5px;color:#7854a5;font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
@keyframes guest-entrance{0%{opacity:0;transform:translate3d(8%,3%,0) scale(.96)}55%{opacity:.9}100%{opacity:1;transform:translateZ(0) scale(1)}}
@keyframes guest-expression-leave{0%{opacity:1;transform:translateZ(0) scale(1)}100%{opacity:0;transform:translate3d(-.7%,.15%,0) scale(.997)}}
@keyframes guest-expression-enter{0%{opacity:0;transform:translate3d(.7%,.15%,0) scale(1.003)}100%{opacity:1;transform:translateZ(0) scale(1)}}
@keyframes guest-copy-reveal{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes guest-copy-change{0%{opacity:0;filter:blur(3px);transform:translateY(8px)}100%{opacity:1;filter:blur(0);transform:none}}
@keyframes conversation-focus-sweep{0%{opacity:0;transform:translateX(-34%) skewX(-8deg)}42%{opacity:.72}100%{opacity:0;transform:translateX(38%) skewX(-8deg)}}
@keyframes conversation-focus-bloom{0%{opacity:0;transform:scale(.72)}42%{opacity:.78}100%{opacity:0;transform:scale(1.16)}}
@keyframes conversation-focus-orbit{0%{opacity:0;transform:rotate(-22deg) scale(.74)}48%{opacity:.68}100%{opacity:0;transform:rotate(34deg) scale(1.12)}}
@keyframes conversation-focus-cut{0%{opacity:0;transform:translateX(-48%) skewX(-14deg)}38%{opacity:.88}100%{opacity:0;transform:translateX(54%) skewX(-14deg)}}
@keyframes conversation-focus-halo{0%{opacity:0;transform:scale(.62)}52%{opacity:.76}100%{opacity:0;transform:scale(1.32)}}
@keyframes conversation-focus-shadow{0%{opacity:0;transform:translateX(34%) scaleX(.82)}44%{opacity:.84}100%{opacity:0;transform:translateX(-18%) scaleX(1.08)}}
@keyframes conversation-hand-focus{0%{opacity:1;transform:translate3d(-.7%,1.2%,0) scale(1.08)}68%{opacity:1;transform:translate3d(-1.2%,.4%,0) scale(1.24)}100%{opacity:.72;transform:translate3d(-1.4%,0,0) scale(1.34)}}
@keyframes conversation-background-focus{0%{opacity:1}72%{opacity:.84}100%{opacity:.62}}
@keyframes conversation-dialogue-drop{0%,46%{opacity:1;transform:none}82%,100%{opacity:0;transform:translateY(8px)}}
@keyframes conversation-match-flash{0%,64%{opacity:1;background:linear-gradient(180deg,rgba(5,13,9,.2),transparent 24%,transparent 70%,rgba(5,13,9,.26))}78%{opacity:1;background:rgba(246,241,232,.22)}100%{opacity:1;background:rgba(246,241,232,.96)}}
@keyframes restaurant-memory-drift{from{transform:scale(1.025) translate3d(-.35%,0,0)}to{transform:scale(1.055) translate3d(.55%,-.4%,0)}}
@keyframes restaurant-light-breathe{from{opacity:.72;transform:scale(1)}to{opacity:1;transform:scale(1.045)}}
@keyframes character-presence{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(0,-.35%,0) scale(1.006)}}
.character-mage{right:-11%;bottom:-143%;height:240%;filter:none}
.character-grounding{position:absolute;right:3%;bottom:1.5%;z-index:2;width:61%;height:7%;border-radius:50%;background:radial-gradient(ellipse,rgba(4,8,7,.55),rgba(4,8,7,.18) 48%,transparent 72%);filter:blur(4px);pointer-events:none}
.upper-body-visual .character-grounding{display:none}
.shoe-detail-visual{isolation:isolate;background:#08070a}
.shoe-detail-image{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 56%;filter:saturate(.94) contrast(1.04);transform:scale(1.005)}
.shoe-detail-visual::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 48% 68%,transparent 0 34%,rgba(5,2,12,.08) 58%,rgba(4,2,8,.5) 100%),linear-gradient(180deg,rgba(2,1,5,.18),transparent 25%,transparent 77%,rgba(2,1,5,.25));pointer-events:none}
.shoe-detail-visual::after{z-index:2;background:linear-gradient(180deg,rgba(5,2,11,.1),transparent 32%,transparent 76%,rgba(5,2,11,.22))}
.shoe-detail-glow{position:absolute;left:9%;bottom:3%;z-index:2;width:82%;height:17%;border-radius:50%;background:radial-gradient(ellipse,rgba(116,65,255,.19),rgba(101,58,227,.055) 48%,transparent 72%);filter:blur(11px);mix-blend-mode:screen;pointer-events:none;animation:shoe-detail-breathe 3.8s ease-in-out infinite}
.incident-screen.active .shoe-detail-image{animation:shoe-presented-focus .82s cubic-bezier(.18,.72,.16,1) both;will-change:opacity,transform}
.incident-screen.active .shoe-detail-visual::before{animation:shoe-focus-light .9s cubic-bezier(.18,.72,.16,1) both}
.incident-screen.active .adventure-choice-dialogue>*{animation:shoe-copy-arrive .42s ease-out both}.incident-screen.active .adventure-choice-dialogue>:nth-child(1){animation-delay:.24s}.incident-screen.active .adventure-choice-dialogue>:nth-child(2){animation-delay:.32s}.incident-screen.active .adventure-choice-dialogue>:nth-child(3){animation-delay:.4s}.incident-screen.active .adventure-choice-dialogue>:nth-child(4){animation-delay:.5s}
.shoe-fit-runes{position:absolute;inset:5% 2% 0;z-index:3;opacity:0;transform:scale(.72) translateY(8%);pointer-events:none}.shoe-fit-runes::before,.shoe-fit-runes::after{content:"";position:absolute;border:0;border-bottom-style:solid;border-radius:0 0 50% 50%;filter:drop-shadow(0 0 7px rgba(158,94,255,.75));transform-origin:center bottom}.shoe-fit-runes::before{right:3%;bottom:8%;left:2%;height:47%;border-bottom-width:3px;border-bottom-color:rgba(255,222,146,.84);transform:rotate(-5deg)}.shoe-fit-runes::after{right:0;bottom:15%;left:15%;height:53%;border-bottom-width:2px;border-bottom-color:rgba(193,139,255,.8);transform:rotate(7deg)}.shoe-fit-runes i{position:absolute;width:13px;height:13px;background:radial-gradient(circle,#fff7d2 0 18%,#e4b9ff 40%,rgba(148,85,255,.18) 72%,transparent 73%);clip-path:polygon(50% 0,59% 39%,100% 50%,59% 61%,50% 100%,41% 61%,0 50%,41% 39%);filter:drop-shadow(0 0 5px #c58aff);opacity:0}.shoe-fit-runes i:nth-child(1){top:15%;left:45%}.shoe-fit-runes i:nth-child(2){top:31%;right:12%;width:9px;height:9px}.shoe-fit-runes i:nth-child(3){right:4%;bottom:24%;width:16px;height:16px}.shoe-fit-runes i:nth-child(4){bottom:9%;left:55%;width:10px;height:10px}.shoe-fit-runes i:nth-child(5){bottom:12%;left:19%;width:15px;height:15px}.shoe-fit-runes i:nth-child(6){top:42%;left:9%;width:8px;height:8px}.shoe-fit-runes i:nth-child(7){top:27%;left:27%;width:11px;height:11px}
.incident-screen.shoe-reacting .shoe-detail-image{animation:shoe-fit-image var(--shoe-fit-duration) cubic-bezier(.18,.72,.16,1) both;will-change:opacity,transform}
.incident-screen.shoe-reacting .shoe-detail-glow{animation:shoe-fit-ground var(--shoe-fit-duration) cubic-bezier(.18,.72,.16,1) both}
.incident-screen.shoe-reacting .shoe-fit-runes{animation:shoe-fit-rune-flare var(--shoe-fit-duration) cubic-bezier(.18,.72,.16,1) both}
.incident-screen.shoe-reacting .shoe-fit-runes::before{animation:shoe-fit-gold-wisp var(--shoe-fit-duration) cubic-bezier(.18,.72,.16,1) both}
.incident-screen.shoe-reacting .shoe-fit-runes::after{animation:shoe-fit-violet-wisp var(--shoe-fit-duration) cubic-bezier(.18,.72,.16,1) both}
.incident-screen.shoe-reacting .shoe-fit-runes i{animation:shoe-fit-spark var(--shoe-fit-duration) ease-out both}.incident-screen.shoe-reacting .shoe-fit-runes i:nth-child(even){animation-delay:calc(var(--shoe-fit-duration) * .08)}.incident-screen.shoe-reacting .shoe-fit-runes i:nth-child(3n){animation-delay:calc(var(--shoe-fit-duration) * .14)}
.incident-screen.shoe-reacting .adventure-choice-dialogue{animation:shoe-fit-copy-dim var(--shoe-fit-duration) ease both}
.incident-screen.shoe-declining .shoe-detail-image{animation:shoe-decline-image var(--shoe-fit-duration) cubic-bezier(.18,.72,.16,1) both;will-change:opacity,transform}
.incident-screen.shoe-declining .shoe-detail-visual::before{animation:shoe-decline-light var(--shoe-fit-duration) cubic-bezier(.18,.72,.16,1) both}
.incident-screen.shoe-declining .shoe-detail-glow{animation:shoe-decline-ground var(--shoe-fit-duration) cubic-bezier(.18,.72,.16,1) both}
.incident-screen.shoe-declining .shoe-fit-runes{animation:shoe-decline-rune-answer var(--shoe-fit-duration) cubic-bezier(.18,.72,.16,1) both}
.incident-screen.shoe-declining .adventure-choice-dialogue{animation:shoe-decline-copy-dim var(--shoe-fit-duration) ease both}
@keyframes shoe-detail-breathe{0%,100%{opacity:.62;transform:scale(.98)}50%{opacity:1;transform:scale(1.025)}}
@keyframes shoe-presented-focus{0%{opacity:.16;transform:scale(1.18) translateY(4%)}42%{opacity:1}100%{opacity:1;transform:scale(1.005)}}
@keyframes shoe-focus-light{0%{opacity:0;background-position:30% 0}48%{opacity:1}100%{opacity:1;background-position:50% 0}}
@keyframes shoe-copy-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes shoe-fit-image{0%{opacity:1;transform:scale(1.005)}55%{opacity:1;transform:scale(1.035)}100%{opacity:.72;transform:scale(1.08)}}
@keyframes shoe-fit-ground{0%{opacity:.62;transform:scale(.98)}48%{opacity:1}100%{opacity:0;transform:scale(2.1)}}
@keyframes shoe-fit-rune-flare{0%{opacity:0;transform:scale(.72) translateY(8%)}34%,68%{opacity:1}100%{opacity:0;transform:scale(1.08) translateY(-5%)}}
@keyframes shoe-fit-gold-wisp{0%{opacity:0;transform:rotate(-11deg) scaleX(.28)}42%{opacity:1;transform:rotate(-5deg) scaleX(1)}100%{opacity:.18;transform:rotate(1deg) scaleX(1.08)}}
@keyframes shoe-fit-violet-wisp{0%,12%{opacity:0;transform:rotate(14deg) scaleX(.18)}54%{opacity:.92;transform:rotate(7deg) scaleX(1)}100%{opacity:.12;transform:rotate(2deg) scaleX(1.12)}}
@keyframes shoe-fit-spark{0%,14%{opacity:0;transform:translateY(14px) scale(.25) rotate(0)}48%{opacity:1;transform:translateY(0) scale(1) rotate(35deg)}100%{opacity:0;transform:translateY(-26px) scale(.45) rotate(90deg)}}
@keyframes shoe-fit-copy-dim{0%,45%{opacity:1}100%{opacity:.18;transform:translateY(4%)}}
@keyframes shoe-decline-image{0%{opacity:1;transform:scale(1.005)}50%{opacity:.72;transform:scale(.985)}100%{opacity:1;transform:scale(1.018)}}
@keyframes shoe-decline-light{0%{opacity:1;transform:scale(1)}55%{opacity:.52;transform:scale(.88)}100%{opacity:1;transform:scale(1.04)}}
@keyframes shoe-decline-ground{0%{opacity:.62;transform:scale(.98)}55%{opacity:.18;transform:scale(.5)}100%{opacity:.82;transform:scale(.76)}}
@keyframes shoe-decline-rune-answer{0%{opacity:0;transform:translateX(-50%) scale(1.12) rotate(18deg)}28%{opacity:.9}72%{opacity:1;transform:translateX(-50%) scale(.58) rotate(-26deg)}100%{opacity:0;transform:translateX(-50%) scale(.38) rotate(-42deg)}}
@keyframes shoe-decline-copy-dim{0%,38%{opacity:1}72%{opacity:.42;transform:translateY(2%)}100%{opacity:.12;transform:translateY(3%)}}
.transformation-visual{isolation:isolate;background:#080714}
.transformation-visual .adventure-background{filter:none;opacity:.76}
.transformation-visual::before{content:"";position:absolute;inset:-20%;z-index:3;border-radius:50%;background:linear-gradient(112deg,transparent 28%,rgba(208,174,255,.2) 42%,rgba(255,246,208,.68) 50%,rgba(166,118,255,.18) 58%,transparent 72%),radial-gradient(ellipse at 48% 48%,rgba(255,251,219,.82),rgba(187,130,255,.42) 13%,rgba(105,67,190,.14) 34%,transparent 58%);opacity:0;transform:scale(.34);pointer-events:none}
.transformation-visual::after{z-index:4;background:radial-gradient(circle at 28% 27%,rgba(193,154,255,.16),transparent 30%),linear-gradient(180deg,rgba(11,5,27,.1),transparent 50%,rgba(5,2,16,.38))}
.transformation-aura{position:absolute;top:-2%;left:-12%;z-index:2;width:80%;aspect-ratio:.82;border:0;border-radius:50%;background:radial-gradient(ellipse at 53% 46%,rgba(251,239,255,.3),rgba(159,105,255,.2) 26%,rgba(81,138,210,.08) 46%,transparent 69%);box-shadow:0 0 20px rgba(176,127,255,.3);opacity:.84;pointer-events:none}
.transformation-aura::before,.transformation-aura::after{content:"";position:absolute;border-radius:50%;box-shadow:0 0 6px rgba(181,135,255,.46)}
.transformation-aura::before{inset:7% -4% 15% 2%;border:0;border-top:2px solid rgba(215,191,255,.72);border-right:1px solid rgba(134,210,255,.5);transform:rotate(-10deg)}
.transformation-aura::after{inset:18% 6% 2% -2%;border:0;border-bottom:2px solid rgba(255,222,155,.68);border-left:1px solid rgba(176,134,255,.52);transform:rotate(12deg)}
.transformation-aura i{position:absolute;width:9px;height:9px;background:radial-gradient(circle,#fff7d7 0 20%,#d9b4ff 44%,transparent 72%);clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);box-shadow:0 0 6px rgba(185,148,255,.8)}
.transformation-aura i:nth-child(1){top:9%;left:52%}.transformation-aura i:nth-child(2){right:6%;bottom:35%}.transformation-aura i:nth-child(3){bottom:8%;left:28%}
.transformation-screen[data-director-style="intimate"] .transformation-aura{background:radial-gradient(ellipse at 53% 46%,rgba(255,248,230,.38),rgba(238,171,122,.2) 27%,rgba(81,138,210,.07) 48%,transparent 69%)}
.transformation-screen[data-director-style="mystic"] .transformation-aura{background:radial-gradient(ellipse at 53% 46%,rgba(239,229,255,.4),rgba(113,77,219,.25) 27%,rgba(69,170,220,.09) 48%,transparent 69%)}
.transformation-screen[data-director-style="brisk"] .transformation-aura{width:75%;opacity:.96}
.transformation-screen[data-director-style="ceremonial"] .transformation-aura{width:86%;background:radial-gradient(ellipse at 53% 46%,rgba(255,244,205,.42),rgba(184,119,61,.21) 27%,rgba(107,67,190,.11) 49%,transparent 70%)}
.transformation-screen[data-director-style="shadow"] .transformation-aura{width:68%;opacity:.72;background:radial-gradient(ellipse at 53% 46%,rgba(205,190,255,.3),rgba(69,45,145,.26) 28%,rgba(24,55,103,.1) 51%,transparent 70%)}
.character-mortal{right:-5%;bottom:-143%;height:240%;filter:none}
.transformation-sparks{position:absolute;inset:5% 4% 0;z-index:5;pointer-events:none}.transformation-sparks i{--spark-x:11px;--spark-start:-14deg;--spark-end:24deg;position:absolute;width:4px;height:18px;border-radius:50%;background:linear-gradient(180deg,transparent,rgba(255,250,224,.98) 38%,rgba(184,133,255,.82) 66%,transparent);box-shadow:0 0 8px rgba(255,246,208,.9),0 0 18px rgba(154,95,255,.72);filter:blur(.15px);opacity:0;transform:rotate(var(--spark-start))}.transformation-sparks i:nth-child(2n){--spark-x:-13px;--spark-start:19deg;--spark-end:-21deg;width:3px;height:25px;background:linear-gradient(180deg,transparent,rgba(158,215,255,.86) 35%,rgba(230,198,255,.95) 64%,transparent)}.transformation-sparks i:nth-child(3n){--spark-x:17px;--spark-start:0deg;--spark-end:37deg;width:10px;height:10px;border-radius:0;background:linear-gradient(135deg,#fff8cf,#d8abff);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.transformation-sparks i:nth-child(1){left:18%;top:68%}.transformation-sparks i:nth-child(2){left:31%;top:48%}.transformation-sparks i:nth-child(3){left:44%;top:75%}.transformation-sparks i:nth-child(4){left:54%;top:34%}.transformation-sparks i:nth-child(5){left:66%;top:63%}.transformation-sparks i:nth-child(6){left:78%;top:43%}.transformation-sparks i:nth-child(7){left:86%;top:72%}.transformation-sparks i:nth-child(8){left:23%;top:26%}.transformation-sparks i:nth-child(9){left:48%;top:18%}.transformation-sparks i:nth-child(10){left:72%;top:24%}
.transformation-dialogue{display:flex;flex-direction:column;padding-bottom:calc(22px + var(--safe-bottom))}
.transformation-dialogue>*{flex-shrink:0}
.transformation-dialogue .button{margin-top:auto}
.transformation-screen.active .transformation-visual::before{animation:transformation-flash 1.05s cubic-bezier(.18,.72,.16,1) both}
.transformation-screen.active .character-mortal{animation:transformation-mortal-dissolve 1.05s cubic-bezier(.38,.02,.2,1) both;will-change:opacity,transform}
.transformation-screen.active .adventure-background{animation:restaurant-memory-drift 16s ease-in-out infinite alternate;will-change:transform}
.transformation-screen.active .character-mage{animation:transformation-character-reveal 1.05s cubic-bezier(.18,.72,.16,1) both,character-presence 5.8s 1.05s ease-in-out infinite alternate;will-change:opacity,transform}
.transformation-screen.active .transformation-aura{animation:transformation-aura-reveal 1.05s cubic-bezier(.18,.72,.16,1) both,transformation-aura-drift 5.8s 1.05s ease-in-out infinite alternate}
.transformation-screen.active .transformation-sparks i{animation:transformation-spark-rise 1.05s cubic-bezier(.12,.68,.24,1) both}.transformation-screen.active .transformation-sparks i:nth-child(2n){animation-delay:.08s}.transformation-screen.active .transformation-sparks i:nth-child(3n){animation-delay:.16s}
.transformation-screen.active .transformation-dialogue>*{animation:transformation-copy-reveal .48s ease-out both}
.transformation-screen.active .transformation-dialogue>:nth-child(1){animation-delay:.38s}.transformation-screen.active .transformation-dialogue>:nth-child(2){animation-delay:.48s}.transformation-screen.active .transformation-dialogue>:nth-child(3){animation-delay:.58s}.transformation-screen.active .transformation-dialogue>:nth-child(4){animation-delay:.68s}
.choice-consequence{margin:0 0 12px;padding:10px 12px;border-left:3px solid #9f79df;border-radius:3px 12px 12px 3px;background:#f0eafd;color:#56416f;font-size:11px;font-weight:750;line-height:1.55}
@keyframes portal-aura-spin{to{transform:rotate(360deg)}}
@keyframes transformation-flash{0%{opacity:0;transform:scale(.34) rotate(-18deg)}28%{opacity:1}70%{opacity:.72}100%{opacity:0;transform:scale(1.5) rotate(48deg)}}
@keyframes transformation-mortal-dissolve{0%,16%{opacity:1}52%{opacity:.72;transform:scale(1.012)}100%{opacity:0;transform:scale(1.035) translateY(-1.5%)}}
@keyframes transformation-character-reveal{0%{opacity:0;transform:translate3d(9%,5%,0) scale(.88)}42%{opacity:.46}72%{opacity:1;transform:translate3d(-1%,0,0) scale(1.015)}100%{opacity:1;transform:translateZ(0) scale(1)}}
@keyframes transformation-aura-reveal{0%{opacity:0;transform:scale(.62) translateY(4%)}45%{opacity:1}100%{opacity:.84;transform:scale(1) translateY(0)}}
@keyframes transformation-aura-drift{from{transform:translate3d(-.6%,.4%,0) scale(.995)}to{transform:translate3d(1%,-.8%,0) scale(1.025)}}
@keyframes transformation-spark-rise{0%,12%{opacity:0;transform:translate3d(0,24px,0) rotate(var(--spark-start)) scale(.25)}42%{opacity:.92}100%{opacity:0;transform:translate3d(var(--spark-x),-86px,0) rotate(var(--spark-end)) scale(1.45)}}
@keyframes transformation-copy-reveal{from{opacity:0;transform:translateY(11px)}to{opacity:1;transform:none}}
.adventure-dialogue{position:relative;z-index:3;flex:1;min-height:0;width:100%;overflow-y:auto;padding:23px 19px calc(18px + var(--safe-bottom));border:0;border-top:1px solid rgba(21,91,70,.18);background:linear-gradient(145deg,#fffefa,#f5f1e7);color:var(--ink);text-align:left;box-shadow:0 -13px 32px rgba(9,24,16,.2);scrollbar-width:none}
.adventure-dialogue::-webkit-scrollbar{display:none}
.adventure-dialogue-next{display:block;padding-bottom:calc(18px + var(--safe-bottom))}
.screen[data-screen="inside"] .adventure-dialogue-next{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}
.screen[data-screen="inside"] .adventure-dialogue-next>*{min-width:0}
.screen[data-screen="inside"] .adventure-dialogue-next>.adventure-message{min-height:0;overflow-y:auto;scrollbar-width:none}
.screen[data-screen="inside"] .adventure-dialogue-advance{margin-top:16px}
.adventure-dialogue-advance{position:relative;z-index:4;justify-content:flex-start;min-height:49px;margin-top:16px;padding-right:42px;border-radius:14px;background:linear-gradient(110deg,#155b46,#23765d);font-size:13px;box-shadow:0 9px 19px rgba(21,91,70,.21);overflow:hidden}
.adventure-dialogue-advance::before{content:"";position:absolute;top:-100%;left:-22%;width:24%;height:300%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transform:rotate(19deg);animation:guest-action-glint 3.2s 1.2s ease-in-out infinite;pointer-events:none}
.adventure-dialogue-advance::after{content:"›";position:absolute;top:50%;right:17px;font-size:22px;font-weight:400;transform:translateY(-54%)}
@keyframes guest-action-glint{0%,62%,100%{left:-24%;opacity:0}68%{opacity:1}82%{left:118%;opacity:0}}
.adventure-speaker{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.adventure-speaker strong{display:inline-flex;align-items:center;min-height:31px;padding:6px 12px;border-radius:9px 12px 12px 3px;background:var(--green);color:#fff;font-size:12px;line-height:1.25;box-shadow:0 6px 15px rgba(21,91,70,.18)}
.adventure-speaker small{min-width:0;color:var(--muted);font-size:9px;font-weight:800;line-height:1.35}
.adventure-message{display:block;font-size:16px;font-weight:650;line-height:1.72;letter-spacing:.01em}
.story-context{display:block;margin:-8px 0 14px;padding:9px 11px;border:1px solid rgba(174,129,62,.16);border-radius:11px;background:linear-gradient(110deg,rgba(213,177,102,.19),rgba(255,255,255,.46))}
.story-context strong,.story-context small{display:block}.story-context strong{margin-bottom:3px;color:#815b25;font-size:11px}.story-context small{color:var(--muted);font-size:9px;font-weight:650;line-height:1.45}
.adventure-request{display:block;margin-top:10px;padding-left:12px;border-left:2px solid var(--amber);color:#34433c;font-size:13px;font-weight:750;line-height:1.6}
.screen[data-screen="inside"] .adventure-visual,.screen[data-screen="incident"] .adventure-visual,.transformation-screen .adventure-visual{flex-basis:56%;aspect-ratio:auto}
.adventure-choice-dialogue{display:flex;flex-direction:column;padding-top:16px}
.adventure-choice-dialogue>*{flex-shrink:0}
.adventure-choice-dialogue .adventure-speaker{margin-bottom:9px}
.adventure-choice-title{margin:0 0 4px;font-size:18px;line-height:1.25}
.adventure-choice-message{color:var(--muted);font-size:12px;font-weight:600;line-height:1.5}
.adventure-choice-dialogue .action-list{gap:7px;margin-top:auto;padding-top:11px}
.adventure-choice-dialogue .action{position:relative;min-height:49px;padding:11px 38px 11px 13px;border-radius:13px;font-size:12px;line-height:1.4;box-shadow:0 5px 13px rgba(28,38,32,.06)}
.adventure-choice-dialogue .action::after{content:"›";position:absolute;top:50%;right:15px;color:var(--green);font-size:21px;font-weight:400;transform:translateY(-54%)}

.portal-screen{background:#080512}
.portal-visual{isolation:isolate;background:#080512}
.portal-visual .adventure-background{position:absolute;inset:0;z-index:0;filter:brightness(.42) saturate(.72) contrast(1.12);transform:scale(1.025)}
.portal-visual::before{content:"";position:absolute;inset:0;z-index:2;background:radial-gradient(circle at 50% 48%,rgba(131,72,214,.09),rgba(2,1,8,.16) 48%,rgba(2,1,8,.72));pointer-events:none}
.portal-visual::after{z-index:5;background:linear-gradient(180deg,rgba(4,2,10,.16),transparent 60%,rgba(4,2,10,.46))}
.portal-vfx-image{position:absolute;inset:-4%;z-index:1;width:108%;height:108%;object-fit:cover;object-position:50% 48%;opacity:.92;filter:saturate(1.18) contrast(1.14) brightness(1.08);animation:portal-vfx-pulse 4.8s ease-in-out infinite;pointer-events:none;will-change:opacity,transform}
.portal-energy{position:absolute;top:50%;left:50%;z-index:3;width:62%;aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid rgba(244,210,142,.72);border-radius:50%;box-shadow:0 0 22px rgba(232,174,90,.3),inset 0 0 24px rgba(166,91,255,.28);animation:portal-energy-spin 13s linear infinite;pointer-events:none}
.portal-energy::before,.portal-energy::after{content:"";position:absolute;border:1px solid rgba(193,141,255,.3);border-radius:50%;box-shadow:0 0 12px rgba(168,103,255,.26),inset 0 0 10px rgba(112,187,255,.12)}
.portal-energy::before{inset:-8%;animation:portal-ring-spin 9s linear infinite reverse}.portal-energy::after{inset:13%;border-color:rgba(126,206,255,.28);animation:portal-ring-spin 6s linear infinite}
.portal-energy i{position:absolute;width:7px;height:7px;border-radius:50%;background:#fff0ba;box-shadow:0 0 13px #ce87ff,0 0 25px rgba(122,201,255,.8)}
.portal-energy i:nth-child(1){top:4%;left:49%}.portal-energy i:nth-child(2){right:2%;bottom:31%}.portal-energy i:nth-child(3){bottom:7%;left:24%}
.portal-screen[data-director-style="intimate"] .portal-energy{border-color:rgba(255,224,164,.88);box-shadow:0 0 30px rgba(255,187,111,.36),inset 0 0 24px rgba(166,91,255,.2)}
.portal-screen[data-director-style="mystic"] .portal-energy{width:69%;border-color:rgba(191,162,255,.8);box-shadow:0 0 28px rgba(151,96,255,.38),inset 0 0 32px rgba(89,183,255,.3)}
.portal-screen[data-director-style="brisk"] .portal-energy{animation-duration:7.5s}
.portal-screen[data-director-style="ceremonial"] .portal-energy{width:74%;border-color:rgba(255,218,135,.86);box-shadow:0 0 34px rgba(225,164,74,.38),inset 0 0 29px rgba(133,83,211,.24)}
.portal-screen[data-director-style="shadow"] .portal-energy{width:61%;border-color:rgba(135,185,255,.72);box-shadow:0 0 24px rgba(77,112,225,.32),inset 0 0 34px rgba(76,38,133,.34)}
.portal-traverse{position:absolute;top:50%;left:50%;z-index:8;width:170%;aspect-ratio:1;overflow:hidden;border-radius:50%;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.22);will-change:opacity,transform}
.portal-traverse::before,.portal-traverse::after{content:"";position:absolute;inset:0;border-radius:50%}
.portal-traverse::before{background:repeating-conic-gradient(from 8deg,transparent 0 4deg,rgba(203,161,255,.18) 4.6deg 5.2deg,transparent 5.8deg 11deg);filter:drop-shadow(0 0 9px rgba(189,123,255,.7))}
.portal-traverse::after{inset:18%;background:radial-gradient(circle,#fff 0 3%,#fff3ca 7%,rgba(220,176,255,.92) 18%,rgba(126,67,213,.36) 39%,transparent 64%);box-shadow:0 0 45px rgba(225,190,255,.82)}
.portal-traverse i{position:absolute;top:50%;left:50%;width:46%;height:2px;border-radius:99px;transform-origin:0 50%;background:linear-gradient(90deg,rgba(255,249,218,.96),rgba(199,145,255,.48) 22%,rgba(145,204,255,.16) 58%,transparent 100%);box-shadow:0 0 7px rgba(236,202,255,.62)}.portal-traverse i:nth-child(2n){width:34%;height:1px;opacity:.72}.portal-traverse i:nth-child(3n){width:54%;opacity:.55}
.portal-traverse i:nth-child(1){transform:rotate(8deg)}.portal-traverse i:nth-child(2){transform:rotate(38deg)}.portal-traverse i:nth-child(3){transform:rotate(68deg)}.portal-traverse i:nth-child(4){transform:rotate(98deg)}.portal-traverse i:nth-child(5){transform:rotate(128deg)}.portal-traverse i:nth-child(6){transform:rotate(158deg)}.portal-traverse i:nth-child(7){transform:rotate(188deg)}.portal-traverse i:nth-child(8){transform:rotate(218deg)}.portal-traverse i:nth-child(9){transform:rotate(248deg)}.portal-traverse i:nth-child(10){transform:rotate(278deg)}.portal-traverse i:nth-child(11){transform:rotate(308deg)}.portal-traverse i:nth-child(12){transform:rotate(338deg)}
.portal-screen .adventure-visual,.fantasy-screen .adventure-visual{flex-basis:56%;aspect-ratio:auto}
.portal-dialogue{display:flex;flex-direction:column;border-top-color:rgba(201,159,255,.28);background:linear-gradient(145deg,#100a1d,#241631);color:#f8f1ff;box-shadow:0 -16px 35px rgba(2,0,8,.5)}
.portal-dialogue>*{flex-shrink:0}
.portal-dialogue .adventure-speaker strong{background:#6c3d9b}.portal-dialogue .adventure-speaker small,.portal-dialogue p{color:#cbb9da}.portal-dialogue .button{margin-top:auto;background:linear-gradient(110deg,#b87635,#f0d28a);color:#24170a;box-shadow:0 10px 24px rgba(202,142,64,.24)}
.portal-screen.portal-traversing .scene-topbar,.portal-screen.portal-traversing .photo-label{animation:portal-ui-depart .32s ease forwards;pointer-events:none}
.portal-screen.portal-traversing .portal-visual{z-index:7;animation:portal-visual-dive .92s cubic-bezier(.18,.72,.16,1) forwards;will-change:opacity,transform}
.portal-screen.portal-traversing .portal-dialogue{animation:portal-dialogue-depart .38s cubic-bezier(.6,0,1,.55) forwards;pointer-events:none}
.portal-screen.portal-traversing .portal-vfx-image{animation:portal-vfx-enter .92s cubic-bezier(.18,.72,.16,1) forwards}
.portal-screen.portal-traversing .portal-energy{animation:portal-energy-enter .92s cubic-bezier(.18,.72,.16,1) forwards}
.portal-screen.portal-traversing .portal-traverse{animation:portal-traverse-enter .92s cubic-bezier(.18,.72,.16,1) forwards}
@keyframes portal-vfx-pulse{0%,100%{opacity:.82;transform:scale(1)}50%{opacity:1;transform:scale(1.025)}}
@keyframes portal-energy-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes portal-ring-spin{to{transform:rotate(360deg)}}
@keyframes portal-ui-depart{to{opacity:0;transform:scale(.94)}}
@keyframes portal-dialogue-depart{to{opacity:0;transform:translateY(18%) scale(.96)}}
@keyframes portal-visual-dive{0%{opacity:1;transform:scale(1)}48%{opacity:1;transform:scale(1.16)}100%{opacity:.56;transform:scale(2.55)}}
@keyframes portal-vfx-enter{0%{opacity:.88;transform:scale(1)}48%{opacity:1;transform:scale(1.22)}100%{opacity:.18;transform:scale(2.35)}}
@keyframes portal-energy-enter{0%{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1)}58%{opacity:1;transform:translate(-50%,-50%) rotate(125deg) scale(1.38)}100%{opacity:0;transform:translate(-50%,-50%) rotate(280deg) scale(3.5)}}
@keyframes portal-traverse-enter{0%{opacity:0;transform:translate(-50%,-50%) scale(.16) rotate(0)}22%{opacity:.92}68%{opacity:1;transform:translate(-50%,-50%) scale(1.18) rotate(95deg)}100%{opacity:1;transform:translate(-50%,-50%) scale(4.2) rotate(175deg)}}

.fantasy-screen{background:#060913}
.fantasy-screen::after{content:"";position:absolute;inset:-45%;z-index:10;border-radius:50%;background:radial-gradient(circle at 50% 34%,transparent 0 13%,rgba(2,1,7,.62) 31%,#020104 58%);opacity:0;transform:scale(3.1);pointer-events:none}
.fantasy-visual{isolation:isolate;background:#060913}
.fantasy-world-image{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;object-fit:cover;object-position:50% 51%;filter:saturate(1.1) contrast(1.05);transform:scale(1.015);animation:fantasy-world-drift 18s ease-in-out infinite alternate}
.fantasy-visual::before{content:"";position:absolute;inset:-24%;z-index:4;background:radial-gradient(circle at 50% 48%,#fff 0 2%,#fff3c5 6%,rgba(180,213,255,.82) 15%,rgba(91,125,220,.3) 31%,transparent 58%);opacity:0;transform:scale(.25);mix-blend-mode:screen;pointer-events:none}
.fantasy-visual::after{z-index:5;background:linear-gradient(180deg,rgba(3,5,13,.1),transparent 55%,rgba(3,5,13,.44))}
.fantasy-depth-haze{position:absolute;inset:-8%;z-index:1;overflow:hidden;opacity:.76;mix-blend-mode:screen;pointer-events:none}
.fantasy-depth-haze::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 57%,rgba(222,239,255,.32),transparent 36%),linear-gradient(102deg,transparent 18%,rgba(121,181,230,.12) 46%,rgba(255,220,157,.14) 58%,transparent 82%);filter:blur(7px);animation:fantasy-depth-drift 11s ease-in-out infinite alternate}
.fantasy-atmosphere{position:absolute;inset:0;z-index:2;opacity:1;transition:opacity .7s ease;pointer-events:none}
.fantasy-atmosphere::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 23%,rgba(121,203,255,.24),transparent 17%),radial-gradient(circle at 79% 17%,rgba(240,190,91,.2),transparent 15%),linear-gradient(115deg,transparent 35%,rgba(221,239,255,.08) 49%,transparent 61%);mix-blend-mode:screen;animation:fantasy-light 7s ease-in-out infinite alternate}
.fantasy-atmosphere i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff3c1;box-shadow:0 0 9px #8bcfff,0 0 19px rgba(255,230,152,.7);animation:fantasy-mote 5s ease-in-out infinite}
.fantasy-atmosphere i:nth-child(1){top:26%;left:18%}.fantasy-atmosphere i:nth-child(2){top:52%;right:20%;animation-delay:-1.8s}.fantasy-atmosphere i:nth-child(3){bottom:18%;left:57%;animation-delay:-3.1s}.fantasy-atmosphere i:nth-child(4){top:18%;right:34%;width:2px;height:2px;animation-delay:-.9s}.fantasy-atmosphere i:nth-child(5){top:63%;left:11%;width:5px;height:5px;animation-delay:-2.7s}.fantasy-atmosphere i:nth-child(6){top:39%;left:44%;animation-delay:-4.2s}.fantasy-atmosphere i:nth-child(7){right:8%;bottom:13%;width:4px;height:4px;animation-delay:-1.3s}.fantasy-atmosphere i:nth-child(8){top:11%;left:7%;animation-delay:-3.6s}.fantasy-atmosphere i:nth-child(9){top:71%;right:39%;width:2px;height:2px;animation-delay:-2.1s}.fantasy-atmosphere i:nth-child(10){top:33%;right:6%;width:5px;height:5px;animation-delay:-4.6s}
.fantasy-foreground{position:absolute;inset:-7%;z-index:3;overflow:hidden;opacity:.72;pointer-events:none}
.fantasy-foreground i{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,238,177,.42),rgba(118,179,255,.15) 38%,transparent 72%);filter:blur(4px);animation:fantasy-foreground-drift 8s ease-in-out infinite alternate}
.fantasy-foreground i:nth-child(1){bottom:-7%;left:-9%;width:42%;aspect-ratio:1}.fantasy-foreground i:nth-child(2){right:-12%;bottom:4%;width:34%;aspect-ratio:1;animation-delay:-3.2s}.fantasy-foreground i:nth-child(3){top:8%;left:3%;width:18%;aspect-ratio:1;animation-delay:-5.1s}.fantasy-foreground i:nth-child(4){top:27%;right:4%;width:13%;aspect-ratio:1;animation-delay:-1.7s}
.fantasy-dialogue{display:flex;flex-direction:column;border-top-color:rgba(112,156,219,.3);background:linear-gradient(145deg,#0b1526,#18243a);color:#f5f8ff;box-shadow:0 -16px 35px rgba(1,4,12,.48)}
.fantasy-screen[data-director-style="intimate"] .fantasy-dialogue{background:linear-gradient(145deg,#171527,#30233a)}
.fantasy-screen[data-director-style="mystic"] .fantasy-dialogue{background:linear-gradient(145deg,#0b1028,#271c45)}
.fantasy-screen[data-director-style="brisk"] .fantasy-atmosphere i{animation-duration:3.6s}
.fantasy-screen[data-director-style="ceremonial"] .fantasy-dialogue{background:linear-gradient(145deg,#22161c,#493126)}
.fantasy-screen[data-director-style="shadow"] .fantasy-dialogue{background:linear-gradient(145deg,#070914,#17172d)}
.fantasy-dialogue>*{flex-shrink:0}
.fantasy-dialogue .adventure-speaker strong{background:#3e6795}.fantasy-dialogue .adventure-speaker small,.fantasy-dialogue p{color:#aebdd2}.fantasy-dialogue .button{margin-top:auto;background:linear-gradient(110deg,#9c6b25,#f1d493);color:#231709}
.fantasy-title{margin:0 0 8px;color:#f1d79a;font-family:Georgia,serif;font-size:25px;line-height:1.15;letter-spacing:.01em}
.fantasy-screen.active .fantasy-world-image{animation:fantasy-world-arrive 1.35s cubic-bezier(.16,.72,.15,1) both,fantasy-world-drift 18s 1.35s ease-in-out infinite alternate;will-change:opacity,transform}
.fantasy-screen.active .fantasy-visual::before{animation:fantasy-arrival-flare 1.25s cubic-bezier(.18,.72,.16,1) both}
.fantasy-screen.active .fantasy-depth-haze{animation:fantasy-depth-arrive 1.35s cubic-bezier(.16,.72,.15,1) both}
.fantasy-screen.active .fantasy-atmosphere{animation:fantasy-atmosphere-arrive 1.35s ease-out both}
.fantasy-screen.active .fantasy-foreground{animation:fantasy-foreground-arrive 1.35s cubic-bezier(.16,.72,.15,1) both}
.fantasy-screen.active .scene-topbar,.fantasy-screen.active .fantasy-visual>.photo-label{animation:fantasy-ui-arrive .62s .48s ease-out both}
.fantasy-screen.active .fantasy-dialogue{animation:fantasy-dialogue-arrive .72s .28s cubic-bezier(.18,.72,.16,1) both}
.fantasy-screen.active .fantasy-dialogue>*{animation:fantasy-copy-arrive .5s ease-out both}
.fantasy-screen.active .fantasy-dialogue>:nth-child(1){animation-delay:.52s}.fantasy-screen.active .fantasy-dialogue>:nth-child(2){animation-delay:.62s}.fantasy-screen.active .fantasy-dialogue>:nth-child(3){animation-delay:.71s}.fantasy-screen.active .fantasy-dialogue>:nth-child(4){animation-delay:.8s}.fantasy-screen.active .fantasy-dialogue>:nth-child(5){animation-delay:.9s}
.fantasy-screen.fantasy-ending::after{animation:fantasy-receipt-iris var(--fantasy-exit-duration) cubic-bezier(.55,0,.84,.35) both}
.fantasy-screen.fantasy-ending .fantasy-world-image{animation:fantasy-receipt-collapse var(--fantasy-exit-duration) cubic-bezier(.55,0,.84,.35) both}
.fantasy-screen.fantasy-ending .fantasy-dialogue{animation:fantasy-receipt-copy-exit calc(var(--fantasy-exit-duration) * .72) ease-in both}
@keyframes fantasy-world-arrive{0%{opacity:.14;transform:scale(1.18)}32%{opacity:1}72%{opacity:1}100%{opacity:1;transform:scale(1.015)}}
@keyframes fantasy-arrival-flare{0%{opacity:1;transform:scale(.24)}38%{opacity:.94}100%{opacity:0;transform:scale(2.1)}}
@keyframes fantasy-depth-arrive{0%,18%{opacity:0;transform:scale(1.15) translateY(3%)}100%{opacity:.76;transform:none}}
@keyframes fantasy-atmosphere-arrive{0%,34%{opacity:0}100%{opacity:1}}
@keyframes fantasy-foreground-arrive{0%,24%{opacity:0;transform:scale(1.55) translateY(11%)}100%{opacity:.72;transform:none}}
@keyframes fantasy-ui-arrive{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes fantasy-dialogue-arrive{from{opacity:0;transform:translateY(9%)}to{opacity:1;transform:none}}
@keyframes fantasy-copy-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fantasy-world-drift{from{transform:translate3d(-.7%,-.35%,0) scale(1.015)}to{transform:translate3d(.7%,.35%,0) scale(1.045)}}
@keyframes fantasy-depth-drift{from{transform:translate3d(-2%,1%,0) scale(1.02)}to{transform:translate3d(3%,-2%,0) scale(1.08)}}
@keyframes fantasy-light{from{opacity:.55;transform:translateX(-2%)}to{opacity:1;transform:translateX(2%)}}
@keyframes fantasy-mote{0%,100%{opacity:.25;transform:translateY(12px) scale(.7)}50%{opacity:1;transform:translateY(-15px) scale(1.25)}}
@keyframes fantasy-foreground-drift{from{opacity:.35;transform:translate3d(-5%,4%,0) scale(.92)}to{opacity:.8;transform:translate3d(7%,-8%,0) scale(1.14)}}
@keyframes fantasy-receipt-iris{0%{opacity:0;transform:scale(3.1)}32%{opacity:.52}100%{opacity:1;transform:scale(.11)}}
@keyframes fantasy-receipt-collapse{0%{opacity:1;transform:scale(1.015)}54%{opacity:1;transform:scale(.96)}100%{opacity:0;transform:scale(.82)}}
@keyframes fantasy-receipt-copy-exit{to{opacity:0;transform:translateY(9%) scale(.97)}}

.warp-screen{isolation:isolate;align-items:center;justify-content:flex-end;background:#06100d;color:#fff;text-align:center}
.warp-screen::after{content:"";position:absolute;inset:0;z-index:8;background:#fff;opacity:0;pointer-events:none}
.warp-screen.arriving::after{animation:arrival-flash 1.25s cubic-bezier(.7,0,.3,1) forwards}
@keyframes arrival-flash{0%,32%{opacity:0}72%{opacity:.5}100%{opacity:0}}
.warp-canvas{position:absolute;inset:0;overflow:hidden}
.warp-canvas>img{position:absolute;inset:-2%;z-index:2;width:104%;height:104%;object-fit:cover;opacity:0;transform:scale(1.035);filter:saturate(1) contrast(1);transition:opacity .55s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.warp-screen.photo-reveal .warp-canvas>img.loaded,.warp-screen.reduced-warp .warp-canvas>img.loaded{opacity:1;transform:scale(1)}
.warp-screen.fragmenting .warp-canvas>img.loaded,.warp-screen.arriving .warp-canvas>img.loaded{opacity:0;transform:scale(1)}
.warp-photo-placeholder{position:absolute;inset:0;z-index:1;overflow:hidden;background:radial-gradient(circle at 18% 22%,rgba(74,115,188,.2),transparent 28%),radial-gradient(circle at 82% 68%,rgba(143,74,170,.16),transparent 31%),radial-gradient(circle at 50% 42%,rgba(60,123,100,.4),transparent 26%),radial-gradient(circle at 50% 44%,#17382d 0,#091a14 45%,#040a08 100%);color:#fff;opacity:1;visibility:visible;transition:opacity .65s ease,visibility .65s}
.warp-photo-placeholder::before{content:"";position:absolute;top:-18%;bottom:-18%;left:50%;width:34%;transform:translateX(-50%) skewX(-10deg);background:linear-gradient(90deg,transparent,rgba(152,244,213,.06),rgba(235,255,248,.13),rgba(152,244,213,.06),transparent);filter:blur(7px);animation:temporal-beam 3.6s ease-in-out infinite alternate}
.warp-photo-placeholder::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(180deg,transparent 0 5px,rgba(187,255,232,.025) 6px),linear-gradient(90deg,transparent 49.8%,rgba(182,255,229,.07) 50%,transparent 50.2%)}
.warp-screen:not(.awaiting-photo) .warp-photo-placeholder{opacity:0;visibility:hidden;pointer-events:none}
.temporal-depth-grid{position:absolute;right:-20%;bottom:-8%;left:-20%;height:46%;opacity:.38;background:repeating-linear-gradient(90deg,transparent 0 45px,rgba(156,240,211,.11) 46px),repeating-linear-gradient(0deg,transparent 0 36px,rgba(156,240,211,.1) 37px);transform:perspective(270px) rotateX(63deg) scale(1.18);transform-origin:50% 100%;-webkit-mask-image:linear-gradient(180deg,transparent,rgba(0,0,0,.85) 38%,#000);mask-image:linear-gradient(180deg,transparent,rgba(0,0,0,.85) 38%,#000)}
.temporal-viewfinder{position:absolute;top:43%;left:50%;width:min(84vw,328px);height:min(52vh,438px);transform:translate(-50%,-50%);border:1px solid rgba(169,247,219,.1);background:linear-gradient(90deg,rgba(170,248,220,.05),transparent 12% 88%,rgba(170,248,220,.05)),linear-gradient(180deg,rgba(170,248,220,.04),transparent 18% 82%,rgba(170,248,220,.04));box-shadow:inset 0 0 48px rgba(67,205,156,.055)}
.temporal-viewfinder::before,.temporal-viewfinder::after{content:"";position:absolute;background:rgba(185,255,231,.16)}
.temporal-viewfinder::before{top:50%;right:0;left:0;height:1px}.temporal-viewfinder::after{top:0;bottom:0;left:50%;width:1px}
.temporal-viewfinder i{position:absolute;width:31px;height:31px;border-color:rgba(202,255,236,.78);filter:drop-shadow(0 0 7px rgba(91,240,187,.45))}
.temporal-viewfinder i:nth-child(1){top:-1px;left:-1px;border-top:2px solid;border-left:2px solid}.temporal-viewfinder i:nth-child(2){top:-1px;right:-1px;border-top:2px solid;border-right:2px solid}.temporal-viewfinder i:nth-child(3){right:-1px;bottom:-1px;border-right:2px solid;border-bottom:2px solid}.temporal-viewfinder i:nth-child(4){bottom:-1px;left:-1px;border-bottom:2px solid;border-left:2px solid}
.temporal-viewfinder span{position:absolute;top:8%;right:8px;left:8px;height:1px;background:linear-gradient(90deg,transparent,rgba(221,255,244,.9) 16% 84%,transparent);box-shadow:0 0 13px rgba(91,240,187,.72);animation:temporal-resolve-scan 3.2s ease-in-out infinite alternate}
.temporal-lock{position:absolute;top:43%;left:50%;width:min(59vw,230px);aspect-ratio:1;transform:translate(-50%,-50%);filter:drop-shadow(0 0 22px rgba(94,231,187,.18))}
.temporal-halo{position:absolute;inset:20%;border-radius:50%;background:radial-gradient(circle,rgba(200,255,236,.2),rgba(78,214,169,.07) 33%,transparent 70%);box-shadow:0 0 54px rgba(79,223,173,.13);animation:temporal-breathe 2.4s ease-in-out infinite}
.temporal-orbit{position:absolute;border:1px solid rgba(178,245,221,.28);border-radius:50%;box-shadow:inset 0 0 20px rgba(67,196,154,.035),0 0 20px rgba(67,196,154,.035)}
.temporal-orbit::before,.temporal-orbit::after{content:"";position:absolute;border-radius:50%;background:#d9fff1;box-shadow:0 0 11px #6ee7ba,0 0 23px rgba(110,231,186,.55)}
.orbit-outer{inset:0;border-style:dashed;animation:temporal-spin 13s linear infinite}.orbit-outer::before{top:9%;right:14%;width:5px;height:5px}.orbit-outer::after{bottom:8%;left:23%;width:3px;height:3px}
.orbit-middle{inset:12%;border-color:rgba(221,255,243,.4);border-right-color:rgba(242,204,123,.68);animation:temporal-spin-reverse 8.5s linear infinite}.orbit-middle::before{top:-3px;left:50%;width:6px;height:6px}.orbit-middle::after{right:4%;bottom:19%;width:4px;height:4px;background:#f4d593;box-shadow:0 0 12px #e5a949}
.orbit-inner{inset:27%;border-color:rgba(158,255,221,.43);border-left-color:transparent;animation:temporal-spin 4.6s linear infinite}.orbit-inner::before{right:3%;bottom:14%;width:4px;height:4px}.orbit-inner::after{display:none}
.temporal-orbit i{position:absolute;display:block;width:2px;height:2px;border-radius:50%;background:rgba(221,255,244,.85);box-shadow:0 0 9px rgba(138,255,216,.7)}
.orbit-outer i:nth-child(1){top:21%;left:7%}.orbit-outer i:nth-child(2){top:59%;right:-1%}.orbit-outer i:nth-child(3){right:20%;bottom:4%}.orbit-middle i:nth-child(1){top:26%;right:2%}.orbit-middle i:nth-child(2){bottom:15%;left:8%}.orbit-inner i{top:6%;left:24%}
.temporal-crosshair{position:absolute;top:50%;left:50%;background:linear-gradient(90deg,transparent,rgba(185,255,231,.23),transparent);transform:translate(-50%,-50%)}
.crosshair-horizontal{width:118%;height:1px}.crosshair-vertical{width:1px;height:118%;background:linear-gradient(180deg,transparent,rgba(185,255,231,.18),transparent)}
.temporal-core{position:absolute;top:50%;left:50%;width:46px;height:46px;transform:translate(-50%,-50%);border:1px solid rgba(208,255,239,.62);border-radius:50%;background:radial-gradient(circle,rgba(241,255,250,.88) 0 3%,rgba(103,231,187,.38) 6%,rgba(28,88,68,.28) 36%,transparent 70%);box-shadow:0 0 22px rgba(121,255,210,.34),inset 0 0 18px rgba(172,255,227,.2)}
.temporal-core i{position:absolute;inset:13px;border:1px solid rgba(238,255,249,.74);border-radius:50%;animation:temporal-breathe 1.7s ease-in-out infinite reverse}
.temporal-search-copy{position:absolute;top:calc(var(--safe-top) + 73px);right:25px;left:25px;z-index:7;text-align:center;text-shadow:0 2px 14px #000;opacity:1;transition:opacity .24s ease}
.temporal-search-copy span{display:block;margin-bottom:9px;color:#8de4c2;font-size:8px;font-weight:900;letter-spacing:.2em}
.temporal-search-copy strong{color:#fff;font-size:12px;letter-spacing:.06em}
.warp-screen.fragmenting .temporal-search-copy,.warp-screen.arriving .temporal-search-copy{opacity:0}
@keyframes temporal-spin{to{transform:rotate(360deg)}}
@keyframes temporal-spin-reverse{to{transform:rotate(-360deg)}}
@keyframes temporal-breathe{0%,100%{opacity:.5;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}
@keyframes temporal-beam{from{transform:translateX(-55%) skewX(-10deg);opacity:.38}to{transform:translateX(-45%) skewX(10deg);opacity:.9}}
@keyframes temporal-resolve-scan{from{top:8%;opacity:.35}50%{opacity:1}to{top:92%;opacity:.5}}
#warp-fx{position:absolute;inset:0;z-index:3;display:block;width:100%;height:100%;opacity:0;transition:opacity .28s ease}
.warp-screen.fragmenting #warp-fx,.warp-screen.arriving #warp-fx{opacity:1}
.warp-vignette{position:absolute;inset:-2px;background:linear-gradient(180deg,rgba(0,0,0,.08),transparent 42%,rgba(0,0,0,.82));pointer-events:none}
.warp-vignette{z-index:5}
.warp-scan{position:absolute;inset:0;z-index:6;opacity:.07;background:repeating-linear-gradient(180deg,transparent 0 3px,rgba(255,255,255,.08) 4px);pointer-events:none;transition:opacity .4s}
.warp-screen.fragmenting .warp-scan{opacity:.15}
.warp-canvas>.photo-label{position:absolute;top:calc(var(--safe-top) + 45px);left:17px;z-index:7;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.9);color:var(--ink);font-size:9px;font-weight:800;opacity:1;transition:opacity .35s}
.warp-canvas>.photo-credit{position:absolute;right:9px;top:calc(var(--safe-top) + 48px);z-index:7;max-width:52%;color:rgba(255,255,255,.8);font-size:7px;text-align:right;text-shadow:0 1px 5px #000;opacity:1;transition:opacity .35s}
.warp-screen.awaiting-photo .photo-label,.warp-screen.awaiting-photo .photo-credit{opacity:0}
.warp-copy{position:relative;z-index:9;width:100%;padding:0 24px calc(34px + var(--safe-bottom));text-shadow:0 2px 18px #000}
.warp-copy h2{margin:0 0 12px;color:#fff;font-size:25px}
.warp-years{display:flex;align-items:center;gap:13px;margin:13px 0 9px;font-variant-numeric:tabular-nums}
.warp-years span{font-size:25px;font-weight:300;opacity:.58}
.warp-years b{color:#f2d58f}
.warp-years strong{font-size:47px;font-weight:300;letter-spacing:-.05em}
.warp-screen.awaiting-photo .warp-copy{position:absolute;inset:0;padding:0;pointer-events:none}
.warp-screen.awaiting-photo .warp-copy h2{position:absolute;top:69%;right:25px;left:25px;margin:0;padding:12px 16px;border:1px solid rgba(182,255,229,.25);background:linear-gradient(90deg,transparent,rgba(5,18,14,.72) 18% 82%,transparent);font-size:clamp(19px,6.4vw,25px);line-height:1.12;text-wrap:balance}
.warp-screen.awaiting-photo .warp-years{position:absolute;right:0;bottom:calc(29px + var(--safe-bottom));left:0;justify-content:center;margin:0}

.action-list{display:grid;gap:7px;margin-top:14px}
.action{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-align:left;font-size:11px;font-weight:800}
.action.selected{border:2px solid var(--green);background:var(--green-soft)}

.ending{overflow:hidden;padding:0;background:#4e3b2d;text-align:center}
.story-ending-stage{position:relative;isolation:isolate;flex:1;min-height:0;overflow:hidden;background:#091510;text-align:left}
.story-ending-stage[hidden]{display:none}.story-ending-stage>img{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.04) contrast(1.04);transform:scale(1.025)}
.story-ending-stage::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(2,8,5,.08),rgba(2,8,5,.18) 38%,rgba(2,8,5,.92) 74%,#020805);pointer-events:none}
.story-ending-light{position:absolute;inset:-18%;z-index:2;background:radial-gradient(circle at 50% 42%,rgba(155,238,208,.23),transparent 38%);mix-blend-mode:screen;pointer-events:none}
.story-ending-copy{position:absolute;right:24px;bottom:calc(116px + var(--safe-bottom));left:24px;z-index:3;color:#fff;text-shadow:0 3px 20px rgba(0,0,0,.72);transition:bottom .58s cubic-bezier(.2,.8,.2,1)}
.story-ending-copy small{display:block;margin-bottom:8px;color:#aee6d4;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.story-ending-copy h2{margin:0 0 10px;color:#fff;font-size:32px;line-height:1.05;text-wrap:balance}.story-ending-copy p{margin:0 0 13px;color:rgba(255,255,255,.9);font-size:14px;font-weight:700;line-height:1.55}.story-ending-copy strong{display:block;padding:10px 12px;border-left:3px solid #d5ad61;border-radius:2px 11px 11px 2px;background:rgba(3,14,10,.64);color:#f5e7c7;font-size:10px;line-height:1.5;backdrop-filter:blur(8px)}
.ending.active:not([data-story-variant="cinderella"]) .story-ending-stage>img{animation:story-ending-camera 12s ease-in-out infinite alternate;will-change:transform}.ending.active:not([data-story-variant="cinderella"]) .story-ending-light{animation:story-ending-light 5.8s ease-in-out infinite alternate}.ending.active:not([data-story-variant="cinderella"]) .story-ending-copy>*{animation:story-ending-copy .55s cubic-bezier(.18,.72,.16,1) both}.ending.active:not([data-story-variant="cinderella"]) .story-ending-copy>:nth-child(2){animation-delay:.1s}.ending.active:not([data-story-variant="cinderella"]) .story-ending-copy>:nth-child(3){animation-delay:.2s}.ending.active:not([data-story-variant="cinderella"]) .story-ending-copy>:nth-child(4){animation-delay:.3s}
.ending[data-story-variant="everyday-table"] .story-ending-stage::after{background:linear-gradient(180deg,rgba(21,9,2,.05),rgba(21,9,2,.18) 42%,rgba(18,8,2,.91) 76%,#100701)}.ending[data-story-variant="everyday-table"] .story-ending-light{background:radial-gradient(circle at 53% 43%,rgba(255,204,117,.3),transparent 40%)}
.ending[data-story-variant="everyday-encounter"] .story-ending-stage::after{background:linear-gradient(180deg,rgba(12,6,25,.04),rgba(12,6,25,.2) 38%,rgba(10,5,22,.92) 75%,#080412)}.ending[data-story-variant="everyday-encounter"] .story-ending-light{background:radial-gradient(circle at 72% 38%,rgba(204,172,255,.3),transparent 38%)}
@keyframes story-ending-camera{from{transform:scale(1.025) translate3d(-.3%,0,0)}to{transform:scale(1.075) translate3d(.5%,-.5%,0)}}
@keyframes story-ending-light{from{opacity:.56;transform:scale(.94)}to{opacity:1;transform:scale(1.08)}}
@keyframes story-ending-copy{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.receipt-stage{position:relative;display:grid;flex:1;min-height:0;place-items:start center;overflow-y:auto;padding:calc(var(--safe-top) + 25px) 14px 24px;background:radial-gradient(circle at 72% 12%,rgba(255,224,169,.27),transparent 20%),linear-gradient(145deg,#725640,#392a22);box-shadow:inset 0 -18px 28px rgba(19,11,7,.18);contain:layout paint;scrollbar-width:none}
.receipt-stage[hidden]{display:none}
.receipt-stage::after{content:"";position:absolute;top:calc(var(--safe-top) + 25px);right:9%;left:9%;z-index:4;height:2px;background:linear-gradient(90deg,transparent,rgba(255,239,184,.9) 22% 78%,transparent);box-shadow:0 0 12px rgba(255,222,139,.9),0 0 30px rgba(255,207,104,.45);opacity:0;pointer-events:none}
.receipt-stage::-webkit-scrollbar{display:none}
.receipt-paper{position:relative;width:min(100%,356px);min-height:620px;padding:34px 26px 30px;overflow:hidden;background:#f6f0dd;color:#28251f;font-family:"Courier New",monospace;text-align:left;box-shadow:0 20px 38px rgba(13,7,4,.46),0 3px 7px rgba(13,7,4,.24);contain:layout paint;transform:rotate(-.7deg)}
.receipt-paper::before{content:"";position:absolute;inset:0;z-index:0;opacity:.22;background:repeating-linear-gradient(0deg,rgba(96,79,50,.05) 0 1px,transparent 1px 5px);pointer-events:none}
.receipt-paper::after{content:"";position:absolute;right:0;bottom:0;left:0;height:8px;background:linear-gradient(135deg,transparent 50%,#f6f0dd 50%) 0 0/12px 12px repeat-x;transform:translateY(6px)}
.receipt-paper>*{position:relative;z-index:1}
.receipt-header{text-align:center}.receipt-header h2{margin:0 auto 6px;max-width:275px;font-size:20px;line-height:1.12;text-transform:uppercase}.receipt-header p{margin:0 0 9px;font-size:10px;font-weight:700;letter-spacing:.08em}.receipt-header span{font-size:10px}
.receipt-rule{margin:12px 0 10px;overflow:hidden;color:#534c40;font-size:10px;letter-spacing:.03em;white-space:nowrap}
.receipt-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;margin:9px 0;font-size:12px;line-height:1.35}.receipt-item span{min-width:0}.receipt-item b{font-size:13px;font-variant-numeric:tabular-nums}.receipt-vr-item{position:relative;isolation:isolate;margin:14px 0;padding:7px 8px;transform-origin:50% 50%}.receipt-vr-item::before{content:"";position:absolute;inset:-3px -8px;z-index:0;border-top:1px solid rgba(160,104,18,.28);border-bottom:1px solid rgba(160,104,18,.4);background:linear-gradient(90deg,rgba(222,176,67,.05),rgba(246,207,105,.34),rgba(222,176,67,.05));box-shadow:0 8px 18px rgba(192,128,32,.14);opacity:.14;pointer-events:none}.receipt-vr-item::after{content:"";position:absolute;right:7px;bottom:3px;left:7px;z-index:2;height:2px;background:linear-gradient(90deg,rgba(71,56,30,.15),rgba(74,52,17,.9) 14% 86%,rgba(71,56,30,.15));box-shadow:0 0 5px rgba(213,149,40,.32);opacity:0;transform:scaleX(0);transform-origin:left center;pointer-events:none}.receipt-vr-item>span,.receipt-vr-item>b{position:relative;z-index:1}.receipt-vr-item strong{font-size:13px;letter-spacing:.03em}.receipt-secondary{color:#4b463e;font-size:10px}.receipt-secondary b{font-size:11px}.receipt-total{align-items:end;margin:13px 0 17px;font-size:21px;font-weight:900}.receipt-total b{font-size:26px;letter-spacing:-.04em}
.receipt-vr-item[hidden]{display:none}
.receipt-paper footer{text-align:center}.receipt-paper footer p{margin:5px 0;font-size:8px;font-weight:700;letter-spacing:.04em}.receipt-paper footer span{display:block;margin-top:9px;font-size:8px}.receipt-paper footer i{display:block;width:82%;height:32px;margin:14px auto 0;background:repeating-linear-gradient(90deg,#25221d 0 2px,transparent 2px 4px,#25221d 4px 5px,transparent 5px 8px,#25221d 8px 11px,transparent 11px 13px)}
.ending.active .receipt-paper{animation:receipt-present .95s cubic-bezier(.18,.78,.18,1) both;will-change:opacity,transform}
.ending.active .receipt-paper>*{animation:receipt-ink-reveal .52s .25s ease-out both}
.ending.active .receipt-stage::after{animation:receipt-scan .88s .08s cubic-bezier(.2,.7,.2,1) both}
.ending.active .receipt-vr-item{animation:receipt-ink-reveal .52s .25s ease-out both,receipt-vr-focus 2.25s .48s cubic-bezier(.18,.72,.16,1) both}
.ending.active .receipt-vr-item::before{animation:receipt-vr-band 2.25s .48s cubic-bezier(.18,.72,.16,1) both}
.ending.active .receipt-vr-item::after{animation:receipt-vr-underline 1.45s .42s cubic-bezier(.18,.76,.18,1) both}
.ending.active .receipt-total{animation:receipt-total-settle .62s 1.72s cubic-bezier(.16,.75,.18,1) both}
@keyframes receipt-present{0%{opacity:0;transform:translateY(-54px) rotate(-2.4deg) scale(.975)}68%{opacity:1;transform:translateY(5px) rotate(-.45deg) scale(1.004)}100%{opacity:1;transform:rotate(-.7deg) scale(1)}}
@keyframes receipt-ink-reveal{from{opacity:0;filter:blur(2px)}to{opacity:1;filter:none}}
@keyframes receipt-scan{0%{opacity:0;transform:translateY(0) scaleX(.45)}18%{opacity:1}78%{opacity:.75}100%{opacity:0;transform:translateY(540px) scaleX(1)}}
@keyframes receipt-vr-focus{0%,12%{transform:scale(1)}26%{transform:scale(1.045)}46%,80%{transform:scale(1.025)}100%{transform:scale(1)}}
@keyframes receipt-vr-band{0%,10%{opacity:0;transform:scaleX(.18)}28%{opacity:1;transform:scaleX(1)}72%{opacity:.92;transform:scaleX(1)}100%{opacity:.18;transform:scaleX(1)}}
@keyframes receipt-vr-underline{0%,8%{opacity:0;transform:scaleX(0)}38%,72%{opacity:.82;transform:scaleX(1)}100%{opacity:.18;transform:scaleX(1)}}
@keyframes receipt-total-settle{0%{opacity:.28;filter:blur(.7px);transform:translateY(3px)}100%{opacity:1;filter:none;transform:translateY(0)}}
.ending-actions{position:absolute;right:0;bottom:0;left:0;z-index:5;display:grid;gap:8px;padding:14px 18px calc(14px + var(--safe-bottom));background:linear-gradient(rgba(251,250,245,.99),#f2eee3);box-shadow:0 -12px 24px rgba(27,17,11,.24);opacity:0;transform:translateY(102%);pointer-events:none;transition:opacity .45s ease,transform .58s cubic-bezier(.2,.8,.2,1)}
.ending.actions-ready .ending-actions{opacity:1;transform:translateY(0);pointer-events:auto}
.ending.actions-ready:not([data-story-variant="cinderella"]) .story-ending-copy{bottom:calc(178px + var(--safe-bottom))}
.share-status{min-height:0;margin:-2px 0 0;color:var(--green);font-size:10px;line-height:1.35}
.share-status:empty{display:none}

.toast{position:absolute;right:20px;bottom:calc(86px + var(--safe-bottom));left:20px;z-index:40;padding:12px 14px;border-radius:12px;background:#17221d;color:#fff;font-size:11px;text-align:center;box-shadow:0 8px 24px rgba(20,30,24,.2);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}
.toast.show{opacity:1;transform:none}
.warp-error,.fatal-error{position:absolute;inset:0;z-index:80;display:grid;place-items:center;padding:22px;background:rgba(4,9,7,.9)}
.warp-error[hidden],.fatal-error[hidden]{display:none}
.warp-error-card,.fatal-error-card{width:min(100%,360px);padding:22px;border-radius:20px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow);text-align:left}
.warp-error-card h2,.fatal-error-card h2{font-size:22px}
.warp-error-card p,.fatal-error-card p{max-height:150px;overflow:auto;color:#8b4338;font-size:11px;white-space:pre-wrap}
.warp-error-card .button,.fatal-error-card .button{margin-top:9px}

.generation-debug-panel{display:none;flex:0 0 330px;width:330px;max-height:100%;overflow-x:hidden;overflow-y:auto;border:1px solid #d3d9d4;border-radius:20px;background:var(--panel);box-shadow:var(--shadow);scrollbar-width:thin}
.generation-debug-time-block{display:grid;grid-template-columns:1fr auto;align-items:end;gap:12px;padding:12px 16px;background:linear-gradient(100deg,#eef7f2,#fbf6e9)}
.generation-debug-time-label{margin-bottom:3px;color:var(--muted);font-size:10px;font-weight:800}
.generation-debug-elapsed{font-variant-numeric:tabular-nums;font-size:30px;font-weight:500;letter-spacing:-.04em;line-height:1}
.generation-debug-completion{padding-bottom:1px;color:var(--muted);font-size:10px;font-weight:800;text-align:right}
.generation-debug-completion strong{display:block;margin-bottom:2px;color:var(--ink);font-size:16px;font-variant-numeric:tabular-nums}
.generation-debug-summary{margin:0;padding:12px 16px;border-top:1px solid rgba(23,107,85,.08);border-bottom:1px solid var(--line);color:var(--green);font-size:12px;font-weight:900;line-height:1.45}
.generation-debug-pipeline{padding:10px 10px 12px}
.generation-debug-row{position:relative;display:grid;grid-template-columns:21px minmax(0,1fr) 62px;align-items:center;gap:6px;min-height:36px;padding:4px;border-bottom:1px solid #ecefea}
.generation-debug-row:last-child{border-bottom:0}
.generation-debug-icon{display:grid;place-items:center;width:19px;height:19px;border:1px solid #cbd1cc;border-radius:50%;background:#fff;color:transparent;font-size:10px;font-weight:900}
.generation-debug-copy b{display:block;font-size:11px}
.generation-debug-stage-time{min-width:62px;color:var(--muted);font-size:10px;font-weight:800;font-variant-numeric:tabular-nums;text-align:right}
.generation-debug-track{position:absolute;right:4px;bottom:2px;left:34px;height:2px;overflow:hidden;border-radius:999px;background:#edf0ed;opacity:0}
.generation-debug-track::after{content:"";position:absolute;top:0;bottom:0;width:34%;border-radius:999px;background:linear-gradient(90deg,transparent,var(--amber),transparent);animation:generation-debug-activity 1.15s linear infinite}
.generation-debug-row.active .generation-debug-icon{border-color:var(--amber);background:var(--amber-soft)}
.generation-debug-row.active .generation-debug-icon::before{content:"";width:8px;height:8px;border:2px solid var(--amber);border-right-color:transparent;border-radius:50%;animation:generation-debug-spin .8s linear infinite}
.generation-debug-row.active .generation-debug-stage-time{color:#9a641d}
.generation-debug-row.active .generation-debug-track{opacity:1}
.generation-debug-row.done .generation-debug-icon{border-color:var(--green);background:var(--green);color:#fff}
.generation-debug-row.done .generation-debug-icon::before{content:"✓"}
.generation-debug-row.done .generation-debug-stage-time{color:var(--green)}
.generation-debug-row.failed .generation-debug-icon{border-color:#a8493d;background:#a8493d;color:#fff}
.generation-debug-row.failed .generation-debug-icon::before{content:"!"}
.generation-debug-row.failed .generation-debug-stage-time{color:#a8493d}
.generation-debug-parallel{margin:6px 0;border:1px solid #dce1dc;border-radius:13px;background:#fafbf8;overflow:hidden}
.generation-debug-parallel-head{display:flex;align-items:center;justify-content:space-between;padding:7px 8px;border-bottom:1px solid #e2e6e2}
.generation-debug-parallel-head b{font-size:10px}
.generation-debug-parallel-head span{color:var(--muted);font-size:9px;font-weight:800}
.generation-debug-parallel-lanes{padding:2px 5px}
.generation-debug-parallel-lanes .generation-debug-row{min-height:38px}
.generation-debug-lane-mark{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:2px;background:#3d79b9}
.generation-debug-parallel-lanes .generation-debug-row:nth-child(2) .generation-debug-lane-mark{background:#825baa}
.generation-debug-parallel-lanes .generation-debug-row:nth-child(3) .generation-debug-lane-mark{background:var(--amber)}
.director-debug{margin:0 10px 10px;padding:10px;border:1px solid #dce1dc;border-radius:13px;background:#f7faf7}
.director-debug-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.director-debug-head small,.director-debug-head strong{display:block}.director-debug-head small{margin-bottom:2px;color:var(--muted);font-size:8px;font-weight:900}.director-debug-head strong{font-size:11px}
.director-debug-head button{min-width:54px;padding:6px 8px;border:0;border-radius:9px;background:var(--green);color:#fff;font-size:9px;font-weight:900}
.director-debug-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.director-debug-grid label{display:grid;gap:3px;color:var(--muted);font-size:8px;font-weight:900}.director-debug-grid .director-story-field,.director-debug-grid .director-audio-field{grid-column:1/-1}
.director-debug-grid select,.director-debug-scene select{min-width:0;width:100%;height:30px;padding:0 24px 0 8px;border:1px solid #d7ddd8;border-radius:8px;background:#fff;color:var(--ink);font-size:10px;font-weight:700}
.director-debug-scene{display:grid;gap:3px;margin-top:7px;color:var(--muted);font-size:8px;font-weight:900}.director-debug-scene select:disabled{opacity:.54}
.director-scene-buttons{position:sticky;top:6px;z-index:6;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:5px -4px 0;padding:5px 4px;border-radius:9px;background:rgba(247,250,247,.96);box-shadow:0 5px 10px rgba(20,39,29,.08);backdrop-filter:blur(7px)}.director-scene-buttons button{min-width:0;height:25px;padding:0 2px;border:1px solid #cfd8d1;border-radius:7px;background:#fff;color:var(--ink);font-size:8px;font-weight:900}.director-scene-buttons button.active{border-color:var(--green);background:#dcece5;color:var(--green);box-shadow:inset 0 0 0 1px rgba(76,129,101,.14)}.director-scene-buttons button:disabled{cursor:not-allowed;opacity:.38}
.director-debug-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:8px}.director-debug-presets button{height:26px;padding:0 3px;border:1px solid #cfd8d1;border-radius:7px;background:#fff;color:var(--ink);font-size:8px;font-weight:900}.director-debug-presets button.active{border-color:var(--green);background:#dcece5;color:var(--green)}
.director-scene-directions{margin-top:7px;padding:7px;border:1px solid #d9e1da;border-radius:9px;background:#fff}.director-scene-directions>strong{display:block;margin-bottom:5px;font-size:8px}.director-scene-directions>div{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.director-scene-directions label{display:grid;gap:2px;color:var(--muted);font-size:7px;font-weight:900}.director-scene-directions select{min-width:0;width:100%;height:25px;padding:0 18px 0 5px;border:1px solid #d7ddd8;border-radius:6px;background:#f8faf8;color:var(--ink);font-size:7px;font-weight:900}
.director-saved-takes{margin-top:7px;padding:8px;border:1px solid #d9e1da;border-radius:9px;background:#fff}.director-saved-takes-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}.director-saved-takes-head strong{font-size:9px}.director-saved-takes-head small{max-width:62%;color:var(--muted);font-size:7px;line-height:1.3;text-align:right}.director-take-slots{display:grid;gap:5px}.director-take-slots>div{display:grid;grid-template-columns:minmax(0,1fr) 50px;gap:5px}.director-take-slots button{min-width:0;border:1px solid #d3dbd5;border-radius:7px;background:#f8faf8;color:var(--ink);font-size:8px;font-weight:900}.director-take-slots [data-director-take-save]{height:auto;min-height:66px;padding:0 5px;background:#fff;color:var(--green)}.director-take-slots [data-director-take-load]{display:grid;min-height:66px;align-content:center;gap:3px;padding:6px 8px;text-align:left;line-height:1.16}.director-take-heading,.director-take-primary{display:flex;align-items:center;gap:5px;min-width:0}.director-take-heading{justify-content:space-between}.director-take-heading strong{font-size:9px}.director-take-heading b{padding:2px 5px;border-radius:999px;background:#edf1ee;color:var(--muted);font-size:6px;letter-spacing:.04em}.director-take-primary>span,.director-take-secondary{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.director-take-primary>span{font-size:9px}.director-take-secondary{padding-left:11px;color:var(--muted);font-size:7px}.director-take-marker{flex:0 0 auto;width:6px;height:18px;border-radius:999px;background:#91a69a}.director-take-marker[data-appearance="auburn"]{background:linear-gradient(#a45d39,#e0a868)}.director-take-marker[data-appearance="blonde"]{background:linear-gradient(#d7ba66,#f4e6b6)}.director-take-marker[data-appearance="dark-curls"]{background:linear-gradient(#513b55,#9a6d88)}.director-take-marker[data-appearance="braids"]{background:linear-gradient(#315e6e,#78a89c)}.director-take-tags{display:flex;gap:3px;overflow:hidden;padding-left:11px}.director-take-tags em{flex:0 0 auto;padding:2px 4px;border-radius:999px;background:#edf1ee;color:#53645a;font-size:6px;font-style:normal;font-weight:900;white-space:nowrap}.director-take-slots [data-director-take-load].saved{border-color:#9ab8a8;background:#f4faf7}.director-take-slots>div.current [data-director-take-load]{border-color:var(--green);background:#dcece5;box-shadow:inset 3px 0 0 var(--green),0 2px 7px rgba(31,86,63,.13)}.director-take-slots>div.current .director-take-heading b{background:var(--green);color:#fff}.director-take-slots button:disabled{cursor:not-allowed;opacity:.54}.director-take-slots [data-director-take-load]:disabled .director-take-marker{background:#c7d0ca}.director-take-parts{grid-column:1/-1;margin-top:-2px;border:1px solid #e0e5e1;border-radius:7px;background:#f8faf8}.director-take-parts summary{padding:5px 7px;color:var(--green);font-size:7px;font-weight:900;cursor:pointer}.director-take-parts[open] summary{border-bottom:1px solid #e0e5e1}.director-take-parts>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:5px}.director-take-parts button{height:24px;padding:0 2px;border-radius:5px;background:#fff;color:#53645a;font-size:6px}.director-take-parts button.current{border-color:var(--green);background:#dcece5;color:var(--green);box-shadow:inset 0 0 0 1px rgba(76,129,101,.12)}
.director-take-history{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 6px}.director-take-history button{height:24px;border:1px solid #cfd8d1;border-radius:6px;background:#fff;color:var(--green);font-size:7px;font-weight:900}.director-take-history button:disabled{cursor:not-allowed;opacity:.38}
.director-dialogue-editor,.director-script-editor{margin-top:8px;border:1px solid #d7ddd8;border-radius:9px;background:#fff}.director-dialogue-editor summary,.director-script-editor summary{padding:7px 8px;color:var(--ink);font-size:9px;font-weight:900;cursor:pointer}.director-dialogue-editor[open]>summary,.director-script-editor[open]>summary{border-bottom:1px solid #e2e6e2}.director-dialogue-fields,.director-script-fields{display:grid;gap:6px;padding:7px}.director-dialogue-fields>small,.director-script-fields>small{color:var(--muted);font-size:8px;line-height:1.45}.director-dialogue-beat{display:grid;grid-template-columns:76px 1fr;gap:4px;padding:6px;border:1px solid #e2e6e2;border-radius:8px;background:#f8faf8}.director-dialogue-beat-title{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;gap:4px}.director-dialogue-beat strong{color:var(--green);font-size:8px}.director-dialogue-beat-actions{display:flex;gap:2px}.director-dialogue-beat-actions button{min-width:21px;height:20px;padding:0 4px;border:1px solid #cfd8d1;border-radius:5px;background:#fff;color:var(--ink);font-size:7px;font-weight:900}.director-dialogue-beat-actions button:disabled{opacity:.35}.director-dialogue-beat label{display:grid;gap:2px;color:var(--muted);font-size:7px;font-weight:900}.director-dialogue-beat label:nth-of-type(2){grid-column:2}.director-dialogue-beat label:last-child{grid-column:1/-1}.director-dialogue-beat select,.director-dialogue-beat input,.director-dialogue-beat textarea,.director-script-group input,.director-script-group textarea{box-sizing:border-box;width:100%;border:1px solid #d7ddd8;border-radius:6px;background:#fff;color:var(--ink);font:700 9px/1.4 system-ui,sans-serif}.director-dialogue-beat select,.director-dialogue-beat input,.director-script-group input{height:28px;padding:0 6px}.director-dialogue-beat textarea,.director-script-group textarea{min-height:52px;padding:6px;resize:vertical}.director-script-group{border:1px solid #e2e6e2;border-radius:8px;background:#f8faf8}.director-script-group.has-overrides>summary{color:#8b4338}.director-script-group>summary{padding:7px;color:var(--green);font-size:8px;font-weight:900;cursor:pointer}.director-script-group[open]>summary{border-bottom:1px solid #e2e6e2}.director-script-field{display:grid;gap:2px;margin:6px;padding:5px;border-radius:6px}.director-script-field.overridden{background:#fff3e9}.director-script-field-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.director-script-field label{color:var(--muted);font-size:7px;font-weight:900}.director-script-field-head button{padding:2px 5px;border:1px solid #d5b7a5;border-radius:5px;background:#fff;color:#8b4338;font-size:7px;font-weight:900}.director-dialogue-actions,.director-script-actions{display:grid;gap:4px;padding:0 7px 7px}.director-dialogue-actions button,.director-script-actions button{height:27px;border:1px solid #cfd8d1;border-radius:7px;background:#fff;color:#8b4338;font-size:8px;font-weight:900}.director-dialogue-actions small,.director-script-actions small{color:var(--muted);font-size:7px;line-height:1.4}
.director-dialogue-preview-bar{display:grid;grid-template-columns:1fr 92px;gap:4px;padding:7px 7px 0}.director-dialogue-preview-bar button,.director-dialogue-preview-bar select{min-width:0;width:100%;height:27px;border:1px solid #cfd8d1;border-radius:7px;background:#fff;font-size:8px;font-weight:900}.director-dialogue-preview-bar button{color:var(--green)}.director-dialogue-preview-bar select{padding:0 17px 0 5px;color:var(--ink)}.director-dialogue-preview-bar button.active{border-color:var(--green);background:#dcece5}
.director-dialogue-timeline{position:sticky;top:68px;z-index:5;display:flex;gap:3px;overflow-x:auto;margin:5px 7px 0;padding:5px;border:1px solid #d9e1da;border-radius:8px;background:rgba(247,250,247,.97);box-shadow:0 4px 9px rgba(20,39,29,.08);backdrop-filter:blur(7px);scrollbar-width:thin}.director-dialogue-timeline:empty{display:none}.director-dialogue-timeline button{display:grid;min-width:54px;height:66px;place-content:center;gap:1px;padding:3px 4px;border:1px solid #cfd8d1;border-radius:6px;background:#fff;color:var(--ink);font-weight:900;line-height:1.05}.director-dialogue-timeline button strong{font-size:8px}.director-dialogue-timeline button span{display:block;overflow:hidden;max-width:100%;font-size:6px;text-overflow:ellipsis;white-space:nowrap}.director-dialogue-timeline-duration{color:#6d756f}.director-dialogue-timeline-expression{color:#7854a5}.director-dialogue-timeline-posture{color:#36745e}.director-dialogue-timeline-direction{color:#986125}.director-dialogue-timeline-staging{color:#355da8}.director-dialogue-timeline button.custom{border-color:#d5b7a5;background:#fff8f0}.director-dialogue-timeline button.edited strong::after{content:"•";margin-left:2px;color:#8b4338}.director-dialogue-timeline button.active{border-color:var(--green);background:#dcece5;color:var(--green);box-shadow:inset 0 0 0 1px rgba(76,129,101,.14)}
.director-debug-lock{display:flex;align-items:center;gap:6px;margin:8px 1px 0;color:var(--ink);font-size:9px;font-weight:900}.director-debug-lock input{width:14px;height:14px;margin:0;accent-color:var(--green)}
.director-dialogue-beat.overridden{border-color:#d5b7a5}.director-dialogue-beat.previewing{border-color:#4c8165;box-shadow:0 0 0 2px rgba(76,129,101,.15)}.director-dialogue-beat.previewing .director-dialogue-beat-title>strong::after{content:" · 左画面";color:#8b4338}.director-dialogue-control{display:grid;gap:2px}.director-dialogue-control.direction,.director-dialogue-control.pace,.director-dialogue-control.staging,.director-dialogue-control.caption,.director-dialogue-control.line{grid-column:1/-1}.director-dialogue-control.overridden{margin:-2px;padding:2px;border-radius:5px;background:#fff3e9}.director-dialogue-control-head{display:flex;align-items:center;justify-content:space-between;gap:3px}.director-dialogue-control-head label{margin:0}.director-dialogue-control-head button{padding:1px 4px;border:1px solid #d5b7a5;border-radius:5px;background:#fff;color:#8b4338;font-size:7px;font-weight:900}
#director-debug-summary{min-height:24px;margin:7px 1px 0;color:var(--green);font-size:9px;font-weight:800;line-height:1.4}
.adventure-screen.story-observation .conversation-stage,.adventure-screen.story-observation .character-grounding{display:none}.adventure-screen.story-observation .adventure-background{filter:none;transform:scale(1.025)}
.screen[data-screen="inside"].story-observation[data-future-signal][data-conversation-pose="neutral"]{--sf-focus-x:50%;--sf-focus-y:36%}
.screen[data-screen="inside"].story-observation[data-future-signal][data-conversation-pose="curious"]{--sf-focus-x:74%;--sf-focus-y:69%}
.screen[data-screen="inside"].story-observation[data-future-signal][data-conversation-pose="earnest"]{--sf-focus-x:51%;--sf-focus-y:56%}
.screen[data-screen="inside"].story-observation[data-future-signal][data-conversation-pose="surprised"]{--sf-focus-x:27%;--sf-focus-y:68%}
.screen[data-screen="inside"].story-observation[data-future-signal][data-conversation-pose="confident"]{--sf-focus-x:75%;--sf-focus-y:28%}
.screen[data-screen="inside"].story-observation[data-future-signal][data-conversation-pose="playful"]{--sf-focus-x:29%;--sf-focus-y:34%}
.screen[data-screen="inside"].active.story-observation[data-future-signal] .adventure-background{transform-origin:var(--sf-focus-x,50%) var(--sf-focus-y,50%);will-change:transform}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-posture="balanced"] .adventure-background{animation:sf-camera-balanced 10s ease-in-out infinite alternate}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-posture="closer"] .adventure-background{animation:sf-camera-push 9s cubic-bezier(.38,.05,.42,1) infinite alternate}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-posture="reserved"] .adventure-background{animation:sf-camera-pull 11s cubic-bezier(.38,.05,.42,1) infinite alternate}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-posture="diagonal"] .adventure-background{animation:sf-camera-diagonal 10s ease-in-out infinite alternate}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-posture="closeup"] .adventure-background{animation:sf-camera-macro 8.5s cubic-bezier(.38,.05,.42,1) infinite alternate}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-posture="wide"] .adventure-background{animation:sf-camera-wide 12s cubic-bezier(.38,.05,.42,1) infinite alternate}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-style="classic"] .adventure-visual::before{background:radial-gradient(circle at var(--sf-focus-x) var(--sf-focus-y),rgba(255,246,218,.24),transparent 31%),linear-gradient(108deg,rgba(16,29,24,.08),transparent 48%,rgba(255,255,255,.07));animation:sf-light-day 7s ease-in-out infinite alternate}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-style="intimate"] .adventure-visual::before{background:radial-gradient(circle at var(--sf-focus-x) var(--sf-focus-y),rgba(255,224,174,.43),rgba(216,141,84,.09) 30%,transparent 55%),linear-gradient(90deg,rgba(19,10,5,.26),transparent 62%);animation:sf-light-warm 6.2s ease-in-out infinite alternate}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-style="mystic"] .adventure-visual::before{background:radial-gradient(circle at var(--sf-focus-x) var(--sf-focus-y),rgba(168,218,255,.34),rgba(112,103,235,.12) 28%,transparent 53%),linear-gradient(145deg,rgba(5,13,30,.28),transparent 61%);animation:sf-light-cool 5.6s ease-in-out infinite alternate}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-style="brisk"] .adventure-visual::before{inset:-8%;background:linear-gradient(108deg,transparent 23%,rgba(221,255,246,.46) 43%,rgba(255,246,196,.2) 51%,transparent 69%);animation:sf-light-sweep 4.8s ease-in-out infinite}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-style="ceremonial"] .adventure-visual::before{background:radial-gradient(ellipse at var(--sf-focus-x) 10%,rgba(255,229,148,.5),rgba(211,148,65,.12) 37%,transparent 66%),linear-gradient(180deg,rgba(255,244,201,.12),transparent 53%,rgba(20,10,3,.2));animation:sf-light-crown 7.8s ease-in-out infinite alternate}
.screen[data-screen="inside"].active.story-observation[data-future-signal][data-director-style="shadow"] .adventure-visual::before{background:radial-gradient(circle at var(--sf-focus-x) var(--sf-focus-y),transparent 0 18%,rgba(15,9,33,.12) 39%,rgba(4,5,13,.58) 100%);animation:sf-light-shadow 6.8s ease-in-out infinite alternate}
@keyframes sf-camera-balanced{from{transform:translate3d(-.25%,0,0) scale(1.03)}to{transform:translate3d(.35%,-.3%,0) scale(1.055)}}
@keyframes sf-camera-push{from{transform:translate3d(-.25%,.3%,0) scale(1.025)}to{transform:translate3d(-1.2%,-.8%,0) scale(1.11)}}
@keyframes sf-camera-pull{from{transform:translate3d(.8%,-.7%,0) scale(1.115)}to{transform:translate3d(-.2%,.15%,0) scale(1.04)}}
@keyframes sf-camera-diagonal{from{transform:translate3d(-1.4%,1%,0) scale(1.075)}to{transform:translate3d(1.35%,-.9%,0) scale(1.075)}}
@keyframes sf-camera-macro{from{transform:translate3d(0,.3%,0) scale(1.04)}to{transform:translate3d(-.7%,-1.2%,0) scale(1.145)}}
@keyframes sf-camera-wide{from{transform:translate3d(.55%,-.35%,0) scale(1.09)}to{transform:translate3d(-.25%,.15%,0) scale(1.025)}}
@keyframes sf-light-day{from{opacity:.66;transform:scale(1)}to{opacity:.94;transform:scale(1.03)}}
@keyframes sf-light-warm{from{opacity:.5;transform:scale(.9)}to{opacity:1;transform:scale(1.12)}}
@keyframes sf-light-cool{from{opacity:.52;transform:scale(.96)}to{opacity:.96;transform:scale(1.07)}}
@keyframes sf-light-sweep{0%,100%{opacity:.18;transform:translate3d(-34%,0,0) skewX(-7deg)}48%{opacity:.88}70%{opacity:.35;transform:translate3d(30%,0,0) skewX(-7deg)}}
@keyframes sf-light-crown{from{opacity:.58;transform:translateY(-2%) scale(.98)}to{opacity:1;transform:translateY(1%) scale(1.05)}}
@keyframes sf-light-shadow{from{opacity:.62;transform:scale(1.04)}to{opacity:.94;transform:scale(.98)}}
@keyframes generation-debug-spin{to{transform:rotate(360deg)}}
@keyframes generation-debug-activity{from{transform:translateX(-130%)}to{transform:translateX(390%)}}

@media (min-width:560px){
  body{display:grid;place-items:center;min-height:100dvh;padding:16px;background:radial-gradient(circle at 50% 45%,#f3f1e9 0 240px,#e8e7e1 560px)}
  .game-shell{display:flex;align-items:center;justify-content:center;width:min(784px,calc(100vw - 32px));height:min(900px,calc(100dvh - 32px))}
  .phone{width:min(430px,calc(100vw - 32px));height:min(900px,calc(100dvh - 32px));margin:0;border:8px solid #27312c;border-radius:36px;box-shadow:0 24px 70px rgba(34,49,40,.24)}
  .phone::before{content:"";position:absolute;top:8px;left:50%;z-index:60;width:92px;height:25px;transform:translateX(-50%);border-radius:999px;background:#27312c;pointer-events:none}
  .topbar{padding-top:22px}
}

@media (min-width:818px){
  .game-shell.debug-active{gap:24px}
  .game-shell.debug-active .generation-debug-panel{display:block}
}

@media (hover:none) and (pointer:coarse){
  .game-shell.debug-active{gap:0}
  .game-shell.debug-active .generation-debug-panel{display:none}
}

@media (orientation:landscape) and (max-height:519px) and (hover:none){
  .rotate{position:fixed;inset:0;z-index:110;display:grid;place-items:center;padding:32px;background:var(--paper);text-align:center}
  .rotate strong{display:block;margin-bottom:10px;font-size:24px}
  .phone{display:none}
}

@media (max-height:620px){
  .title-orbit{top:12%;width:190px;height:190px}
  .title-orbit span{font-size:51px}
  .title-orbit small{bottom:40px}
  .title-copy{padding-top:245px}
  .confirm-hero{min-height:47%}
  .receipt-paper{min-height:520px;padding-top:24px}
  .temporal-viewfinder{top:41%;height:45%}
  .temporal-lock{top:41%;width:164px}
  .temporal-search-copy{top:calc(var(--safe-top) + 48px)}
  .warp-screen.awaiting-photo .warp-copy h2{top:65%;padding:9px 13px}
  .warp-screen.awaiting-photo .warp-years{bottom:calc(16px + var(--safe-bottom))}
  .warp-screen.awaiting-photo .warp-years strong{font-size:39px}
  .story-ending-copy{right:18px;bottom:calc(96px + var(--safe-bottom));left:18px}
  .story-ending-copy small{margin-bottom:6px;font-size:8px}
  .story-ending-copy h2{margin-bottom:7px;font-size:27px;line-height:1.02}
  .story-ending-copy p{margin-bottom:9px;font-size:12px;line-height:1.4}
  .story-ending-copy strong{padding:8px 10px;font-size:9px;line-height:1.4}
  .ending-actions{gap:6px;padding:8px 14px calc(8px + var(--safe-bottom))}
  .ending-actions .button{min-height:44px;padding:9px 10px;border-radius:13px;font-size:12px;line-height:1.2}
  .ending-actions .button-row{gap:7px}
  .ending.actions-ready:not([data-story-variant="cinderella"]) .story-ending-copy{bottom:calc(140px + var(--safe-bottom))}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .future-exterior-frame{animation:none!important;transform:none}
  .future-exterior-frame>img{animation:none!important;object-position:50% 50%}
  .title-gallery-image{animation:none!important;object-position:50% 50%;transform:scale(1.03)}
  .temporal-lock{filter:none}
}
