:root{
  --ink:#fffaf1;--paper:#f4ebdc;--paper2:#e7d9c5;--charcoal:#171918;--muted:rgba(255,250,241,.72);
  --accent:#a95643;--accent2:#7e3c30;--olive:#65664d;--line:rgba(255,255,255,.17);--shadow:0 24px 70px rgba(0,0,0,.35);
  --safe-x:clamp(20px,4.6vw,74px);--safe-y:clamp(18px,3vw,38px);--scene-x:0px;--scene-y:0px
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#111615}body{min-height:100dvh;height:100dvh;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow:hidden;overscroll-behavior:none}button,input{font:inherit}button{color:inherit}button.is-action-busy{pointer-events:none}button:focus-visible,input:focus-visible{outline:2px solid rgba(255,222,190,.95);outline-offset:3px}[hidden]{display:none!important}.app-shell{min-height:100dvh;height:100dvh;background:#151816;overflow:hidden}

/* Scène 1 — portrait original de Papa Han : cadrage desktop ciblé.
   Le fichier source est vertical ; object-fit:cover centré coupe entièrement son visage
   sur les écrans larges. On conserve le fichier original et le moteur ; le cadrage mobile utilise un asset dédié. */
@media (min-width: 821px) {
  .scene[data-mode="papa1"] .scene__image,
  .scene[data-mode="papa2"] .scene__image,
  .scene[data-mode="branch1"] .scene__image,
  .scene[data-mode="branch2"] .scene__image,
  .scene[data-mode="branch3"] .scene__image,
  .scene[data-mode="invite"] .scene__image { object-position: 50% 0%; }
}

/* COVER */
.cover{position:relative;min-height:100svh;width:100%;overflow:hidden;isolation:isolate;background:#1b1d1a;opacity:0;pointer-events:none;transition:opacity .45s ease}.cover.is-active{opacity:1;pointer-events:auto}.cover__image{position:absolute;inset:0;z-index:-7;overflow:hidden}.cover__image-inner{position:absolute;inset:-2.5%;background:url("assets/jeonju-cover.webp") center 50%/cover no-repeat;transform:scale(1.012);animation:city-breathe 26s ease-in-out infinite alternate}@keyframes city-breathe{from{transform:scale(1.012)}to{transform:scale(1.034) translate3d(-.25%,-.15%,0)}}.cover__air{position:absolute;inset:-15%;z-index:-6;pointer-events:none;opacity:.16;background:radial-gradient(circle at 70% 58%,rgba(255,205,142,.17),transparent 22%),radial-gradient(circle at 47% 25%,rgba(214,232,240,.11),transparent 28%);filter:blur(24px);animation:air-drift 18s ease-in-out infinite alternate}@keyframes air-drift{from{transform:translate3d(-1.2%,.4%,0);opacity:.11}to{transform:translate3d(1.4%,-1%,0) scale(1.03);opacity:.21}}.cover__glow{position:absolute;inset:0;z-index:-5;pointer-events:none;background:radial-gradient(ellipse at 69% 69%,rgba(255,177,97,.14),transparent 18%);mix-blend-mode:screen;animation:street-glow 9s ease-in-out infinite}@keyframes street-glow{0%,100%{opacity:.22}50%{opacity:.48}}.cover__veil{position:absolute;inset:0;z-index:-4;background:linear-gradient(90deg,rgba(10,14,14,.74) 0%,rgba(10,14,14,.38) 34%,rgba(10,14,14,.06) 64%,rgba(10,14,14,.14) 100%),linear-gradient(180deg,rgba(0,0,0,.13),rgba(0,0,0,.02) 42%,rgba(0,0,0,.30))}.cover__vignette{position:absolute;inset:0;z-index:-3;box-shadow:inset 0 0 165px rgba(0,0,0,.28);pointer-events:none}
.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:max(var(--safe-y),env(safe-area-inset-top)) var(--safe-x) 0;z-index:10}.brand{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none;min-width:0}.topbar--cover .brand{padding:0;border:0;border-radius:50%;background:transparent;backdrop-filter:none;box-shadow:none}.brand__logo{width:96px;height:96px;display:block;object-fit:cover;border-radius:50%;background:#f4e8da;box-shadow:0 8px 28px rgba(0,0,0,.18);flex:0 0 auto}.brand__seal,.brand__seal-main,.brand__seal-rule{display:none!important}.brand__wordmark{display:grid;gap:5px;text-shadow:0 2px 15px rgba(0,0,0,.48)}.brand__wordmark strong{display:none}.brand__wordmark small{color:rgba(255,250,241,.82);font-size:10px;letter-spacing:.18em;white-space:nowrap;text-transform:uppercase}.controls{display:flex;align-items:center;gap:13px}.lang-switch{display:flex;align-items:center;gap:7px;font-size:16px;text-shadow:0 2px 12px rgba(0,0,0,.45)}.lang{border:0;background:transparent;padding:8px 2px;cursor:pointer;opacity:.58}.lang.is-active,.lang:hover{opacity:1}.sound-button{width:58px;height:58px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(8,14,16,.22);backdrop-filter:blur(8px);cursor:pointer;display:grid;place-content:center;gap:2px;box-shadow:0 7px 25px rgba(0,0,0,.14);transition:.2s ease}.sound-button:hover{transform:translateY(-1px);background:rgba(8,14,16,.34)}.sound-button__icon{font-size:19px;line-height:1}.sound-button__label{font-size:8px;letter-spacing:.11em}.sound-button[aria-pressed=true]{background:rgba(70,95,77,.48)}.menu-button{display:none}.hero{position:absolute;left:var(--safe-x);top:51%;transform:translateY(-43%);width:min(650px,50vw);z-index:5;text-shadow:0 4px 26px rgba(0,0,0,.38)}.hero__eyebrow{margin:0 0 16px;color:#f0a184;font-size:clamp(12px,1.02vw,16px);font-weight:700;letter-spacing:.23em}.hero h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(50px,5.55vw,88px);font-weight:500;line-height:.96;letter-spacing:-.038em;text-wrap:balance}.hero__intro{margin:23px 0 0;max-width:600px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(20px,1.95vw,31px);line-height:1.22}.hero__actions{display:flex;flex-direction:column;align-items:flex-start;gap:13px;margin-top:27px}.start-button{min-width:270px;border:1px solid rgba(255,247,236,.7);border-radius:999px;background:linear-gradient(180deg,rgba(177,79,60,.98),rgba(142,54,43,.98));padding:15px 34px;font-family:Georgia,"Times New Roman",serif;font-size:21px;font-weight:700;cursor:pointer;box-shadow:var(--shadow);transition:.2s ease}.start-button:hover{transform:translateY(-2px);filter:brightness(1.05)}.passport-link{border:0;border-bottom:1px solid rgba(255,255,255,.45);background:transparent;padding:4px 0 3px;cursor:pointer;color:#fff;font-size:14px;font-weight:650;letter-spacing:.03em;text-shadow:0 2px 12px rgba(0,0,0,.66)}
.leaves{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:4}.leaf{position:absolute;top:var(--start-y,-12vh);width:var(--size);height:calc(var(--size)*1.12);opacity:var(--opacity);filter:blur(var(--blur)) drop-shadow(0 4px 5px rgba(30,14,9,.18));will-change:transform,opacity;animation:leaf-fall var(--duration) linear forwards;transform-origin:50% 45%}.leaf svg{width:100%;height:100%;display:block}.leaf .leaf-body{fill:var(--leaf-color)}.leaf .leaf-vein{fill:none;stroke:var(--leaf-vein);stroke-width:1.45;stroke-linecap:round;opacity:.42}@keyframes leaf-fall{0%{transform:translate3d(0,-8vh,0) rotate(var(--rot0)) scale(var(--scale));opacity:0}7%{opacity:var(--opacity)}33%{transform:translate3d(var(--drift-a),36vh,0) rotate(var(--rot1)) rotateX(68deg) scale(var(--scale))}67%{transform:translate3d(var(--drift-b),76vh,0) rotate(var(--rot2)) rotateX(18deg) scale(var(--scale))}100%{transform:translate3d(var(--drift-c),118vh,0) rotate(var(--rot3)) rotateX(72deg) scale(var(--scale));opacity:0}}

/* PRE-IMMERSION */
.profile-flow{position:fixed;inset:0;overflow:hidden;background:#171918;opacity:0;transition:opacity .38s ease}.profile-flow.is-active{opacity:1}.profile-flow__bg{position:absolute;inset:-3%;background:url("assets/jeonju-cover.webp") center/cover no-repeat;filter:blur(2px);transform:scale(1.04)}.profile-flow__veil{position:absolute;inset:0;background:linear-gradient(105deg,rgba(19,20,18,.9),rgba(27,26,22,.73) 50%,rgba(27,26,22,.5)),radial-gradient(circle at 76% 70%,rgba(180,102,70,.17),transparent 28%)}.mini-topbar{position:absolute;top:0;left:0;right:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:max(22px,env(safe-area-inset-top)) var(--safe-x) 0}.wordmark-button{border:0;background:transparent;padding:8px 0;cursor:pointer;font-family:Georgia,"Times New Roman",serif;font-weight:700;letter-spacing:.18em;font-size:14px}.mini-topbar__actions{display:flex;gap:8px}.mini-lang,.mini-sound{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.24);background:rgba(14,16,15,.28);backdrop-filter:blur(10px);cursor:pointer}.mini-sound.is-on{background:rgba(90,107,76,.5)}.profile-stage{position:relative;z-index:3;min-height:100svh;display:grid;align-items:center;padding:96px var(--safe-x) 56px}.profile-stage.is-leaving{opacity:0;transform:scale(.99);transition:.45s ease}.profile-card{width:min(720px,100%);animation:card-in .38s ease both}@keyframes card-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.profile-card__head p{margin:0 0 13px;color:#d89579;font-size:11px;font-weight:750;letter-spacing:.24em}.profile-card__head h1{margin:0;max-width:680px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(38px,5.1vw,68px);line-height:1.02;font-weight:500;letter-spacing:-.035em;text-wrap:balance}.profile-card__text{margin-top:18px;max-width:590px;color:rgba(255,250,241,.76);font-family:Georgia,"Times New Roman",serif;font-size:clamp(18px,1.6vw,23px);line-height:1.48}.profile-card__body{margin-top:32px}.profile-choices{display:grid;gap:12px;width:min(660px,100%)}.profile-choice{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;text-align:left;border:1px solid rgba(255,255,255,.2);border-radius:18px;background:rgba(247,239,228,.075);backdrop-filter:blur(14px);padding:17px 20px;cursor:pointer;transition:.22s ease}.profile-choice:hover,.profile-choice.is-selected{transform:translateX(4px);border-color:rgba(232,185,158,.55);background:rgba(247,239,228,.12)}.profile-choice__index{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.18);font-size:10px;color:#d9a28c}.profile-choice strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:20px;font-weight:500}.profile-choice small{display:block;margin-top:4px;color:rgba(255,255,255,.55);font-size:12px;line-height:1.4}.profile-choice__arrow{font-size:24px;color:rgba(255,255,255,.46)}.profile-back{margin-top:20px;border:0;background:transparent;padding:8px 0;color:rgba(255,255,255,.56);cursor:pointer}.profile-name-form{display:flex;gap:12px;max-width:620px}.profile-name-form input{flex:1;min-width:0;border:0;border-bottom:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;padding:14px 3px;font-family:Georgia,"Times New Roman",serif;font-size:28px}.profile-name-form input::placeholder{color:rgba(255,255,255,.32)}.profile-primary,.profile-secondary{border-radius:999px;padding:13px 22px;cursor:pointer}.profile-primary{border:1px solid rgba(255,255,255,.58);background:rgba(169,86,67,.9);font-weight:700}.profile-secondary{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.05)}.profile-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.profile-card--documents{width:min(980px,100%)}.docs-hint{margin:22px 0 0;color:rgba(255,255,255,.62);font-family:Georgia,"Times New Roman",serif;font-size:15px}

/* PASSPORT AND IMMERSION ID */
.travel-docs{display:grid;grid-template-columns:minmax(430px,1.3fr) minmax(260px,.75fr);gap:26px;align-items:center;margin-top:30px;max-width:980px}.passport-book{position:relative;display:grid;grid-template-columns:34% 66%;min-height:340px;perspective:1200px;filter:drop-shadow(0 28px 40px rgba(0,0,0,.25))}.passport-book[role=button]{cursor:pointer}.passport-cover{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:340px;border-radius:14px 6px 6px 14px;background:linear-gradient(145deg,#3c2921,#291b17 58%,#4a3025);border:1px solid rgba(228,194,156,.17);box-shadow:inset -18px 0 30px rgba(0,0,0,.22);color:#d8ba8e;text-align:center;transform-origin:right center;transition:.35s ease}.passport-book[role=button]:hover .passport-cover{transform:rotateY(-5deg)}.passport-mark{font-size:11px;letter-spacing:.18em;line-height:1.5}.passport-mark span{font-size:7px}.passport-emblem{width:58px;height:58px;margin:24px 0;border:1px solid rgba(216,186,142,.48);border-radius:50%;display:grid;place-items:center;font:700 30px/1 Georgia,serif}.passport-cover strong{font:600 20px/1 Georgia,serif;letter-spacing:.14em}.passport-cover small{margin-top:14px;font-size:8px;letter-spacing:.2em}.passport-pages{display:grid;grid-template-columns:1fr 1fr;min-height:340px;border-radius:3px 14px 14px 3px;background:#efe4d2;box-shadow:inset 0 0 0 1px rgba(84,61,44,.14),inset 14px 0 24px rgba(94,64,43,.06);color:#4b3e34;overflow:hidden}.passport-page{padding:26px 22px;background-image:linear-gradient(rgba(117,91,67,.045) 1px,transparent 1px);background-size:100% 22px}.passport-page:first-child{border-right:1px solid rgba(87,65,48,.15)}.passport-page>p{margin:0;color:#8e6853;font-size:8px;font-weight:800;letter-spacing:.18em}.passport-page h3{margin:18px 0 20px;font:500 24px/1.1 Georgia,serif}.passport-page dl,.immersion-id-card dl{display:grid;gap:10px;margin:0}.passport-page dl div,.immersion-id-card dl div{display:grid;grid-template-columns:90px 1fr;gap:10px}.passport-page dt,.immersion-id-card dt{text-transform:uppercase;font-size:7px;font-weight:800;letter-spacing:.12em;color:#8f7967}.passport-page dd,.immersion-id-card dd{margin:0;font-size:10px}.passport-page--visa{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#875b48}.passport-page--visa>span{font:500 30px/1 Georgia,serif;letter-spacing:.08em}.passport-page--visa>small{margin-top:8px;font-size:8px;letter-spacing:.18em}.passport-blank-stamp{width:96px;height:96px;margin-top:38px;border:1px dashed rgba(112,78,59,.25);border-radius:50%}.immersion-id-card{align-self:center;border-radius:16px;background:linear-gradient(135deg,#e8ddca,#cab89e);color:#44372e;box-shadow:0 24px 45px rgba(0,0,0,.22);overflow:hidden;transform:rotate(1.4deg)}.immersion-id-card__head{padding:16px 18px 13px;background:linear-gradient(120deg,#6c684f,#56513e);color:#f6efe4}.immersion-id-card__head span{display:block;font-size:8px;letter-spacing:.18em}.immersion-id-card__head strong{display:block;margin-top:5px;font:500 15px/1.2 Georgia,serif}.immersion-id-card__body{padding:18px}.immersion-id-card__body>p{margin:0 0 18px;font:500 25px/1 Georgia,serif}.menu-edit-link{border:0;border-bottom:1px solid rgba(80,58,46,.28);background:transparent;color:#6d4d3e;padding:6px 0;cursor:pointer;margin-right:16px}

/* SCENE WORLD */
.scene{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden;overscroll-behavior:none;background:#151817;opacity:0;transition:opacity .5s ease;isolation:isolate}.scene.is-active{opacity:1}.scene__picture{position:absolute;inset:-2.2%;overflow:hidden;z-index:-5}.scene__image{width:104.4%;height:104.4%;object-fit:cover;transform:translate3d(var(--scene-x),var(--scene-y),0) scale(1.015);transition:opacity .72s ease,filter .72s ease;will-change:transform,filter}.scene.is-transitioning .scene__image{opacity:.22;filter:blur(3px)}.scene__image-shade{position:absolute;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(180deg,rgba(5,8,8,.18),transparent 24%,transparent 65%,rgba(5,7,7,.28))}.scene::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 74% 20%,rgba(255,223,184,.045),transparent 22%);animation:world-light 13s ease-in-out infinite alternate}@keyframes world-light{from{opacity:.45;transform:translateX(-1%)}to{opacity:.8;transform:translateX(1%)}}
.scene-hud{position:absolute;z-index:40;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:max(18px,env(safe-area-inset-top)) var(--safe-x) 0;pointer-events:none}.scene-brand,.scene-hud__actions button{pointer-events:auto}.scene-brand{border:0;background:transparent;color:#fff;padding:7px 0;cursor:pointer;font:700 12px/1 Georgia,serif;letter-spacing:.16em;text-shadow:0 2px 16px rgba(0,0,0,.5)}.scene-brand span{display:block;margin-top:4px;font:600 6px/1 system-ui;letter-spacing:.26em}.scene-hud__meta{display:none}.scene-hud__actions{display:flex;gap:7px}.hud-lang,.hud-sound,.hud-menu{width:39px;height:39px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(12,14,13,.24);backdrop-filter:blur(8px);cursor:pointer}.hud-menu{display:grid;place-content:center;gap:5px}.hud-menu span{display:block;width:15px;height:1px;background:#fff}.hud-sound.is-on{background:rgba(93,106,78,.44)}.scene-content{position:absolute;inset:0;z-index:12;min-width:0;min-height:0;overflow:hidden;pointer-events:none}.scene-content>*{pointer-events:auto}

/* WAKE UP: eyes open, focus, body rises. */
.scene[data-mode=wake] .scene__image{animation:wake-camera 6.8s cubic-bezier(.22,.7,.2,1) both}@keyframes wake-camera{0%{transform:scale(1.12) translateY(6%);filter:blur(8px) brightness(.56)}18%{filter:blur(5px) brightness(.72)}42%{filter:blur(0) brightness(.92);transform:scale(1.09) translateY(4%)}72%{transform:scale(1.045) translateY(-1.4%);filter:blur(0) brightness(1)}100%{transform:scale(1.025) translateY(-1.8%);filter:blur(0) brightness(1)}}.wake-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:#000}.eyelid{position:absolute;left:-3%;right:-3%;height:54%;background:#050606;z-index:5}.eyelid--top{top:-2%;transform-origin:top;animation:lid-top 2.2s .55s cubic-bezier(.22,.75,.18,1) forwards}.eyelid--bottom{bottom:-2%;transform-origin:bottom;animation:lid-bottom 2.2s .55s cubic-bezier(.22,.75,.18,1) forwards}@keyframes lid-top{0%,18%{transform:translateY(0)}55%{transform:translateY(-73%)}100%{transform:translateY(-103%)}}@keyframes lid-bottom{0%,18%{transform:translateY(0)}55%{transform:translateY(73%)}100%{transform:translateY(103%)}}.wake-layer{animation:wake-layer-away 1s 2.6s forwards}@keyframes wake-layer-away{to{background:transparent}}.wake-time{position:absolute;z-index:8;left:var(--safe-x);bottom:max(38px,env(safe-area-inset-bottom));display:grid;opacity:0;transform:translateY(6px);animation:wake-time-in .8s 4.9s forwards;text-shadow:0 2px 20px rgba(0,0,0,.45)}.wake-time strong{font:500 34px/1 Georgia,serif}.wake-time span{margin-top:5px;font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.7)}@keyframes wake-time-in{to{opacity:1;transform:none}}

/* PHONE */
.phone-stage{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:flex-end;padding:78px max(5vw,var(--safe-x)) 34px}.phone-device{pointer-events:auto;position:relative;width:min(330px,27vw);aspect-ratio:.50;max-height:74vh;border-radius:42px;padding:9px;background:linear-gradient(145deg,#161817,#050606 55%,#252725);border:1px solid rgba(255,255,255,.18);box-shadow:0 32px 100px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.04);transform:translateY(18px) rotate(1deg);opacity:0;animation:phone-arrive .75s .15s cubic-bezier(.2,.8,.2,1) forwards;transform-origin:70% 80%}@keyframes phone-arrive{to{transform:translateY(0) rotate(1deg);opacity:1}}.phone-device::before{content:"";position:absolute;inset:2px;border-radius:39px;border:1px solid rgba(255,255,255,.05);pointer-events:none}.phone-device.is-vibrating{animation:phone-vibrate .5s linear!important;opacity:1}@keyframes phone-vibrate{0%,100%{transform:rotate(1deg) translateX(0)}15%{transform:rotate(.3deg) translateX(-3px)}30%{transform:rotate(1.8deg) translateX(3px)}45%{transform:rotate(.5deg) translateX(-2px)}60%{transform:rotate(1.6deg) translateX(2px)}}.phone-speaker{position:absolute;z-index:3;top:15px;left:50%;width:78px;height:19px;transform:translateX(-50%);border-radius:999px;background:#050606}.phone-screen{position:relative;height:100%;overflow:hidden;border-radius:34px;padding:28px 15px 16px;background:linear-gradient(180deg,rgba(8,13,15,.05),rgba(8,13,15,.34)),radial-gradient(circle at 58% 18%,rgba(214,172,119,.25),transparent 28%),linear-gradient(160deg,#26363a,#11181a 56%,#332a23);color:#fff}.phone-status{display:flex;justify-content:space-between;color:rgba(255,255,255,.72);font-size:10px;letter-spacing:.06em}.phone-lock-time{margin-top:12%;text-align:center;font-family:Inter,system-ui,sans-serif;font-size:clamp(42px,4.5vw,62px);font-weight:250;letter-spacing:-.04em}.phone-lock-date{text-align:center;margin-top:-6px;color:rgba(255,255,255,.67);font-size:12px}.phone-notification{position:absolute;left:12px;right:12px;bottom:12%;display:grid;gap:3px;text-align:left;padding:13px 14px;border:1px solid rgba(255,255,255,.26);border-radius:16px;background:rgba(239,236,229,.9);color:#272521;backdrop-filter:blur(15px);box-shadow:0 16px 34px rgba(0,0,0,.18);cursor:pointer}.phone-notification__app{color:#775949;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.phone-notification strong{font-family:Georgia,"Times New Roman",serif;font-size:15px;line-height:1.25}.phone-thread-head{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:6px;padding:4px 2px 12px;border-bottom:1px solid rgba(255,255,255,.1)}.phone-back{font-size:27px}.phone-thread-head strong{display:block;font-size:13px}.phone-thread-head small{display:block;color:rgba(255,255,255,.48);font-size:9px}.phone-thread{display:flex;flex-direction:column;gap:9px;padding-top:16px}.phone-message{align-self:flex-start;max-width:88%;padding:10px 11px;border-radius:14px 14px 14px 4px;background:rgba(244,239,231,.92);color:#2c2925;font-family:Georgia,"Times New Roman",serif;font-size:13px;line-height:1.42;box-shadow:0 8px 22px rgba(0,0,0,.1);opacity:0;transform:translateY(7px);animation:phone-msg-in .38s ease forwards}.phone-message--1{animation-delay:.45s}.phone-message--2{animation-delay:1.35s}.phone-message--3{animation-delay:2.15s}.phone-message--4{animation-delay:3s}.phone-message--5{animation-delay:3.9s}.phone-message--6{animation-delay:4.8s}@keyframes phone-msg-in{to{opacity:1;transform:none}}.phone-memory-link{position:absolute;left:15px;right:15px;bottom:16px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;padding:11px 13px;cursor:pointer;font-size:12px}.phone-memory-link--delayed{opacity:0;pointer-events:none;animation:memory-link-in .45s 2.25s forwards}.phone-memory-link--gift{animation-delay:4.05s}@keyframes memory-link-in{to{opacity:1;pointer-events:auto}}

/* LETTERS */
.letter-table{position:absolute;inset:0;pointer-events:none;display:flex;align-items:flex-end;justify-content:flex-end;padding:110px var(--safe-x) max(42px,env(safe-area-inset-bottom))}.letter-envelopes{pointer-events:auto;display:flex;align-items:flex-end;gap:18px;padding-right:4vw}.envelope{width:235px;aspect-ratio:1.55;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;border:0;border-radius:3px;background:linear-gradient(145deg,#f0e3d2,#d8c4ac);color:#4d4137;box-shadow:0 22px 58px rgba(0,0,0,.3);cursor:pointer;transform:rotate(-3deg);transition:.25s ease}.envelope:hover{transform:rotate(-2deg) translateY(-5px)}.envelope::before{content:"";position:absolute;inset:0;clip-path:polygon(0 0,50% 56%,100% 0);background:rgba(255,255,255,.26)}.envelope--mae{transform:rotate(2.5deg) translateY(-9px);background:linear-gradient(145deg,#f5eadc,#e1cfba)}.envelope--mae:hover{transform:rotate(2deg) translateY(-14px)}.envelope span,.envelope small{position:relative;z-index:2}.envelope span{font-family:Georgia,"Times New Roman",serif;font-size:18px}.envelope small{margin-top:5px;color:#8c7562;letter-spacing:.07em}.envelope.is-read{opacity:.56;filter:saturate(.65)}.envelope.is-locked{opacity:.24}.letter-layer{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:70px 6vw;background:rgba(10,11,10,.42);backdrop-filter:blur(4px)}.letter-sheet{position:relative;width:min(720px,92vw);max-height:82svh;overflow:auto;padding:clamp(36px,5vw,68px);transform:rotate(-.25deg);background:linear-gradient(145deg,#fbf4e9,#eadcc9);color:#4b3d32;box-shadow:0 40px 120px rgba(0,0,0,.5)}.letter-close{position:absolute;top:14px;right:16px;width:36px;height:36px;border:0;background:transparent;color:#634e3f;font-size:26px;cursor:pointer}.letter-kicker{font-size:9px;font-weight:800;letter-spacing:.2em;color:#9b6e58}.letter-sheet h2{margin:14px 0 26px;font:500 clamp(30px,4vw,48px)/1.05 Georgia,serif}.letter-body{font:400 17px/1.68 Georgia,serif}.letter-body p{margin:0 0 18px}.letter-signature{margin:32px 0 0;text-align:right;font:italic 18px/1 Georgia,serif}

/* WORLD PRESENCE AND HOTSPOTS */
.scene-hotspot{position:absolute;z-index:13;pointer-events:auto;border:0;background:transparent;color:#fff;cursor:pointer;padding:30px}.scene-hotspot span{display:block;width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.7);box-shadow:0 0 0 8px rgba(255,255,255,.055),0 0 25px rgba(255,239,218,.2);animation:hotspot-breathe 1.9s ease-in-out infinite}.scene-hotspot strong{display:block;margin-top:10px;padding:6px 9px;border-radius:999px;background:rgba(13,14,13,.42);backdrop-filter:blur(8px);font-size:10px;font-weight:650;opacity:.78}@keyframes hotspot-breathe{50%{transform:scale(1.11);box-shadow:0 0 0 11px rgba(255,255,255,.025),0 0 28px rgba(255,239,218,.26)}}.scene-hotspot--road{left:50%;bottom:9%;transform:translateX(-50%)}.scene-hotspot--restaurant{right:19%;bottom:25%}.scene-hotspot--door{right:40%;bottom:24%}.world-breath{position:absolute;inset:0;pointer-events:none}.world-breath--door::after{content:"";position:absolute;left:46%;top:38%;width:80px;height:80px;border-radius:50%;background:rgba(255,215,163,.06);filter:blur(25px);animation:door-glow 2.5s ease-in-out infinite alternate}@keyframes door-glow{to{transform:scale(1.25);opacity:.45}}.world-breath--steam::before,.world-breath--steam::after{content:"";position:absolute;right:28%;bottom:22%;width:80px;height:160px;background:radial-gradient(ellipse,rgba(255,255,255,.08),transparent 65%);filter:blur(12px);animation:steam-rise 4s ease-in-out infinite}.world-breath--steam::after{right:35%;bottom:28%;animation-delay:1.3s}@keyframes steam-rise{0%{transform:translateY(30px) scale(.8);opacity:0}35%{opacity:.5}100%{transform:translateY(-40px) scale(1.25);opacity:0}}.memory-time-label{position:absolute;left:var(--safe-x);bottom:max(42px,env(safe-area-inset-bottom));padding:10px 13px;border-radius:11px;background:rgba(17,18,17,.45);backdrop-filter:blur(9px);color:rgba(255,255,255,.86);font-family:Georgia,"Times New Roman",serif;font-size:16px;animation:time-label-away .8s 2.2s forwards}@keyframes time-label-away{to{opacity:0;transform:translateY(4px)}}.menu-memory{position:absolute;left:var(--safe-x);bottom:max(42px,env(safe-area-inset-bottom));max-width:520px;padding:13px 16px;border-left:1px solid rgba(255,235,215,.42);background:linear-gradient(90deg,rgba(13,14,13,.43),transparent);color:rgba(255,255,255,.86);font-family:Georgia,"Times New Roman",serif;font-size:17px;line-height:1.45;animation:memory-note-in .6s .8s both}@keyframes memory-note-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.menu-memory p{margin:0}

/* DIALOGUE */
.story-panel{position:absolute;left:var(--safe-x);right:var(--safe-x);bottom:max(34px,env(safe-area-inset-bottom));margin:auto;max-width:920px;padding:22px 24px 21px;border:1px solid rgba(255,255,255,.13);border-radius:20px;background:linear-gradient(135deg,rgba(14,15,14,.72),rgba(13,14,13,.48));backdrop-filter:blur(16px);box-shadow:0 22px 60px rgba(0,0,0,.24);pointer-events:auto;animation:story-in .45s ease both}@keyframes story-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.story-panel--minimal{max-width:680px;background:rgba(13,14,13,.42)}.story-panel--advance{cursor:pointer;padding-right:58px}.story-speaker{margin:0 0 9px;color:#e0a084;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.story-text{font:400 clamp(18px,1.35vw,23px)/1.45 Georgia,serif}.story-text p{margin:0 0 10px}.story-text h1{margin:0 0 12px;font:500 clamp(32px,4.4vw,58px)/1 Georgia,serif}.story-eyebrow{margin:0 0 9px!important;color:#d89a80;font:700 9px/1.2 system-ui!important;letter-spacing:.16em}.tap-cue{position:absolute;right:22px;bottom:20px;display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(255,255,255,.24);border-radius:50%;color:rgba(255,255,255,.65);font-size:20px;opacity:0;animation:tap-cue-in .4s 3.4s forwards}@keyframes tap-cue-in{to{opacity:1}}.story-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:17px}.story-actions--delayed{opacity:1;pointer-events:auto}.choice-button{flex:1 1 220px;border:1px solid rgba(255,255,255,.19);border-radius:13px;background:rgba(255,255,255,.055);padding:13px 15px;text-align:left;cursor:pointer;transition:.2s ease}.choice-button:hover{background:rgba(255,255,255,.11);border-color:rgba(255,213,185,.34)}.language-block{position:relative;margin-top:13px;padding:15px 74px 14px 16px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(8,9,8,.32);display:grid;gap:5px}.language-block>strong{font:500 22px/1.25 system-ui,sans-serif}.romanization{color:rgba(255,255,255,.52);font-size:11px}.translation{color:rgba(255,255,255,.8);font-family:Georgia,serif;font-size:14px}.language-float-tools{position:absolute;right:10px;top:10px;display:flex;gap:6px}.audio-chip,.mic-chip{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.05);cursor:pointer;display:grid;place-items:center}.language-tools{display:flex;align-items:center;gap:8px;margin-top:4px}.language-tools>button{border:0;background:transparent;padding:4px 0;color:#dca38b;font-size:11px;cursor:pointer}.mae-aside{margin-top:12px;padding:11px 13px;border-left:1px solid rgba(220,172,139,.55);color:rgba(255,255,255,.75);font-size:13px;line-height:1.45}.mae-aside span{display:block;margin-bottom:3px;color:#dfaa93;font-weight:800}.inline-reply{position:relative;margin-top:18px;padding:12px 48px 12px 14px;border-top:1px solid rgba(255,255,255,.11);display:flex;align-items:center;gap:12px;opacity:0;animation:inline-reply-in .45s 3s forwards}.inline-reply span{color:#dca28a;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.inline-reply strong{font:500 22px/1.2 system-ui}.inline-reply .audio-chip{position:absolute;right:8px;top:8px}@keyframes inline-reply-in{to{opacity:1}}
.icon-speaker{display:inline-block;width:13px;height:13px;position:relative}.icon-speaker::before{content:"";position:absolute;left:1px;top:4px;width:4px;height:5px;border:1px solid currentColor;border-right:0}.icon-speaker::after{content:"))";position:absolute;left:5px;top:-2px;font:9px/13px system-ui;letter-spacing:-2px}.icon-mic{display:block;width:8px;height:12px;border:1px solid currentColor;border-radius:5px;margin:auto;position:relative}.icon-mic::after{content:"";position:absolute;width:10px;height:5px;left:-2px;bottom:-5px;border-bottom:1px solid currentColor;border-radius:0 0 8px 8px}

/* MEMORY TRANSITION */
.memory-transition{position:fixed;inset:0;z-index:120;overflow:hidden;pointer-events:none;background:rgba(12,11,10,.04);backdrop-filter:blur(0);animation:memory-in 1.7s cubic-bezier(.18,.8,.2,1) both}.memory-transition::before{content:"";position:absolute;inset:-15%;background:radial-gradient(circle at center,transparent 18%,rgba(16,12,10,.52) 72%);animation:memory-pulse 1.7s ease both}.memory-transition__wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(220,174,125,.05),rgba(255,243,222,.13),rgba(100,76,56,.04));mix-blend-mode:screen;animation:memory-wash 1.7s ease both}.memory-transition__line{position:absolute;top:50%;left:-15%;width:130%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,239,214,.64),transparent);box-shadow:0 0 28px rgba(255,225,183,.5);animation:memory-line 1.55s ease both}.memory-transition__time{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;gap:8px;text-align:center;text-shadow:0 2px 18px rgba(0,0,0,.6)}.memory-transition__time span{color:rgba(255,255,255,.42);font-size:11px;letter-spacing:.16em;animation:old-time .7s .2s forwards}.memory-transition__time strong{font:500 clamp(27px,4vw,48px)/1.1 Georgia,serif;opacity:0;transform:translateY(8px);animation:new-time .6s .75s forwards}.memory-transition.is-leaving{animation:memory-out .65s ease both}@keyframes memory-in{0%{opacity:0;backdrop-filter:blur(0)}42%{opacity:1;backdrop-filter:blur(8px)}100%{opacity:1;backdrop-filter:blur(2px)}}@keyframes memory-out{to{opacity:0;backdrop-filter:blur(0)}}@keyframes memory-pulse{0%{transform:scale(1.2);opacity:0}58%{opacity:1}100%{transform:scale(.97);opacity:.72}}@keyframes memory-wash{0%{transform:translateX(18%);opacity:0}50%{opacity:1}100%{transform:translateX(-18%);opacity:.2}}@keyframes memory-line{0%{transform:translateY(130px);opacity:0}35%{opacity:1}100%{transform:translateY(-120px);opacity:0}}@keyframes old-time{to{opacity:.15;transform:translateY(-10px)}}@keyframes new-time{to{opacity:1;transform:none}}

/* OBJECTS */
.object-layer{position:absolute;inset:0;pointer-events:none}.wallet-object{pointer-events:auto;position:absolute;left:45%;top:53%;width:98px;height:59px;border:0;border-radius:9px 11px 9px 8px;background:linear-gradient(155deg,#5a3325,#2e1914 58%,#6c3c29);box-shadow:0 12px 18px rgba(0,0,0,.32),inset 0 0 0 1px rgba(255,202,156,.13);transform:rotate(-8deg);cursor:pointer;transition:.28s ease}.wallet-object::before{content:"";position:absolute;inset:5px;border:1px dashed rgba(224,166,113,.42);border-radius:6px}.wallet-object:hover{transform:rotate(-6deg) translateY(-3px)}.wallet-object.is-taken{opacity:0;transform:translateY(-16px) scale(.94);pointer-events:none}.object-hotspot{pointer-events:auto;position:absolute;border:0;background:transparent;color:#fff;cursor:pointer}.object-hotspot span{position:absolute;width:32px;height:32px;border:1px solid rgba(255,255,255,.72);border-radius:50%;box-shadow:0 0 0 8px rgba(255,255,255,.06);animation:hotspot-breathe 1.8s ease-in-out infinite}.object-hotspot--jacket{left:63%;top:46%;width:150px;height:250px}.object-hotspot--jacket span{left:58px;top:82px}.object-hotspot.is-taken{opacity:.18;pointer-events:none}.exit-hotspot{pointer-events:auto;position:absolute;right:var(--safe-x);bottom:max(42px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:9px;border:0;background:transparent;color:#fff;cursor:pointer}.exit-hotspot span{width:27px;height:27px;border:1px solid rgba(255,255,255,.7);border-radius:50%;box-shadow:0 0 0 7px rgba(255,255,255,.05)}.exit-hotspot strong{padding:8px 11px;border-radius:999px;background:rgba(12,13,12,.5);backdrop-filter:blur(8px);font-size:11px}

/* EXPERIENCE MENU */
.experience-menu{position:fixed;inset:0;z-index:1200;height:100dvh;overflow:hidden}.experience-menu__backdrop{position:absolute;inset:0;background:rgba(5,7,7,.52);backdrop-filter:blur(7px)}.experience-menu__panel{position:absolute;top:0;right:0;width:min(980px,92vw);height:100dvh;display:grid;grid-template-columns:190px 1fr;grid-template-rows:auto 1fr auto;background:linear-gradient(145deg,#f4ebdd,#e8dac5);color:#493b31;box-shadow:-28px 0 90px rgba(0,0,0,.36);animation:menu-in .42s cubic-bezier(.22,.8,.2,1) both}@keyframes menu-in{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}.experience-menu__panel>header{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid rgba(82,60,44,.12)}.menu-brand{display:flex;align-items:baseline;gap:7px}.menu-brand strong{font:700 18px/1 Georgia,serif;letter-spacing:.14em}.menu-brand span{font-size:8px;letter-spacing:.2em}.experience-menu__panel>header button{width:38px;height:38px;border:0;background:transparent;color:#5f4b3d;font-size:26px;cursor:pointer}.experience-menu__panel>nav{grid-column:1;grid-row:2;display:flex;flex-direction:column;padding:22px 14px;border-right:1px solid rgba(82,60,44,.12);background:rgba(112,88,63,.045)}.experience-menu__panel>nav button{border:0;border-left:2px solid transparent;background:transparent;color:#6b584a;padding:13px 12px;text-align:left;cursor:pointer;font-size:12px;line-height:1.35}.experience-menu__panel>nav button.is-active{border-left-color:#a85c47;color:#3e3129;font-weight:800;background:rgba(168,92,71,.055)}.experience-menu__body{grid-column:2;grid-row:2;overflow:auto;padding:26px 34px 38px}.experience-menu__panel>footer{grid-column:1/-1;display:flex;justify-content:space-between;padding:14px 22px;border-top:1px solid rgba(82,60,44,.12)}.experience-menu__panel>footer button{border:0;background:transparent;color:#6a5546;cursor:pointer;font-size:11px}.menu-section{max-width:760px}.menu-section-head p{margin:0;color:#a75d49;font-size:8px;font-weight:800;letter-spacing:.18em}.menu-section-head h2{margin:7px 0 5px;font:500 clamp(29px,3.4vw,44px)/1 Georgia,serif}.menu-section-head>span{color:#8a7766;font-size:10px}.menu-section--passport .travel-docs{grid-template-columns:minmax(360px,1.2fr) minmax(230px,.7fr);gap:18px;margin-top:22px}.menu-section--passport .passport-book{min-height:280px}.menu-section--passport .passport-cover,.menu-section--passport .passport-pages{min-height:280px}.menu-section--passport .passport-page{padding:20px 16px}.menu-section--passport .passport-page h3{font-size:20px}.menu-section--passport .passport-page dl div{grid-template-columns:74px 1fr}.menu-section--passport .immersion-id-card__body>p{font-size:21px}.notebook-book{display:grid;grid-template-columns:1fr 1fr;min-height:440px;margin-top:24px;background:#f5ecdd;border:1px solid rgba(95,70,53,.15);box-shadow:0 24px 45px rgba(78,56,39,.13);position:relative}.notebook-book::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(104,77,57,.17);box-shadow:0 0 14px rgba(104,77,57,.08)}.notebook-page{padding:30px 28px;background-image:linear-gradient(rgba(127,98,76,.06) 1px,transparent 1px);background-size:100% 28px}.notebook-page h3{margin:0 0 24px;font:500 22px/1 Georgia,serif}.notebook-page p,.notebook-page li{font:400 14px/1.65 Georgia,serif;color:#6c5a4d}.notebook-page ol{padding-left:18px}.notebook-expression{position:relative;display:grid;gap:4px;padding:12px 38px 12px 0;border-bottom:1px solid rgba(104,77,57,.13)}.notebook-expression strong{font:600 18px/1.2 system-ui}.notebook-expression small{color:#9a7b66;font-size:9px}.notebook-expression span{font:400 13px/1.45 Georgia,serif}.notebook-expression button{position:absolute;right:0;top:14px;width:30px;height:30px;border:1px solid rgba(92,65,49,.2);border-radius:50%;background:transparent;color:#694c3c;cursor:pointer}.menu-paper-copy{max-width:620px;margin-top:26px;padding:28px 30px;background:#f7efe3;border:1px solid rgba(93,67,49,.13);box-shadow:0 18px 40px rgba(77,57,42,.08)}.menu-paper-copy p{margin:0 0 16px;font:400 16px/1.65 Georgia,serif;color:#655246}.menu-paper-copy p:last-child{margin-bottom:0}

/* ACCOUNT MODAL */
.modal-layer{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 25% 20%,rgba(163,88,58,.18),transparent 30%),rgba(5,7,7,.72);backdrop-filter:blur(14px)}.passport-modal{position:relative;display:grid;grid-template-columns:minmax(230px,.78fr) minmax(320px,1.22fr);width:min(790px,94vw);max-height:min(760px,92svh);overflow:auto;border:1px solid rgba(255,245,225,.22);border-radius:26px;background:#f3eadc;color:#493a30;box-shadow:0 38px 120px rgba(0,0,0,.55);animation:passport-auth-in .55s cubic-bezier(.2,.8,.2,1) both}.modal-close{position:absolute;right:16px;top:14px;z-index:3;width:38px;height:38px;border:1px solid rgba(91,65,49,.15);border-radius:50%;background:rgba(255,250,242,.76);color:#5f493a;font-size:24px;cursor:pointer}.passport-auth-visual{position:relative;display:grid;place-items:center;align-content:center;gap:22px;min-height:570px;padding:38px;overflow:hidden;background:linear-gradient(145deg,rgba(39,28,22,.20),rgba(19,18,15,.72)),url("assets/scene1/room-desk-desktop.webp") center/cover}.passport-auth-visual::after{content:"";position:absolute;inset:-20%;background:linear-gradient(110deg,transparent 42%,rgba(255,234,196,.10) 50%,transparent 58%);animation:passport-light 7s ease-in-out infinite}.passport-auth-visual>p{position:relative;z-index:1;margin:0;color:rgba(255,244,224,.74);font-size:9px;letter-spacing:.2em}.passport-auth-book{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:190px;aspect-ratio:.72;border-radius:15px 6px 6px 15px;background:linear-gradient(145deg,#472d24,#271916);color:#d9b88a;border:1px solid rgba(239,207,160,.24);box-shadow:0 30px 60px rgba(0,0,0,.45);transform:rotate(-2deg);animation:passport-book-breathe 5.5s ease-in-out infinite}.passport-auth-book span{font-size:10px;letter-spacing:.22em}.passport-auth-book strong{margin-top:5px;font:600 27px/1 Georgia,serif;letter-spacing:.15em}.passport-auth-book small{margin-top:36px;font-size:7px;letter-spacing:.18em}.passport-auth-book i{position:absolute;left:22px;right:22px;bottom:35px;height:1px;background:rgba(217,184,138,.34)}.passport-auth-content{padding:44px 42px 36px}.modal-kicker{margin:0;color:#9b5f4c;font-size:9px;font-weight:800;letter-spacing:.18em}.passport-modal h2{margin:9px 0 10px;font:500 clamp(30px,4vw,42px)/1 Georgia,serif}.modal-copy{margin:0 0 22px;color:#756153;font:400 15px/1.5 Georgia,serif}.passport-form{display:grid;gap:12px}.passport-form label{display:grid;gap:6px;font-size:10px;color:#806b5b}.passport-form input{width:100%;border:1px solid rgba(91,65,49,.2);border-radius:12px;background:#fffaf2;color:#43352c;padding:13px 14px;outline:none;transition:border-color .2s,box-shadow .2s}.passport-form input:focus{border-color:#9b5f4c;box-shadow:0 0 0 3px rgba(155,95,76,.12)}.modal-primary,.modal-secondary{width:100%;border-radius:999px;padding:12px 18px;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}.modal-primary:hover,.modal-secondary:hover{transform:translateY(-1px)}.modal-primary{margin-top:4px;border:0;background:linear-gradient(135deg,#9e5944,#7f3e31);color:#fff;box-shadow:0 12px 24px rgba(105,51,40,.20)}.modal-primary:disabled{opacity:.55;cursor:wait}.modal-secondary{border:1px solid rgba(91,65,49,.2);background:transparent;color:#624f42}.passport-forgot{justify-self:end;margin-top:-3px;border:0;background:transparent;color:#8d4938;font-size:11px;cursor:pointer}.passport-auth-switch{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(91,65,49,.14)}.passport-auth-switch>span{color:#806b5b;font-size:11px}.passport-auth-switch .modal-secondary{width:auto;min-width:140px}.passport-guest{margin-top:12px}.passport-auth-status{min-height:18px;color:#8d4938;font-size:11px;line-height:1.4}.passport-auth-status.is-success{color:#4b7355}.passport-modal[data-auth-view="signup"] .passport-auth-book{transform:rotate(1.5deg) scale(1.02)}.passport-modal[data-auth-view="confirm"] .passport-auth-book,.passport-modal[data-auth-view="recovery-sent"] .passport-auth-book{animation:none;transform:none}.demo-toast{position:fixed;z-index:300;left:50%;bottom:24px;transform:translate(-50%,12px);padding:10px 14px;border-radius:999px;background:rgba(18,20,19,.9);color:#fff;font-size:11px;opacity:0;pointer-events:none;transition:.25s ease}.demo-toast.is-visible{opacity:1;transform:translate(-50%,0)}@keyframes passport-auth-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}@keyframes passport-light{0%,100%{transform:translateX(-16%)}50%{transform:translateX(16%)}}@keyframes passport-book-breathe{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(-1deg) translateY(-6px)}}@media(max-width:700px){.modal-layer{padding:10px}.passport-modal{grid-template-columns:1fr;max-height:94svh}.passport-auth-visual{min-height:150px;padding:20px}.passport-auth-book{width:92px}.passport-auth-book small,.passport-auth-book i{display:none}.passport-auth-visual>p{display:none}.passport-auth-content{padding:28px 22px 24px}.modal-close{right:10px;top:10px}.passport-auth-switch{grid-template-columns:1fr}.passport-auth-switch .modal-secondary{width:100%}}@media(prefers-reduced-motion:reduce){.passport-modal,.passport-auth-book,.passport-auth-visual::after{animation:none!important}}

@media(max-width:820px){
  :root{--safe-x:16px}.topbar{padding-top:max(16px,env(safe-area-inset-top))}.brand__logo{width:82px;height:82px}.brand__wordmark{display:none}.sound-button{width:44px;height:44px}.sound-button__label{display:none}.hero{left:16px;right:16px;top:auto;bottom:max(42px,env(safe-area-inset-bottom));transform:none;width:auto}.hero h1{font-size:clamp(46px,14vw,70px)}.hero__intro{font-size:20px;margin-top:15px}.hero__actions{margin-top:22px}.start-button{min-width:min(270px,80vw);font-size:18px;padding:13px 28px}.cover__veil{background:linear-gradient(180deg,rgba(8,12,12,.3),rgba(8,12,12,.08) 38%,rgba(8,12,12,.7) 82%,rgba(8,12,12,.85))}
  .profile-stage{padding:86px 16px 30px;align-items:center}.profile-card__head h1{font-size:clamp(34px,10vw,50px)}.profile-name-form{display:grid;gap:14px}.profile-primary,.profile-secondary{width:100%}.profile-choice{padding:15px 14px}.profile-choice strong{font-size:18px}.profile-choice small{font-size:11px}.travel-docs{display:block;margin-top:22px}.passport-book{grid-template-columns:36% 64%;min-height:270px}.passport-cover,.passport-pages{min-height:270px}.passport-cover strong{font-size:14px}.passport-emblem{width:44px;height:44px;margin:16px 0;font-size:22px}.passport-pages{grid-template-columns:1fr}.passport-page--visa{display:none}.passport-page{padding:20px 15px}.passport-page h3{font-size:20px;margin:14px 0 16px}.passport-page dl div{grid-template-columns:68px 1fr}.immersion-id-card{margin:18px 7vw 0}.profile-card--documents .immersion-id-card{margin-left:9vw;margin-right:2vw;transform:rotate(1deg)}.docs-hint{text-align:center;font-size:13px}
  .scene-hud{padding-top:max(14px,env(safe-area-inset-top));padding-left:16px;padding-right:16px}.scene-hud__actions{gap:5px}.hud-lang,.hud-sound,.hud-menu{width:36px;height:36px}.scene__picture{inset:-1.5%}.scene__image{width:103%;height:103%}.wake-time{left:18px;bottom:max(28px,env(safe-area-inset-bottom))}.wake-time strong{font-size:30px}
  .phone-stage{padding:70px 14px max(18px,env(safe-area-inset-bottom));align-items:flex-end;justify-content:center}.phone-device{width:min(77vw,318px);max-height:69svh;transform:translateY(18px) rotate(.4deg)}.phone-lock-time{font-size:50px}.phone-message{font-size:12.5px}.phone-memory-link{font-size:11.5px}
  .letter-table{display:block;padding:0}.letter-envelopes{position:absolute;left:12px;right:12px;bottom:max(24px,env(safe-area-inset-bottom));justify-content:center;gap:9px;padding:0}.envelope{width:min(43vw,185px)}.envelope span{font-size:14px}.letter-layer{padding:66px 13px 20px;align-items:end}.letter-sheet{width:100%;max-height:78svh;padding:32px 24px 36px}.letter-sheet h2{font-size:32px}.letter-body{font-size:15px}
  .scene-hotspot{padding:22px}.scene-hotspot--road{bottom:8%}.scene-hotspot--restaurant{right:9%;bottom:23%}.scene-hotspot--door{right:31%;bottom:24%}.scene-hotspot strong{font-size:9px}.memory-time-label,.menu-memory{left:16px;right:16px;bottom:max(28px,env(safe-area-inset-bottom));max-width:none}.menu-memory{font-size:15px}.story-panel{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));max-height:47svh;padding:17px 17px 16px;border-radius:17px;overflow:auto}.story-panel--advance{padding-right:48px}.story-text{font-size:17px}.language-block{padding:13px 68px 13px 14px}.language-block>strong{font-size:20px}.translation{font-size:13px}.choice-button{flex-basis:100%;font-size:13px}.tap-cue{right:16px;bottom:16px}.object-hotspot--jacket{left:59%;top:43%;width:120px;height:210px}.object-hotspot--jacket span{left:44px;top:76px}.wallet-object{left:44%;top:50%;width:74px;height:45px}.exit-hotspot{right:16px;bottom:max(28px,env(safe-area-inset-bottom))}
  .experience-menu__panel{width:100vw;grid-template-columns:1fr;grid-template-rows:auto auto 1fr auto}.experience-menu__panel>header{grid-column:1;padding:16px}.experience-menu__panel>nav{grid-column:1;grid-row:2;flex-direction:row;overflow-x:auto;padding:8px 10px;border-right:0;border-bottom:1px solid rgba(82,60,44,.12);gap:4px}.experience-menu__panel>nav button{white-space:nowrap;border-left:0;border-bottom:2px solid transparent;padding:10px 9px}.experience-menu__panel>nav button.is-active{border-left:0;border-bottom-color:#a85c47}.experience-menu__body{grid-column:1;grid-row:3;padding:20px 16px 28px}.experience-menu__panel>footer{grid-column:1;grid-row:4;padding:12px 14px}.menu-section--passport .travel-docs{display:block}.menu-section--passport .passport-book{min-height:265px}.menu-section--passport .passport-cover,.menu-section--passport .passport-pages{min-height:265px}.menu-section--passport .immersion-id-card{margin:16px 6vw 0}.notebook-book{display:block;min-height:0}.notebook-book::before{display:none}.notebook-page{min-height:280px;border-bottom:1px solid rgba(104,77,57,.15)}.menu-paper-copy{padding:22px 20px}.menu-section-head h2{font-size:32px}
}
@media(max-width:520px){.passport-book{grid-template-columns:38% 62%}.passport-cover{padding:12px}.passport-cover small{letter-spacing:.12em}.passport-page dl div{display:block}.passport-page dt{margin-bottom:2px}.passport-page dd{font-size:9px}.immersion-id-card dl div{grid-template-columns:68px 1fr}}
@media(prefers-reduced-motion:reduce){.cover__image-inner,.cover__air,.cover__glow,.leaf,.scene::after,.scene[data-mode=wake] .scene__image,.eyelid,.wake-layer,.wake-time,.scene-hotspot span,.object-hotspot span,.world-breath--steam::before,.world-breath--steam::after,.world-breath--door::after,.memory-transition,.memory-transition::before,.memory-transition__wash,.memory-transition__line,.memory-transition__time *{animation:none!important}.wake-layer{background:transparent}.eyelid{display:none}.wake-time{opacity:1;transform:none}}

/* Sequential client response: chosen answer first, context line second. */
.client-detail-line{opacity:0;transform:translateY(5px);animation:client-detail-in .42s 1.18s ease forwards;color:rgba(255,255,255,.88)}
@keyframes client-detail-in{to{opacity:1;transform:none}}

.profile-choice{grid-template-columns:1fr auto}.profile-choice__index{display:none}

/* =========================================================
   SCENE 1 — CANON RECOVERED 07/09/2026
   In-world card, slower pacing, physical documents and richer dialogue.
   ========================================================= */

/* The profile is now filled inside the room, after the two letters. */
.profile-flow__bg{background-image:url("assets/scene1/room-desk-desktop.webp");background-position:center 48%;filter:blur(1.2px) brightness(.78);transform:scale(1.035)}
.profile-flow__veil{background:linear-gradient(90deg,rgba(35,29,23,.58),rgba(35,29,23,.30) 55%,rgba(35,29,23,.48)),radial-gradient(circle at 72% 28%,rgba(224,177,116,.14),transparent 30%)}
.profile-stage{justify-items:start}
.profile-card{position:relative;width:min(720px,100%);padding:clamp(28px,4vw,48px);border:1px solid rgba(98,74,53,.22);border-radius:5px;background:linear-gradient(145deg,rgba(250,243,231,.97),rgba(231,217,197,.97));color:#493c32;box-shadow:0 34px 90px rgba(0,0,0,.42);transform:rotate(-.18deg)}
.profile-card::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.24;background-image:linear-gradient(rgba(119,91,69,.06) 1px,transparent 1px);background-size:100% 26px;mix-blend-mode:multiply}
.profile-card__head,.profile-card__body,.profile-back,.profile-mae-note{position:relative;z-index:1}
.profile-card__head p{color:#9a5e49}.profile-card__head h1{color:#47382e;font-size:clamp(34px,4.7vw,58px)}
.profile-card__text{color:#746052;font-size:clamp(16px,1.45vw,20px)}
.profile-choice{border:1px solid rgba(91,66,47,.17);border-radius:9px;background:rgba(255,252,246,.52);backdrop-filter:none;color:#4a3c32;padding:15px 17px}
.profile-choice:hover,.profile-choice.is-selected{transform:translateX(3px);border-color:rgba(159,88,65,.46);background:rgba(177,102,74,.08)}
.profile-choice strong{color:#45372d}.profile-choice small{color:#8b7565}.profile-choice__arrow{color:#9b6b54}.profile-back{color:#806a5a}
.profile-name-form input{color:#493a30;border-bottom-color:rgba(84,62,47,.32)}.profile-name-form input::placeholder{color:rgba(73,58,48,.38)}
.profile-primary{background:#8f4d3b;color:#fff;border-color:#8f4d3b}.profile-secondary{color:#5f4a3d;border-color:rgba(91,65,49,.22);background:rgba(255,255,255,.28)}
.profile-mae-note{max-width:590px;margin:-4px 0 26px;padding:13px 15px;border-left:2px solid #a15d48;background:rgba(255,255,255,.34);font:400 14px/1.55 Georgia,serif;color:#5e4a3d}
.profile-mae-note span{display:block;margin-bottom:4px;color:#995945;font:800 9px/1 system-ui;letter-spacing:.14em;text-transform:uppercase}.profile-mae-note p{margin:0}
.profile-card--documents{width:min(980px,100%)}
.travel-docs--traveler{grid-template-columns:minmax(470px,1fr);max-width:760px}.travel-docs--traveler .passport-book{max-width:760px}

/* Phone lock screen: DOBOX + Mae notifications, both visible in-world. */
.phone-notification-stack{position:absolute;left:12px;right:12px;bottom:9%;display:grid;gap:8px}
.phone-notification-stack .phone-notification{position:relative;left:auto;right:auto;bottom:auto;width:100%}
.phone-notification--mae{cursor:default;opacity:.94;background:rgba(239,236,229,.82)}

/* Long Mae thread after the flashback. */
.phone-thread--long{gap:7px;padding-bottom:62px;overflow:auto;max-height:calc(100% - 64px);scrollbar-width:none}
.phone-thread--long::-webkit-scrollbar{display:none}
.phone-thread--long .phone-message{font-size:11.5px;line-height:1.38;padding:8px 9px}
.phone-thread--long .phone-message--1{animation-delay:.55s}.phone-thread--long .phone-message--2{animation-delay:1.8s}.phone-thread--long .phone-message--3{animation-delay:3.0s}.phone-thread--long .phone-message--4{animation-delay:4.3s}.phone-thread--long .phone-message--5{animation-delay:6.3s}.phone-thread--long .phone-message--6{animation-delay:8.6s}
.phone-memory-link--gift{animation-delay:4.05s}

/* Letter is still a physical paper object, not a full application page. */
.letter-sheet{border-radius:2px;background:linear-gradient(145deg,#fbf4e9,#eadcc9);box-shadow:0 35px 110px rgba(0,0,0,.46),inset 0 0 0 1px rgba(103,75,55,.06)}
.letter-sheet::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.3;background-image:linear-gradient(rgba(125,96,72,.05) 1px,transparent 1px);background-size:100% 29px}
.letter-kicker,.letter-sheet h2,.letter-body,.letter-signature{position:relative;z-index:1}
.letter-signature{white-space:pre-line;line-height:1.45}
@media(min-width:900px){.letter-sheet{width:min(900px,88vw)}.letter-body{column-count:2;column-gap:42px}.letter-body p{break-inside:avoid}}

/* Quiet room after letters. */
.room-time-note{position:absolute;left:var(--safe-x);bottom:max(38px,env(safe-area-inset-bottom));display:grid;gap:4px;padding:11px 13px;border-left:1px solid rgba(255,244,224,.46);background:linear-gradient(90deg,rgba(18,16,14,.36),transparent);text-shadow:0 2px 14px rgba(0,0,0,.35);animation:room-note-in .8s 1.2s both}
.room-time-note strong{font:500 18px/1 Georgia,serif}.room-time-note span{color:rgba(255,255,255,.66);font-size:9px;letter-spacing:.16em;text-transform:uppercase}@keyframes room-note-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.world-breath--curtain::after{content:"";position:absolute;right:8%;top:8%;width:20%;height:62%;background:linear-gradient(90deg,transparent,rgba(255,236,210,.08),transparent);filter:blur(9px);animation:curtain-light 5.6s ease-in-out infinite alternate}@keyframes curtain-light{to{transform:translateX(8px);opacity:.55}}

.street-presence-note{position:absolute;left:var(--safe-x);bottom:max(42px,env(safe-area-inset-bottom));padding:10px 13px;background:rgba(18,18,17,.35);backdrop-filter:blur(8px);font:400 15px/1.4 Georgia,serif;color:rgba(255,255,255,.83);animation:memory-note-in .6s 1.1s both}

/* Dialogue sequence: lines appear with actual pauses instead of slide changes. */
.dialogue-sequence{position:relative;display:grid;gap:12px}.dialogue-sequence__line{opacity:0;transform:translateY(7px);animation:dialogue-seq-in .45s ease forwards;animation-delay:var(--delay)}
.dialogue-sequence__line span{display:block;margin-bottom:4px;color:#dda38b;font:800 9px/1 system-ui;letter-spacing:.12em;text-transform:uppercase}.dialogue-sequence__line p{margin:0;font:400 clamp(17px,1.2vw,21px)/1.45 Georgia,serif}.dialogue-sequence__line p[lang=ko]{font-family:system-ui,sans-serif;font-weight:600;font-size:22px}
.dialogue-sequence__audio{position:absolute;right:0;top:0}@keyframes dialogue-seq-in{to{opacity:1;transform:none}}
.client-echo{margin-bottom:14px!important;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.78)}

/* Passport waiting state before the card is filled. */
.passport-waiting{margin-top:24px;display:flex;align-items:center;gap:24px;max-width:650px}.passport-waiting__book{width:190px;aspect-ratio:.72;border-radius:12px 5px 5px 12px;background:linear-gradient(145deg,#3b2821,#261915);color:#d4b58b;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 24px 45px rgba(0,0,0,.18);border:1px solid rgba(212,181,139,.17)}.passport-waiting__book span{font-size:9px;letter-spacing:.18em}.passport-waiting__book strong{margin-top:28px;font:600 19px/1 Georgia,serif;letter-spacing:.14em}.passport-waiting__book small{margin-top:12px;font-size:7px;letter-spacing:.18em}.passport-waiting>p{max-width:340px;color:#7b6758;font:400 15px/1.55 Georgia,serif}

/* Slightly more tactile menu — travel folio, not settings dashboard. */
.experience-menu__panel{background:linear-gradient(145deg,#f2e8d8,#e5d5bf)}
.experience-menu__panel>nav{background:rgba(105,80,58,.045)}.experience-menu__panel>nav button{font-family:Georgia,serif;font-size:13px}.experience-menu__panel>nav button.is-active{background:rgba(164,91,67,.07)}

/* Longer memory transition = recollection, not a slide change. */
.memory-transition{animation-duration:2.5s}.memory-transition::before,.memory-transition__wash{animation-duration:2.5s}.memory-transition__line{animation-duration:2.25s}.memory-transition__time strong{animation-delay:1.15s}

@media(max-width:820px){
  .profile-flow__bg{background-image:url("assets/scene1/room-desk-mobile.webp");background-position:center 50%}
  .profile-stage{justify-items:center;padding-top:78px}.profile-card{padding:26px 20px;max-height:86svh;overflow:auto}.profile-card__head h1{font-size:clamp(30px,9vw,45px)}
  .profile-mae-note{font-size:13px;margin-bottom:18px}
  .phone-thread--long .phone-message{font-size:10.7px}.phone-thread--long{padding-bottom:58px}
  .letter-body{column-count:1}.letter-sheet{max-height:80svh}.letter-signature{font-size:16px}
  .street-presence-note{left:16px;right:16px;bottom:max(26px,env(safe-area-inset-bottom));font-size:14px}
  .dialogue-sequence__line p{font-size:16px}.passport-waiting{display:block}.passport-waiting__book{width:150px;margin:0 auto 20px}.passport-waiting>p{text-align:center;margin:0 auto}
}

.client-practice{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.10)}.client-practice>span{display:block;margin-bottom:7px;color:#dca28a;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.scene[data-mode=afterletters] .scene__image{animation:after-letters-look 5.8s ease-in-out both}@keyframes after-letters-look{0%{transform:scale(1.035) translateX(0)}55%{transform:scale(1.045) translateX(-.5%)}100%{transform:scale(1.04) translateX(.35%)}}
.scene[data-mode=card] .scene__image{animation:desk-glance .9s ease both}@keyframes desk-glance{from{transform:scale(1.05) translateY(-1.5%);filter:brightness(.94)}to{transform:scale(1.03) translateY(0);filter:brightness(1)}}

/* V5 — Mae integration, language audio affordances, responsive hardening */
.mae-avatar{display:block;object-fit:cover;object-position:50% 22%;border-radius:50%;background:#efe2d5;border:1px solid rgba(255,255,255,.55);box-shadow:0 4px 12px rgba(0,0,0,.18);flex:0 0 auto}
.mae-avatar--notification{width:34px;height:34px;grid-column:1;grid-row:1/3;align-self:center}
.phone-notification--mae{grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;align-items:center}
.phone-notification--mae .phone-notification__app,.phone-notification--mae strong{grid-column:2;min-width:0;overflow-wrap:anywhere}
.phone-thread-head{grid-template-columns:22px 36px minmax(0,1fr);gap:7px}
.mae-avatar--header{width:36px;height:36px}
.phone-thread-head>div{min-width:0}.phone-thread-head strong,.phone-thread-head small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phone-thread{min-width:0}.phone-message-row{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:end;gap:7px;min-width:0}.phone-message-row+.phone-message-row{margin-top:-2px}
.mae-avatar--message{width:28px;height:28px;margin-bottom:2px}.mae-avatar-spacer{width:28px}
.phone-message{max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:normal}
.phone-thread--long .phone-message-row{grid-template-columns:24px minmax(0,1fr);gap:6px}.phone-thread--long .mae-avatar--message,.phone-thread--long .mae-avatar-spacer{width:24px;height:24px}

.mae-guide-overlay{position:absolute;left:clamp(26px,5vw,76px);bottom:clamp(42px,7vh,96px);z-index:7;width:clamp(122px,11vw,172px);pointer-events:none;opacity:0;transform:translateY(10px);animation:mae-guide-in .55s 1s ease forwards;filter:drop-shadow(0 20px 28px rgba(0,0,0,.26))}
.mae-guide-overlay__portrait{height:clamp(165px,23vh,245px);overflow:hidden;border-radius:68px 68px 24px 24px;background:linear-gradient(180deg,rgba(249,239,226,.88),rgba(232,210,186,.72));border:1px solid rgba(255,255,255,.42)}
.mae-guide-overlay__portrait img{width:100%;height:150%;object-fit:cover;object-position:50% 4%;display:block}
.mae-guide-overlay__label{width:max-content;max-width:100%;margin:-10px auto 0;padding:8px 12px;border-radius:999px;background:rgba(26,26,24,.76);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.16);text-align:center;color:#fff}.mae-guide-overlay__label strong{display:block;font:700 11px/1 Georgia,serif}.mae-guide-overlay__label span{display:block;margin-top:2px;font-size:7px;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.66)}
@keyframes mae-guide-in{to{opacity:.95;transform:none}}

.profile-mae-note{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:13px;padding:10px 15px 10px 9px;overflow:hidden}
.profile-mae-note__portrait{width:54px;height:66px;overflow:hidden;border-radius:28px 28px 14px 14px;background:#ead8c6;border:1px solid rgba(117,79,60,.16)}
.profile-mae-note__portrait img{display:block;width:100%;height:145%;object-fit:cover;object-position:50% 3%}
.profile-mae-note>div:last-child{min-width:0}.profile-mae-note p{overflow-wrap:anywhere}
.mae-aside{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;padding:9px 13px 9px 8px;overflow:hidden}
.mae-aside__portrait{width:48px;height:58px;overflow:hidden;border-radius:26px 26px 12px 12px;background:rgba(237,220,202,.9);border:1px solid rgba(255,255,255,.18)}
.mae-aside__portrait img{display:block;width:100%;height:145%;object-fit:cover;object-position:50% 3%}.mae-aside p{margin:0;overflow-wrap:anywhere}.mae-aside>div:last-child{min-width:0}

.story-panel,.story-text,.story-actions,.choice-button,.language-block,.language-block>*{min-width:0}.story-panel{overflow-wrap:anywhere}.story-actions{align-items:stretch}.choice-button{max-width:100%;overflow-wrap:anywhere}.language-block{max-width:100%}.romanization,.translation{overflow-wrap:anywhere}.client-practice{min-width:0}

.experience-menu__panel{overflow:hidden}.experience-menu__body{min-width:0;min-height:0;overscroll-behavior:contain}.menu-section{width:100%;min-width:0}.menu-section-head h2,.menu-section-head>span,.menu-paper-copy,.notebook-expression{overflow-wrap:anywhere}.experience-menu__panel>nav button{min-width:0}.menu-paper-copy,.notebook-book,.passport-waiting{max-width:100%}

@media(max-width:980px){.mae-guide-overlay{display:none}}
@media(max-width:820px){
  .phone-device{width:min(82vw,318px)}
  .phone-thread-head{grid-template-columns:18px 32px minmax(0,1fr)}.mae-avatar--header{width:32px;height:32px}.phone-message-row{grid-template-columns:24px minmax(0,1fr);gap:6px}.mae-avatar--message,.mae-avatar-spacer{width:24px;height:24px}
  .profile-mae-note{grid-template-columns:46px minmax(0,1fr);gap:10px}.profile-mae-note__portrait{width:46px;height:56px}
  .mae-aside{grid-template-columns:42px minmax(0,1fr);gap:9px}.mae-aside__portrait{width:42px;height:50px}
  .story-panel{max-height:min(56svh,520px);overscroll-behavior:contain;scrollbar-width:thin}.story-actions{display:grid;grid-template-columns:1fr}.choice-button{width:100%;flex:none}
  .experience-menu__panel{height:100dvh;grid-template-rows:auto auto minmax(0,1fr) auto}
  .experience-menu__panel>nav{display:grid;grid-template-columns:1fr 1fr;overflow:visible;padding:8px 10px;gap:6px;background:rgba(105,80,58,.055)}
  .experience-menu__panel>nav button{white-space:normal;border:1px solid rgba(82,60,44,.10);border-radius:10px;padding:9px 10px;min-height:42px;line-height:1.2;background:rgba(255,255,255,.14)}
  .experience-menu__panel>nav button.is-active{border:1px solid rgba(168,92,71,.24);background:rgba(164,91,67,.09);box-shadow:inset 0 -2px 0 #a85c47}
  .experience-menu__body{padding:18px 14px 24px;background:rgba(255,250,242,.18)}
  .experience-menu__panel>footer{background:rgba(239,226,207,.96);padding:max(10px,env(safe-area-inset-bottom)) 14px 12px;gap:16px}.experience-menu__panel>footer button{min-height:34px;text-align:left}.experience-menu__panel>footer button:last-child{text-align:right}
  .menu-section-head h2{font-size:clamp(28px,8.5vw,34px)}.menu-paper-copy{margin-top:20px}.notebook-page{padding:24px 20px}.notebook-expression{padding-right:40px}
}
@media(max-width:520px){
  .phone-device{width:min(88vw,312px)}
  .phone-notification{padding:11px 12px}.phone-notification strong{font-size:13.5px}.phone-notification--mae{grid-template-columns:30px minmax(0,1fr)}.mae-avatar--notification{width:30px;height:30px}
  .story-panel{left:9px;right:9px;padding:15px 14px 14px}.story-panel--advance{padding-right:42px}.story-text{font-size:16px}.story-text h1{font-size:clamp(29px,9vw,38px)}
  .language-block{padding:13px 14px}.language-float-tools{position:static;justify-content:flex-end;margin-top:7px}.language-tools{flex-wrap:wrap}.language-block>strong{font-size:19px}
  .experience-menu__panel>header{padding:12px 14px}.experience-menu__panel>nav{padding:7px 8px;gap:5px}.experience-menu__panel>nav button{font-size:11px;padding:8px 8px}.experience-menu__body{padding:16px 12px 22px}.menu-paper-copy{padding:18px 16px}.notebook-page{padding:21px 16px}.menu-section--passport .immersion-id-card{margin-left:2vw;margin-right:2vw}
}

/* SCENE 2 — cadeau : 4 branches, mobile-first, same engine */
.scene[data-mode^="scene2"] .scene__image-shade{background:linear-gradient(180deg,rgba(8,9,8,.18),rgba(8,9,8,.02) 42%,rgba(8,9,8,.40) 100%)}
.scene2-selector{position:absolute;inset:0;padding:max(92px,calc(env(safe-area-inset-top) + 76px)) var(--safe-x) max(28px,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(280px,.72fr) minmax(520px,1.28fr);gap:clamp(24px,4vw,72px);align-items:center;pointer-events:none;background:linear-gradient(90deg,rgba(10,12,11,.63),rgba(10,12,11,.18) 48%,rgba(10,12,11,.05))}
.scene2-selector>*{pointer-events:auto}.scene2-selector__copy{max-width:520px;text-shadow:0 4px 26px rgba(0,0,0,.42)}.scene2-selector__copy>p{margin:0 0 12px;color:#e0a084;font-size:10px;font-weight:800;letter-spacing:.18em}.scene2-selector__copy h1{margin:0;font:500 clamp(42px,5vw,68px)/.98 Georgia,serif;letter-spacing:-.035em}.scene2-selector__copy span{display:block;margin-top:16px;max-width:470px;color:rgba(255,250,241,.82);font:400 clamp(17px,1.4vw,21px)/1.45 Georgia,serif}
.scene2-branch-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:700px;justify-self:end;width:100%}.scene2-branch-card{position:relative;min-height:190px;overflow:hidden;border:1px solid rgba(255,255,255,.17);border-radius:18px;background:#29241f;padding:0;cursor:pointer;box-shadow:0 16px 38px rgba(0,0,0,.20);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.scene2-branch-card:hover{transform:translateY(-3px);border-color:rgba(255,218,186,.55);box-shadow:0 20px 44px rgba(0,0,0,.28)}.scene2-branch-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .5s ease}.scene2-branch-card:hover img{transform:scale(1.035)}.scene2-branch-card__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,9,.04),rgba(10,10,9,.10) 45%,rgba(10,10,9,.76))}.scene2-branch-card strong{position:absolute;left:15px;right:15px;bottom:13px;display:flex;align-items:center;gap:8px;color:#fff;font:600 19px/1.15 Georgia,serif;text-align:left;text-shadow:0 2px 12px rgba(0,0,0,.6)}.scene2-branch-card strong i{font-style:normal;font-size:18px}
.scene2-place-label{position:absolute;left:var(--safe-x);top:max(92px,calc(env(safe-area-inset-top) + 72px));z-index:10;display:grid;gap:5px;padding:12px 15px;border-left:2px solid rgba(231,164,133,.78);background:linear-gradient(90deg,rgba(12,13,12,.58),rgba(12,13,12,.08));text-shadow:0 2px 12px rgba(0,0,0,.45)}.scene2-place-label span{font-size:9px;font-weight:800;letter-spacing:.16em;color:#e4ab92}.scene2-place-label strong{font:500 28px/1 Georgia,serif}
.mae-scene-note{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:10px;margin-top:12px;padding:10px 12px 10px 9px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(12,13,12,.26)}.mae-scene-note img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 22%;background:#ead8c8;border:1px solid rgba(255,255,255,.35)}.mae-scene-note>div{min-width:0}.mae-scene-note strong{display:block;color:#e2a58c;font-size:10px;letter-spacing:.10em}.mae-scene-note p{margin:4px 0 0;color:rgba(255,255,255,.80);font:400 13px/1.43 Georgia,serif;overflow-wrap:anywhere}
.scene[data-mode="scene2-entry"] .mae-scene-note{position:absolute;left:var(--safe-x);bottom:max(36px,env(safe-area-inset-bottom));width:min(520px,44vw);z-index:12;background:rgba(12,13,12,.52);backdrop-filter:blur(12px);box-shadow:0 15px 34px rgba(0,0,0,.22)}
.scene[data-mode="scene2-entry"] .scene-hotspot--door{right:16%;bottom:24%}
.gift-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:13px}.gift-option{display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-height:126px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:rgba(255,255,255,.045);padding:14px;text-align:left;cursor:pointer;transition:.2s ease}.gift-option:hover{background:rgba(255,255,255,.10);border-color:rgba(233,184,156,.38);transform:translateY(-2px)}.gift-option span{display:block;min-width:0}.gift-option strong{display:block;font:600 17px/1.2 Georgia,serif}.gift-option small{display:block;margin-top:6px;color:rgba(255,255,255,.62);font-size:11px;line-height:1.38}.gift-option b{color:#e0a184;font-size:13px;font-weight:800}.gift-look{grid-column:1/-1;border:0;background:transparent;color:rgba(255,255,255,.65);padding:7px 3px;text-align:left;cursor:pointer;font-size:11px}.gift-look:hover{color:#fff}
.gift-selected-chip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;border:1px solid rgba(227,176,145,.20);border-radius:12px;background:rgba(177,93,65,.10)}.gift-selected-chip span{color:#dba188;font-size:8px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.gift-selected-chip strong{min-width:0;font:500 15px/1.2 Georgia,serif;overflow-wrap:anywhere}.gift-selected-chip b{font-size:12px;color:#f1d0bd;white-space:nowrap}
.choice-button--language{display:grid;gap:4px}.choice-button--language strong{font:600 17px/1.25 system-ui}.choice-button--language small{color:rgba(255,255,255,.60);font-size:10px;line-height:1.35}.dialogue-followup{display:grid;gap:5px;margin-top:12px;padding:12px 14px;border-left:1px solid rgba(224,160,132,.55);background:rgba(10,11,10,.20)}.dialogue-followup span{color:#dfa48b;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.dialogue-followup strong{font:600 19px/1.25 system-ui;margin-top:2px}.dialogue-followup small{color:rgba(255,255,255,.65);font-size:10px;line-height:1.35}.dialogue-followup strong+small+strong{margin-top:8px}
.payment-card{display:grid;gap:12px;margin-top:12px;padding:12px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(8,9,8,.25)}.payment-card .gift-selected-chip{margin-top:0}.payment-total{display:flex;align-items:center;justify-content:space-between;padding:4px 2px}.payment-total span{color:rgba(255,255,255,.58);font-size:10px;text-transform:uppercase;letter-spacing:.12em}.payment-total strong{font:600 24px/1 Georgia,serif}.phone-pay-visual{position:relative;height:38px;display:flex;align-items:center;justify-content:center;gap:7px;color:rgba(255,255,255,.66)}.phone-pay-visual span{font-size:25px}.phone-pay-visual i{display:block;width:28px;height:18px;border:1px solid rgba(255,255,255,.25);border-radius:5px;background:rgba(255,255,255,.04)}.phone-pay-visual b{font-size:8px;letter-spacing:.14em;color:#dca28a}.phone-pay-button{width:100%;border:1px solid rgba(245,213,193,.38);border-radius:14px;background:linear-gradient(180deg,rgba(172,87,65,.86),rgba(126,60,48,.86));padding:13px 16px;text-align:center;font-weight:750;cursor:pointer;box-shadow:0 10px 28px rgba(0,0,0,.18)}.phone-pay-button:hover{filter:brightness(1.08)}
.payment-success{display:grid;justify-items:center;text-align:center;gap:5px;padding:16px 8px}.payment-success__check{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:rgba(98,135,91,.28);border:1px solid rgba(205,236,198,.36);font-size:24px}.payment-success strong{font:700 24px/1.2 system-ui}.payment-success p{margin:0;color:rgba(255,255,255,.70);font:400 15px/1.4 Georgia,serif}.payment-success b{margin-top:4px;color:#e6b29b;font-size:15px}
.scene2-end-mark{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.11)}.scene2-end-mark span{color:#dfa48b;font-size:10px;font-weight:800;letter-spacing:.12em}.scene2-end-mark strong{font:500 14px/1.2 Georgia,serif;color:rgba(255,255,255,.72)}
.scene[data-mode="scene2-exit"] .story-panel{background:linear-gradient(135deg,rgba(14,15,14,.78),rgba(13,14,13,.56))}.scene[data-mode="scene2-pay"] .story-panel{max-width:720px}

@media(max-width:980px){
  .scene2-selector{grid-template-columns:1fr;align-content:end;gap:18px;padding-top:88px;background:linear-gradient(180deg,rgba(10,12,11,.18),rgba(10,12,11,.18) 35%,rgba(10,12,11,.78) 100%)}.scene2-selector__copy{max-width:640px}.scene2-selector__copy h1{font-size:clamp(34px,7vw,52px)}.scene2-selector__copy span{font-size:16px}.scene2-branch-grid{justify-self:stretch;max-width:none}.scene2-branch-card{min-height:150px}.scene[data-mode="scene2-entry"] .mae-scene-note{width:min(520px,58vw)}.gift-options{grid-template-columns:1fr 1fr}.gift-option:last-of-type:nth-child(odd){grid-column:1/-1}
}
@media(max-width:820px){
  .scene2-selector{padding:82px 12px max(12px,env(safe-area-inset-bottom));gap:12px}.scene2-selector__copy{padding:0 4px}.scene2-selector__copy>p{font-size:8px;margin-bottom:7px}.scene2-selector__copy h1{font-size:34px}.scene2-selector__copy span{margin-top:8px;font-size:14px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.scene2-branch-grid{gap:8px}.scene2-branch-card{min-height:122px;border-radius:14px}.scene2-branch-card strong{left:11px;right:11px;bottom:10px;font-size:15px}.scene2-branch-card strong i{font-size:15px}.scene2-place-label{left:16px;top:max(72px,calc(env(safe-area-inset-top) + 60px));padding:9px 11px}.scene2-place-label strong{font-size:22px}.scene[data-mode="scene2-entry"] .mae-scene-note{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:auto}.scene[data-mode="scene2-entry"] .scene-hotspot--door{right:26%;bottom:35%}.gift-options{grid-template-columns:1fr 1fr;gap:7px}.gift-option{min-height:106px;padding:11px}.gift-option strong{font-size:15px}.gift-option small{font-size:10px}.gift-look{padding-bottom:2px}.gift-selected-chip{grid-template-columns:1fr auto}.gift-selected-chip span{grid-column:1/-1}.gift-selected-chip strong{font-size:14px}.dialogue-followup strong{font-size:17px}.scene2-end-mark{align-items:flex-start}.scene2-end-mark strong{text-align:right}
}
@media(max-width:520px){
  .scene2-selector{padding-top:74px}.scene2-selector__copy h1{font-size:30px}.scene2-selector__copy span{font-size:13px}.scene2-branch-card{min-height:108px}.scene2-branch-card strong{font-size:14px}.gift-options{grid-template-columns:1fr}.gift-option:last-of-type:nth-child(odd){grid-column:auto}.gift-option{min-height:0;display:grid;grid-template-columns:1fr auto;align-items:end}.gift-option b{align-self:end}.mae-scene-note{grid-template-columns:36px minmax(0,1fr)}.mae-scene-note img{width:36px;height:36px}.mae-scene-note p{font-size:12px}.scene[data-mode="scene2-entry"] .scene-hotspot--door{right:20%;bottom:42%}.payment-total strong{font-size:21px}
}


/* Scene 2 premium refinement — 2026-09-07 */
.scene2-branch-card__no{position:absolute;left:14px;top:13px;z-index:2;color:rgba(255,255,255,.72);font:700 9px/1 system-ui;letter-spacing:.18em;text-shadow:0 2px 10px rgba(0,0,0,.55)}
.scene2-branch-card strong{gap:0}.scene2-branch-card strong i{display:none}
.scene2-observation{margin:10px 0 2px;padding:12px 14px;border-left:1px solid rgba(225,163,134,.52);background:rgba(9,10,9,.20)}
.scene2-observation span{display:block;color:#dfa48b;font-size:8px;font-weight:800;letter-spacing:.14em}
.scene2-observation p{margin:6px 0 0;color:rgba(255,255,255,.76);font:400 13px/1.45 Georgia,serif}
.gift-look{border-top:1px solid rgba(255,255,255,.08);margin-top:2px;padding-top:10px;letter-spacing:.02em}
.phone-pay-visual{gap:10px}.phone-pay-device{display:block;width:20px;height:31px;border:1px solid rgba(255,255,255,.56);border-radius:5px;position:relative;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.015))}
.phone-pay-device::after{content:"";position:absolute;left:50%;bottom:3px;width:4px;height:1px;transform:translateX(-50%);background:rgba(255,255,255,.52);border-radius:2px}
.korean-follow{position:relative;display:inline-block}
.language-block.is-speaking .korean-follow::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;border-radius:2px;background:linear-gradient(90deg,#e1a082,#f0c6b3);transform:scaleX(0);transform-origin:left;animation:korean-follow var(--speech-duration,1.8s) linear forwards;box-shadow:0 0 10px rgba(224,160,130,.28)}
@keyframes korean-follow{to{transform:scaleX(1)}}
.speech-feedback{grid-column:1/-1;margin-top:10px;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.04);display:grid;gap:4px}
.speech-feedback strong{font:600 12px/1.3 system-ui!important;color:#f4e8df}
.speech-feedback span{font:400 11px/1.4 Georgia,serif;color:rgba(255,255,255,.72)}
.speech-feedback small{font-size:9px;color:rgba(255,255,255,.46);overflow-wrap:anywhere}
.speech-feedback--listening{border-color:rgba(223,164,139,.30);background:rgba(223,164,139,.07)}
.speech-feedback--good{border-color:rgba(146,183,137,.30);background:rgba(118,156,110,.08)}
.speech-feedback--mid{border-color:rgba(213,178,109,.28);background:rgba(185,148,75,.06)}
.speech-feedback--retry{border-color:rgba(196,132,112,.26);background:rgba(164,93,72,.07)}
.notebook-expression__tools{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex;gap:5px}
.notebook-expression__tools button{position:static!important;transform:none!important;width:28px!important;height:28px!important;border-radius:50%;display:grid!important;place-items:center!important}
.notebook-references{margin-top:22px;display:grid;gap:10px}
.notebook-references>p{margin:0 0 2px;color:#9f6f5d;font-size:9px;font-weight:800;letter-spacing:.15em}
.real-reference-card{border:1px solid rgba(93,67,49,.13);background:rgba(255,252,246,.46);padding:15px 16px;border-radius:12px;box-shadow:0 8px 24px rgba(81,57,39,.045)}
.real-reference-card>span{display:block;color:#a0614d;font-size:8px;font-weight:800;letter-spacing:.14em}
.real-reference-card h4{margin:6px 0 7px;color:#3f332b;font:600 17px/1.2 Georgia,serif}
.real-reference-card p{margin:0;color:#66584d;font:400 12.5px/1.5 Georgia,serif}
.real-reference-card a{display:inline-block;margin-top:9px;color:#8d5946;font-size:10px;text-decoration:none;border-bottom:1px solid rgba(141,89,70,.26)}
.real-reference-card a:hover{border-bottom-color:#8d5946}
.method-sources{margin-top:24px;display:grid;gap:10px}
.method-sources h3{margin:0 0 3px;color:#463930;font:600 18px/1.2 Georgia,serif}
.method-sources>small{display:block;margin-top:5px;color:#827164;font:400 10px/1.5 system-ui}
@media(max-width:820px){.scene2-branch-card__no{left:11px;top:10px}.notebook-references{margin-top:16px}.real-reference-card{padding:13px 14px}.speech-feedback{padding:9px 10px}}
.notebook-expression .speech-feedback{margin-top:8px;background:rgba(95,70,54,.045);border-color:rgba(95,70,54,.12)}
.notebook-expression .speech-feedback strong{color:#4a3b31!important}.notebook-expression .speech-feedback span{color:#6c5b4f}.notebook-expression .speech-feedback small{color:#917c6d}
/* Korean audio-follow: the Hangul itself is progressively highlighted, not gamified */
.language-block.is-speaking .korean-follow{background:linear-gradient(90deg,#edb59d 0 50%,rgba(255,255,255,.96) 50% 100%);background-size:200% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;animation:korean-text-follow var(--speech-duration,1.8s) linear forwards}
.language-block.is-speaking .korean-follow::after{display:none}
@keyframes korean-text-follow{to{background-position:0 0}}


/* Premium method disclosure + itinerary */
.method-note{margin:1.15rem 0 1.35rem;padding:1rem 1.05rem;border:1px solid rgba(66,55,43,.14);border-radius:16px;background:rgba(255,252,245,.72);box-shadow:0 10px 30px rgba(50,39,27,.05)}
.method-note>span{display:block;font-size:.68rem;letter-spacing:.16em;font-weight:700;opacity:.58;margin-bottom:.35rem}.method-note h3{margin:.05rem 0 .55rem;font-family:var(--font-serif,Georgia,serif);font-size:1.08rem}.method-note p{margin:.45rem 0;line-height:1.62}.method-note small{display:block;margin-top:.65rem;opacity:.62}
.itinerary-intro{max-width:620px;margin:.25rem 0 1.1rem;line-height:1.6;opacity:.76}.itinerary-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.itinerary-step{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.78rem .85rem;border-radius:14px;border:1px solid rgba(70,58,44,.10);background:rgba(255,255,255,.38)}.itinerary-step__num{font-size:.69rem;letter-spacing:.12em;opacity:.55}.itinerary-step div{display:grid;grid-template-columns:60px 1fr;column-gap:.55rem;align-items:baseline}.itinerary-step div b{font-size:.72rem;letter-spacing:.06em;opacity:.58}.itinerary-step div strong{font-size:.93rem;font-weight:650}.itinerary-step div small{grid-column:2;display:block;margin-top:.18rem;font-size:.73rem;opacity:.62}.itinerary-step>i{font-style:normal;font-size:.62rem;letter-spacing:.1em;font-weight:700;opacity:.6}.itinerary-step.is-current{background:rgba(168,124,73,.10);border-color:rgba(139,94,47,.22)}.itinerary-step.is-current div strong{font-weight:760}.itinerary-step.is-future{opacity:.48}.itinerary-step.is-done{opacity:.72}
@media(max-width:720px){.itinerary-step{grid-template-columns:32px minmax(0,1fr) auto;padding:.72rem .7rem;gap:.55rem}.itinerary-step div{grid-template-columns:52px 1fr}.itinerary-step div strong{font-size:.88rem}.method-note{padding:.9rem}.experience-menu__panel nav{overflow-x:auto;scrollbar-width:none}.experience-menu__panel nav::-webkit-scrollbar{display:none}}


/* Scene 2 — final audio pass: pronunciation remains immersive, never scored like a game. */
.choice-language-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch;flex:1 1 300px;min-width:0}
.choice-language-row .choice-button--language{width:100%;height:100%;padding-right:15px;flex:none}
.choice-button--language .korean-follow{display:block;width:max-content;max-width:100%}
.choice-language-actions{display:flex;flex-direction:column;gap:6px;justify-content:center}
.choice-language-actions button{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.05);cursor:pointer}
.choice-language-actions .icon-speaker,.choice-language-actions .icon-mic{width:15px;height:15px}
.choice-language-row.is-speaking .korean-follow{
  background:linear-gradient(90deg,#edb59d 0 50%,rgba(255,255,255,.96) 50% 100%);
  background-size:200% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:korean-text-follow var(--speech-duration,1.8s) linear forwards
}
.choice-language-row .speech-feedback{grid-column:1/-1}
.payment-thanks-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.payment-thanks-pair>div>span{display:block;margin:0 0 5px;color:#dca28a;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.payment-thanks-pair .language-block{margin-top:0}
.payment-farewell{margin-top:12px;padding:11px 13px;border:1px solid rgba(255,255,255,.10);border-radius:12px;background:rgba(255,255,255,.035)}
.payment-farewell strong{display:block;font:500 18px/1.25 system-ui,sans-serif}
.payment-farewell small{display:block;margin-top:4px;color:rgba(255,255,255,.66)}
@media(max-width:620px){
  .payment-thanks-pair{grid-template-columns:1fr}
  .choice-language-row{grid-template-columns:minmax(0,1fr) 34px;gap:7px;flex-basis:100%}
  .choice-language-actions button{width:32px;height:32px}
}

/* Final pass: persistent documents live in the menu, never as decorative scene overlays. */
.menu-edit-link--primary{display:inline-flex!important;align-items:center;justify-content:center;margin-top:18px;padding:11px 15px!important;border:1px solid rgba(151,88,66,.28)!important;border-radius:999px;background:rgba(166,92,70,.08)!important;color:#6d4032!important;font-weight:800!important}

/* =========================================================
   BUILD 2026.09.07 · S1–S3 RC1
   Deployment visibility + Scene 3
   ========================================================= */


/* Audio must look actionable, not hidden behind unlabeled icon circles. */
.audio-chip--text,.mic-chip--text,.choice-language-actions button{width:auto!important;min-width:78px!important;height:34px!important;padding:0 11px!important;border-radius:999px!important;display:inline-flex!important;align-items:center;justify-content:center;gap:7px;font-size:10px;font-weight:750;letter-spacing:.02em;white-space:nowrap}
.audio-chip--text>span:last-child,.mic-chip--text>span:last-child,.choice-language-actions button>span:last-child{display:inline!important}
.language-float-tools{display:flex!important;gap:7px;right:10px!important;top:10px!important;transform:none!important;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.language-block{padding-right:190px!important}
.choice-language-actions{display:flex;flex-direction:row;gap:6px;align-items:center;flex-wrap:wrap;margin-left:auto}
.choice-language-row{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}

.build-stamp{align-self:center;color:rgba(88,69,55,.52);font-size:8px;letter-spacing:.12em;white-space:nowrap}

/* Scene 3 physical gift */
.scene3-gift-object{position:absolute;z-index:9;margin:0;pointer-events:none;filter:drop-shadow(0 20px 28px rgba(0,0,0,.24));animation:scene3-object-in .55s ease both}
.scene3-gift-object img{display:block;width:100%;height:auto;object-fit:contain}.scene3-gift-object figcaption{margin-top:5px;text-align:center;color:rgba(255,255,255,.78);font-size:9px;letter-spacing:.08em;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.scene3-gift-object--dresser{right:7.5%;bottom:16%;width:min(230px,18vw)}.scene3-gift-object--small{right:7%;bottom:13%;width:min(180px,14vw);opacity:.94}
@keyframes scene3-object-in{from{opacity:0;transform:translateY(7px) scale(.98)}to{opacity:1;transform:none}}

/* Scene 3 phone actions stay inside the phone, visible and reachable. */
.phone-stage--scene3 .phone-screen{padding-bottom:72px}.scene3-phone-actions{position:absolute;left:15px;right:15px;bottom:15px;z-index:5;display:grid;gap:7px}.scene3-phone-actions .choice-button{width:100%;margin:0;padding:10px 12px;border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.09);color:#fff;text-align:center}.phone-message--papa{max-width:100%;font-size:11.3px!important;line-height:1.45!important}.phone-message--papa strong[lang=ko]{font-family:system-ui,sans-serif;font-size:14px}.contact-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font:700 15px/1 system-ui}.contact-avatar--han{background:#d6c4ac;color:#43372f}.phone-thread-head--papa{grid-template-columns:22px 36px minmax(0,1fr)}.phone-thread--papa{overflow:auto;max-height:calc(100% - 62px);padding-bottom:72px;scrollbar-width:none}.phone-thread--papa::-webkit-scrollbar{display:none}

/* Scene 3 prep cards: editorial, not game UI. */
.scene3-prep-sheet,.scene3-check-card,.scene3-route{position:absolute;z-index:10;left:var(--safe-x);right:var(--safe-x);bottom:max(28px,env(safe-area-inset-bottom));margin:auto;width:min(980px,calc(100% - 2*var(--safe-x)));padding:24px;border:1px solid rgba(255,255,255,.14);border-radius:22px;background:linear-gradient(135deg,rgba(16,17,16,.80),rgba(16,17,16,.55));backdrop-filter:blur(18px);box-shadow:0 24px 70px rgba(0,0,0,.28);pointer-events:auto;color:#fff}
.scene3-kicker{margin:0 0 15px;color:#dfa187;font-size:9px;font-weight:800;letter-spacing:.18em}.scene3-tip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.scene3-tip{position:relative;min-height:152px;padding:18px;border:1px solid rgba(255,255,255,.10);border-radius:16px;background:rgba(255,255,255,.055)}.scene3-tip>span{display:block;color:rgba(255,255,255,.36);font-size:9px;letter-spacing:.12em}.scene3-tip strong{display:block;margin-top:22px;font:500 19px/1.2 Georgia,serif}.scene3-tip p{margin:9px 0 0;color:rgba(255,255,255,.72);font:400 14px/1.5 Georgia,serif}.scene3-prep-sheet .mae-scene-note,.scene3-check-card .mae-scene-note,.scene3-route .mae-scene-note{margin-top:12px}.scene3-sheet-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.scene3-sheet-actions .choice-button{flex-basis:auto;min-width:145px}

/* Outfit selection */
.scene3-outfit-select{position:absolute;inset:0;z-index:10;padding:92px var(--safe-x) max(24px,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(240px,.62fr) minmax(0,1.38fr);gap:28px;align-items:end;background:linear-gradient(90deg,rgba(10,11,10,.58),rgba(10,11,10,.05) 58%,rgba(10,11,10,.16));pointer-events:auto}.scene3-outfit-select h1{margin:0;color:#fff;font:500 clamp(36px,5vw,64px)/1 Georgia,serif}.scene3-outfit-select>div:first-child>p:last-child{max-width:440px;color:rgba(255,255,255,.74);font:400 16px/1.5 Georgia,serif}.scene3-outfit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:end}.scene3-outfit-card{position:relative;min-height:410px;padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:#1b1c1a;color:#fff;cursor:pointer;text-align:left;box-shadow:0 18px 40px rgba(0,0,0,.18);transition:.22s ease}.scene3-outfit-card:hover{transform:translateY(-4px);border-color:rgba(232,187,158,.55)}.scene3-outfit-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scene3-outfit-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(10,11,10,.88) 100%)}.scene3-outfit-card>span{position:absolute;z-index:2;left:16px;right:16px;bottom:15px}.scene3-outfit-card strong{display:block;font:500 18px/1.2 Georgia,serif}.scene3-outfit-card small{display:block;margin-top:6px;color:rgba(255,255,255,.67);font-size:10px;line-height:1.35}
.scene3-outfit-confirm{position:absolute;z-index:10;left:var(--safe-x);right:var(--safe-x);bottom:max(26px,env(safe-area-inset-bottom));margin:auto;width:min(900px,calc(100% - 2*var(--safe-x)));display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:20px;padding:18px;border:1px solid rgba(255,255,255,.15);border-radius:22px;background:rgba(13,14,13,.74);backdrop-filter:blur(18px);box-shadow:0 24px 70px rgba(0,0,0,.28);pointer-events:auto}.scene3-outfit-confirm>img{width:100%;height:320px;object-fit:cover;border-radius:15px}.scene3-outfit-confirm h2{margin:0;color:#fff;font:500 32px/1.08 Georgia,serif}.scene3-outfit-confirm>div>p:not(.scene3-kicker){color:rgba(255,255,255,.76);font:400 16px/1.55 Georgia,serif}

/* Checklist and route */
.scene3-check-card{width:min(740px,calc(100% - 2*var(--safe-x)))}.scene3-check-card ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.scene3-check-card li{display:flex;justify-content:space-between;gap:16px;padding:12px 13px;border-bottom:1px solid rgba(255,255,255,.10);color:rgba(255,255,255,.64);font-size:10px;letter-spacing:.08em}.scene3-check-card li strong{color:#fff;font:500 14px/1.3 Georgia,serif;text-align:right}.scene3-route{width:min(820px,calc(100% - 2*var(--safe-x)))}.scene3-route-line{display:grid;grid-template-columns:1fr minmax(90px,.35fr) 1fr;align-items:center;gap:10px}.scene3-route-line article{padding:16px;border:1px solid rgba(255,255,255,.10);border-radius:15px;background:rgba(255,255,255,.05)}.scene3-route-line article span{display:block;color:#dca188;font-size:8px;font-weight:800;letter-spacing:.16em}.scene3-route-line article strong{display:block;margin-top:7px;font:500 20px/1.2 Georgia,serif}.scene3-route-line article small{display:block;margin-top:4px;color:rgba(255,255,255,.56)}.scene3-route-line>i{height:1px;background:linear-gradient(90deg,rgba(255,255,255,.15),rgba(230,166,137,.8),rgba(255,255,255,.15));position:relative}.scene3-route-line>i::after{content:"";position:absolute;right:-2px;top:-3px;width:7px;height:7px;border-top:1px solid #dfa187;border-right:1px solid #dfa187;transform:rotate(45deg)}
.scene3-end-cap{margin-top:16px;display:flex;justify-content:space-between;gap:15px;padding-top:13px;border-top:1px solid rgba(255,255,255,.12)}.scene3-end-cap strong{font-size:9px;letter-spacing:.15em;color:#dfa187}.scene3-end-cap span{color:rgba(255,255,255,.58);font-size:10px}

.scene3-timeskip{position:fixed;inset:0;z-index:350;display:grid;place-items:center;grid-template-columns:auto minmax(70px,160px) auto;gap:18px;padding:24px;background:rgba(10,11,10,.93);color:#fff;animation:scene3-time-in .45s ease both}.scene3-timeskip span,.scene3-timeskip strong{font:500 clamp(26px,4vw,48px)/1 Georgia,serif}.scene3-timeskip strong{color:#e0a086}.scene3-timeskip i{height:1px;background:rgba(255,255,255,.22)}.scene3-timeskip small{grid-column:1/-1;margin-top:-2px;color:rgba(255,255,255,.58);font:400 14px/1.4 Georgia,serif}.scene3-timeskip.is-leaving{opacity:0;transition:.7s ease}@keyframes scene3-time-in{from{opacity:0}to{opacity:1}}

@media(max-width:820px){
  .language-block{padding-right:14px!important;padding-bottom:55px!important}.language-float-tools{left:12px!important;right:auto!important;top:auto!important;bottom:10px!important}.audio-chip--text,.mic-chip--text{min-width:92px!important}.choice-language-row{grid-template-columns:1fr!important}.choice-language-actions{justify-content:flex-start;margin-left:0}
  .scene3-gift-object--dresser{right:3%;bottom:11%;width:min(180px,38vw)}.scene3-gift-object--small{right:3%;bottom:9%;width:min(145px,31vw)}
  .phone-stage--scene3{height:100dvh;padding-top:max(76px,calc(env(safe-area-inset-top) + 58px))!important;padding-bottom:max(12px,env(safe-area-inset-bottom))!important;overflow:hidden!important;overscroll-behavior:none}.phone-stage--scene3 .phone-device{max-height:calc(100dvh - 96px)!important}
  .scene3-prep-sheet,.scene3-check-card,.scene3-route{left:12px;right:12px;width:auto;bottom:max(8px,env(safe-area-inset-bottom));max-height:calc(100dvh - clamp(78px,12dvh,104px));overflow:auto;overscroll-behavior:contain;padding:clamp(12px,2.2dvh,16px);border-radius:17px}.scene3-tip-grid{grid-template-columns:1fr}.scene3-tip{min-height:0;padding:14px}.scene3-tip strong{margin-top:8px;font-size:17px}.scene3-tip p{font-size:13px}.scene3-sheet-actions{justify-content:stretch}.scene3-sheet-actions .choice-button{width:auto;flex:1 1 0;min-width:0}
  .scene3-outfit-select{height:100dvh;max-height:100dvh;padding:max(80px,calc(env(safe-area-inset-top) + 62px)) 12px max(14px,env(safe-area-inset-bottom));grid-template-columns:1fr;grid-template-rows:auto auto;gap:12px;align-content:start;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:linear-gradient(180deg,rgba(10,11,10,.06),rgba(10,11,10,.78) 48%,rgba(10,11,10,.93))}.scene3-outfit-select h1{font-size:34px}.scene3-outfit-select>div:first-child>p:last-child{font-size:13px;margin-bottom:0}.scene3-outfit-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.scene3-outfit-card{min-height:255px;border-radius:13px}.scene3-outfit-card>span{left:10px;right:10px;bottom:9px}.scene3-outfit-card strong{font-size:14px}.scene3-outfit-card small{display:none}
  .scene3-outfit-confirm{left:12px;right:12px;width:auto;bottom:max(12px,env(safe-area-inset-bottom));grid-template-columns:118px minmax(0,1fr);gap:12px;padding:12px}.scene3-outfit-confirm>img{height:185px}.scene3-outfit-confirm h2{font-size:23px}.scene3-outfit-confirm>div>p:not(.scene3-kicker){font-size:13px;line-height:1.4}.scene3-outfit-confirm .scene3-sheet-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:8px}
  .scene3-check-card ul{grid-template-columns:1fr}.scene3-route-line{grid-template-columns:1fr}.scene3-route-line>i{width:1px;height:22px;justify-self:center}.scene3-route-line>i::after{right:-3px;top:auto;bottom:-1px;transform:rotate(135deg)}
  .build-stamp{display:none}
  .experience-menu__panel>nav{display:grid!important;grid-template-columns:1fr 1fr!important;overflow:visible!important;gap:5px!important;padding:8px 10px!important}.experience-menu__panel>nav button{white-space:normal!important;text-align:center!important;padding:9px 6px!important;border:1px solid rgba(91,67,50,.10)!important;border-radius:10px!important;background:rgba(255,255,255,.18)!important}.experience-menu__panel>nav button.is-active{border-color:rgba(168,92,71,.42)!important;background:rgba(168,92,71,.08)!important}.experience-menu__panel>nav button:last-child{grid-column:1/-1}
}
@media(max-width:520px){.scene3-outfit-card{min-height:210px}.scene3-outfit-card strong{font-size:12.5px}.scene3-outfit-confirm{grid-template-columns:95px minmax(0,1fr)}.scene3-outfit-confirm>img{height:160px}.scene3-gift-object--dresser{width:min(145px,36vw)}}


.scene3-card-overlay{position:fixed;inset:0;z-index:1300;height:100dvh;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 14px max(16px,env(safe-area-inset-bottom));overflow:hidden}.scene3-card-overlay__backdrop{position:absolute;inset:0;border:0;background:rgba(7,8,7,.68);backdrop-filter:blur(12px)}.scene3-card-overlay__sheet{position:relative;z-index:1;width:min(900px,100%);max-height:calc(100dvh - 32px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:24px;background:linear-gradient(145deg,#f2e8d8,#e4d3bc);color:#4a3b31;box-shadow:0 34px 100px rgba(0,0,0,.45)}.scene3-card-overlay__sheet>header,.scene3-card-overlay__sheet>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-bottom:1px solid rgba(82,60,44,.12)}.scene3-card-overlay__sheet>footer{border-bottom:0;border-top:1px solid rgba(82,60,44,.12)}.scene3-card-overlay__sheet>header small{display:block;color:#a25d48;font-size:8px;font-weight:800;letter-spacing:.15em}.scene3-card-overlay__sheet>header strong{display:block;margin-top:4px;font:500 22px/1.1 Georgia,serif}.scene3-card-overlay__close{width:38px;height:38px;border:0;border-radius:50%;background:rgba(74,59,49,.08);color:#4a3b31;font-size:24px;cursor:pointer}.scene3-card-overlay__body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:18px}.scene3-card-overlay__body .travel-docs{margin:0;grid-template-columns:minmax(360px,1.2fr) minmax(230px,.7fr)}.scene3-card-overlay__return{min-height:42px;border:1px solid rgba(90,65,49,.2);border-radius:999px;background:#6f5746;color:#fff;padding:10px 16px;cursor:pointer}.scene3-card-overlay__sheet>footer span{font-size:10px;color:#806c5b}
@media(max-width:820px){.scene3-card-overlay{place-items:end center;padding:68px 10px max(10px,env(safe-area-inset-bottom))}.scene3-card-overlay__sheet{max-height:calc(100dvh - 78px);border-radius:20px}.scene3-card-overlay__body{padding:14px 12px}.scene3-card-overlay__body .travel-docs{display:block}.scene3-card-overlay__body .passport-book{min-height:250px}.scene3-card-overlay__body .passport-cover,.scene3-card-overlay__body .passport-pages{min-height:250px}.scene3-card-overlay__body .immersion-id-card{margin:14px 3vw 0}.scene3-card-overlay__sheet>header,.scene3-card-overlay__sheet>footer{padding:12px 13px}.scene3-card-overlay__sheet>footer{align-items:stretch;flex-direction:column}.scene3-card-overlay__return{width:100%}}

/* =========================================================
   BASE · scènes 1–4
   Scene 4 — En route chez les Han
   Scroll is the movement: no game progression bar.
   ========================================================= */
.scene[data-mode^="scene4-"] .scene__image-shade{background:linear-gradient(180deg,rgba(5,7,8,.25),transparent 30%,transparent 64%,rgba(4,6,7,.45))}



.scene4-panel-picture{position:absolute;inset:0;z-index:-4;display:block;overflow:hidden}
.scene4-panel-picture img{width:100%;height:100%;object-fit:cover;transform:scale(1.025);filter:saturate(.92) contrast(1.02)}

@keyframes scene4-drift{from{transform:scale(1.045) translate3d(-.8%,0,0)}to{transform:scale(1.075) translate3d(.9%,-.5%,0)}}





.scene4-mae{display:flex;align-items:flex-start;gap:11px;color:#fff}
.scene4-mae>img{width:37px;height:37px;flex:0 0 37px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.22);background:#efe8de}
.scene4-mae>div{min-width:0}.scene4-mae span{display:block;margin-bottom:4px;color:#efc4b1;font-size:9px;font-weight:800;letter-spacing:.08em}.scene4-mae p{margin:0;color:rgba(255,255,255,.88);font:400 clamp(16px,1.4vw,20px)/1.48 Georgia,serif}.scene4-mae p strong[lang=ko]{font-family:system-ui,sans-serif;font-weight:650}

@keyframes scene4-cue{50%{transform:translate(-50%,4px);opacity:.58}}


.scene4-inline-route{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px;padding-top:12px;border-top:1px solid rgba(255,255,255,.10)}
.scene4-inline-route>span{color:rgba(255,255,255,.84);font:500 15px/1.2 Georgia,serif}.scene4-inline-route button{border:0;border-bottom:1px solid rgba(226,162,136,.42);background:transparent;color:#e3aa91;padding:5px 0;cursor:pointer;font-size:10px}
.scene4-continue{display:inline-flex;align-items:center;justify-content:center;margin-top:15px;padding:11px 14px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.07);color:#fff;cursor:pointer;font-size:11px;font-weight:700;transition:.2s ease}.scene4-continue:hover{background:rgba(255,255,255,.13);border-color:rgba(230,177,151,.42)}
.scene4-fare-note{margin-top:14px;padding:12px 14px;border-left:1px solid rgba(229,171,145,.58);background:rgba(255,255,255,.035)}.scene4-fare-note span{display:block;color:#dfa187;font-size:8px;font-weight:800;letter-spacing:.15em}.scene4-fare-note strong{display:block;margin-top:5px;color:rgba(255,255,255,.84);font:400 14px/1.4 Georgia,serif}

/* Validator: card is the action itself. */
.scene4-validator{position:absolute;inset:0;z-index:18;display:grid;grid-template-columns:minmax(230px,.72fr) minmax(250px,.72fr) minmax(280px,.82fr);gap:28px;align-items:center;padding:96px max(var(--safe-x),5vw) max(30px,env(safe-area-inset-bottom));background:radial-gradient(circle at 62% 45%,rgba(30,36,38,.88),#050707 66%);pointer-events:auto}
.scene4-validator-copy small{display:block;color:#e1a086;font-size:9px;font-weight:800;letter-spacing:.18em}.scene4-validator-copy h2{margin:8px 0 8px;color:#fff;font:500 clamp(30px,4vw,54px)/1.04 Georgia,serif}.scene4-validator-copy p{margin:0;color:rgba(255,255,255,.55);font:400 14px/1.45 Georgia,serif}
.scene4-validator-device{height:min(66svh,640px);display:grid;place-items:center;overflow:hidden;border-radius:28px;background:#020303;box-shadow:0 30px 70px rgba(0,0,0,.4)}.scene4-validator-device img{width:100%;height:100%;object-fit:contain}
.scene4-transport-card{position:relative;align-self:end;justify-self:center;width:min(410px,100%);height:245px;padding:0;overflow:hidden;border:0;border-radius:24px;background:#020303;cursor:pointer;box-shadow:0 24px 55px rgba(0,0,0,.32);transition:transform .25s ease,box-shadow .25s ease}.scene4-transport-card:hover{transform:translateY(-5px);box-shadow:0 30px 65px rgba(0,0,0,.4)}.scene4-transport-card img{width:100%;height:100%;object-fit:contain}.scene4-transport-card span{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);padding:6px 9px;border-radius:999px;background:rgba(0,0,0,.60);color:rgba(255,255,255,.72);font-size:9px;letter-spacing:.05em;white-space:nowrap}
.scene4-validator.is-tapping .scene4-transport-card{animation:scene4-card-tap .45s cubic-bezier(.25,.75,.25,1) both}.scene4-validator.is-tapping .scene4-validator-device{box-shadow:0 0 0 1px rgba(168,241,124,.45),0 0 60px rgba(123,210,99,.15),0 30px 70px rgba(0,0,0,.4)}
@keyframes scene4-card-tap{55%{transform:translate(-38%,-42%) rotate(-5deg) scale(.87)}100%{transform:translate(-45%,-48%) rotate(-3deg) scale(.82)}}
.scene4-validator--success{display:grid;place-items:center;background:rgba(5,7,7,.94)}.scene4-validator-success{display:grid;place-items:center;gap:8px;text-align:center}.scene4-validator-dot{width:16px;height:16px;border-radius:50%;background:#8bd35f;box-shadow:0 0 0 9px rgba(139,211,95,.08),0 0 28px rgba(139,211,95,.3)}.scene4-validator-success strong{margin-top:11px;color:#fff;font:500 clamp(28px,4vw,46px)/1 Georgia,serif}.scene4-validator-success small{color:rgba(255,255,255,.56);font-size:12px}
.scene[data-mode="scene4-exit"]>.scene-content>.scene4-mae{position:absolute;z-index:22;left:var(--safe-x);top:90px;max-width:510px;padding:12px 14px;border:1px solid rgba(255,255,255,.11);border-radius:15px;background:rgba(9,11,11,.58);backdrop-filter:blur(12px)}

/* Bus ride: ordinary city texture through a lightly reflective window. */


.scene4-expression{margin-top:10px}.scene4-expression button{display:flex;align-items:baseline;gap:10px;border:0;border-bottom:1px solid rgba(255,255,255,.13);background:transparent;padding:3px 0 7px;color:#fff;cursor:pointer;text-align:left}.scene4-expression strong{font:600 20px/1.2 system-ui,sans-serif}.scene4-expression span{color:rgba(255,255,255,.52);font-size:10px}.scene4-expression em{display:block;margin-top:6px;color:#e8c0ad;font:400 13px/1.4 Georgia,serif}

.scene4-arrival{position:absolute;z-index:15;left:var(--safe-x);right:var(--safe-x);bottom:max(30px,env(safe-area-inset-bottom));margin:auto;width:min(760px,calc(100% - 2*var(--safe-x)));padding:20px;border:1px solid rgba(255,255,255,.13);border-radius:20px;background:rgba(10,12,12,.64);backdrop-filter:blur(16px);box-shadow:0 22px 60px rgba(0,0,0,.26);pointer-events:auto}.scene4-arrival-card{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:baseline;padding-bottom:14px;margin-bottom:13px;border-bottom:1px solid rgba(255,255,255,.10)}.scene4-arrival-card small{color:#dfa187;font-size:9px;font-weight:800;letter-spacing:.12em}.scene4-arrival-card strong{font:500 26px/1 Georgia,serif}.scene4-arrival-card span{color:rgba(255,255,255,.62);font-size:11px}

@media(max-width:820px){
  .scene4-mae>img{width:34px;height:34px;flex-basis:34px}.scene4-mae p{font-size:15px}.scene4-inline-route{align-items:flex-end}
  .scene4-validator{grid-template-columns:1fr;grid-template-rows:auto minmax(clamp(145px,25dvh,180px),1fr) auto;gap:12px;padding:clamp(62px,10dvh,78px) 14px max(10px,env(safe-area-inset-bottom));overflow:auto}.scene4-validator-copy h2{font-size:30px;margin:5px 0}.scene4-validator-copy p{display:none}.scene4-validator-device{height:100%;min-height:0;max-height:390px;border-radius:18px}.scene4-transport-card{width:min(390px,94vw);height:clamp(128px,22dvh,170px);align-self:center;border-radius:18px}.scene4-transport-card span{bottom:7px}.scene4-validator.is-tapping .scene4-transport-card{animation:scene4-card-tap-mobile .45s cubic-bezier(.25,.75,.25,1) both}@keyframes scene4-card-tap-mobile{55%{transform:translateY(-45%) scale(.86)}100%{transform:translateY(-55%) scale(.82)}}
  .scene[data-mode="scene4-exit"]>.scene-content>.scene4-mae{left:12px;right:12px;top:72px;max-width:none;padding:10px 12px}.scene4-expression button{flex-wrap:wrap}.scene4-arrival{left:12px;right:12px;width:auto;bottom:max(12px,env(safe-area-inset-bottom));padding:15px}.scene4-arrival-card{grid-template-columns:auto 1fr}.scene4-arrival-card span{grid-column:1/-1}.scene4-arrival-card strong{font-size:23px}
}
/* Short landscape: keep the HUD clear and all primary interactions reachable. */
@media (max-height:430px) and (orientation:landscape){
  .story-panel{max-height:calc(100dvh - 82px);bottom:max(8px,env(safe-area-inset-bottom));overflow:auto}
  .object-hotspot--jacket{top:35%;height:min(180px,55dvh)}
  .scene2-selector{align-content:start;overflow-y:auto;overscroll-behavior:contain;padding-top:max(70px,calc(env(safe-area-inset-top) + 64px));padding-bottom:max(10px,env(safe-area-inset-bottom));gap:8px}
}
@media (min-width:821px) and (max-height:430px) and (orientation:landscape){
  .scene3-outfit-select{overflow-y:auto;overscroll-behavior:contain;padding-top:72px;padding-bottom:10px;gap:14px}
  .scene3-outfit-card{min-height:0;height:min(260px,calc(100dvh - 112px))}
  .scene4-validator{grid-template-columns:minmax(180px,.7fr) minmax(190px,.7fr) minmax(220px,.8fr);gap:16px;padding:72px 18px max(10px,env(safe-area-inset-bottom))}
  .scene4-validator-device{height:min(62dvh,240px);border-radius:20px}
  .scene4-transport-card{width:min(240px,100%);height:min(170px,48dvh);border-radius:18px}
}

@media(prefers-reduced-motion:reduce){.scene4-validator.is-tapping .scene4-transport-card{animation:none!important}}


/* =========================================================
   POLISH · responsive et interactions
   Mobile fit + cinematic movement (no TikTok-style scroll)
   ========================================================= */

/* Scene 3: confirmation sheet must never run outside the phone viewport. */
.scene3-outfit-confirm{grid-template-columns:minmax(180px,.62fr) minmax(0,1.38fr);grid-template-rows:auto auto}
.scene3-outfit-confirm>.scene3-outfit-body{min-width:0}
.scene3-outfit-confirm>.scene3-outfit-actions{grid-column:2;justify-self:stretch;margin-top:0}
.scene3-outfit-confirm>.scene3-outfit-actions .choice-button{min-width:0;white-space:normal}

/* Scene 4 now uses controlled cinematic beats instead of nested full-screen scroll snapping. */
.scene4-cinematic-stage,.scene4-bus-arrival,.scene4-bus-ride{position:absolute;inset:0;z-index:12;overflow:hidden;isolation:isolate;pointer-events:auto;background:#0a0c0d}
.scene4-cinematic-picture{z-index:-4}
.scene4-cinematic-picture img{transform:scale(1.035);will-change:transform}
.scene4-cinematic-picture--push img{animation:scene4-camera-push 7s ease-out both}
.scene4-cinematic-picture--pan img{animation:scene4-camera-pan 9s ease-in-out both}
.scene4-cinematic-picture--settle img{animation:scene4-camera-settle 6s ease-out both}
.scene4-cinematic-picture--bus img{animation:scene4-bus-arrive-image 6.5s ease-out both}
@keyframes scene4-camera-push{from{transform:scale(1.025)}to{transform:scale(1.075) translate3d(-.5%,-.3%,0)}}
@keyframes scene4-camera-pan{from{transform:scale(1.075) translate3d(-1.3%,0,0)}to{transform:scale(1.075) translate3d(1.1%,-.3%,0)}}
@keyframes scene4-camera-settle{from{transform:scale(1.06) translate3d(.6%,0,0)}to{transform:scale(1.025)}}
@keyframes scene4-bus-arrive-image{from{transform:scale(1.02) translate3d(1.2%,0,0)}to{transform:scale(1.055) translate3d(-.4%,-.2%,0)}}
.scene4-cinematic-veil{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(5,7,8,.12),rgba(5,7,8,.03) 42%,rgba(4,6,7,.68));pointer-events:none}
.scene4-cinematic-veil--soft{background:linear-gradient(180deg,rgba(5,7,8,.06),rgba(5,7,8,.04) 45%,rgba(4,6,7,.53))}
.scene4-cinematic-veil--bus{background:linear-gradient(180deg,rgba(6,8,9,.08),rgba(6,8,9,.05) 46%,rgba(5,7,8,.70))}
.scene4-cinematic-copy{position:absolute;left:var(--safe-x);bottom:max(28px,env(safe-area-inset-bottom));width:min(650px,calc(100% - 2*var(--safe-x)));padding:18px 19px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(9,12,12,.54);backdrop-filter:blur(13px);box-shadow:0 20px 55px rgba(0,0,0,.22);animation:scene4-copy-in .52s ease both}
.scene4-cinematic-copy--left{max-width:560px}
.scene4-cinematic-copy--observation{max-width:670px;border-left-color:rgba(224,159,132,.62)}
.scene4-cinematic-copy>small,.scene4-ride-moment>small,.scene4-ride-final>small{display:block;margin-bottom:9px;color:#e2a288;font-size:9px;font-weight:800;letter-spacing:.17em;text-transform:uppercase}
.scene4-cinematic-copy>p,.scene4-ride-moment>p{margin:0;color:rgba(255,255,255,.88);font:400 clamp(17px,1.45vw,21px)/1.5 Georgia,serif}
@keyframes scene4-copy-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.scene4-ambient-line{position:absolute;z-index:-1;left:-15%;right:-15%;bottom:18%;height:1px;background:linear-gradient(90deg,transparent,rgba(245,190,151,.30),transparent);animation:scene4-ambient-sweep 4.8s ease-in-out infinite}

@keyframes scene4-ambient-sweep{50%{opacity:.35;transform:translateY(-7px)}}
@keyframes scene4-shadow-pass{to{transform:translateX(65%)}}

/* Bus arrival: headlights and a tiny engine vibration, not a static poster. */
.scene4-bus-arrival{animation:scene4-engine-breathe 2.8s ease-in-out infinite}
.scene4-headlight{position:absolute;z-index:-1;bottom:19%;width:24vw;height:18vw;max-width:330px;max-height:250px;border-radius:50%;filter:blur(20px);background:radial-gradient(circle,rgba(255,238,186,.27),rgba(255,214,135,.08) 42%,transparent 70%);pointer-events:none;animation:scene4-headlight-pulse 2.4s ease-in-out infinite}
.scene4-headlight--one{left:43%}.scene4-headlight--two{left:63%;animation-delay:.25s}
@keyframes scene4-headlight-pulse{50%{opacity:.68;transform:scale(1.05)}}
@keyframes scene4-engine-breathe{50%{transform:translateY(.55px)}}

/* Bus ride: automatic visual progression, no user scroll. */
.scene4-bus-ride{animation:scene4-engine-breathe 2.6s ease-in-out infinite}
.scene4-bus-ride .scene4-ride-layer{z-index:-5}
.scene4-bus-ride .scene4-ride-layer img{width:100%;height:100%;object-fit:cover;will-change:transform,opacity}
.scene4-bus-ride .scene4-ride-layer--a img{animation:scene4-ride-a 7s ease-in-out both}
.scene4-bus-ride .scene4-ride-layer--b{opacity:0;animation:scene4-layer-b-in 1.2s 3.1s ease forwards}
.scene4-bus-ride .scene4-ride-layer--b img{animation:scene4-ride-b 8.5s 2.9s ease-in-out both}
@keyframes scene4-ride-a{from{transform:scale(1.07) translateX(-1%)}to{transform:scale(1.10) translateX(1.6%)}}
@keyframes scene4-layer-b-in{to{opacity:1}}
@keyframes scene4-ride-b{from{transform:scale(1.09) translateX(1.3%)}to{transform:scale(1.12) translateX(-1.6%)}}
.scene4-bus-window{position:absolute;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(90deg,rgba(7,9,11,.48) 0 3%,transparent 3% 97%,rgba(7,9,11,.48) 97% 100%),linear-gradient(180deg,rgba(255,255,255,.035),transparent 18%,transparent 82%,rgba(3,5,6,.32));box-shadow:inset 0 1px 0 rgba(255,255,255,.09),inset 0 -1px 0 rgba(255,255,255,.05)}
.scene4-bus-reflection{position:absolute;inset:-20%;z-index:-1;pointer-events:none;background:linear-gradient(112deg,transparent 35%,rgba(255,255,255,.095) 43%,rgba(255,196,147,.045) 48%,transparent 55%);transform:translateX(-60%);animation:scene4-bus-reflect 3.6s linear infinite}
@keyframes scene4-bus-reflect{to{transform:translateX(65%)}}
.scene4-ride-moment,.scene4-ride-final{position:absolute;left:var(--safe-x);bottom:max(34px,env(safe-area-inset-bottom));max-width:550px;padding:14px 16px;border-left:1px solid rgba(224,159,132,.62);background:linear-gradient(90deg,rgba(5,7,8,.58),rgba(5,7,8,.14),transparent);text-shadow:0 2px 14px rgba(0,0,0,.36)}
.scene4-ride-moment{opacity:0;pointer-events:none}
.scene4-ride-moment--one{animation:scene4-moment-one 3.2s .45s ease both}
.scene4-ride-moment--two{left:auto;right:var(--safe-x);animation:scene4-moment-two 3.0s 3.1s ease both}
.scene4-ride-final{opacity:0;pointer-events:none;width:min(620px,calc(100% - 2*var(--safe-x)));border:1px solid rgba(255,255,255,.11);border-left:1px solid rgba(224,159,132,.62);border-radius:16px;background:rgba(7,9,10,.55);backdrop-filter:blur(12px);animation:scene4-final-in .55s 6.0s ease forwards}
@keyframes scene4-moment-one{0%{opacity:0;transform:translateY(8px)}18%,72%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-5px)}}
@keyframes scene4-moment-two{0%{opacity:0;transform:translateY(8px)}18%,72%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-5px)}}
@keyframes scene4-final-in{to{opacity:1;pointer-events:auto}}

@media(max-width:820px){
  .scene3-outfit-confirm{left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));width:auto;grid-template-columns:82px minmax(0,1fr);grid-template-rows:auto auto;gap:10px;padding:11px;max-height:calc(100dvh - 92px);overflow:auto;overscroll-behavior:contain;border-radius:18px}
  .scene3-outfit-confirm>img{height:132px;border-radius:12px}
  .scene3-outfit-confirm>.scene3-outfit-body{align-self:center;min-width:0}
  .scene3-outfit-confirm h2{font-size:22px;overflow-wrap:anywhere}
  .scene3-outfit-confirm>.scene3-outfit-body>p:not(.scene3-kicker){font-size:12.5px;line-height:1.38;margin:7px 0 0}
  .scene3-outfit-confirm>.scene3-outfit-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-top:0}
  .scene3-outfit-confirm>.scene3-outfit-actions .choice-button{width:100%;min-width:0!important;margin:0;padding:11px 8px;font-size:12px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}
  .scene4-cinematic-copy,.scene4-ride-moment,.scene4-ride-final{left:12px;right:12px;bottom:max(14px,env(safe-area-inset-bottom));width:auto;max-width:none;padding:14px 14px;border-radius:15px}
  .scene4-cinematic-copy>p,.scene4-ride-moment>p{font-size:15.5px}
  .scene4-ride-moment--two{left:12px;right:12px}
  .scene4-headlight{bottom:26%;width:42vw;height:35vw}
  .scene4-bus-window{background:linear-gradient(90deg,rgba(7,9,11,.42) 0 2%,transparent 2% 98%,rgba(7,9,11,.42) 98% 100%),linear-gradient(180deg,rgba(255,255,255,.025),transparent 16%,transparent 84%,rgba(3,5,6,.28))}
}
@media(max-width:430px){
  .scene3-outfit-confirm{grid-template-columns:76px minmax(0,1fr)}
  .scene3-outfit-confirm>img{height:122px}
  .scene3-outfit-confirm h2{font-size:20px}
  .scene3-outfit-confirm .scene3-kicker{font-size:8px;margin-bottom:6px}
  .scene4-cinematic-copy,.scene4-ride-moment,.scene4-ride-final{padding:12px 13px}
  .scene4-cinematic-copy>small,.scene4-ride-moment>small,.scene4-ride-final>small{font-size:8px;margin-bottom:7px}
}
@media(prefers-reduced-motion:reduce){
  .scene4-cinematic-picture img,.scene4-bus-arrival,.scene4-bus-ride,.scene4-headlight,.scene4-ambient-line,.scene4-bus-reflection{animation:none!important}
  .scene4-bus-ride .scene4-ride-layer--a{display:none}.scene4-bus-ride .scene4-ride-layer--b{opacity:1!important;animation:none!important}
  .scene4-ride-moment{display:none}.scene4-ride-final{opacity:1!important;pointer-events:auto!important;animation:none!important}
}


/* Scene 5 · Arrival at the Han home */
.scene[data-mode^="scene5-"] .scene-background img{filter:saturate(.93) contrast(1.02) brightness(.92)}
.scene5-cinematic,.scene5-house-reveal,.scene5-father-stage,.scene5-gift-stage,.scene5-threshold,.scene5-inside,.scene5-doorbell{position:absolute;inset:0;z-index:15;pointer-events:auto}
.scene5-cinematic,.scene5-house-reveal,.scene5-father-stage,.scene5-gift-stage,.scene5-threshold,.scene5-inside{display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--safe-x) max(28px,env(safe-area-inset-bottom))}
.scene5-mae{display:flex;gap:10px;align-items:flex-start;width:min(520px,100%);padding:12px 14px;border:1px solid rgba(255,255,255,.13);border-radius:16px;background:rgba(10,12,12,.58);backdrop-filter:blur(14px);box-shadow:0 18px 50px rgba(0,0,0,.22)}
.scene5-mae img{width:38px;height:38px;border-radius:50%;object-fit:cover}.scene5-mae span{color:#e0a084;font-size:10px;font-weight:800;letter-spacing:.12em}.scene5-mae p{margin:3px 0 0;font:400 16px/1.45 Georgia,serif;color:#fff}.scene5-mae strong[lang="ko"]{font-family:system-ui,sans-serif}
.scene5-route-chip{align-self:flex-start;margin-bottom:12px;padding:10px 13px;border-radius:13px;background:rgba(9,11,11,.53);border:1px solid rgba(255,255,255,.11);backdrop-filter:blur(10px)}.scene5-route-chip small{display:block;color:#e2a288;font-size:9px;letter-spacing:.14em;font-weight:800}.scene5-route-chip strong{display:block;margin-top:4px;font-size:15px}.scene5-route-chip--inline{margin:12px 0}
.scene5-reply-echo{width:min(520px,100%);margin:10px 0;padding:10px 13px;border-left:1px solid rgba(224,160,132,.7);background:rgba(10,12,12,.34)}.scene5-reply-echo span{font-size:9px;color:#e2a288;font-weight:800}.scene5-reply-echo p{margin:4px 0 0;font:400 16px/1.4 Georgia,serif}

.scene5-house-caption,.scene5-dialogue-card,.scene5-threshold-copy,.scene5-inside-caption,.scene5-doorbell-copy{width:min(650px,100%);padding:17px 18px;border:1px solid rgba(255,255,255,.13);border-radius:18px;background:linear-gradient(135deg,rgba(9,11,11,.70),rgba(9,11,11,.48));backdrop-filter:blur(14px);box-shadow:0 20px 60px rgba(0,0,0,.24)}
.scene5-house-caption{margin-bottom:10px}.scene5-house-caption small,.scene5-dialogue-card>small,.scene5-threshold-copy>small,.scene5-inside-caption>small,.scene5-doorbell-copy>small{color:#e2a288;font-size:9px;font-weight:800;letter-spacing:.16em}.scene5-house-caption strong{display:block;margin:5px 0;font:500 31px/1 Georgia,serif}.scene5-house-caption p,.scene5-dialogue-card>p,.scene5-threshold-copy>p,.scene5-inside-caption>p,.scene5-doorbell-copy>p{font:400 17px/1.48 Georgia,serif;color:rgba(255,255,255,.9)}
.scene5-doorbell{display:grid;place-items:center;padding:90px var(--safe-x) 30px}.scene5-doorbell-copy{justify-self:start;align-self:end}.scene5-bell{position:absolute;right:8%;top:42%;width:104px;height:104px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(12,13,13,.32);color:#fff;display:grid;place-items:center;gap:5px;backdrop-filter:blur(8px);cursor:pointer}.scene5-bell span{width:22px;height:22px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 6px rgba(255,255,255,.1)}.scene5-bell.is-ringing{animation:scene5-ring .18s ease 3}@keyframes scene5-ring{50%{transform:scale(.96)}}
.scene5-father-stage{align-items:flex-start}.scene5-dialogue-card{max-height:72svh;overflow:auto}.scene5-dialogue-card .language-block{margin-top:10px}.scene5-gift-stage{align-items:flex-start}.scene5-gift-visible{position:absolute;right:7%;bottom:9%;width:min(220px,23vw);z-index:1}.scene5-gift-visible img{width:100%;filter:drop-shadow(0 20px 28px rgba(0,0,0,.38))}.scene5-gift-visible figcaption{display:none}.scene5-gift-stage .scene5-dialogue-card{position:relative;z-index:2;width:min(660px,70%)}

.scene5-inside{align-items:flex-start}.scene5-offscreen{margin-top:14px;padding:11px 13px;border-left:1px solid rgba(224,160,132,.65);background:rgba(255,255,255,.035)}.scene5-offscreen span{display:block;color:#e0a084;font-size:9px;font-weight:800;letter-spacing:.12em}.scene5-offscreen strong{display:block;margin-top:4px;font-size:21px}.scene5-offscreen small{display:block;margin-top:3px;color:rgba(255,255,255,.7)}.scene5-offscreen--papa{margin-top:7px}
.scene5-offscreen.is-speaking{border-left-color:#ffdeb9;background:rgba(238,178,145,.12);box-shadow:0 0 20px rgba(240,185,143,.16)}
.scene5-offscreen.is-speaking>strong{background:linear-gradient(90deg,#f5c9a8,#fff4df 52%,#f5c9a8);background-size:220% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;animation:korean-text-follow var(--speech-duration,1.8s) linear forwards}
@media(prefers-reduced-motion:reduce){.scene5-offscreen.is-speaking>strong{animation:none;background:none;color:#fff4df}}
@media(max-width:820px){
 .scene5-cinematic,.scene5-house-reveal,.scene5-father-stage,.scene5-gift-stage,.scene5-threshold,.scene5-inside{padding:0 12px max(12px,env(safe-area-inset-bottom))}.scene5-mae{width:100%;padding:10px 11px}.scene5-mae p{font-size:14.5px}.scene5-house-caption,.scene5-dialogue-card,.scene5-threshold-copy,.scene5-inside-caption,.scene5-doorbell-copy{padding:14px 14px;border-radius:15px;width:100%;max-height:62svh;overflow:auto}.scene5-house-caption strong{font-size:25px}.scene5-house-caption p,.scene5-dialogue-card>p,.scene5-threshold-copy>p,.scene5-inside-caption>p,.scene5-doorbell-copy>p{font-size:15.5px}.scene5-doorbell{padding:72px 12px 12px;align-items:end}.scene5-bell{right:18px;top:26%;width:78px;height:78px}.scene5-gift-visible{right:15px;top:90px;bottom:auto;width:104px}.scene5-gift-stage .scene5-dialogue-card{width:100%;padding-top:15px}.scene5-dialogue-card .story-actions{display:grid;grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.scene5-bell.is-ringing{animation:none}}


/* QA FIX — 2026-09-07 · Scene 2 mobile progression + Scene 5 completion */
@media(max-width:820px){
  .scene[data-mode^="scene2"] .story-panel{
    max-height:calc(100dvh - max(118px, calc(env(safe-area-inset-top) + 98px)));
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    scrollbar-color:rgba(231,171,143,.42) transparent;
  }
  .scene[data-mode^="scene2"] .story-panel::-webkit-scrollbar{width:4px}
  .scene[data-mode^="scene2"] .story-panel::-webkit-scrollbar-thumb{background:rgba(231,171,143,.42);border-radius:999px}
  .scene[data-mode^="scene2"] .choice-language-actions{flex-direction:row!important;justify-content:flex-start!important;width:100%}
  .scene[data-mode^="scene2"] .choice-language-actions button{flex:0 1 auto;min-width:98px!important}
  .scene[data-mode="scene2-context"] .story-actions,
  .scene[data-mode="scene2-wrap"] .story-actions,
  .scene[data-mode="scene2-pay"] .story-actions,
  .scene[data-mode="scene2-exit"] .story-actions{
    padding-bottom:2px;
  }
}
@media(max-width:520px){
  .scene[data-mode^="scene2"] .story-panel{left:8px;right:8px;bottom:max(9px,env(safe-area-inset-bottom));padding:14px 13px 13px}
  .scene[data-mode^="scene2"] .choice-language-actions{gap:7px}
  .scene[data-mode^="scene2"] .choice-language-actions button{min-width:104px!important;justify-content:center}
}


/* === S1–S5 FREEZE 1 · city route component === */
.city-route-widget{color:#2f2a25;background:rgba(248,244,236,.96);border:1px solid rgba(91,78,61,.18);border-radius:18px;padding:14px;box-shadow:0 16px 46px rgba(30,25,19,.14)}
.city-route-widget--compact{margin-top:4px}
.city-route-widget__head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:10px}.city-route-widget__head div{display:grid;gap:3px}.city-route-widget__head small{font-size:8px;font-weight:800;letter-spacing:.15em;color:#8b674f}.city-route-widget__head strong{font:600 18px/1.15 Georgia,serif}.city-route-widget__head>span{font-size:10px;color:#6f655a;white-space:nowrap}
.city-route-map{overflow:hidden;border-radius:13px;border:1px solid rgba(83,71,56,.12);background:#ece2d4}.city-route-map img{display:block;width:100%;height:auto;aspect-ratio:900/520;object-fit:cover}
.city-route-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:11px}.city-route-step{position:relative;display:grid;justify-items:center;gap:5px;text-align:center;color:#8a8177;font-size:9px}.city-route-step::before{content:"";position:absolute;top:5px;left:-50%;right:50%;height:1px;background:rgba(86,77,65,.18)}.city-route-step:first-child::before{display:none}.city-route-step i{position:relative;z-index:1;width:10px;height:10px;border-radius:50%;border:2px solid #9a8c7c;background:#f6f0e6}.city-route-step.is-done i,.city-route-step.is-current i{border-color:#647157;background:#647157}.city-route-step.is-done::before,.city-route-step.is-current::before{background:#8b784e}.city-route-step.is-current span{color:#403a33;font-weight:700}
.city-route-disclaimer{margin:10px 0 0;color:#6f665d;font-size:10px;line-height:1.45}
.scene3-route--mapped{width:min(900px,calc(100% - 2*var(--safe-x)))}.scene3-route--mapped .city-route-widget{margin-top:4px}.scene3-route--mapped .mae-scene-note{color:#fff}
.city-route-overlay{position:fixed;z-index:120;inset:0;display:grid;place-items:center;padding:18px;opacity:0;transition:opacity .22s ease}.city-route-overlay.is-open{opacity:1}.city-route-overlay__backdrop{position:absolute;inset:0;border:0;background:rgba(8,10,10,.67);backdrop-filter:blur(8px)}.city-route-overlay__sheet{position:relative;width:min(820px,100%);max-height:min(780px,88svh);overflow:auto;border-radius:22px;box-shadow:0 28px 90px rgba(0,0,0,.38)}.city-route-overlay__close{position:absolute;z-index:3;right:12px;top:10px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(52,45,38,.18);background:rgba(250,247,241,.92);color:#37312b;font-size:25px;line-height:1;cursor:pointer}.city-route-overlay__sheet .city-route-widget{border-radius:22px;padding:20px 20px 17px}
.scene4-arrival-card button{grid-column:3;grid-row:1/3;align-self:center;border:1px solid rgba(226,162,136,.30);border-radius:999px;background:rgba(255,255,255,.05);color:#e4ad95;padding:8px 11px;font-size:9px;cursor:pointer}.scene5-english-line{display:grid;gap:4px}.scene5-english-line strong{font-weight:500}.scene5-english-line span{font-size:11px;color:rgba(255,255,255,.58);font-style:italic}
.method-note--map{border-color:rgba(95,108,85,.20);background:linear-gradient(150deg,rgba(244,240,231,.94),rgba(230,224,211,.72))}

@media(max-width:720px){
  .scene3-route--mapped{max-height:calc(100dvh - clamp(70px,10dvh,96px))}.scene3-route--mapped .city-route-widget{padding:10px}.city-route-widget__head{align-items:flex-start}.city-route-widget__head strong{font-size:16px}.city-route-widget__head>span{font-size:9px}.city-route-rail{gap:2px}.city-route-step{font-size:8px}.city-route-disclaimer{font-size:9px}.city-route-overlay{padding:10px}.city-route-overlay__sheet{max-height:92svh}.city-route-overlay__sheet .city-route-widget{padding:14px 12px 12px}.city-route-overlay__close{right:8px;top:8px}.scene4-arrival-card button{grid-column:1/-1;grid-row:auto;justify-self:start}.scene5-english-line span{font-size:10px}
}


/* S1–S5 audit · canonical traveler card (not a passport) */
.traveler-card{width:min(720px,100%);margin:24px 0 18px;border:1px solid rgba(85,62,46,.16);border-radius:24px;background:linear-gradient(145deg,#f5ecdf 0%,#e5d4bd 58%,#d6c0a5 100%);color:#41362e;box-shadow:0 24px 55px rgba(48,34,25,.16);overflow:hidden;position:relative}
.traveler-card::after{content:"";position:absolute;inset:auto -70px -90px auto;width:240px;height:240px;border:1px solid rgba(86,104,79,.13);border-radius:50%;box-shadow:0 0 0 30px rgba(86,104,79,.035),0 0 0 62px rgba(86,104,79,.025);pointer-events:none}
.traveler-card__top{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:20px 24px 16px;border-bottom:1px solid rgba(85,62,46,.12);background:rgba(255,255,255,.18)}
.traveler-card__top div{display:grid;gap:3px}.traveler-card__top span,.traveler-card__top strong,.traveler-card__top b{font-size:9px;letter-spacing:.17em;text-transform:uppercase}.traveler-card__top strong{font-weight:800;color:#8c5d49}.traveler-card__top b{font-weight:700;color:#65705d;white-space:nowrap}
.traveler-card__title{padding:24px 24px 18px}.traveler-card__title small{display:block;color:#8c5d49;font-size:8px;font-weight:800;letter-spacing:.2em}.traveler-card__title h3{margin:8px 0 5px;font:500 clamp(28px,4vw,44px)/1 Georgia,"Times New Roman",serif;letter-spacing:-.025em}.traveler-card__title p{margin:0;color:#7a695b;font:400 13px/1.45 Georgia,serif}
.traveler-card__grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 24px 22px;border:1px solid rgba(85,62,46,.11);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.19)}
.traveler-card__grid>div{padding:13px 15px;border-bottom:1px solid rgba(85,62,46,.09)}.traveler-card__grid>div:nth-child(odd){border-right:1px solid rgba(85,62,46,.09)}.traveler-card__grid>div:nth-last-child(-n/**/+2){border-bottom:0}.traveler-card__grid dt{margin:0 0 4px;color:#8b7765;font-size:7px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.traveler-card__grid dd{margin:0;font-size:11px;font-weight:650;overflow-wrap:anywhere}
.traveler-card__foot{position:relative;z-index:1;padding:15px 24px 18px;border-top:1px solid rgba(85,62,46,.1);color:#6c5a4d;font:italic 12px/1.5 Georgia,serif}
.traveler-card--waiting{min-height:190px;opacity:.76}.traveler-card--waiting .traveler-card__title{padding-bottom:34px}
.profile-card--documents .traveler-card{margin-top:26px}.docs-hint{max-width:720px;color:rgba(255,255,255,.62);font:400 13px/1.5 Georgia,serif}
.passport-waiting>.traveler-card{flex:0 1 430px;margin:0}.passport-waiting>p{flex:1}
.scene5-walk-time{margin:14px 0 2px;color:rgba(255,248,238,.68);font:400 14px/1.55 Georgia,serif}
@media(max-width:720px){.traveler-card{border-radius:20px}.traveler-card__top,.traveler-card__title,.traveler-card__foot{padding-left:18px;padding-right:18px}.traveler-card__grid{margin-left:18px;margin-right:18px;grid-template-columns:1fr}.traveler-card__grid>div,.traveler-card__grid>div:nth-child(odd){border-right:0;border-bottom:1px solid rgba(85,62,46,.09)}.traveler-card__grid>div:last-child{border-bottom:0}.passport-waiting{display:block}.passport-waiting>.traveler-card{width:100%;margin:0 0 18px}.passport-waiting>p{text-align:left}.profile-card--documents .traveler-card{margin-left:auto;margin-right:auto}.docs-hint{text-align:center}}

/* === SCENE 6 RC1 · Seo-yeon & Grandmother === */
.scene[data-mode^="scene6-"] .scene__image{object-position:center center;transform:scale(1.015);transition:transform 7s ease,filter .6s ease}
.scene[data-mode="scene6-entry"] .scene__image{object-position:center 44%}
.scene[data-mode="scene6-seoyeon"] .scene__image,.scene[data-mode="scene6-grandma"] .scene__image,.scene[data-mode="scene6-mandarin"] .scene__image{object-position:center 48%}
.scene[data-mode="scene6-papa"] .scene__image{object-position:center 48%}
.scene[data-mode^="scene6-"] .scene__image-shade{background:linear-gradient(180deg,rgba(9,8,6,.05) 0%,rgba(9,8,6,.06) 40%,rgba(8,7,5,.52) 100%)}
.scene6-stage{position:absolute;z-index:16;inset:0;display:flex;align-items:flex-end;pointer-events:none;padding:92px max(var(--safe-x),4vw) max(28px,env(safe-area-inset-bottom));overflow:hidden}
.scene6-stage::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,transparent 32%,rgba(10,8,6,.08) 54%,rgba(9,7,5,.46) 100%)}
.scene6-stage--entry{justify-content:flex-end}.scene6-stage--talk{justify-content:flex-end}.scene6-stage--family,.scene6-stage--grandma{justify-content:flex-start}.scene6-stage--evening{justify-content:center}







.scene6-spoken{font-size:clamp(18px,1.65vw,23px)!important;color:#fff!important}.scene6-spoken--soft{color:#f0d1c2!important;font-style:italic}
.scene6-translation{display:block;margin-top:5px;color:rgba(255,255,255,.58);font:italic 12px/1.4 Georgia,serif}


.scene6-mae{display:flex;align-items:flex-start;gap:10px;margin:14px 0 3px;padding:11px 12px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(255,255,255,.045)}
.scene6-mae img{width:34px;height:34px;flex:0 0 34px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,255,255,.18);background:#efe8de}.scene6-mae span{display:block;color:#efc2ad;font-size:9px;font-weight:800;letter-spacing:.08em}.scene6-mae p{margin:4px 0 0!important;color:rgba(255,255,255,.82)!important;font-size:14px!important;line-height:1.46!important}
.scene6-client{margin-bottom:14px;padding:11px 12px;border-left:2px solid rgba(226,162,136,.65);background:rgba(255,255,255,.035)}.scene6-client>small{display:block;margin-bottom:5px;color:#e4ac91;font-size:8px;font-weight:800;letter-spacing:.14em}.scene6-client p{margin:0;color:#fff;font:400 15px/1.45 Georgia,serif}



.scene6-mandarin{display:flex;align-items:center;gap:11px;margin-top:14px;padding:10px 14px 10px 10px;border:1px solid rgba(232,181,134,.33);border-radius:999px;background:rgba(255,177,73,.09);color:#fff;cursor:pointer}.scene6-mandarin span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:rgba(255,175,61,.18);font-size:21px}.scene6-mandarin strong{font-size:11px}




@media(max-width:820px){
  .scene[data-mode^="scene6-"] .scene__image{object-position:center 44%;transform:scale(1.01)}
  .scene[data-mode="scene6-entry"] .scene__image{object-position:center 38%}.scene[data-mode="scene6-papa"] .scene__image{object-position:center 45%}
  .scene6-stage{padding:74px 12px max(11px,env(safe-area-inset-bottom));align-items:flex-end}
  
  .scene6-spoken{font-size:17px!important}.scene6-mae{padding:9px 10px}.scene6-mae p{font-size:13.5px!important}.scene6-mandarin{width:100%;justify-content:center;border-radius:13px}
}
@media(max-width:480px){
  .scene6-client{padding:9px 10px}.scene6-stage{padding-left:8px;padding-right:8px}
}
@media(prefers-reduced-motion:reduce){.scene[data-mode^="scene6-"] .scene__image{transform:none;transition:none}}

/* === S5–S6 UX POLISH 1 · less UI, more lived scene === */
.scene-flow-cue{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));width:44px;height:18px;transform:translateX(-50%);pointer-events:none;opacity:.7}
.scene-flow-cue::before{content:"";position:absolute;left:50%;top:2px;width:1px;height:12px;background:rgba(255,255,255,.32)}
.scene-flow-cue i{position:absolute;left:50%;top:2px;width:3px;height:3px;margin-left:-1px;border-radius:50%;background:#f1c1aa;box-shadow:0 0 12px rgba(241,193,170,.6);animation:scene-flow 1.6s ease-in-out infinite}
@keyframes scene-flow{0%{transform:translateY(0);opacity:.25}55%{opacity:1}100%{transform:translateY(10px);opacity:0}}

.scene-conversation-choices{display:grid;gap:2px;margin-top:12px;border-top:1px solid rgba(255,255,255,.10)}
.scene-conversation-choice{position:relative;width:100%;padding:11px 2px;border:0;border-bottom:1px solid rgba(255,255,255,.08);background:transparent;color:rgba(255,255,255,.9);text-align:left;font:500 14px/1.42 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer;transition:color .18s ease,background .18s ease,padding-left .18s ease}
.scene-conversation-choice::after{content:"›";position:absolute;right:3px;top:50%;transform:translateY(-50%);color:rgba(239,194,173,.62);font-size:18px}
.scene-conversation-choice:hover,.scene-conversation-choice:focus-visible{color:#fff;background:rgba(255,255,255,.035);padding-left:7px;outline:none}
.scene-conversation-choice--korean{display:grid;gap:2px;padding-right:28px}.scene-conversation-choice--korean strong{font:650 19px/1.25 system-ui,sans-serif}.scene-conversation-choice--korean small{color:rgba(255,255,255,.56);font-size:10px;font-weight:500}
.scene-conversation-choices--compact{margin-top:10px}.scene-conversation-choices--compact .scene-conversation-choice{padding-top:9px;padding-bottom:9px}

.scene-lang-line{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 9px;align-items:center;margin:8px 0;padding:9px 0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.scene-lang-line>strong{grid-column:1;color:#fff;font:650 clamp(20px,2vw,27px)/1.2 system-ui,sans-serif;letter-spacing:-.02em}
.scene-lang-help{grid-column:1;color:rgba(255,255,255,.58);font-size:10px;line-height:1.4}.scene-lang-tools{grid-column:2;grid-row:1/3;display:flex;gap:5px;align-self:center}
.scene-lang-icon{width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.035);color:#fff;display:grid;place-items:center;cursor:pointer}.scene-lang-icon:hover{background:rgba(255,255,255,.09)}
.scene-lang-translate{grid-column:1;justify-self:start;padding:0;border:0;border-bottom:1px solid rgba(231,171,143,.38);background:transparent;color:#e4ad95;font-size:9px;cursor:pointer}
.scene-lang-line.is-speaking>strong{animation:korean-follow var(--speech-duration,1.8s) linear}

.scene-object-action{position:absolute;z-index:20;display:flex;align-items:center;gap:9px;border:0;background:transparent;color:#fff;cursor:pointer;padding:7px 8px;text-shadow:0 2px 16px rgba(0,0,0,.72)}
.scene-object-action i{position:relative;width:16px;height:16px;flex:0 0 16px;border:1px solid rgba(255,255,255,.92);border-radius:50%;box-shadow:0 0 0 5px rgba(255,255,255,.08),0 0 18px rgba(255,255,255,.22)}
.scene-object-action i::after{content:"";position:absolute;inset:-8px;border:1px solid rgba(255,255,255,.2);border-radius:50%;animation:object-pulse 1.8s ease-out infinite}
.scene-object-action span{padding:6px 9px;border-radius:999px;background:rgba(8,8,7,.54);border:1px solid rgba(255,255,255,.11);backdrop-filter:blur(9px);font-size:10px;font-weight:700;letter-spacing:.02em}
@keyframes object-pulse{0%{transform:scale(.55);opacity:.8}100%{transform:scale(1.35);opacity:0}}

.scene5-presence{width:min(560px,100%);padding:16px 17px;border-radius:18px;background:linear-gradient(135deg,rgba(8,9,9,.58),rgba(8,9,9,.30));border:1px solid rgba(255,255,255,.11);backdrop-filter:blur(13px);box-shadow:0 24px 70px rgba(0,0,0,.24)}
.scene5-presence>small{color:#e2a288;font-size:9px;font-weight:800;letter-spacing:.15em}.scene5-presence>p{margin:8px 0 0;color:rgba(255,255,255,.86);font:400 16px/1.48 Georgia,serif}
.scene5-cinematic--flow,.scene5-house-reveal--auto,.scene5-father-stage--flow,.scene5-threshold--flow,.scene5-inside--flow{padding-bottom:max(48px,env(safe-area-inset-bottom))}
.scene5-mae--whisper{padding:9px 11px;background:rgba(9,10,10,.44);border-color:rgba(255,255,255,.09);box-shadow:none}.scene5-mae--whisper img{width:31px;height:31px}.scene5-mae--whisper p{font-size:14px}
.scene5-dialogue-card--cinematic{max-height:none;overflow:visible;width:min(520px,100%);padding:15px 16px;background:linear-gradient(135deg,rgba(8,9,9,.64),rgba(8,9,9,.36));border-color:rgba(255,255,255,.10)}
.scene5-dialogue-card--choice{width:min(520px,100%);max-height:70svh;padding:15px 16px;background:linear-gradient(135deg,rgba(8,9,9,.69),rgba(8,9,9,.40))}
.scene5-dialogue-card--choice .scene-conversation-choices{margin-top:9px}
.scene5-muted{margin:7px 0 0!important;color:rgba(255,255,255,.62)!important;font:400 13px/1.45 Georgia,serif!important}
.scene5-doorbell-copy--minimal,.scene5-threshold-copy--minimal,.scene5-inside-caption--minimal{width:min(500px,100%);padding:14px 15px;background:linear-gradient(135deg,rgba(8,9,9,.58),rgba(8,9,9,.31));border-color:rgba(255,255,255,.09)}
.scene5-doorbell-copy--minimal h2{font-size:clamp(26px,3.5vw,39px);margin:6px 0}.scene5-doorbell-copy--minimal p{margin:6px 0}
.scene5-gift-stage--reaction .scene5-dialogue-card{width:min(550px,72%)}.scene5-gift-stage--choice .scene5-dialogue-card{width:min(560px,72%)}
.scene5-gift-stage--reaction .scene5-mae{margin-top:9px}
.scene5-client-reply{margin-bottom:9px;padding-left:10px;border-left:1px solid rgba(224,160,132,.58)}.scene5-client-reply>small{color:#e0a084;font-size:8px;font-weight:800;letter-spacing:.12em}.scene5-client-reply p{margin:4px 0 0;font:400 15px/1.42 Georgia,serif}
.scene5-bell{background:rgba(8,9,9,.24);box-shadow:0 12px 40px rgba(0,0,0,.18)}
.scene5-bell strong{font-size:10px;letter-spacing:.05em}.scene5-bell span{width:18px;height:18px}
.scene5-offscreen{padding:8px 10px;margin-top:10px}.scene5-offscreen strong{font-size:19px}.scene5-offscreen small{font-size:11px}

.scene-beat{opacity:0;transform:translateY(4px);animation:scene-beat-in .48s ease forwards}.scene-beat--1{animation-delay:.15s}.scene-beat--2{animation-delay:1.1s}.scene-beat--3{animation-delay:2.2s}.scene-beat--4{animation-delay:3.15s}.scene-beat--5{animation-delay:4.2s}
@keyframes scene-beat-in{to{opacity:1;transform:none}}




.scene6-stage--object{pointer-events:none}.scene6-stage--object .scene-object-action{pointer-events:auto}
.scene-object-action--seat{left:14%;bottom:17%}.scene-object-action--mandarin{left:47%;bottom:23%;transform:translateX(-50%)}.scene-object-action--greet{left:50%;bottom:13%;transform:translateX(-50%)}


.scene6-mae--whisper{margin:10px 0 0;padding:8px 9px;background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.07)}.scene6-mae--whisper img{width:30px;height:30px;flex-basis:30px}.scene6-mae--whisper p{font-size:13px!important}

.scene6-next-whisper{margin-top:16px;padding-top:11px;border-top:1px solid rgba(255,255,255,.08);display:flex;gap:12px;align-items:baseline}.scene6-next-whisper span{color:#e4ac91;font-size:10px;font-weight:800;letter-spacing:.12em}.scene6-next-whisper p{margin:0!important;color:rgba(255,255,255,.62)!important;font-size:13px!important}

/* S6 Grandmother arrival uses the dedicated scene6/grandma asset; this controlled crop preserves her face and approach gesture across formats. */
.scene[data-mode="scene6-grandma"] .scene__image{transform:scale(1.24);object-position:58% 27%;transition:transform 5.5s ease,object-position 5.5s ease,filter .6s ease}
.scene[data-mode="scene6-grandma"] .scene__image-shade{background:linear-gradient(180deg,rgba(9,8,6,.02) 0%,rgba(9,8,6,.04) 48%,rgba(8,7,5,.48) 100%)}

@media(max-width:820px){
  .scene-flow-cue{bottom:max(10px,env(safe-area-inset-bottom));height:15px}
  .scene5-cinematic--flow,.scene5-house-reveal--auto,.scene5-father-stage--flow,.scene5-threshold--flow,.scene5-inside--flow{padding-bottom:max(34px,env(safe-area-inset-bottom))}
  .scene5-presence{padding:13px 12px;border-radius:15px;max-height:min(75svh,520px);overflow:auto}.scene5-presence>p{font-size:14.5px}
  .scene-conversation-choice{font-size:13.5px;padding:10px 1px;padding-right:25px}
  .scene5-dialogue-card--cinematic,.scene5-dialogue-card--choice,.scene5-doorbell-copy--minimal,.scene5-threshold-copy--minimal,.scene5-inside-caption--minimal{width:100%;padding:12px 12px;border-radius:14px;max-height:61svh;overflow:auto}
  .scene5-gift-stage--reaction .scene5-dialogue-card,.scene5-gift-stage--choice .scene5-dialogue-card{width:100%}.scene5-gift-visible{width:88px;right:11px;top:78px;opacity:.92}
  .scene-lang-line>strong{font-size:20px}.scene-lang-icon{width:29px;height:29px}.scene-lang-help{font-size:9.5px}
  .scene-object-action span{font-size:9.5px;padding:5px 8px}
  
  .scene6-stage--grandma-approach{align-items:flex-end;padding-bottom:max(62px,env(safe-area-inset-bottom))}
  .scene-object-action--seat{left:8%;bottom:12%}.scene-object-action--mandarin{left:50%;bottom:12%}.scene-object-action--greet{left:50%;bottom:8%}
  .scene[data-mode="scene6-grandma"] .scene__image{transform:scale(1.18);object-position:57% 23%}
  .scene6-next-whisper{gap:8px}.scene6-next-whisper p{font-size:12px!important}
}

@media(max-width:420px){
  .scene5-mae--whisper p{font-size:13px}.scene5-route-chip{padding:8px 10px}.scene5-reply-echo{padding:8px 10px;margin:7px 0}.scene5-reply-echo p{font-size:14px}
  .scene6-spoken{font-size:16px!important}
}

@media(prefers-reduced-motion:reduce){.scene-flow-cue i,.scene-object-action i::after,.scene-beat{animation:none}.scene-beat{opacity:1;transform:none}.scene[data-mode="scene6-grandma"] .scene__image{transition:none}}
.scene5-gift-stage--reaction .scene5-mae{opacity:0;transform:translateY(4px);animation:scene-beat-in .48s ease 5.05s forwards}
@media(prefers-reduced-motion:reduce){.scene5-gift-stage--reaction .scene5-mae{opacity:1;transform:none;animation:none}}

/* S1–S6 refinements */
.scene-flow-next{align-self:center;display:inline-flex;align-items:center;gap:9px;margin-top:14px;padding:7px 11px;border:0;border-radius:999px;background:rgba(8,9,9,.30);color:rgba(255,255,255,.78);font:700 10px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.06em;backdrop-filter:blur(8px);cursor:pointer;transition:background .18s ease,color .18s ease,transform .18s ease}
.scene-flow-next i{font-style:normal;font-size:14px;opacity:.72;animation:scene-flow-soft 1.8s ease-in-out infinite}.scene-flow-next:hover,.scene-flow-next:focus-visible{background:rgba(8,9,9,.50);color:#fff;transform:translateY(-1px);outline:none}.scene-flow-next--finish{margin-top:18px}
.scene-breath{align-self:center;display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;margin:10px auto 0;border:1px solid rgba(255,255,255,.12);border-radius:50%;background:rgba(8,9,9,.30);color:rgba(255,255,255,.70);backdrop-filter:blur(8px);cursor:pointer;pointer-events:auto;transition:background .18s ease,color .18s ease,transform .18s ease}
.scene-breath span{font:500 16px/1 system-ui,sans-serif;transform:translateY(-1px);animation:scene-flow-soft 2.2s ease-in-out infinite}
.scene-breath:hover,.scene-breath:focus-visible{background:rgba(8,9,9,.48);color:#fff;transform:translateY(-1px);outline:none}
@keyframes scene-flow-soft{0%,100%{transform:translateY(-1px);opacity:.5}50%{transform:translateY(2px);opacity:1}}
.scene-free-korean{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:11px;padding-top:11px;border-top:1px solid rgba(255,255,255,.10)}
.scene-free-korean input{min-width:0;width:100%;padding:10px 11px;border:1px solid rgba(255,255,255,.15);border-radius:11px;background:rgba(7,8,8,.34);color:#fff;font:500 16px/1.25 system-ui,sans-serif;outline:none}.scene-free-korean input::placeholder{color:rgba(255,255,255,.42)}.scene-free-korean input:focus{border-color:rgba(226,162,136,.58);box-shadow:0 0 0 3px rgba(226,162,136,.10)}
.scene-free-korean button{padding:10px 12px;border:1px solid rgba(226,162,136,.32);border-radius:11px;background:rgba(226,162,136,.12);color:#fff;font:750 11px/1 system-ui,sans-serif;cursor:pointer}
.scene-lang-disclosure,.language-help-disclosure{grid-column:1;display:block;margin-top:3px;color:rgba(255,255,255,.62);font:500 10px/1.35 system-ui,sans-serif}.scene-lang-disclosure summary,.language-help-disclosure summary{display:inline-flex;align-items:center;gap:5px;color:rgba(239,194,173,.82);cursor:pointer;list-style:none;font-weight:750;letter-spacing:.03em}.scene-lang-disclosure summary::-webkit-details-marker,.language-help-disclosure summary::-webkit-details-marker{display:none}.scene-lang-disclosure summary::after,.language-help-disclosure summary::after{content:"+";font-size:12px}.scene-lang-disclosure[open] summary::after,.language-help-disclosure[open] summary::after{content:"−"}.scene-lang-disclosure span{display:block;margin-top:4px;color:rgba(255,255,255,.58)}
.language-help-disclosure{margin:6px 0 0}.language-help-disclosure .romanization,.language-help-disclosure .translation{display:block;margin-top:4px}
.language-block--guided>.romanization,.language-block--guided>.translation{display:none}
@media(max-width:820px){.scene-flow-next{margin-top:10px;padding:7px 10px}.scene-free-korean{grid-template-columns:1fr}.scene-free-korean button{width:100%}.scene-lang-disclosure,.language-help-disclosure{font-size:9.5px}}
@media(prefers-reduced-motion:reduce){.scene-flow-next i,.scene-breath span{animation:none}}

/* =========================================================
   SCENE 6 · PRESENCE
   Less UI, more lived-in presence. S1–S5 intentionally untouched.
   ========================================================= */
.scene[data-mode^="scene6-"] .scene__image{
  transition:opacity .62s ease,transform 6s cubic-bezier(.2,.65,.25,1),object-position 6s ease,filter .45s ease;
  transform:scale(1.015);
}
.scene[data-mode="scene6-entry"] .scene__image{object-position:center 48%;transform:scale(1.02)}
.scene[data-mode="scene6-salon"] .scene__image{object-position:center 40%;transform:scale(1.018)}
.scene[data-mode="scene6-seoyeon"] .scene__image{object-position:center 45%;transform:scale(1.02)}
.scene[data-mode="scene6-grandma"] .scene__image{object-position:center 42%;transform:scale(1.025)}
.scene[data-mode="scene6-mandarin"] .scene__image{object-position:center 52%;transform:scale(1.02)}
.scene[data-mode="scene6-chat"] .scene__image{object-position:center 44%;transform:scale(1.018)}
.scene[data-mode="scene6-papa"] .scene__image{object-position:center 45%;transform:scale(1.018)}
.scene[data-mode="scene6-evening"] .scene__image{object-position:center 46%;transform:scale(1.025)}
.scene[data-mode^="scene6-"] .scene__image-shade{
  background:linear-gradient(180deg,rgba(7,6,5,.025) 0%,rgba(7,6,5,.035) 50%,rgba(7,6,5,.42) 100%);
}

.scene6-stage--immersive{pointer-events:none;isolation:isolate}
.scene6-tap-layer{
  position:absolute;inset:0;z-index:0;border:0;background:transparent;cursor:pointer;pointer-events:auto;
  color:#fff;text-align:center;
}
.scene6-tap-layer:focus-visible{outline:2px solid rgba(239,194,173,.75);outline-offset:-6px}
.scene6-tap-cue{
  position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:8px;max-width:calc(100vw - 30px);padding:7px 10px;border-radius:999px;
  background:rgba(9,8,7,.28);border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(8px);
  color:rgba(255,255,255,.72);font:700 9px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.06em;white-space:nowrap;text-transform:none;
}
.scene6-tap-cue i{width:5px;height:5px;border-radius:50%;background:#e8b49b;box-shadow:0 0 0 5px rgba(232,180,155,.08);animation:scene6-cue-pulse 1.9s ease-in-out infinite}
@keyframes scene6-cue-pulse{0%,100%{opacity:.55;transform:scale(.86)}50%{opacity:1;transform:scale(1.08)}}

.scene6-caption{
  position:relative;z-index:2;pointer-events:auto;width:min(490px,100%);padding:13px 14px 12px;
  border:1px solid rgba(255,255,255,.09);border-radius:15px;
  background:linear-gradient(135deg,rgba(10,9,8,.50),rgba(10,9,8,.22));
  backdrop-filter:blur(11px);box-shadow:0 18px 46px rgba(0,0,0,.18);color:#fff;
}
.scene6-caption--left{margin-right:auto}.scene6-caption--right{margin-left:auto}.scene6-caption--dialogue{width:min(500px,100%)}
.scene6-caption--final{width:min(610px,100%)}
.scene6-caption>small,.scene6-choice-dock>small{display:block;margin:0 0 7px;color:#e7b099;font-size:8px;font-weight:850;letter-spacing:.17em;text-transform:uppercase}
.scene6-caption>strong{display:block;color:#fff;font:500 clamp(23px,2.6vw,35px)/1.1 Georgia,serif}
.scene6-caption>p{margin:7px 0 0;color:rgba(255,255,255,.80);font:400 clamp(14px,1.25vw,17px)/1.48 Georgia,serif}
.scene6-caption .scene6-spoken{font-size:clamp(17px,1.5vw,21px)!important}
.scene6-caption .scene6-client{margin:0 0 12px}
.scene6-caption .scene-lang-line{margin:8px 0 3px}
.scene6-caption .scene-lang-line strong{font-size:clamp(20px,1.8vw,25px)}
.scene6-caption .scene-lang-disclosure{margin-top:3px}
.scene6-caption--grandma{width:min(440px,100%)}
.scene6-caption--grandma .scene6-mae{margin-bottom:0}
.scene6-offscreen-label{margin:12px 0 2px!important;color:rgba(255,255,255,.54)!important;font:700 9px/1.2 system-ui,sans-serif!important;letter-spacing:.12em;text-transform:uppercase}

.scene6-choice-dock{
  position:relative;z-index:3;pointer-events:auto;width:min(470px,100%);margin-right:auto;padding:13px 15px 8px;
  border-radius:16px;border:1px solid rgba(255,255,255,.10);background:rgba(10,9,8,.57);backdrop-filter:blur(13px);
  box-shadow:0 20px 54px rgba(0,0,0,.22);color:#fff;
}
.scene6-choice-dock--right{margin-left:auto;margin-right:0}
.scene6-choice-dock .scene6-spoken{margin:0;color:#fff!important;font:500 clamp(18px,1.55vw,22px)/1.35 Georgia,serif!important}
.scene6-choice-dock .scene6-translation{margin-top:4px}
.scene6-choice-dock .scene-conversation-choices{margin-top:9px}
.scene6-choice-dock .scene-conversation-choice{padding-top:9px;padding-bottom:9px;font-size:13.5px}

.scene6-action-echo{
  position:relative;z-index:2;pointer-events:none;align-self:flex-end;margin-right:auto;margin-bottom:40px;
  padding:9px 11px;border-left:2px solid rgba(231,176,153,.78);background:rgba(9,8,7,.24);backdrop-filter:blur(7px);color:#fff;
}
.scene6-action-echo--table{margin-bottom:34px}
.scene6-action-echo span{display:block;color:#e7b099;font:800 8px/1.2 system-ui,sans-serif;letter-spacing:.16em}
.scene6-action-echo p{margin:4px 0 0;color:rgba(255,255,255,.78);font:400 14px/1.42 Georgia,serif}

.scene-object-action--premium{z-index:5}
.scene-object-action--premium span{background:rgba(8,7,6,.42);border-color:rgba(255,255,255,.13);box-shadow:0 10px 26px rgba(0,0,0,.18)}
.scene-object-action--seat{left:32%;bottom:20%}
.scene-object-action--greet{left:50%;bottom:12%;transform:translateX(-50%)}
.scene-object-action--mandarin{left:49%;bottom:29%;transform:translateX(-50%)}
.scene6-free-dock{position:absolute;z-index:5;left:50%;bottom:max(19px,env(safe-area-inset-bottom));width:min(470px,calc(100% - 28px));transform:translateX(-50%);pointer-events:auto}
.scene6-free-dock .scene-free-korean{background:rgba(9,8,7,.58);border:1px solid rgba(255,255,255,.11);border-radius:14px;padding:8px;backdrop-filter:blur(12px)}
.scene6-free-dock .scene-free-korean input{background:rgba(255,255,255,.055)}
.scene6-free-dock .scene-free-korean button{border-radius:10px}

.scene6-next-whisper{margin-top:13px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}
.scene6-stage--entry,.scene6-stage--salon,.scene6-stage--family,.scene6-stage--grandma,.scene6-stage--table,.scene6-stage--talk,.scene6-stage--evening{align-items:flex-end}
.scene6-stage--entry,.scene6-stage--family,.scene6-stage--grandma,.scene6-stage--table,.scene6-stage--talk,.scene6-stage--evening{justify-content:flex-start}
.scene6-stage--salon{justify-content:flex-end}

@media(max-width:820px){
  .scene[data-mode="scene6-entry"] .scene__image{object-position:center 44%}
  .scene[data-mode="scene6-salon"] .scene__image{object-position:center 38%}
  .scene[data-mode="scene6-seoyeon"] .scene__image{object-position:center 38%}
  .scene[data-mode="scene6-grandma"] .scene__image{object-position:center 31%;transform:scale(1.04)}
  .scene[data-mode="scene6-mandarin"] .scene__image{object-position:center 50%}
  .scene[data-mode="scene6-chat"] .scene__image{object-position:center 34%}
  .scene[data-mode="scene6-papa"] .scene__image{object-position:center 40%}
  .scene[data-mode="scene6-evening"] .scene__image{object-position:center 38%}
  .scene6-stage{padding:72px 10px max(14px,env(safe-area-inset-bottom))}
  .scene6-caption,.scene6-choice-dock{width:100%;padding:11px 12px 10px;border-radius:14px;max-height:48svh;overflow:auto;overscroll-behavior:contain}
  .scene6-caption>strong{font-size:22px}.scene6-caption>p{font-size:13.5px}.scene6-caption .scene6-spoken{font-size:16px!important}
  .scene6-tap-cue{bottom:max(10px,env(safe-area-inset-bottom));font-size:8.5px;padding:6px 9px}
  .scene-object-action--seat{left:21%;bottom:12%}.scene-object-action--greet{bottom:7%}.scene-object-action--mandarin{left:50%;bottom:16%}
  .scene6-free-dock{bottom:max(9px,env(safe-area-inset-bottom));width:calc(100% - 20px)}
  .scene6-action-echo{margin-bottom:35px;max-width:calc(100% - 20px)}
  .scene6-choice-dock .scene-conversation-choice{font-size:13px}
}
@media(max-width:390px){
  .scene6-caption,.scene6-choice-dock{max-height:50svh;padding:10px 10px 9px}
  .scene6-caption>strong{font-size:20px}.scene6-caption>p{font-size:13px}
  .scene6-caption .scene-lang-line strong{font-size:19px}
  .scene6-tap-cue{max-width:90vw;white-space:normal}
  .scene-object-action--seat{left:16%;bottom:11%}.scene-object-action--mandarin{bottom:14%}
}
@media(prefers-reduced-motion:reduce){
  .scene6-tap-cue i{animation:none}.scene[data-mode^="scene6-"] .scene__image{transition:none;transform:none}
}

/* SCENE 7 */
.scene[data-mode^="scene7-"] .scene__image{filter:saturate(.97) brightness(.9);transition:transform 1.1s ease}.scene7-stage{position:absolute;inset:0;z-index:3;display:flex;align-items:flex-end;padding:88px 22px max(18px,env(safe-area-inset-bottom));pointer-events:none;color:#fff}.scene7-caption{pointer-events:auto;width:min(540px,100%);padding:14px 16px;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:rgba(10,9,8,.52);backdrop-filter:blur(11px)}.scene7-caption--left{margin-right:auto}.scene7-caption--right{margin-left:auto}.scene7-caption small,.scene7-choice-panel small{display:block;color:#e7b099;font:800 8px/1.2 system-ui;letter-spacing:.15em;margin:0 0 7px}.scene7-caption strong{display:block;font:500 clamp(22px,2.5vw,34px)/1.1 Georgia,serif}.scene7-caption p{margin:7px 0 0;font:400 15px/1.45 Georgia,serif;color:rgba(255,255,255,.82)}.scene7-tap-layer{position:absolute;inset:0;z-index:2;border:0;background:transparent;pointer-events:auto}.scene7-tap-cue{position:absolute;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);padding:7px 10px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(7,6,5,.38);color:#fff;font:700 9px system-ui;white-space:nowrap}.scene7-choice-dock,.scene7-choice-panel{pointer-events:auto;position:absolute;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(520px,calc(100% - 24px));padding:10px;border-radius:15px;background:rgba(10,9,8,.6);backdrop-filter:blur(12px)}.scene7-choice-dock{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.scene7-choice-dock button,.scene7-choice-panel button,.scene7-nonverbal,.scene7-stand-action{border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.06);color:#fff;padding:10px;font:650 13px system-ui}.scene7-choice-panel{position:relative;left:auto;bottom:auto;transform:none;margin:0 auto}.scene7-choice-panel>div{display:grid;gap:7px}.scene7-free-dock{position:absolute;z-index:5;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(470px,calc(100% - 24px));pointer-events:auto}.scene7-nonverbal{position:absolute;z-index:5;right:18px;bottom:max(14px,env(safe-area-inset-bottom));pointer-events:auto}.scene7-gift-object{position:absolute;right:5%;bottom:9%;z-index:3;width:min(180px,16vw);pointer-events:none}.scene7-gift-object img{display:block;width:100%;height:auto;filter:drop-shadow(0 14px 24px rgba(0,0,0,.28))}.scene7-gift-object figcaption{display:none}.scene7-stand-action{position:absolute;z-index:5;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);pointer-events:auto;background:rgba(9,8,7,.58)}.scene7-client{margin-bottom:10px;padding:8px;border-left:2px solid #e7b099;background:rgba(255,255,255,.035)}
@media(max-width:820px){.scene7-gift-object{right:12px;top:82px;bottom:auto;width:96px}.scene7-stage{padding:70px 10px max(10px,env(safe-area-inset-bottom))}.scene7-caption{width:100%;max-height:48svh;overflow:auto;padding:11px 12px}.scene7-caption p{font-size:13.5px}.scene7-choice-dock{grid-template-columns:1fr;width:calc(100% - 20px);bottom:max(8px,env(safe-area-inset-bottom))}.scene7-choice-panel{width:100%;max-height:44svh;overflow:auto}.scene7-free-dock{width:calc(100% - 20px);bottom:max(8px,env(safe-area-inset-bottom))}.scene7-nonverbal{right:10px;bottom:max(8px,env(safe-area-inset-bottom));max-width:46%;font-size:11px}.scene7-tap-cue{max-width:90vw;white-space:normal;text-align:center}.scene[data-mode="scene7-entry"] .scene__image{object-position:center 34%}.scene[data-mode="scene7-greeting"] .scene__image{object-position:center 27%}.scene[data-mode="scene7-sibling"] .scene__image{object-position:center 35%}.scene[data-mode="scene7-conversation"] .scene__image{object-position:center 36%}.scene[data-mode="scene7-gift"] .scene__image{object-position:center 35%}.scene[data-mode="scene7-dinner"] .scene__image{object-position:center 28%}}


/* Scene 8 · dinner at the Han home */
.scene[data-mode^="scene8-"] .scene__image{filter:saturate(.94) contrast(1.012) brightness(.89);transition:transform 1.15s ease,filter .65s ease}
.scene[data-mode="scene8-table"] .scene__image{transform:scale(1.012)}
.scene[data-mode="scene8-welcome"] .scene__image{transform:scale(1.018)}
.scene[data-mode="scene8-bibimbap"] .scene__image{transform:scale(1.022)}
.scene[data-mode="scene8-bite"] .scene__image{transform:scale(1.018)}
.scene[data-mode="scene8-bulgogi"] .scene__image{transform:scale(1.018)}
.scene[data-mode="scene8-pour"] .scene__image{transform:scale(1.022)}
.scene[data-mode="scene8-banchan"] .scene__image{transform:scale(1.014)}
.scene[data-mode="scene8-end"] .scene__image{transform:scale(1.01)}
.scene[data-mode^="scene8-"] .scene__veil{background:linear-gradient(180deg,rgba(8,6,4,.035),rgba(8,6,4,.08) 43%,rgba(8,6,4,.30))}
.scene8-stage{position:absolute;inset:0;z-index:3;display:flex;align-items:flex-end;padding:88px 22px max(18px,env(safe-area-inset-bottom));pointer-events:none;color:#fff}
.scene8-stage--immersive{align-items:flex-end}
.scene8-caption{position:relative;z-index:4;pointer-events:auto;width:min(540px,100%);padding:14px 16px 13px;border:1px solid rgba(255,255,255,.095);border-radius:15px;background:linear-gradient(135deg,rgba(10,8,7,.54),rgba(10,8,7,.24));backdrop-filter:blur(11px);box-shadow:0 18px 46px rgba(0,0,0,.19)}
.scene8-caption--left{margin-right:auto}.scene8-caption--right{margin-left:auto}.scene8-caption--dialogue{width:min(520px,100%)}.scene8-caption--final{width:min(650px,100%)}
.scene8-caption small,.scene8-choice-panel small{display:block;margin:0 0 7px;color:#ecc09b;font:850 8px/1.2 system-ui,sans-serif;letter-spacing:.17em;text-transform:uppercase}
.scene8-caption strong{display:block;color:#fff;font:500 clamp(23px,2.5vw,35px)/1.11 Georgia,serif}
.scene8-caption p{margin:7px 0 0;color:rgba(255,255,255,.83);font:400 clamp(14px,1.2vw,17px)/1.48 Georgia,serif}
.scene8-spoken{color:#fff!important;font-size:clamp(16px,1.45vw,20px)!important}
.scene8-translation{display:block;margin:3px 0 8px;color:rgba(255,255,255,.58);font:400 12px/1.35 system-ui,sans-serif}
.scene8-mae{display:flex;gap:9px;align-items:flex-start;margin-top:11px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}
.scene8-mae img{width:31px;height:31px;border-radius:50%;object-fit:cover;flex:0 0 auto}.scene8-mae span{display:block;color:#e8a88e;font:800 9px/1.2 system-ui,sans-serif}.scene8-mae p{margin:2px 0 0;font-size:13px;color:rgba(255,255,255,.72)}
.scene8-tap-layer{position:absolute;inset:0;z-index:2;border:0;background:transparent;pointer-events:auto;cursor:pointer}
.scene8-tap-cue{position:absolute;left:50%;bottom:max(11px,env(safe-area-inset-bottom));transform:translateX(-50%);display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(7,6,5,.34);backdrop-filter:blur(8px);color:rgba(255,255,255,.83);font:750 9px/1 system-ui,sans-serif;letter-spacing:.075em;text-transform:uppercase;white-space:nowrap}
.scene8-tap-cue i{width:5px;height:5px;border-radius:50%;background:#e9b58d;box-shadow:0 0 0 0 rgba(233,181,141,.4);animation:scene8Pulse 1.8s infinite}
@keyframes scene8Pulse{55%{box-shadow:0 0 0 7px rgba(233,181,141,0)}100%{box-shadow:0 0 0 0 rgba(233,181,141,0)}}
.scene8-object-action{position:absolute;z-index:6;pointer-events:auto;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(12,10,8,.48);backdrop-filter:blur(10px);color:#fff;padding:10px 14px;display:flex;align-items:center;gap:9px;font:700 12px/1.2 system-ui,sans-serif;box-shadow:0 14px 34px rgba(0,0,0,.18);cursor:pointer}
.scene8-object-action i{width:9px;height:9px;border-radius:50%;border:2px solid #e9b58d;box-shadow:0 0 0 5px rgba(233,181,141,.10)}
.scene8-object-action--seat{right:7%;bottom:14%}.scene8-object-action--bite{right:12%;bottom:17%}.scene8-object-action--pour{right:9%;bottom:18%}.scene8-object-action--retry{right:9%;bottom:16%}
.scene8-choice-panel{position:relative;z-index:5;pointer-events:auto;align-self:flex-end;margin:0 auto;width:min(560px,100%);padding:11px;border:1px solid rgba(255,255,255,.10);border-radius:16px;background:rgba(10,8,7,.58);backdrop-filter:blur(13px);box-shadow:0 20px 54px rgba(0,0,0,.22)}
.scene8-choice-panel .scene8-spoken,.scene8-choice-panel .scene8-question{margin:0 0 10px;color:#fff;font:500 clamp(17px,1.5vw,21px)/1.35 Georgia,serif}
.scene8-choice-panel>div{display:grid;gap:7px}
.scene8-choice-panel button{border:1px solid rgba(255,255,255,.11);border-radius:11px;background:rgba(255,255,255,.055);color:#fff;padding:10px 11px;font:650 13px/1.3 system-ui,sans-serif;text-align:left;cursor:pointer}
.scene8-choice-panel button:hover{background:rgba(255,255,255,.10)}
.scene8-next{margin-top:14px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}
.scene8-next span{display:block;color:#eab692;font:800 8px/1.2 system-ui,sans-serif;letter-spacing:.14em}
.scene8-next b{display:block;margin-top:4px;font:500 20px/1.2 Georgia,serif}
.scene[data-mode="scene8-pour"] .scene8-caption--right{max-width:470px}

@media(max-width:820px){
  .scene[data-mode="scene8-table"] .scene__image{object-position:center 34%}
  .scene[data-mode="scene8-welcome"] .scene__image{object-position:center 31%}
  .scene[data-mode="scene8-bibimbap"] .scene__image{object-position:center 30%}
  .scene[data-mode="scene8-bite"] .scene__image{object-position:center 34%}
  .scene[data-mode="scene8-bulgogi"] .scene__image{object-position:center 30%}
  .scene[data-mode="scene8-pour"] .scene__image{object-position:center 34%}
  .scene[data-mode="scene8-banchan"] .scene__image{object-position:center 34%}
  .scene[data-mode="scene8-end"] .scene__image{object-position:center 32%}
  .scene8-stage{padding:70px 10px max(11px,env(safe-area-inset-bottom))}
  .scene8-caption{width:100%;padding:11px 12px 10px;border-radius:14px;max-height:49svh;overflow:auto;overscroll-behavior:contain}
  .scene8-caption strong{font-size:21px}.scene8-caption p{font-size:13.3px}.scene8-spoken{font-size:16px!important}
  .scene8-choice-panel{width:100%;max-height:46svh;overflow:auto;padding:9px}
  .scene8-choice-panel button{font-size:12.5px;padding:9px 10px}
  .scene8-object-action{left:50%;right:auto;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);max-width:calc(100% - 22px);white-space:normal;text-align:center}
  .scene8-stage--with-action .scene8-caption{margin-bottom:58px}
  .scene8-tap-cue{bottom:max(8px,env(safe-area-inset-bottom));font-size:8.4px;padding:6px 9px;max-width:90vw;white-space:normal;text-align:center}
}
@media(max-width:390px){
  .scene8-caption{max-height:51svh;padding:10px}.scene8-caption strong{font-size:20px}.scene8-caption p{font-size:12.9px}
  .scene8-choice-panel{max-height:48svh}.scene8-choice-panel button{font-size:12.2px}
}
@media(prefers-reduced-motion:reduce){.scene8-tap-cue i{animation:none}.scene[data-mode^="scene8-"] .scene__image{transition:none;transform:none}}


/* Scene 9 · getting acquainted */
.scene[data-mode^="scene9-"] .scene__image{filter:saturate(1.01) contrast(1.005) brightness(1.08);transition:transform 1.2s ease,filter .8s ease}
.scene[data-mode="scene9-opening"] .scene__image{transform:scale(1.012)}
.scene[data-mode="scene9-origin"] .scene__image{transform:scale(1.022);object-position:center center}
.scene[data-mode="scene9-reason"] .scene__image{transform:scale(1.018);object-position:center center}
.scene[data-mode="scene9-grandma"] .scene__image{transform:scale(1.026);object-position:center 42%}
.scene[data-mode="scene9-jiho"] .scene__image{transform:scale(1.028);object-position:center center}
.scene[data-mode="scene9-dessert"] .scene__image{transform:scale(1.018)}
.scene[data-mode^="scene9-"] .scene__veil{background:linear-gradient(180deg,rgba(7,5,4,.02),rgba(8,6,4,.03) 40%,rgba(8,6,4,.18))}
.scene9-stage{position:absolute;inset:0;z-index:3;display:flex;align-items:flex-end;padding:86px 22px max(18px,env(safe-area-inset-bottom));pointer-events:none;color:#fff}
.scene9-stage--immersive{align-items:flex-end}
.scene9-caption{position:relative;z-index:4;width:min(560px,100%);padding:14px 16px 13px;border:1px solid rgba(255,255,255,.085);border-radius:15px;background:linear-gradient(135deg,rgba(10,8,7,.54),rgba(10,8,7,.25));backdrop-filter:blur(11px);box-shadow:0 20px 50px rgba(0,0,0,.19);pointer-events:auto}
.scene9-caption--left{margin-right:auto}.scene9-caption--right{margin-left:auto}.scene9-caption--question{margin-bottom:150px}.scene9-caption--final{width:min(640px,100%)}
.scene9-caption>small,.scene9-free>label{display:block;margin:0 0 7px;color:#e9b49a;font:850 8px/1.2 system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase}
.scene9-caption>strong{display:block;color:#fff;font:500 clamp(23px,2.5vw,34px)/1.1 Georgia,serif}
.scene9-caption>p{margin:7px 0 0;color:rgba(255,255,255,.83);font:400 clamp(14px,1.2vw,17px)/1.48 Georgia,serif}
.scene9-family-beat{margin-top:11px!important;padding-top:9px;border-top:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.66)!important;font-size:13px!important}
.scene9-big-question{margin:0!important;color:#fff!important;font:500 clamp(19px,2vw,28px)/1.2 Georgia,serif!important}
.scene9-spoken{color:#fff!important;font-size:17px!important}
.scene9-language-nudge{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}
.scene9-language-nudge>small{display:block;color:#e9b49a;font:800 8px/1.2 system-ui,sans-serif;letter-spacing:.13em}
.scene9-language-nudge .scene-lang-line{margin-top:7px}
.scene9-mae{display:flex;gap:9px;align-items:flex-start;margin-top:11px;padding:9px 10px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(255,255,255,.04)}
.scene9-mae img{width:28px;height:28px;border-radius:50%;object-fit:cover}.scene9-mae span{display:block;color:#e9b49a;font:800 8px/1.2 system-ui,sans-serif;letter-spacing:.12em}.scene9-mae p{margin:3px 0 0!important;font-size:12.5px!important;line-height:1.4!important;color:rgba(255,255,255,.77)!important}
.scene9-tap{position:absolute;inset:0;z-index:2;border:0;background:transparent;pointer-events:auto;cursor:pointer}
.scene9-tap>span{position:absolute;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);display:inline-flex;align-items:center;gap:7px;max-width:90vw;padding:6px 10px;border:1px solid rgba(255,255,255,.11);border-radius:999px;background:rgba(8,7,6,.34);backdrop-filter:blur(8px);color:rgba(255,255,255,.78);font:750 8.5px/1.15 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;text-align:center}
.scene9-tap i{width:5px;height:5px;border-radius:50%;background:#e9b49a;animation:scene9Pulse 1.8s infinite}@keyframes scene9Pulse{55%{box-shadow:0 0 0 7px rgba(233,180,154,0)}100%{box-shadow:0 0 0 0 rgba(233,180,154,0)}}
.scene9-replies{position:absolute;z-index:6;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(600px,calc(100% - 28px));display:grid;gap:0;pointer-events:auto;border-top:1px solid rgba(255,255,255,.16);background:linear-gradient(180deg,rgba(10,8,7,.16),rgba(10,8,7,.52));backdrop-filter:blur(10px)}
.scene9-replies button{appearance:none;border:0;border-bottom:1px solid rgba(255,255,255,.11);background:transparent;color:#fff;text-align:left;padding:11px 6px;cursor:pointer;font:500 14px/1.35 Georgia,serif;transition:background .18s ease,padding-left .18s ease}
.scene9-replies button:hover,.scene9-replies button:focus-visible{background:rgba(255,255,255,.055);padding-left:12px;outline:none}.scene9-replies button:last-child{border-bottom:0}
.scene9-free{position:absolute;z-index:6;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(560px,calc(100% - 28px));padding:10px 12px;border-top:1px solid rgba(255,255,255,.15);background:linear-gradient(180deg,rgba(8,7,6,.16),rgba(8,7,6,.58));backdrop-filter:blur(11px);pointer-events:auto}
.scene9-free>div{display:flex;align-items:center;gap:8px}.scene9-free input{flex:1;min-width:0;border:0;border-bottom:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;padding:9px 2px;font:500 15px/1.3 Georgia,serif;outline:none}.scene9-free input::placeholder{color:rgba(255,255,255,.45)}.scene9-free>div>button{width:44px;height:44px;flex:0 0 44px;border:1px solid rgba(255,255,255,.13);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;cursor:pointer}.scene9-country-skip{display:block;width:100%;min-height:44px;height:auto;margin-top:10px;padding:10px 12px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.045);color:#f8e9e0;text-align:center;font:500 13px/1.4 system-ui,sans-serif;white-space:normal;cursor:pointer}.scene9-free>small{display:block;margin-top:6px;color:rgba(255,255,255,.52);font:500 10px/1.35 system-ui,sans-serif}
.scene9-next{margin-top:14px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.scene9-next span{display:block;color:#e9b49a;font:800 8px/1.2 system-ui,sans-serif;letter-spacing:.14em}.scene9-next b{display:block;margin-top:4px;font:500 20px/1.2 Georgia,serif;color:#fff}
@media(max-width:820px){
  .scene9-stage{padding:70px 10px max(10px,env(safe-area-inset-bottom))}
  .scene9-caption{width:100%;padding:11px 12px 10px;border-radius:13px;max-height:47svh;overflow:auto;overscroll-behavior:contain}.scene9-caption--question{margin-bottom:142px}
  .scene9-caption>strong{font-size:21px}.scene9-caption>p{font-size:13.4px}.scene9-big-question{font-size:18px!important}
  .scene9-replies{width:calc(100% - 20px);bottom:max(8px,env(safe-area-inset-bottom))}.scene9-replies button{font-size:13px;padding:9px 4px}
  .scene9-free{width:calc(100% - 20px);bottom:max(8px,env(safe-area-inset-bottom));padding:9px 10px}.scene9-free input{font-size:14px}
  .scene9-tap>span{bottom:max(8px,env(safe-area-inset-bottom));font-size:8px}
  .scene[data-mode="scene9-origin"] .scene__image{object-position:center 34%}.scene[data-mode="scene9-reason"] .scene__image{object-position:center 36%}.scene[data-mode="scene9-grandma"] .scene__image{object-position:center 32%}.scene[data-mode="scene9-jiho"] .scene__image{object-position:center 30%}.scene[data-mode="scene9-dessert"] .scene__image{object-position:center 35%}
}
@media(max-width:390px){.scene9-caption{max-height:49svh;padding:10px}.scene9-caption>p{font-size:12.9px}.scene9-replies button{font-size:12.5px;padding:8px 3px}.scene9-caption--question{margin-bottom:136px}}
@media(prefers-reduced-motion:reduce){.scene9-tap i{animation:none}.scene[data-mode^="scene9-"] .scene__image{transition:none;transform:none}}


/* Scene 10 · dessert */
.scene[data-mode^="scene10-"] .scene__image{filter:saturate(.94) contrast(1.01) brightness(.90);transition:transform 1.2s ease,filter .8s ease}
.scene[data-mode^="scene10-"] .scene__veil{background:linear-gradient(180deg,rgba(8,6,5,.04),rgba(8,6,5,.10) 50%,rgba(8,6,5,.34))}
.scene[data-mode="scene10-dessert"] .scene__image{transform:scale(1.015);filter:saturate(.98) contrast(1.02) brightness(1.07)}
.scene[data-mode="scene10-drinks"] .scene__image,.scene[data-mode="scene10-difference"] .scene__image{transform:scale(1.01)}
.scene[data-mode="scene10-taste"] .scene__image{transform:scale(1.02)}
.scene10-stage{position:absolute;inset:0;z-index:3;display:flex;align-items:flex-end;padding:88px 22px max(18px,env(safe-area-inset-bottom));pointer-events:none;color:#fff}
.scene10-caption{position:relative;z-index:4;pointer-events:auto;width:min(560px,100%);padding:14px 16px;border:1px solid rgba(255,255,255,.09);border-radius:15px;background:linear-gradient(135deg,rgba(10,8,7,.55),rgba(10,8,7,.25));backdrop-filter:blur(11px);box-shadow:0 18px 48px rgba(0,0,0,.20)}
.scene10-caption--left{margin-right:auto}.scene10-caption--right{margin-left:auto}.scene10-caption--question{width:min(520px,100%)}.scene10-caption--final{width:min(620px,100%)}
.scene10-caption small{display:block;margin:0 0 6px;color:#e8b092;font:850 8px/1.2 system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase}.scene10-caption strong{display:block;color:#fff;font:500 clamp(22px,2.4vw,34px)/1.12 Georgia,serif}.scene10-caption p{margin:7px 0 0;color:rgba(255,255,255,.84);font:400 clamp(14px,1.25vw,17px)/1.48 Georgia,serif}.scene10-translation{display:block;margin-top:3px;color:rgba(255,255,255,.58);font:400 12px/1.35 system-ui,sans-serif}.scene10-family-beat{padding-top:7px;border-top:1px solid rgba(255,255,255,.08)}
.scene10-family-joke{margin-top:10px;padding:9px 10px;border-left:2px solid rgba(232,176,146,.65);background:rgba(255,255,255,.035)}.scene10-family-joke p{margin:3px 0 7px}.scene10-family-joke small{margin-top:5px}
.scene10-tap{position:absolute;inset:0;z-index:2;border:0;background:transparent;pointer-events:auto;cursor:pointer}.scene10-tap span{position:absolute;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(8,7,6,.37);backdrop-filter:blur(8px);color:rgba(255,255,255,.82);font:750 9px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.scene10-tap i{width:5px;height:5px;border-radius:50%;background:#e8b092;animation:scene10Pulse 1.8s infinite}@keyframes scene10Pulse{55%{box-shadow:0 0 0 7px rgba(232,176,146,0)}100%{box-shadow:0 0 0 0 rgba(232,176,146,0)}}
.scene10-replies{position:absolute;z-index:5;pointer-events:auto;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(560px,calc(100% - 28px));padding:9px;border:1px solid rgba(255,255,255,.10);border-radius:15px;background:rgba(10,8,7,.58);backdrop-filter:blur(13px);display:grid;gap:6px;box-shadow:0 20px 54px rgba(0,0,0,.22)}.scene10-replies button{border:0;border-bottom:1px solid rgba(255,255,255,.09);background:transparent;color:#fff;text-align:left;padding:10px 9px;cursor:pointer;font:500 14px/1.35 Georgia,serif}.scene10-replies button:last-child{border-bottom:0}.scene10-replies button:hover{background:rgba(255,255,255,.05)}
.scene10-free{position:absolute;z-index:5;pointer-events:auto;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(520px,calc(100% - 28px));padding:11px;border:1px solid rgba(255,255,255,.10);border-radius:15px;background:rgba(10,8,7,.60);backdrop-filter:blur(13px)}.scene10-free label{display:block;margin-bottom:7px;color:#fff;font:500 14px/1.3 Georgia,serif}.scene10-free>div{display:flex;gap:7px}.scene10-free input{min-width:0;flex:1;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(255,255,255,.06);color:#fff;padding:10px 11px;outline:none}.scene10-free button{width:42px;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:rgba(255,255,255,.08);color:#fff}
.scene10-mae{display:grid;grid-template-columns:36px 1fr;gap:9px;margin-top:11px;padding-top:9px;border-top:1px solid rgba(255,255,255,.08)}.scene10-mae img{width:36px;height:36px;border-radius:50%;object-fit:cover}.scene10-mae span{color:#e8b092;font:800 9px/1 system-ui,sans-serif;letter-spacing:.09em}.scene10-mae p{margin-top:4px!important;font-size:13px!important;color:rgba(255,255,255,.77)!important}.scene10-next{margin-top:13px;padding-top:9px;border-top:1px solid rgba(255,255,255,.08)}.scene10-next span{display:block;color:#e8b092;font:800 8px/1.2 system-ui,sans-serif;letter-spacing:.14em}.scene10-next b{display:block;margin-top:4px;font:500 20px/1.2 Georgia,serif}
@media(max-width:820px){.scene10-stage{padding:70px 10px max(10px,env(safe-area-inset-bottom))}.scene10-caption{width:100%;max-height:48svh;overflow:auto;overscroll-behavior:contain;padding:11px 12px}.scene10-caption strong{font-size:21px}.scene10-caption p{font-size:13.5px}.scene10-replies{width:calc(100% - 20px);bottom:max(8px,env(safe-area-inset-bottom));max-height:43svh;overflow:auto}.scene10-replies button{padding:9px 8px;font-size:13px}.scene10-free{width:calc(100% - 20px);bottom:max(8px,env(safe-area-inset-bottom))}.scene10-tap span{bottom:max(8px,env(safe-area-inset-bottom));font-size:8.5px;white-space:normal;max-width:90vw;text-align:center}.scene[data-mode="scene10-dessert"] .scene__image{object-position:center 30%}.scene[data-mode="scene10-drinks"] .scene__image{object-position:center 30%}.scene[data-mode="scene10-jeonju"] .scene__image{object-position:center 35%}.scene[data-mode="scene10-difference"] .scene__image{object-position:center 32%}.scene[data-mode="scene10-taste"] .scene__image{object-position:center 30%}.scene[data-mode="scene10-help"] .scene__image{object-position:center 34%}}
@media(max-width:390px){.scene10-caption{max-height:50svh}.scene10-caption strong{font-size:19.5px}.scene10-caption p{font-size:13px}.scene10-replies button{font-size:12.5px}}
@media(prefers-reduced-motion:reduce){.scene10-tap i{animation:none}.scene[data-mode^="scene10-"] .scene__image{transition:none;transform:none}}

/* SCENE 11 — after dinner / relationship pass */
.scene[data-mode^="scene11-"] .scene__image{filter:saturate(.91) contrast(1.01) brightness(.82);transition:transform 1.6s ease,filter 1s ease}
.scene[data-mode^="scene11-"] .scene__image-shade{background:linear-gradient(180deg,rgba(8,6,5,.03),rgba(8,6,5,.06) 45%,rgba(8,6,5,.30))}
.scene[data-mode="scene11-opening"] .scene__image{transform:scale(1.015)}
.scene[data-mode="scene11-meal"] .scene__image{transform:scale(1.008)}
.scene[data-mode="scene11-jeonju"] .scene__image{transform:scale(1.012)}
.scene[data-mode="scene11-phone"] .scene__image{transform:scale(1.018)}
.scene[data-mode="scene11-end"] .scene__image{filter:saturate(.92) contrast(1.01) brightness(.90);transform:scale(1.012)}
.scene11-stage{position:absolute;inset:0;z-index:3;display:flex;align-items:flex-end;padding:88px 22px max(18px,env(safe-area-inset-bottom));pointer-events:none;color:#fff}
.scene11-caption{position:relative;z-index:4;pointer-events:auto;width:min(555px,100%);padding:14px 16px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:linear-gradient(135deg,rgba(10,8,7,.50),rgba(10,8,7,.20));backdrop-filter:blur(12px);box-shadow:0 18px 48px rgba(0,0,0,.18)}
.scene11-caption--left{margin-right:auto}.scene11-caption--right{margin-left:auto}.scene11-caption--question{width:min(510px,100%)}.scene11-caption--quiet{background:linear-gradient(135deg,rgba(10,8,7,.44),rgba(10,8,7,.14))}.scene11-caption--phone{width:min(430px,100%)}
.scene11-caption small{display:block;margin:0 0 6px;color:#e8b092;font:850 8px/1.2 system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase}.scene11-caption strong{display:block;color:#fff;font:500 clamp(22px,2.35vw,33px)/1.13 Georgia,serif}.scene11-caption p{margin:7px 0 0;color:rgba(255,255,255,.84);font:400 clamp(14px,1.18vw,16.5px)/1.48 Georgia,serif}.scene11-sibling-beat{margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.075)}.scene11-sibling-beat small{margin-top:7px}.scene11-client-echo{font-style:italic;color:#fff!important}.scene11-memory-thread,.scene11-phone-hint{margin-top:10px!important;padding-top:8px;border-top:1px solid rgba(255,255,255,.07);color:rgba(255,255,255,.64)!important;font-size:12.5px!important}
.scene11-tap{position:absolute;inset:0;z-index:2;border:0;background:transparent;pointer-events:auto;cursor:pointer}.scene11-tap span{position:absolute;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(255,255,255,.11);border-radius:999px;background:rgba(8,7,6,.31);backdrop-filter:blur(8px);color:rgba(255,255,255,.75);font:750 8.5px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.scene11-tap i{width:5px;height:5px;border-radius:50%;background:#e8b092;animation:scene11Pulse 2.1s infinite}@keyframes scene11Pulse{55%{box-shadow:0 0 0 7px rgba(232,176,146,0)}100%{box-shadow:0 0 0 0 rgba(232,176,146,0)}}
.scene11-replies{position:absolute;z-index:5;pointer-events:auto;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(555px,calc(100% - 28px));padding:9px;border:1px solid rgba(255,255,255,.10);border-radius:15px;background:rgba(10,8,7,.55);backdrop-filter:blur(13px);display:grid;gap:5px;box-shadow:0 20px 54px rgba(0,0,0,.20)}.scene11-replies button{border:0;border-bottom:1px solid rgba(255,255,255,.085);background:transparent;color:#fff;text-align:left;padding:10px 9px;cursor:pointer;font:500 14px/1.35 Georgia,serif}.scene11-replies button:last-child{border-bottom:0}.scene11-replies button:hover{background:rgba(255,255,255,.045)}
.scene11-free{position:absolute;z-index:5;pointer-events:auto;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(520px,calc(100% - 28px));padding:11px;border:1px solid rgba(255,255,255,.10);border-radius:15px;background:rgba(10,8,7,.57);backdrop-filter:blur(13px)}.scene11-free label{display:flex;gap:7px;align-items:center;margin-bottom:7px;color:#fff;font:500 14px/1.3 Georgia,serif}.scene11-free>div{display:flex;gap:7px}.scene11-free input{min-width:0;flex:1;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(255,255,255,.06);color:#fff;padding:10px 11px;outline:none}.scene11-free button{width:42px;border:1px solid rgba(255,255,255,.15);border-radius:10px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
.scene11-phone-card{position:absolute;z-index:5;pointer-events:auto;right:clamp(22px,8vw,120px);bottom:clamp(56px,9vh,110px);width:min(255px,38vw);padding:15px 15px 13px;text-align:left;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:linear-gradient(160deg,rgba(31,35,32,.90),rgba(13,14,13,.88));box-shadow:0 18px 42px rgba(0,0,0,.32);color:#fff;cursor:pointer;transform:rotate(-1.2deg);backdrop-filter:blur(12px)}.scene11-phone-card__eyebrow{display:block;color:#d8c19d;font:800 7px/1.2 system-ui,sans-serif;letter-spacing:.14em}.scene11-phone-card strong{display:block;margin-top:9px;font:600 23px/1.1 Georgia,serif}.scene11-phone-card b{display:block;margin-top:2px;font:500 14px/1.2 system-ui,sans-serif}.scene11-phone-card small{display:block;margin-top:12px;color:rgba(255,255,255,.55);font:700 8px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.scene11-phone-skip{position:absolute;z-index:6;pointer-events:auto;right:clamp(22px,8vw,120px);bottom:max(12px,env(safe-area-inset-bottom));width:min(255px,38vw);min-height:40px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(14,15,13,.72);color:#fff;font:600 12px/1.35 system-ui,sans-serif;cursor:pointer;backdrop-filter:blur(10px)}.scene11-phone-skip:hover,.scene11-phone-skip:focus-visible{background:rgba(39,44,34,.92);outline-offset:3px}@media(max-width:820px){.scene11-phone-skip{right:12px;bottom:max(14px,env(safe-area-inset-bottom));width:min(220px,64vw);font-size:12px}}@media(max-width:390px){.scene11-phone-skip{width:min(205px,68vw)}}
.scene11-stage--map{align-items:center;justify-content:center;padding:76px 18px 56px;background:rgba(7,8,7,.26);backdrop-filter:blur(2px)}.scene11-map-card{position:relative;z-index:6;pointer-events:auto;width:min(760px,94vw);height:min(520px,72svh);display:grid;grid-template-rows:auto 1fr;grid-template-columns:1.25fr .9fr;overflow:hidden;border:1px solid rgba(255,255,255,.13);border-radius:24px;background:#171a18;box-shadow:0 26px 80px rgba(0,0,0,.44)}.scene11-map-card header{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.025)}.scene11-map-card header span{color:#d8c19d;font:800 8px/1 system-ui,sans-serif;letter-spacing:.15em}.scene11-map-card header button{border:0;background:transparent;color:#fff;font-size:24px;cursor:pointer}.scene11-map-visual{position:relative;overflow:hidden;background:radial-gradient(circle at 62% 42%,rgba(217,184,122,.15),transparent 25%),linear-gradient(145deg,#222824,#151916)}.scene11-map-visual:before,.scene11-map-visual:after{content:"";position:absolute;inset:-20%;opacity:.28;transform:rotate(-13deg);background:repeating-linear-gradient(90deg,transparent 0 52px,rgba(255,255,255,.10) 53px 55px,transparent 56px 108px)}.scene11-map-visual:after{transform:rotate(48deg);opacity:.18}.scene11-map-dot{position:absolute;z-index:2;left:58%;top:44%;width:14px;height:14px;border:3px solid #f1dfbd;border-radius:50%;box-shadow:0 0 0 7px rgba(241,223,189,.15)}.scene11-map-visual>span{position:absolute;left:12%;top:18%;z-index:2;color:rgba(255,255,255,.38);font:800 9px/1 system-ui,sans-serif;letter-spacing:.18em}.scene11-map-visual>b{position:absolute;left:calc(58% + 16px);top:calc(44% - 4px);z-index:2;color:#fff;font:600 13px/1.2 system-ui,sans-serif}.scene11-map-copy{padding:24px 22px;display:flex;flex-direction:column;justify-content:center}.scene11-map-copy small{color:#d8c19d;font:800 8px/1 system-ui,sans-serif;letter-spacing:.14em}.scene11-map-copy h3{margin:10px 0 1px;font:600 30px/1.1 Georgia,serif}.scene11-map-copy strong{font:500 16px/1.2 system-ui,sans-serif}.scene11-map-copy p{margin:10px 0 0;color:rgba(255,255,255,.68);font:400 13px/1.5 Georgia,serif}
.scene11-stage--end{align-items:stretch;padding:0}@keyframes scene11MaeWhisper{0%,7%{opacity:0;transform:translate(-50%,-46%)}18%,72%{opacity:1;transform:translate(-50%,-50%)}100%{opacity:0;transform:translate(-50%,-53%)}}
.scene11-end-continue{position:absolute;z-index:5;pointer-events:auto;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);border:0;background:transparent;color:rgba(255,255,255,.95);font:700 12px/1.25 system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;opacity:0;animation:scene11ContinueIn 1s 7.2s forwards}.scene11-end-continue:after{content:"";display:block;width:34px;height:1px;margin:7px auto 0;background:rgba(232,176,146,.7)}@keyframes scene11ContinueIn{to{opacity:1}}
.scene11-stage--complete{align-items:flex-end;padding:88px 22px max(20px,env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent 45%,rgba(6,6,5,.28))}.scene11-complete{width:min(540px,100%);margin-right:auto;padding:13px 15px;border-left:1px solid rgba(232,176,146,.55);background:rgba(8,7,6,.18);backdrop-filter:blur(7px)}.scene11-complete small,.scene11-complete span{display:block;color:#e8b092;font:800 8px/1.2 system-ui,sans-serif;letter-spacing:.15em}.scene11-complete strong{display:block;margin-top:6px;font:500 clamp(22px,2.3vw,32px)/1.15 Georgia,serif}.scene11-complete p{margin:7px 0 11px;color:rgba(255,255,255,.70);font:400 14px/1.45 Georgia,serif}
@media(max-width:820px){.scene11-stage{padding:70px 10px max(10px,env(safe-area-inset-bottom))}.scene11-caption{width:100%;max-height:47svh;overflow:auto;overscroll-behavior:contain;padding:11px 12px}.scene11-caption strong{font-size:21px}.scene11-caption p{font-size:13.4px}.scene11-replies{width:calc(100% - 20px);bottom:max(8px,env(safe-area-inset-bottom));max-height:42svh;overflow:auto}.scene11-replies button{padding:9px 8px;font-size:13px}.scene11-free{width:calc(100% - 20px);bottom:max(8px,env(safe-area-inset-bottom))}.scene11-tap span{bottom:max(8px,env(safe-area-inset-bottom));font-size:8px;white-space:normal;max-width:88vw;text-align:center}.scene11-phone-card{right:12px;bottom:72px;width:min(220px,64vw)}.scene11-stage--map{padding:70px 10px 54px}.scene11-map-card{width:100%;height:min(610px,76svh);grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.scene11-map-card header{grid-column:1}.scene11-map-visual{min-height:210px}.scene11-map-copy{padding:16px 17px}.scene11-map-copy h3{font-size:25px}.scene11-stage--complete{padding:70px 12px max(14px,env(safe-area-inset-bottom))}.scene[data-mode="scene11-opening"] .scene__image{object-position:center 34%}.scene[data-mode="scene11-meal"] .scene__image{object-position:center 32%}.scene[data-mode="scene11-jeonju"] .scene__image{object-position:center 35%}.scene[data-mode="scene11-tomorrow"] .scene__image,.scene[data-mode="scene11-phone"] .scene__image{object-position:center 32%}.scene[data-mode="scene11-end"] .scene__image{object-position:center 35%}}
@media(max-width:390px){.scene11-caption{max-height:50svh}.scene11-caption strong{font-size:19.5px}.scene11-caption p{font-size:13px}.scene11-replies button{font-size:12.5px}.scene11-phone-card{width:min(205px,68vw)}.scene11-map-visual{min-height:190px}}
@media(prefers-reduced-motion:reduce){.scene11-tap i,.scene11-end-continue{animation:none}.scene11-end-continue{opacity:1}.scene[data-mode^="scene11-"] .scene__image{transition:none;transform:none}}



/* SCENE 12 — departure, memory, passport */
.scene[data-mode^="scene12-"] .scene__image{filter:saturate(.88) contrast(1.02) brightness(.78);transition:transform 1.6s ease,filter 1s ease}
.scene[data-mode^="scene12-"] .scene__image-shade{background:linear-gradient(180deg,rgba(5,6,7,.03),rgba(5,6,7,.10) 52%,rgba(5,6,7,.40))}
.scene[data-mode="scene12-time"] .scene__image{transform:scale(1.012)}
.scene[data-mode="scene12-photo"] .scene__image{transform:scale(1.008)}
.scene[data-mode="scene12-container"] .scene__image,.scene[data-mode="scene12-farewell"] .scene__image{filter:saturate(.92) brightness(.84);transform:scale(1.01)}
.scene[data-mode="scene12-outside"] .scene__image,.scene[data-mode="scene12-walk"] .scene__image{filter:saturate(.82) brightness(.64);transform:scale(1.012)}
.scene[data-mode="scene12-favorite"] .scene__image{filter:brightness(.62) saturate(.80);transform:scale(1.01)}
.scene[data-mode="scene12-recipe"] .scene__image,.scene[data-mode="scene12-stamp"] .scene__image,.scene[data-mode="scene12-souvenirs"] .scene__image{filter:brightness(.34) saturate(.65);transform:scale(1.01)}
.scene12-stage{position:absolute;inset:0;z-index:3;display:flex;align-items:flex-end;padding:88px 22px max(18px,env(safe-area-inset-bottom));pointer-events:none;color:#fff}
.scene12-stage--black{background:rgba(2,3,4,.84);align-items:center;justify-content:center;padding:78px 18px 36px;backdrop-filter:blur(2px)}
.scene12-caption{position:relative;z-index:5;pointer-events:auto;width:min(560px,100%);padding:14px 16px;border:1px solid rgba(255,255,255,.09);border-radius:17px;background:linear-gradient(135deg,rgba(9,8,7,.55),rgba(9,8,7,.22));backdrop-filter:blur(12px);box-shadow:0 18px 52px rgba(0,0,0,.22)}
.scene12-caption--left{margin-right:auto}.scene12-caption--right{margin-left:auto}.scene12-caption--question{width:min(520px,100%)}.scene12-caption--quiet{background:linear-gradient(135deg,rgba(8,8,8,.42),rgba(8,8,8,.14))}
.scene12-caption small{display:block;margin:0 0 6px;color:#e8b092;font:850 8px/1.2 system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase}.scene12-caption strong{display:block;color:#fff;font:500 clamp(22px,2.35vw,33px)/1.13 Georgia,serif}.scene12-caption p{margin:7px 0 0;color:rgba(255,255,255,.84);font:400 clamp(14px,1.16vw,16.5px)/1.48 Georgia,serif}.scene12-dialogue,.scene12-farewell-lines{margin-top:11px;padding-top:9px;border-top:1px solid rgba(255,255,255,.075)}.scene12-farewell-lines small{margin-top:8px}.scene12-context-note{font-size:12px!important;color:rgba(255,255,255,.60)!important;font-style:italic}
.scene12-tap{position:absolute;inset:0;z-index:2;border:0;background:transparent;pointer-events:auto;cursor:pointer}.scene12-tap span{position:absolute;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(8,7,6,.34);backdrop-filter:blur(8px);color:rgba(255,255,255,.78);font:750 8.5px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.scene12-tap i{width:5px;height:5px;border-radius:50%;background:#e8b092;animation:scene12Pulse 2.1s infinite}@keyframes scene12Pulse{55%{box-shadow:0 0 0 7px rgba(232,176,146,0)}100%{box-shadow:0 0 0 0 rgba(232,176,146,0)}}
.scene12-replies{position:absolute;z-index:6;pointer-events:auto;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(570px,calc(100% - 28px));padding:9px;border:1px solid rgba(255,255,255,.10);border-radius:15px;background:rgba(9,8,7,.58);backdrop-filter:blur(13px);display:grid;gap:5px;box-shadow:0 20px 54px rgba(0,0,0,.22)}.scene12-replies button{border:0;border-bottom:1px solid rgba(255,255,255,.085);background:transparent;color:#fff;text-align:left;padding:10px 9px;cursor:pointer;font:500 14px/1.35 Georgia,serif}.scene12-replies button:last-child{border-bottom:0}.scene12-replies button:hover{background:rgba(255,255,255,.045)}
.scene12-give-phone{position:absolute;z-index:6;pointer-events:auto;left:50%;bottom:18px;transform:translateX(-50%);padding:11px 18px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(8,7,6,.52);color:#fff;backdrop-filter:blur(10px);font:800 9px/1 system-ui,sans-serif;letter-spacing:.10em;text-transform:uppercase;cursor:pointer}
.scene12-stage--photo-result{align-items:center;justify-content:center;background:rgba(4,4,4,.28)}.scene12-photo-memory{position:relative;z-index:5;width:min(820px,84vw);margin:0;overflow:hidden;border:8px solid rgba(247,240,229,.97);border-bottom-width:0;background:#efe9e0;box-shadow:0 28px 80px rgba(0,0,0,.45);transform:rotate(-.4deg);opacity:0;animation:scene12PhotoIn .85s 2.3s forwards}.scene12-photo-memory img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.scene12-photo-memory figcaption{position:relative;left:auto;right:auto;bottom:auto;min-height:58px;padding:10px 10px 8px;color:#3f352e;display:flex;align-items:center;gap:10px}.scene12-photo-memory figcaption span{font:800 7px/1 system-ui,sans-serif;letter-spacing:.14em}.scene12-photo-memory figcaption strong{font:500 14px/1.2 Georgia,serif}.scene12-photo-memory figcaption small{margin-left:auto;font:500 10px/1 system-ui,sans-serif}.scene12-countdown{position:absolute;z-index:7;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.scene12-countdown i,.scene12-countdown b{position:absolute;font:700 clamp(56px,9vw,120px)/1 Georgia,serif;text-shadow:0 5px 25px rgba(0,0,0,.35);opacity:0}.scene12-countdown i:nth-child(1){animation:scene12Count .55s .15s}.scene12-countdown i:nth-child(2){animation:scene12Count .55s .75s}.scene12-countdown i:nth-child(3){animation:scene12Count .55s 1.35s}.scene12-countdown b{animation:scene12Flash .6s 1.95s}@keyframes scene12Count{20%,75%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.15)}}@keyframes scene12Flash{25%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.25)}}@keyframes scene12PhotoIn{to{opacity:1;transform:rotate(-.4deg) translateY(-4px)}}
.scene12-phone-memory{position:absolute;z-index:5;right:clamp(22px,7vw,100px);bottom:clamp(58px,10vh,115px);width:min(260px,38vw);padding:9px 9px 12px;border:1px solid rgba(255,255,255,.15);border-radius:22px;background:#111;box-shadow:0 22px 58px rgba(0,0,0,.48);pointer-events:none;transform:rotate(1.2deg)}.scene12-phone-memory span,.scene12-phone-memory small{display:block;color:rgba(255,255,255,.62);font:800 7px/1 system-ui,sans-serif;letter-spacing:.13em}.scene12-phone-memory img{display:block;width:100%;margin:8px 0;aspect-ratio:16/9;object-fit:cover;border-radius:12px}.scene12-walk-note{position:absolute;left:22px;bottom:28px;z-index:5;max-width:420px;padding-left:12px;border-left:1px solid rgba(232,176,146,.45)}.scene12-walk-note span{color:#e8b092;font:800 8px/1 system-ui,sans-serif;letter-spacing:.16em}.scene12-walk-note p{margin:6px 0 0;color:rgba(255,255,255,.70);font:400 13px/1.48 Georgia,serif}
.scene12-mae-final{position:relative;z-index:6;width:min(500px,calc(100% - 24px));display:grid;grid-template-columns:54px minmax(0,1fr);gap:13px;padding:16px 17px;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:rgba(18,16,14,.55);backdrop-filter:blur(12px);transform:translateY(-56px)}.scene12-mae-final img{width:54px;height:54px;border-radius:50%;object-fit:cover}.scene12-mae-final span{color:#e8b092;font:800 9px/1 system-ui,sans-serif;letter-spacing:.10em}.scene12-mae-final p{margin:5px 0 0;color:rgba(255,255,255,.86);font:500 15px/1.42 Georgia,serif}.scene12-mae-final--answer{transform:none}.scene12-leaves i{position:absolute;top:-10%;width:10px;height:18px;border-radius:80% 20% 80% 20%;background:rgba(157,65,37,.72);opacity:.75;animation:scene12Leaf 8s linear infinite}.scene12-leaves i:nth-child(1){left:12%;animation-delay:-1s}.scene12-leaves i:nth-child(2){left:37%;animation-delay:-4s;transform:scale(.8)}.scene12-leaves i:nth-child(3){left:66%;animation-delay:-2.5s;transform:scale(1.1)}.scene12-leaves i:nth-child(4){left:84%;animation-delay:-6s;transform:scale(.7)}@keyframes scene12Leaf{to{top:110%;transform:translateX(55px) rotate(330deg)}}
.scene12-other{position:relative;z-index:6;width:min(520px,100%);padding:18px;border:1px solid rgba(255,255,255,.10);border-radius:18px;background:rgba(18,16,14,.60);pointer-events:auto}.scene12-other label{display:block;margin-bottom:10px;font:500 18px/1.3 Georgia,serif}.scene12-other>div{display:flex;gap:8px}.scene12-other input{min-width:0;flex:1;border:1px solid rgba(255,255,255,.14);border-radius:11px;background:rgba(255,255,255,.06);padding:11px 12px;color:#fff;outline:none}.scene12-other button{width:44px;border:1px solid rgba(255,255,255,.15);border-radius:11px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
.scene12-recipe-card{position:relative;z-index:6;pointer-events:auto;width:min(820px,94vw);max-height:76svh;overflow:auto;padding:24px;border:1px solid rgba(118,91,65,.18);border-radius:24px;background:linear-gradient(155deg,#f5ecdf,#dfceb6);color:#41362e;box-shadow:0 30px 90px rgba(0,0,0,.45)}.scene12-recipe-card header small{color:#945f49;font:850 8px/1 system-ui,sans-serif;letter-spacing:.15em}.scene12-recipe-card h2{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin:8px 0 18px;font:500 clamp(30px,5vw,48px)/1 Georgia,serif}.scene12-recipe-card h2 span{font-size:.65em;color:#765b49}.scene12-recipe-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px}.scene12-recipe-grid section{padding:16px;border:1px solid rgba(77,55,42,.12);border-radius:16px;background:rgba(255,255,255,.20)}.scene12-recipe-grid h3{margin:0 0 10px;color:#8b5c49;font:800 9px/1 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}.scene12-recipe-grid ul,.scene12-recipe-grid ol{margin:0;padding-left:18px}.scene12-recipe-grid li{margin:7px 0;font:400 13px/1.45 Georgia,serif}.scene12-recipe-card footer{margin-top:16px;padding-top:12px;border-top:1px solid rgba(77,55,42,.12);color:#786657;font:italic 12px/1.45 Georgia,serif}.scene12-recipe-custom p{font:400 14px/1.55 Georgia,serif}
.scene12-stamp-continue{position:absolute;z-index:7;pointer-events:auto;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);border:0;background:transparent;color:rgba(255,255,255,.74);font:800 8.5px/1 system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;opacity:0;animation:scene12StampContinue .3s 1s forwards}@keyframes scene12StampContinue{to{opacity:1}}
.scene12-stage--souvenirs{align-items:flex-start;overflow:auto;pointer-events:auto}.scene12-souvenir-shell{position:relative;z-index:6;width:min(1040px,96vw);margin:auto;padding:24px;border:1px solid rgba(255,255,255,.09);border-radius:25px;background:rgba(15,13,12,.72);backdrop-filter:blur(12px);box-shadow:0 30px 90px rgba(0,0,0,.45)}.scene12-souvenir-shell>header small{color:#e8b092;font:850 8px/1 system-ui,sans-serif;letter-spacing:.16em}.scene12-souvenir-shell>header h2{margin:7px 0 2px;font:500 clamp(28px,5vw,48px)/1.05 Georgia,serif}.scene12-souvenir-shell>header p{margin:0;color:rgba(255,255,255,.55);font:500 11px/1 system-ui,sans-serif;letter-spacing:.08em}.scene12-souvenir-grid{display:grid;grid-template-columns:1.45fr repeat(2,1fr);gap:10px;margin-top:18px}.scene12-souvenir-grid article{min-height:128px;padding:13px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.035);overflow:hidden}.scene12-souvenir-grid article>span{display:block;color:#d8c19d;font:800 8px/1 system-ui,sans-serif;letter-spacing:.11em}.scene12-souvenir-grid article>strong{display:block;margin-top:12px;font:500 18px/1.2 Georgia,serif}.scene12-souvenir-grid article>small{display:block;margin-top:6px;color:rgba(255,255,255,.52);font:500 10px/1.3 system-ui,sans-serif}.scene12-souvenir-photo{grid-row:span 2;padding:10px!important}.scene12-souvenir-photo img{display:block;width:100%;height:calc(100% - 18px);min-height:238px;margin-top:8px;object-fit:cover;border-radius:11px}.scene12-souvenir-stamp img{display:block;width:110px;height:88px;object-fit:contain;margin:7px auto -1px;filter:drop-shadow(0 3px 5px rgba(0,0,0,.15))}.scene12-souvenir-shell blockquote{margin:12px 0 0;padding:13px 15px;border-left:1px solid rgba(232,176,146,.48);background:rgba(255,255,255,.025)}.scene12-souvenir-shell blockquote span{color:#e8b092;font:800 7.5px/1 system-ui,sans-serif;letter-spacing:.13em}.scene12-souvenir-shell blockquote p{margin:5px 0 0;font:italic 14px/1.45 Georgia,serif}.scene12-souvenir-shell>footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}.scene12-souvenir-shell>footer>div:first-child{display:flex;align-items:center;gap:10px}.scene12-souvenir-shell>footer img{width:42px;height:42px;border-radius:50%;object-fit:cover}.scene12-souvenir-shell>footer p{margin:0}.scene12-souvenir-shell>footer p b,.scene12-souvenir-shell>footer p span{display:block}.scene12-souvenir-shell>footer p b{color:#e8b092;font:800 9px/1 system-ui,sans-serif}.scene12-souvenir-shell>footer p span{margin-top:4px;font:500 13px/1.35 Georgia,serif;color:rgba(255,255,255,.75)}.scene12-final-actions{display:flex;gap:7px}.scene12-final-actions button{padding:9px 11px;border:1px solid rgba(255,255,255,.11);border-radius:999px;background:rgba(255,255,255,.04);color:#fff;font:800 8px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.traveler-card__stamp{position:absolute;z-index:2;right:12px;bottom:6px;width:190px;height:150px;object-fit:contain;opacity:.28;transform:rotate(-10deg);pointer-events:none;mix-blend-mode:multiply}.passport-memory-strip{display:flex;align-items:center;gap:14px;margin:14px 0 18px;padding:10px 12px;border:1px solid rgba(94,65,49,.13);border-radius:16px;background:rgba(255,255,255,.22);color:#493b31}.passport-memory-strip img{width:92px;height:72px;object-fit:contain;mix-blend-mode:multiply}.passport-memory-strip small,.passport-memory-strip strong,.passport-memory-strip span{display:block}.passport-memory-strip small{color:#935b49;font:800 7px/1 system-ui,sans-serif;letter-spacing:.14em}.passport-memory-strip strong{margin-top:4px;font:500 16px/1.2 Georgia,serif}.passport-memory-strip span{margin-top:3px;color:#7a695b;font:600 9px/1 system-ui,sans-serif;letter-spacing:.06em}
@media(max-width:820px){.scene12-stage{padding:70px 10px max(10px,env(safe-area-inset-bottom))}.scene12-stage--black{padding:66px 10px 44px}.scene12-caption{width:100%;max-height:48svh;overflow:auto;padding:11px 12px}.scene12-caption strong{font-size:21px}.scene12-caption p{font-size:13.3px}.scene12-replies{width:calc(100% - 20px);bottom:max(8px,env(safe-area-inset-bottom));max-height:min(46svh,300px);overflow:auto}.scene12-replies button{padding:9px 8px;font-size:13px}.scene12-tap span{bottom:max(8px,env(safe-area-inset-bottom));white-space:normal;max-width:88vw;text-align:center}.scene12-photo-memory{width:calc(100% - 18px);border-width:5px;border-bottom-width:0}.scene12-photo-memory figcaption{left:auto;right:auto;bottom:auto;min-height:48px;padding:6px 8px;align-items:center;gap:7px}.scene12-photo-memory figcaption strong{font-size:12px;line-height:1.25}.scene12-photo-memory figcaption small{display:none}.scene12-phone-memory{right:10px;bottom:75px;width:min(225px,66vw)}.scene12-walk-note{left:12px;right:12px;bottom:28px;max-width:none}.scene12-mae-final{width:calc(100% - 12px);transform:translateY(-52px);grid-template-columns:46px minmax(0,1fr);padding:13px}.scene12-mae-final--answer{transform:none}.scene12-mae-final img{width:46px;height:46px}.scene12-mae-final p{font-size:13.8px}.scene12-recipe-card{width:100%;max-height:78svh;padding:18px}.scene12-recipe-grid{grid-template-columns:1fr}.scene12-stage--souvenirs{padding-top:68px}.scene12-souvenir-shell{width:100%;padding:16px}.scene12-souvenir-grid{grid-template-columns:1fr 1fr}.scene12-souvenir-photo{grid-column:1/-1;grid-row:auto}.scene12-souvenir-photo img{min-height:180px}.scene12-souvenir-shell>footer{display:block}.scene12-final-actions{margin-top:13px;flex-wrap:wrap}.traveler-card__stamp{width:145px;height:118px;right:4px;bottom:5px;opacity:.24}.passport-memory-strip img{width:78px;height:60px}.scene[data-mode="scene12-container"] .scene__image,.scene[data-mode="scene12-farewell"] .scene__image{object-position:center 34%}.scene[data-mode="scene12-outside"] .scene__image{object-position:center 43%}.scene[data-mode="scene12-walk"] .scene__image{object-position:center 48%}}
@media(max-width:390px){.scene12-caption strong{font-size:19.5px}.scene12-caption p{font-size:12.9px}.scene12-replies button{font-size:12.5px}.scene12-souvenir-grid{grid-template-columns:1fr}.scene12-souvenir-photo{grid-column:1}.scene12-recipe-card h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.scene12-tap i,.scene12-countdown i,.scene12-countdown b,.scene12-photo-memory,.scene12-leaves i,.scene12-stamp-continue{animation:none}.scene12-photo-memory,.scene12-stamp-continue{opacity:1;transform:none}.scene[data-mode^="scene12-"] .scene__image{transition:none;transform:none}}


/* === FULL IMMERSION QA PASS · responsive interaction safety === */
/* Immersive captions are descriptive, not modal blockers. The full-scene tap remains reachable. */
.scene6-stage--immersive .scene6-caption,
.scene7-stage--immersive .scene7-caption,
.scene8-stage--immersive .scene8-caption,
.scene9-stage--immersive .scene9-caption,
.scene10-stage--immersive .scene10-caption,
.scene11-stage--immersive .scene11-caption,
.scene12-stage--immersive .scene12-caption{pointer-events:none;margin-bottom:38px}
.scene6-stage--immersive .scene6-caption button,.scene6-stage--immersive .scene6-caption details,
.scene7-stage--immersive .scene7-caption button,.scene7-stage--immersive .scene7-caption details,
.scene8-stage--immersive .scene8-caption button,.scene8-stage--immersive .scene8-caption details,
.scene9-stage--immersive .scene9-caption button,.scene9-stage--immersive .scene9-caption details,
.scene10-stage--immersive .scene10-caption button,.scene10-stage--immersive .scene10-caption details,
.scene11-stage--immersive .scene11-caption button,.scene11-stage--immersive .scene11-caption details,
.scene12-stage--immersive .scene12-caption button,.scene12-stage--immersive .scene12-caption details{pointer-events:auto}

/* Keep tap cues and reply targets above the safe-area and at a comfortable touch size. */
.scene6-tap-cue,.scene7-tap-cue,.scene8-tap-cue,.scene9-tap>span,.scene10-tap>span,.scene11-tap span,.scene12-tap span{min-height:36px;justify-content:center}
.choice-button,.phone-memory-link,.gift-look,.scene4-continue,.scene4-expression button,.scene4-arrival-card button,.scene-conversation-choice,.scene-flow-next,.scene7-stand-action,.scene8-object-action,.scene11-end-continue,.scene12-give-phone,
.scene6-choice-dock button,.scene7-choice-dock button,.scene7-choice-panel button,
.scene8-choice-panel button,.scene9-replies button,.scene10-replies button,.scene11-replies button,.scene12-replies button,
.scene9-free button,.scene10-free button,.scene11-free button,.scene12-other button,.scene12-final-actions button,.scene12-download-actions button{min-height:44px}.scene9-free button,.scene10-free button,.scene11-free button{min-width:44px}

/* Scene 7: ambient family phrases stay readable without becoming three teaching cards. */
.scene7-ambient-line{margin:7px 0 0;padding:7px 0;border-top:1px solid rgba(255,255,255,.07)}
.scene7-ambient-line:first-of-type{border-top:0}
.scene7-ambient-line small{margin-bottom:3px}
.scene7-ambient-line strong{display:block;font:650 clamp(17px,1.5vw,21px)/1.25 system-ui,sans-serif;color:#fff}
.scene7-ambient-line span{display:block;margin-top:2px;color:rgba(255,255,255,.56);font:400 11px/1.35 Georgia,serif}

/* Final memories must remain scrollable and action buttons visible on short phones. */
.scene12-stage--souvenirs{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.scene12-souvenir-shell{margin:auto 0}
.scene12-final-actions{position:sticky;bottom:0;padding-top:10px;background:linear-gradient(180deg,transparent,rgba(8,8,7,.94) 32%)}

@media(max-width:820px){
  .scene6-stage--immersive .scene6-caption,.scene7-stage--immersive .scene7-caption,.scene8-stage--immersive .scene8-caption,
  .scene9-stage--immersive .scene9-caption,.scene10-stage--immersive .scene10-caption,.scene11-stage--immersive .scene11-caption,
  .scene12-stage--immersive .scene12-caption{margin-bottom:42px;max-height:44svh}
  .scene7-caption--dialogue{max-height:46svh}
  .scene7-ambient-line{padding:5px 0}.scene7-ambient-line strong{font-size:17px}
  .scene12-final-actions button{flex:1 1 150px}
}
@media(max-width:390px){
  .scene6-stage--immersive .scene6-caption,.scene7-stage--immersive .scene7-caption,.scene8-stage--immersive .scene8-caption,
  .scene9-stage--immersive .scene9-caption,.scene10-stage--immersive .scene10-caption,.scene11-stage--immersive .scene11-caption,
  .scene12-stage--immersive .scene12-caption{margin-bottom:44px;max-height:42svh}
}

/* Native interaction refinements */
.scene10-stage--with-action{pointer-events:none}
.scene10-object-action{position:absolute;z-index:6;pointer-events:auto;right:10%;bottom:16%;min-height:44px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(12,10,8,.50);backdrop-filter:blur(10px);color:#fff;padding:11px 15px;display:flex;align-items:center;gap:9px;font:700 12px/1.2 system-ui,sans-serif;box-shadow:0 14px 34px rgba(0,0,0,.18);cursor:pointer}
.scene10-object-action i{width:9px;height:9px;border-radius:50%;border:2px solid #e9b58d;box-shadow:0 0 0 5px rgba(233,181,141,.10)}
@media(max-width:820px){
  .scene10-object-action{left:50%;right:auto;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);max-width:calc(100% - 22px);white-space:normal;text-align:center}
  .letter-layer{padding:calc(max(54px,env(safe-area-inset-top) + 42px)) 12px max(12px,env(safe-area-inset-bottom));align-items:center;overflow:hidden}
  .letter-sheet{max-height:calc(100svh - max(78px,env(safe-area-inset-top) + 64px) - max(20px,env(safe-area-inset-bottom)));padding:32px 22px 36px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .letter-close{position:sticky;float:right;top:0;right:0;z-index:4;margin:-18px -10px 0 0;background:rgba(251,244,233,.86);border-radius:50%;backdrop-filter:blur(5px)}
}
@media(max-width:390px){
  .letter-sheet{padding:28px 20px 32px}.letter-sheet h2{font-size:30px;margin-bottom:20px}.letter-body{font-size:14.7px;line-height:1.62}
}


/* === MOBILE INTERACTION HOTFIX · 2026-09-09 ===
   A real-device S6 review exposed two coupled issues:
   1) an object-action could inherit pointer-events:none from its cinematic stage;
   2) bottom-positioned object actions could overlap narrative / Mae cards on short phones.
   Keep every explicit scene action reachable and reserve a dedicated bottom action rail. */
.scene [data-scene-action]{pointer-events:auto}
.scene-object-action{min-height:44px;max-width:calc(100% - 24px)}

@media(max-width:820px){
  /* S6 object moments: copy occupies the world above; the physical gesture owns a separate rail below. */
  .scene6-stage--object{
    padding-bottom:max(82px,calc(env(safe-area-inset-bottom) + 74px));
  }
  .scene6-stage--object .scene6-caption{
    margin-bottom:0;
    max-height:min(46svh,calc(100svh - 170px));
  }
  .scene6-stage--object .scene-object-action--seat,
  .scene6-stage--object .scene-object-action--greet,
  .scene6-stage--object .scene-object-action--mandarin{
    left:50%!important;
    right:auto!important;
    bottom:max(14px,env(safe-area-inset-bottom))!important;
    transform:translateX(-50%)!important;
  }
  .scene6-stage--grandma-approach .scene6-caption--grandma{
    margin-bottom:0;
  }
  .scene6-stage--grandma-approach .scene6-free-dock{
    bottom:max(10px,env(safe-area-inset-bottom));
  }
}

@media(max-width:390px){
  .scene6-stage--object{
    padding-bottom:max(86px,calc(env(safe-area-inset-bottom) + 78px));
  }
  .scene6-stage--object .scene6-caption{
    max-height:min(43svh,calc(100svh - 176px));
  }
  .scene-object-action span{
    white-space:normal;
    text-align:center;
  }
}

/* === TRANSFORMATION PASS · ACTION → CONSEQUENCE → COMPREHENSION === */
/* Recovery moments never use "wrong/correct" UI. A world cue lets the visitor adjust in place. */
.scene4-exit-attempt{min-height:44px;padding:10px 15px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(15,13,11,.48);backdrop-filter:blur(9px);color:#fff;font:750 10px/1 system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase;cursor:pointer}
.scene4-validator-copy .scene4-exit-attempt{position:static;display:inline-flex;align-items:center;justify-content:center;margin-top:12px;transform:none;white-space:normal}.scene4-validator-copy .scene4-exit-cue{margin:12px 0 0}.scene4-validator-copy .scene4-exit-cue+.scene4-exit-attempt{margin-top:10px;opacity:.58}

.scene5-threshold-continue{min-height:44px;padding:11px 16px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(12,10,8,.38);backdrop-filter:blur(10px);color:rgba(255,255,255,.82);font:750 10px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}

/* S5 CANONICAL FOOTWEAR — uses the actual pair derived from the S3 outfit. */
.scene5-footwear-detail{position:relative;z-index:5;order:0;width:min(520px,100%);margin:0 auto 4px;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(12,10,8,.50);box-shadow:0 18px 50px rgba(0,0,0,.22);pointer-events:none}
.scene5-footwear-detail img{display:block;width:100%;height:clamp(132px,25svh,230px);object-fit:cover;object-position:center 58%}
.scene5-footwear-detail figcaption{padding:9px 12px 10px;color:rgba(255,255,255,.76);font:500 11px/1.35 system-ui,sans-serif}
.scene5-footwear-action{min-height:48px;padding:12px 16px;border:1px solid rgba(239,190,158,.52);border-radius:999px;background:rgba(33,20,15,.76);color:#fff;font:800 11px/1.15 system-ui,sans-serif;letter-spacing:.04em;cursor:pointer;box-shadow:0 10px 28px rgba(0,0,0,.20)}
.scene5-footwear-action:hover,.scene5-footwear-action:focus-visible{background:rgba(67,37,27,.90);border-color:#efbe9e;outline:none}
.scene5-threshold--object{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch}
.scene5-threshold--object>.scene5-threshold-copy{order:1}
.scene5-threshold--object>.scene5-threshold-actions,.scene5-threshold--object>.scene5-footwear-action{order:2}
@media(max-width:820px){.scene5-footwear-detail{width:100%;margin-bottom:2px}.scene5-footwear-detail img{height:clamp(118px,22svh,180px)}.scene5-footwear-detail figcaption{font-size:10px;padding:7px 10px 8px}.scene5-footwear-action{width:100%}}




.scene6-greeting-actions{position:absolute;z-index:7;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:flex-end;justify-content:center;gap:9px;width:min(760px,calc(100% - 20px));pointer-events:auto}
.scene6-greeting-actions>.scene-object-action--greet{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important}
.scene6-greeting-actions>.scene6-free-dock{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;flex:1;max-width:540px}
.scene6-stay-seated{min-height:44px;padding:10px 14px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(10,9,8,.34);backdrop-filter:blur(9px);color:rgba(255,255,255,.8);font:700 10px/1.15 system-ui,sans-serif;cursor:pointer}
.scene6-learning-echo,.scene8-learning-echo{margin-top:8px!important;padding-top:8px;border-top:1px solid rgba(255,255,255,.09);color:rgba(255,255,255,.66)!important;font-style:italic!important}

.scene8-pour-actions{position:absolute;z-index:7;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:9px;width:min(760px,calc(100% - 22px));pointer-events:auto}
.scene8-pour-actions>.scene8-object-action--pour{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important}


.scene12-container-receive{position:absolute;z-index:8;left:50%;bottom:max(13px,env(safe-area-inset-bottom));transform:translateX(-50%);min-height:44px;padding:11px 18px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(18,15,12,.52);backdrop-filter:blur(10px);color:#fff;font:750 10px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;pointer-events:auto}
.scene12-transfer-cue{margin-top:9px!important;color:rgba(255,255,255,.64)!important;font-style:italic!important}
.scene12-transfer-echo{margin-bottom:10px;padding:10px 11px;border:1px solid rgba(232,176,146,.18);border-radius:12px;background:rgba(232,176,146,.05)}
.scene12-transfer-echo span{display:block;color:#e8b092;font:800 7.5px/1 system-ui,sans-serif;letter-spacing:.13em}
.scene12-transfer-echo p{margin:6px 0 0!important;color:rgba(255,255,255,.76)!important}

.scene12-transformation{margin-top:12px;padding:14px;border:1px solid rgba(232,176,146,.13);border-radius:17px;background:linear-gradient(145deg,rgba(232,176,146,.055),rgba(255,255,255,.018))}
.scene12-transformation>header{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:9px}
.scene12-transformation>header small{color:#e8b092;font:850 8px/1 system-ui,sans-serif;letter-spacing:.14em}
.scene12-transformation>header strong{color:rgba(255,255,255,.56);font:500 11px/1.35 Georgia,serif;text-align:right}
.scene12-transformation>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.scene12-transformation article{display:grid;grid-template-columns:25px minmax(0,1fr);gap:8px;align-items:start;padding:9px 10px;border:1px solid rgba(255,255,255,.055);border-radius:12px;background:rgba(255,255,255,.022)}
.scene12-transformation article span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:rgba(232,176,146,.10);color:#e8b092;font:800 8px/1 system-ui,sans-serif}
.scene12-transformation article p{margin:1px 0 0;color:rgba(255,255,255,.72);font:400 12px/1.42 Georgia,serif}

@media(max-width:820px){
  .scene6-stage--grandma-approach{padding-bottom:max(118px,calc(env(safe-area-inset-bottom) + 110px))}
  .scene6-greeting-actions{bottom:max(8px,env(safe-area-inset-bottom));flex-direction:column;align-items:stretch;gap:7px}.scene6-greeting-actions>*{width:100%;max-width:none!important}.scene6-stay-seated{width:100%}
  .scene8-stage--pour{padding-bottom:max(116px,calc(env(safe-area-inset-bottom) + 108px))}.scene8-pour-actions{bottom:max(8px,env(safe-area-inset-bottom));flex-direction:column;align-items:stretch}.scene8-pour-actions>*{width:100%;max-width:420px!important;margin:auto;justify-content:center}
  .scene12-stage--container{padding-bottom:max(82px,calc(env(safe-area-inset-bottom) + 74px))}.scene12-container-receive{width:min(360px,calc(100% - 24px));white-space:normal}
  .scene12-transformation>header{display:block}.scene12-transformation>header strong{display:block;margin-top:5px;text-align:left}.scene12-transformation>div{grid-template-columns:1fr}
}
@media(max-width:390px){
  .scene5-threshold-copy,.scene6-stage--grandma-approach .scene6-caption,.scene8-stage--pour .scene8-caption{max-height:40svh;overflow:auto}
  .scene12-transformation{padding:11px}.scene12-transformation article{padding:8px}.scene12-transformation article p{font-size:11.5px}
}
/* EXPERIENCE PASS — preparation memory and contextual reading */
.scene3-memory-prompt{margin:14px 0 0;color:rgba(255,255,255,.78);font-size:clamp(.92rem,2vw,1.02rem);line-height:1.55}
.scene3-check-card--memory .scene3-sheet-actions{display:flex;flex-wrap:wrap;gap:10px}
.scene3-check-card--memory .scene3-gift-object--small{max-width:150px;margin:0 0 12px auto}
@media (max-width:640px){.scene3-check-card--memory .scene3-sheet-actions{display:grid;grid-template-columns:1fr}.scene3-check-card--memory .scene3-gift-object--small{max-width:112px}.scene9-stage--grandma .scene9-replies{padding-bottom:max(18px,env(safe-area-inset-bottom))}}

/* === END-OF-IMMERSION FEEDBACK + HOUSEHOLD CUE PASS === */


.dobox-feedback-layer{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:18px;background:rgba(7,6,5,.82);backdrop-filter:blur(18px);overflow:auto;color:#f8f3ec}
.dobox-feedback{width:min(760px,100%);max-height:min(880px,calc(100svh - 36px));overflow:auto;border:1px solid rgba(232,176,146,.18);border-radius:24px;background:linear-gradient(155deg,rgba(35,28,22,.98),rgba(15,13,11,.99));box-shadow:0 34px 90px rgba(0,0,0,.46);padding:24px}
.dobox-feedback>header{padding:2px 2px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.dobox-feedback>header small,.dobox-feedback-thanks small{display:block;color:#e8b092;font:850 8px/1 system-ui,sans-serif;letter-spacing:.16em}
.dobox-feedback>header h2,.dobox-feedback-thanks h2{margin:7px 0 6px;font:500 clamp(28px,4vw,42px)/1.05 Georgia,serif;color:#fff}
.dobox-feedback>header p,.dobox-feedback-thanks p{margin:0;max-width:620px;color:rgba(255,255,255,.66);font:400 14px/1.55 Georgia,serif}
.dobox-feedback-form{display:grid;gap:0}
.dobox-feedback-form>section{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:18px 2px;border-bottom:1px solid rgba(255,255,255,.07)}
.dobox-feedback-form>section>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(232,176,146,.09);color:#e8b092;font:850 8px/1 system-ui,sans-serif}
.dobox-feedback-form label{display:block;margin:2px 0 10px;color:#fff;font:600 16px/1.35 Georgia,serif}
.dobox-rating{display:flex;gap:7px;flex-wrap:wrap}
.dobox-rating button{display:grid;grid-template-columns:auto auto;gap:4px;align-items:center;min-width:52px;min-height:44px;padding:8px 11px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.035);color:rgba(255,255,255,.52);font:700 17px/1 system-ui;cursor:pointer}
.dobox-rating button small{font:800 9px/1 system-ui;color:rgba(255,255,255,.62)}
.dobox-rating button.is-selected{border-color:rgba(232,176,146,.62);background:rgba(232,176,146,.14);color:#f1bd9d}
.dobox-feedback-chips{display:flex;flex-wrap:wrap;gap:7px}
.dobox-feedback-chips button{min-height:42px;padding:9px 12px;border:1px solid rgba(255,255,255,.11);border-radius:999px;background:rgba(255,255,255,.035);color:rgba(255,255,255,.78);font:650 11px/1.2 system-ui,sans-serif;cursor:pointer}
.dobox-feedback-chips button.is-selected{border-color:rgba(232,176,146,.52);background:rgba(232,176,146,.12);color:#fff}
.dobox-feedback textarea,.dobox-feedback input{box-sizing:border-box;width:100%;border:1px solid rgba(255,255,255,.11);border-radius:13px;background:rgba(255,255,255,.035);color:#fff;padding:11px 12px;outline:none;font:500 13px/1.45 system-ui,sans-serif}
.dobox-feedback textarea{min-height:88px;resize:vertical}
.dobox-feedback input:focus,.dobox-feedback textarea:focus{border-color:rgba(232,176,146,.46);box-shadow:0 0 0 3px rgba(232,176,146,.07)}
.dobox-feedback-other{display:none!important;margin-top:9px}.dobox-feedback-other.is-visible{display:block!important}
.dobox-feedback-form>footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:18px 2px 1px}
.dobox-feedback-form>footer button,.dobox-feedback-thanks button{min-height:46px;padding:11px 17px;border-radius:999px;font:800 10px/1 system-ui,sans-serif;letter-spacing:.04em;cursor:pointer}
.dobox-feedback-later{border:1px solid rgba(255,255,255,.1);background:transparent;color:rgba(255,255,255,.65)}
.dobox-feedback-submit,.dobox-feedback-thanks button{border:1px solid rgba(232,176,146,.45);background:#e3aa87;color:#20140d}
.dobox-feedback-privacy select{width:100%;margin:.45rem 0;padding:.75rem;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:#171513;color:#fff}
.dobox-feedback-privacy>[hidden]{display:none}
.dobox-feedback-consent{display:flex!important;align-items:flex-start;gap:.65rem;margin-top:.75rem;font-weight:400!important;line-height:1.4}
.dobox-feedback-consent input{width:1.15rem;height:1.15rem;margin:.1rem 0 0;flex:0 0 auto}
.dobox-feedback-privacy small{display:block;margin-top:.65rem;color:rgba(255,255,255,.68);line-height:1.45}
.dobox-feedback-thanks{padding:38px 18px;text-align:center}.dobox-feedback-thanks p{margin:0 auto 20px}

@media(max-width:820px){
    .dobox-feedback-layer{padding:0;place-items:stretch}.dobox-feedback{width:100%;max-height:100svh;border-radius:0;border-left:0;border-right:0;padding:18px 14px calc(18px + env(safe-area-inset-bottom))}.dobox-feedback-form>section{grid-template-columns:28px minmax(0,1fr);gap:9px;padding:15px 0}.dobox-feedback-form label{font-size:15px}.dobox-feedback-form>footer{position:sticky;bottom:calc(-18px - env(safe-area-inset-bottom));margin:0 -14px -18px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(15,13,11,.15),rgba(15,13,11,.98) 30%)}
}
@media(max-width:390px){.dobox-feedback-chips{display:grid;grid-template-columns:1fr 1fr}.dobox-feedback-chips button{white-space:normal}.dobox-rating{justify-content:space-between}.dobox-rating button{min-width:0;flex:1;justify-content:center;padding:8px 6px}}

/* === INTERACTION SAFETY + FINISHING DELIVERABLES · 2026-09-09 === */
.story-panel--advance{cursor:default;padding-right:22px}
.scene-panel-next{display:inline-flex;align-items:center;gap:9px;min-height:44px;margin-top:16px;padding:9px 13px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.055);color:#fff;cursor:pointer;font:750 10px/1 system-ui,sans-serif;letter-spacing:.06em}
.scene-panel-next i{font-style:normal;font-size:14px;color:#e7b099}
.scene-panel-next:hover,.scene-panel-next:focus-visible{background:rgba(255,255,255,.11)}
.scene-panel-next:disabled,.scene-flow-next:disabled,[data-scene-gated="true"]:disabled{opacity:0;pointer-events:none;cursor:default}
.scene-flow-next--standalone{position:absolute;z-index:20;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);min-height:44px;margin:0;white-space:nowrap;background:rgba(8,9,9,.58);border:1px solid rgba(255,255,255,.13);box-shadow:0 12px 30px rgba(0,0,0,.18)}

/* BETA candidate: object-led interactions for the entrance and living room. */
.scene5-gift-stage--object-led{pointer-events:none}
.scene5-gift-stage--object-led .scene5-dialogue-card{max-width:min(390px,calc(100% - 24px));pointer-events:none}
.scene5-object-hint,.scene6-object-hint{margin-top:8px!important;color:rgba(255,255,255,.68)!important;font:600 11px/1.35 system-ui,sans-serif!important;letter-spacing:.02em}
.scene5-gift-stage--object-led .scene5-gift-in-hand{pointer-events:auto;touch-action:none;cursor:grab;outline:none;transform:translate(var(--gift-drag-x,0),var(--gift-drag-y,0));transition:transform .22s ease,filter .22s ease,opacity .18s ease}
.scene5-gift-stage--object-led .scene5-gift-in-hand.is-dragging{cursor:grabbing;transition:none;filter:drop-shadow(0 22px 24px rgba(0,0,0,.46)) brightness(1.05)}
.scene5-gift-stage--object-led .scene5-gift-in-hand.is-given{opacity:0;transform:translate(var(--gift-drag-x,0),var(--gift-drag-y,0)) scale(.82)}
.scene5-gift-stage--object-led .scene5-gift-in-hand:focus-visible{border-radius:18px;outline:3px solid #f5c392;outline-offset:5px}
.scene5-gift-drop{position:absolute;z-index:4;right:clamp(9%,12vw,15%);top:43%;width:clamp(74px,9vw,122px);aspect-ratio:1;border:1px dashed rgba(255,229,204,.58);border-radius:50%;background:rgba(78,45,30,.12);color:#fff;pointer-events:auto;cursor:pointer;opacity:.58;transition:opacity .2s,transform .2s,background .2s}
.scene5-gift-drop span{position:absolute;left:50%;top:calc(100% + 7px);transform:translateX(-50%);white-space:nowrap;padding:5px 8px;border-radius:999px;background:rgba(21,15,12,.58);font:700 9px/1 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase}
.scene5-gift-drop.is-ready,.scene5-gift-drop:hover,.scene5-gift-drop:focus-visible{opacity:1;transform:scale(1.08);background:rgba(205,137,89,.18);outline:none}
.scene5-footwear-detail[role="button"]{pointer-events:auto;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.scene5-footwear-detail[role="button"]:hover,.scene5-footwear-detail[role="button"]:focus-visible{transform:translateY(-2px);border-color:rgba(239,190,158,.66);box-shadow:0 18px 50px rgba(0,0,0,.28),0 0 0 3px rgba(239,190,158,.12);outline:none}
.scene5-footwear-detail[role="button"] figcaption::before{content:'↓';display:inline-grid;place-items:center;width:20px;height:20px;margin-right:7px;border:1px solid rgba(239,190,158,.48);border-radius:50%;color:#efbe9e}
.han-s6-mandarin--object-led{pointer-events:none}
.han-s6-mandarin--object-led>.scene6-caption{position:absolute!important;z-index:6;left:clamp(12px,3vw,42px);top:clamp(72px,11vh,120px);bottom:auto!important;max-width:min(390px,calc(100% - 24px));pointer-events:none}
.han-s6-mandarin-hotspot{position:absolute;z-index:7;left:44%;top:68%;transform:translate(-50%,-50%);width:clamp(150px,31vw,430px);height:clamp(100px,24vh,230px);border:0;border-radius:50%;background:transparent;pointer-events:auto;cursor:pointer}
.han-s6-mandarin-hotspot::before{content:'';position:absolute;inset:18%;border:2px solid rgba(255,232,202,.64);border-radius:50%;box-shadow:0 0 0 9px rgba(230,153,78,.10);animation:hanObjectPulse 1.9s ease-in-out infinite}
.han-s6-mandarin-hotspot span{position:absolute;left:50%;bottom:5%;transform:translateX(-50%);padding:7px 11px;border:1px solid rgba(255,231,208,.35);border-radius:999px;background:rgba(35,24,19,.72);color:#fff;font:700 10px/1 system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.han-s6-mandarin-hotspot:hover::before,.han-s6-mandarin-hotspot:focus-visible::before{border-color:#ffd6a8;box-shadow:0 0 0 12px rgba(230,153,78,.18)}
.han-s6-mandarin-hotspot:focus-visible{outline:3px solid #ffd6a8;outline-offset:4px}
.han-s6-mandarin-pass{position:absolute;z-index:8;right:clamp(12px,3vw,42px);bottom:max(14px,env(safe-area-inset-bottom));min-height:42px;padding:9px 12px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(18,15,12,.52);backdrop-filter:blur(8px);color:rgba(255,255,255,.78);font:650 10px/1.2 system-ui,sans-serif;pointer-events:auto;cursor:pointer}
@keyframes hanObjectPulse{50%{transform:scale(1.06);opacity:.72}}
@media(max-width:820px){
  .scene5-gift-stage--object-led .scene5-dialogue-card{top:72px;bottom:auto;max-height:24svh;overflow:auto}
  .scene5-gift-drop{right:12%;top:42%;width:82px}
  .scene5-gift-drop span{font-size:8px}
  .han-s6-mandarin--object-led>.scene6-caption{top:70px;max-height:24svh!important;overflow:auto}
  .han-s6-mandarin-hotspot{left:43%;top:68%;width:62vw;height:29vh}
  .han-s6-mandarin-pass{left:50%;right:auto;transform:translateX(-50%);width:calc(100% - 24px);text-align:center}
}
@media(prefers-reduced-motion:reduce){.han-s6-mandarin-hotspot::before{animation:none}.scene5-gift-stage--object-led .scene5-gift-in-hand{transition:none}}
.scene-flow-next--standalone:hover,.scene-flow-next--standalone:focus-visible{transform:translateX(-50%) translateY(-1px)}

/* Keep the post-letter continuation in normal layout flow so it never covers an envelope. */

/* Menu memory is a compact document, so its continuation belongs below its copy. */
.menu-memory{padding-bottom:8px}
.menu-memory .scene-flow-next--standalone{position:relative;left:auto;bottom:auto;transform:none;margin:12px 0 0}
.menu-memory .scene-flow-next--standalone:hover,.menu-memory .scene-flow-next--standalone:focus-visible{transform:translateY(-1px)}

/* A narrative continuation is a real button, never a full-stage click target. */

/* S8 makes the objects visible as an observation, not an etiquette quiz. */




.scene8-table-details{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:8px}
.scene8-table-details span{display:flex;align-items:center;gap:6px;padding:6px 7px;border-radius:8px;background:rgba(255,255,255,.045);color:rgba(255,255,255,.72);font:500 10px/1.25 system-ui,sans-serif}
.scene8-table-details b{font-size:15px;font-weight:400}
.scene8-mealstart-actions{display:grid!important;gap:7px}
@keyframes scene7Water{50%{opacity:.45;transform:translateX(-50%) scaleY(.82)}100%{opacity:.95}}

/* S5: the shoe choice has a visible before/after cue while the source doorway stays intact. */
@media(max-width:820px){}
@media(prefers-reduced-motion:reduce){}

/* End-of-immersion downloads are optional and do not gate completion. */
.scene12-download-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px;padding-top:13px;border-top:1px solid rgba(255,255,255,.08)}
.scene12-download-actions button{min-height:44px;padding:9px 11px;border:1px solid rgba(232,176,146,.28);border-radius:999px;background:rgba(232,176,146,.08);color:#fff;font:750 9px/1.2 system-ui,sans-serif;letter-spacing:.045em;cursor:pointer}
.scene12-download-actions button:hover,.scene12-download-actions button:focus-visible{background:rgba(232,176,146,.16)}
.scene12-download-note{margin:7px 0 0;color:rgba(255,255,255,.48);font:500 10px/1.35 system-ui,sans-serif}
@media(max-width:820px){
  .scene-flow-next--standalone{bottom:max(9px,env(safe-area-inset-bottom));max-width:calc(100% - 20px);white-space:normal;text-align:center}
  .menu-memory .scene-flow-next--standalone{bottom:auto;max-width:100%;white-space:normal;text-align:left}
  .scene8-table-details{grid-template-columns:1fr}.scene12-download-actions button{flex:1 1 145px}
}
@media(max-width:390px){
  .scene8-table-details span{font-size:9.5px;padding:5px 6px}.scene8-table-details b{font-size:14px}
  .scene12-download-actions{display:grid}.scene12-download-actions button{width:100%}
}

/* === FINAL INTERACTION PASS · readable copy and lived gestures === */
/* No decorative shadow may be mistaken for the visitor's body. */


/* S5: the threshold is a small readable sequence, not a bottom overlay. */
.scene5-threshold,.scene5-inside--flow{overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box}
.scene5-threshold{align-items:stretch;gap:10px;padding-bottom:max(22px,env(safe-area-inset-bottom))}
.scene5-threshold-copy,.scene5-inside--flow .scene5-inside-caption{position:relative;z-index:5;order:1;margin:0 auto;max-height:min(58svh,calc(100svh - 190px));overflow:auto}
.scene5-threshold-actions{position:static;z-index:7;display:flex;align-items:center;justify-content:center;order:2;width:min(760px,100%);margin:0 auto;flex-wrap:wrap;gap:8px;pointer-events:auto}
.scene5-threshold-actions>*{flex:1 1 190px;justify-content:center}
.scene5-observe-threshold{min-height:44px;padding:11px 14px;border:1px solid rgba(232,176,146,.30);border-radius:999px;background:rgba(232,176,146,.10);color:#fff;font:750 10px/1.2 system-ui,sans-serif;letter-spacing:.05em;cursor:pointer}
.scene5-threshold--flow,.scene5-inside--flow{align-items:stretch!important;gap:10px}
.scene5-threshold--flow .scene-flow-next--standalone,.scene5-inside--flow .scene-flow-next--standalone{position:static!important;left:auto!important;bottom:auto!important;transform:none!important;order:2;align-self:center;margin:0 auto}

/* Any explicit continuation is a normal button in the layout. */
.scene6-stage--immersive,.scene7-stage--immersive,.scene8-stage--immersive,.scene9-stage--immersive,.scene10-stage--immersive,.scene11-stage--immersive,.scene12-stage--immersive{
  flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px;box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(18px,env(safe-area-inset-bottom))!important
}
.scene6-stage--immersive>.scene6-caption,.scene7-stage--immersive>.scene7-caption,.scene8-stage--immersive>.scene8-caption,.scene9-stage--immersive>.scene9-caption,.scene10-stage--immersive>.scene10-caption,.scene11-stage--immersive>.scene11-caption,.scene12-stage--immersive>.scene12-caption{
  order:1;align-self:center;margin:0!important;max-height:min(58svh,calc(100svh - 156px));overflow:auto;pointer-events:auto!important
}
.scene6-stage--immersive>.scene-flow-next--standalone,.scene7-stage--immersive>.scene-flow-next--standalone,.scene8-stage--immersive>.scene-flow-next--standalone,.scene9-stage--immersive>.scene-flow-next--standalone,.scene10-stage--immersive>.scene-flow-next--standalone,.scene11-stage--immersive>.scene-flow-next--standalone,.scene12-stage--immersive>.scene-flow-next--standalone{
  position:static!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;order:2;align-self:center;margin:0 auto;max-width:100%;white-space:normal;text-align:center
}

/* SCENE 7 · one sink / one gesture sequence, without a modal narrative panel. */
.scene7-stage--handwash:not(.han-s7-sink){display:flex;flex-direction:column!important;align-items:stretch!important;justify-content:flex-end!important;gap:10px;padding:76px 18px max(20px,env(safe-area-inset-bottom))!important;overflow:visible}
.scene7-stage--handwash:not(.han-s7-sink)>.scene7-caption{position:relative!important;z-index:5;align-self:flex-start;max-height:26dvh;overflow:auto;width:min(410px,100%);padding:12px 15px!important;margin:0!important}
.scene7-handwash-actions{position:relative;z-index:8;display:flex;gap:8px;width:min(550px,100%);align-self:flex-start;pointer-events:auto}
.scene7-handwash-actions button{flex:1;min-height:48px;padding:11px 13px;border:1px solid rgba(255,239,225,.37);border-radius:13px;background:rgba(40,27,21,.87);color:#fff;font:650 14px/1.3 system-ui,sans-serif;cursor:pointer}
.scene7-handwash-actions button:last-child{background:rgba(22,16,13,.75)}
.scene7-stage--dinner.han-s7-sink{position:absolute!important;inset:0!important;display:block!important;padding:0!important;overflow:hidden!important;pointer-events:none!important}
.han-s7-sink-place{position:absolute;z-index:4;top:78px;left:clamp(16px,3vw,40px);padding:7px 10px;background:rgba(24,18,15,.54);border-radius:8px;color:#f6e5d5;font:700 11px/1.3 system-ui,sans-serif;letter-spacing:.12em}
.han-s7-faucet-target{position:absolute;z-index:9;left:50%;top:55%;transform:translate(-50%,-50%);display:grid;place-items:center;width:58px;height:58px;padding:0;border-radius:50%;border:2px solid rgba(255,245,230,.80);background:rgba(34,25,21,.30);box-shadow:0 0 0 7px rgba(246,212,182,.12);pointer-events:auto;cursor:pointer;touch-action:manipulation}
.han-s7-faucet-target span{position:absolute;left:50%;bottom:calc(100% + 8px);top:auto;transform:translateX(-50%);min-width:140px;max-width:200px;padding:8px 12px;border-radius:10px;color:#fff;background:rgba(24,19,16,.90);font:700 14px/1.25 system-ui,sans-serif;text-align:center;white-space:normal}
.han-s7-faucet-target:focus-visible{outline:3px solid #f8d9b9;outline-offset:7px}
.han-s7-water{position:absolute;z-index:5;top:58%;left:50%;width:9px;height:16%;max-height:150px;transform:translateX(-50%);border-radius:60% 60% 55% 55%;opacity:0;pointer-events:none;background:linear-gradient(90deg,rgba(245,251,255,.02),rgba(216,239,247,.56) 42%,rgba(255,255,255,.67) 52%,rgba(184,225,242,.18));filter:blur(1.2px)}
.han-s7-sink[data-water-running="true"] .han-s7-water{opacity:.63;animation:hanSinkWater 1.25s ease-in-out infinite alternate}
@keyframes hanSinkWater{from{opacity:.40;transform:translateX(-50%) scaleX(.72)}to{opacity:.70;transform:translateX(-50%) scaleX(1.05)}}
@media(min-width:821px){.han-s7-sink-place{top:100px}.han-s7-faucet-target{left:49%;top:53%}.han-s7-water{left:49%;top:57%;height:17%}}
@media(max-width:820px){.scene7-stage--handwash:not(.han-s7-sink){padding:72px 12px max(16px,env(safe-area-inset-bottom))!important}.scene7-handwash-actions{width:100%;flex-direction:row}.scene7-handwash-actions button{font-size:13px;padding:11px 8px}.han-s7-sink-place{top:80px;font-size:10px}.han-s7-faucet-target{top:53%;width:54px;height:54px}.han-s7-water{top:56%;height:17%}}
@media(prefers-reduced-motion:reduce){.han-s7-water{animation:none!important}}
/* Scene 6: a reply is one deliberate action; it must not create a second dialogue window. */
.han-s6-first-meeting{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-end!important;gap:9px!important;overflow:visible!important}
.han-s6-first-meeting>.scene6-caption{order:1!important;width:min(435px,100%)!important;align-self:flex-start!important;margin:0!important;padding:12px 15px!important;max-height:30dvh!important;overflow:auto!important}
.han-s6-first-meeting .scene-lang-line{margin:0!important}
.han-s6-first-meeting>.han-s6-response{order:2;display:flex;flex-wrap:wrap;gap:8px;z-index:6;pointer-events:auto;width:min(435px,100%)}
.han-s6-say{flex:1;min-width:0;display:flex;gap:5px}
.han-s6-response>.han-s6-say>button:first-child{flex:1;min-width:0}
.han-s6-response .han-s6-voice{flex:0 0 44px!important;min-width:44px!important;width:44px!important;padding:8px!important;display:grid;place-items:center}
.han-s6-response>.speech-feedback{flex:1 1 100%;order:3;font-size:12px;padding:4px 8px}
.han-s6-response button,.han-s6-mandarin-actions>button{min-height:46px;flex:1;padding:10px 13px;border:1px solid rgba(255,231,208,.35);border-radius:12px;background:rgba(35,24,19,.87);color:#fff;font:650 13px/1.3 system-ui,sans-serif;cursor:pointer}
.han-s6-first-meeting>.scene-flow-next--standalone{order:2;align-self:flex-start;margin:0!important}
.han-s6-mandarin{align-items:flex-start!important;justify-content:flex-end!important;flex-direction:column!important;gap:8px;overflow:visible!important}
.han-s6-mandarin>.scene6-caption{margin:0!important;max-height:23dvh!important;width:min(420px,100%)}
.han-s6-mandarin-actions{position:relative;z-index:8;pointer-events:auto;display:flex;gap:8px;width:min(420px,100%)}
.han-s6-mandarin-actions>.scene-object-action--mandarin{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;top:auto!important;transform:none!important;border-radius:12px!important;display:block!important;width:auto!important;font:650 13px/1.3 system-ui,sans-serif!important}
@media(min-width:821px){.han-s6-first-meeting{align-items:flex-end!important;padding-right:clamp(25px,4vw,65px)!important}.han-s6-first-meeting>.scene6-caption,.han-s6-first-meeting>.han-s6-response,.han-s6-first-meeting>.scene-flow-next--standalone{align-self:flex-end!important}.han-s6-mandarin{align-items:flex-end!important;padding-right:clamp(25px,4vw,65px)!important}.han-s6-mandarin>.scene6-caption,.han-s6-mandarin>.han-s6-mandarin-actions{align-self:flex-end}}
@media(max-width:820px){.han-s6-first-meeting{padding:72px 12px max(15px,env(safe-area-inset-bottom))!important}.han-s6-first-meeting>.scene6-caption{max-height:29dvh!important}.han-s6-response button,.han-s6-mandarin-actions>button{font-size:12.5px;padding:10px 9px}.han-s6-mandarin{padding:72px 12px max(16px,env(safe-area-inset-bottom))!important}.han-s6-mandarin>.scene6-caption{max-height:24dvh!important}}
.scene7-stage--dinner:not(.scene7-stage--immersive):not(.scene7-stage--handwash){flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px;overflow-y:auto}
.scene7-stage--dinner:not(.scene7-stage--immersive):not(.scene7-stage--handwash)>.scene7-caption,.scene7-stage--dinner:not(.scene7-stage--immersive):not(.scene7-stage--handwash)>.scene7-stand-action{position:static!important;left:auto!important;bottom:auto!important;transform:none!important;margin:0 auto;align-self:center}
.scene7-stage--dinner:not(.scene7-stage--immersive):not(.scene7-stage--handwash)>.scene7-caption{order:1;max-height:min(55svh,calc(100svh - 170px));overflow:auto}
.scene7-stage--dinner:not(.scene7-stage--immersive):not(.scene7-stage--handwash)>.scene7-stand-action{order:2}
/* S8: the table itself remains the visual source; the panel only names what the eye can find. */
.scene8-stage--with-action{flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px;overflow-y:auto;box-sizing:border-box;padding-bottom:max(18px,env(safe-area-inset-bottom))!important}
.scene8-stage--with-action>.scene8-caption,.scene8-stage--with-action>.scene8-choice-panel{order:1;align-self:center;margin:0!important;max-height:min(58svh,calc(100svh - 174px));overflow:auto}
.scene8-stage--with-action>.scene8-object-action,.scene8-stage--with-action>.scene8-pour-actions{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;order:2;align-self:center;margin:0 auto;max-width:100%}
.scene8-stage--with-action>.scene8-pour-actions{flex-wrap:wrap}
/* Dinner service: keep the gesture and its response beside the family, not in a centred poster panel. */
.scene8-stage--pour .scene8-pour-main{margin-top:11px;line-height:1.5;font-size:clamp(15px,1.15vw,17px);font-weight:400;color:rgba(255,255,255,.94)}
@media(min-width:1025px){
 .scene8-stage--pour.scene8-stage--with-action{padding-left:clamp(24px,5vw,86px);padding-right:24px}
 .scene8-stage--pour.scene8-stage--with-action>.scene8-caption{align-self:flex-start;margin:0!important;width:min(480px,46vw);max-width:480px;padding:20px 23px 21px}
 .scene8-stage--pour.scene8-stage--with-action>.scene8-pour-actions{align-self:flex-start;margin:0!important;width:min(480px,46vw);max-width:480px;justify-content:flex-start}
 .scene8-stage--pour .scene8-pour-actions>.scene8-object-action{margin:0!important;min-height:46px;white-space:normal}
}

.scene8-table-details span{display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto;column-gap:6px;align-items:center}
.scene8-table-details span>b{grid-row:1/3}.scene8-table-details strong{font:700 10px/1.2 system-ui,sans-serif;color:rgba(255,255,255,.82)}.scene8-table-details small{margin:1px 0 0!important;color:rgba(255,255,255,.48)!important;font:500 9px/1.2 system-ui,sans-serif!important;letter-spacing:0!important;text-transform:none!important}








/* Other object moments use the same flow rule. */
.scene10-stage--with-action{flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px;overflow-y:auto;box-sizing:border-box}
.scene10-stage--with-action>.scene10-caption,.scene10-stage--with-action>.scene10-object-action{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;margin:0 auto;align-self:center}
.scene10-stage--with-action>.scene10-caption{order:1;max-height:min(58svh,calc(100svh - 174px));overflow:auto}.scene10-stage--with-action>.scene10-object-action{order:2}
.scene12-stage--container{flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px;overflow-y:auto;box-sizing:border-box}
.scene12-stage--container>.scene12-caption,.scene12-stage--container>.scene12-container-receive{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;margin:0 auto;align-self:center}
.scene12-stage--container>.scene12-caption{order:1;max-height:min(58svh,calc(100svh - 174px));overflow:auto}.scene12-stage--container>.scene12-container-receive{order:2}
.scene12-stage--recipe>.scene12-tap,.scene12-stage--photo-result>.scene12-tap{position:static!important;inset:auto!important;transform:none!important;order:2;align-self:center;margin:0 auto}
.scene12-stage--recipe,.scene12-stage--photo-result{flex-direction:column!important;justify-content:center!important;align-items:stretch!important;gap:10px;overflow-y:auto;box-sizing:border-box}
.scene12-stage--recipe>.scene12-recipe-card,.scene12-stage--photo-result>.scene12-photo-memory{order:1;align-self:center}

/* S6, S9, S10 and S11 choice rails also belong below their copy. */
.scene6-stage--object{flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px;overflow-y:auto;box-sizing:border-box;padding-bottom:max(18px,env(safe-area-inset-bottom))!important}
.scene6-stage--object>.scene6-caption,.scene6-stage--object>.scene-object-action,.scene6-stage--object>.scene6-greeting-actions,.scene6-stage--object>.scene6-free-dock{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;align-self:center;margin:0 auto}
.scene6-stage--object>.scene6-caption{order:1;max-height:min(54svh,calc(100svh - 180px));overflow:auto}
.scene6-stage--object>.scene-object-action,.scene6-stage--object>.scene6-greeting-actions,.scene6-stage--object>.scene6-free-dock{order:2;width:min(760px,100%)}
.scene6-stage--object>.scene6-greeting-actions{display:flex;flex-wrap:wrap}
.scene9-stage--origin:not(.scene9-stage--immersive),.scene9-stage--reason:not(.scene9-stage--immersive),.scene9-stage--grandma:not(.scene9-stage--immersive),.scene9-stage--jiho:not(.scene9-stage--immersive),.scene10-stage--drinks:not(.scene10-stage--immersive),.scene10-stage--difference:not(.scene10-stage--immersive),.scene10-stage--taste:not(.scene10-stage--immersive),.scene10-stage--help:not(.scene10-stage--immersive),.scene11-stage--meal:not(.scene11-stage--immersive),.scene11-stage--jeonju:not(.scene11-stage--immersive),.scene11-stage--tomorrow:not(.scene11-stage--immersive){flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px;overflow-y:auto;box-sizing:border-box;padding-bottom:max(18px,env(safe-area-inset-bottom))!important}
.scene9-stage--origin:not(.scene9-stage--immersive)> .scene9-caption,.scene9-stage--reason:not(.scene9-stage--immersive)> .scene9-caption,.scene9-stage--grandma:not(.scene9-stage--immersive)> .scene9-caption,.scene9-stage--jiho:not(.scene9-stage--immersive)> .scene9-caption,.scene10-stage--drinks:not(.scene10-stage--immersive)> .scene10-caption,.scene10-stage--difference:not(.scene10-stage--immersive)> .scene10-caption,.scene10-stage--taste:not(.scene10-stage--immersive)> .scene10-caption,.scene10-stage--help:not(.scene10-stage--immersive)> .scene10-caption,.scene11-stage--meal:not(.scene11-stage--immersive)> .scene11-caption,.scene11-stage--jeonju:not(.scene11-stage--immersive)> .scene11-caption,.scene11-stage--tomorrow:not(.scene11-stage--immersive)> .scene11-caption{order:1;align-self:center;margin:0!important;max-height:min(54svh,calc(100svh - 184px));overflow:auto}
.scene9-stage--origin:not(.scene9-stage--immersive)> .scene9-replies,.scene9-stage--origin:not(.scene9-stage--immersive)> .scene9-free,.scene9-stage--reason:not(.scene9-stage--immersive)> .scene9-replies,.scene9-stage--reason:not(.scene9-stage--immersive)> .scene9-free,.scene9-stage--grandma:not(.scene9-stage--immersive)> .scene9-replies,.scene9-stage--grandma:not(.scene9-stage--immersive)> .scene9-free,.scene9-stage--jiho:not(.scene9-stage--immersive)> .scene9-replies,.scene9-stage--jiho:not(.scene9-stage--immersive)> .scene9-free,.scene10-stage--drinks:not(.scene10-stage--immersive)> .scene10-replies,.scene10-stage--drinks:not(.scene10-stage--immersive)> .scene10-free,.scene10-stage--difference:not(.scene10-stage--immersive)> .scene10-replies,.scene10-stage--difference:not(.scene10-stage--immersive)> .scene10-free,.scene10-stage--taste:not(.scene10-stage--immersive)> .scene10-replies,.scene10-stage--taste:not(.scene10-stage--immersive)> .scene10-free,.scene10-stage--help:not(.scene10-stage--immersive)> .scene10-replies,.scene10-stage--help:not(.scene10-stage--immersive)> .scene10-free,.scene11-stage--meal:not(.scene11-stage--immersive)> .scene11-replies,.scene11-stage--meal:not(.scene11-stage--immersive)> .scene11-free,.scene11-stage--jeonju:not(.scene11-stage--immersive)> .scene11-replies,.scene11-stage--jeonju:not(.scene11-stage--immersive)> .scene11-free,.scene11-stage--tomorrow:not(.scene11-stage--immersive)> .scene11-replies,.scene11-stage--tomorrow:not(.scene11-stage--immersive)> .scene11-free{position:static!important;left:auto!important;bottom:auto!important;transform:none!important;order:2;align-self:center;width:min(620px,100%);margin:0 auto;max-height:none;overflow:visible}
.scene11-stage--map{flex-direction:column!important;justify-content:center!important;align-items:stretch!important;gap:10px;overflow-y:auto;box-sizing:border-box}
.scene11-stage--map>.scene11-map-card,.scene11-stage--map>.scene11-tap{position:static!important;inset:auto!important;left:auto!important;bottom:auto!important;transform:none!important;order:1;align-self:center;margin:0 auto}
.scene11-stage--map>.scene11-tap{order:2}

@media(max-width:820px){
    .scene5-threshold-actions{flex-direction:column}.scene5-threshold-actions>*{width:100%;flex:0 1 auto}
  .scene8-stage--with-action>.scene8-choice-panel,.scene8-stage--with-action>.scene8-caption{max-height:min(51svh,calc(100svh - 186px))}.scene8-stage--with-action>.scene8-pour-actions{flex-direction:column;width:100%}.scene8-stage--with-action>.scene8-pour-actions>*{width:100%;max-width:100%!important;justify-content:center}
  .scene10-stage--with-action>.scene10-caption,.scene12-stage--container>.scene12-caption{max-height:min(51svh,calc(100svh - 186px))}
  .scene6-stage--object>.scene6-caption,.scene9-stage--origin:not(.scene9-stage--immersive)>.scene9-caption,.scene9-stage--reason:not(.scene9-stage--immersive)>.scene9-caption,.scene9-stage--grandma:not(.scene9-stage--immersive)>.scene9-caption,.scene9-stage--jiho:not(.scene9-stage--immersive)>.scene9-caption,.scene10-stage--drinks:not(.scene10-stage--immersive)>.scene10-caption,.scene10-stage--difference:not(.scene10-stage--immersive)>.scene10-caption,.scene10-stage--taste:not(.scene10-stage--immersive)>.scene10-caption,.scene10-stage--help:not(.scene10-stage--immersive)>.scene10-caption,.scene11-stage--meal:not(.scene11-stage--immersive)>.scene11-caption,.scene11-stage--jeonju:not(.scene11-stage--immersive)>.scene11-caption,.scene11-stage--tomorrow:not(.scene11-stage--immersive)>.scene11-caption{max-height:min(47svh,calc(100svh - 200px))}
  .scene6-stage--object>.scene6-greeting-actions{flex-direction:column;width:100%}.scene6-stage--object>.scene6-greeting-actions>*{width:100%;max-width:100%!important}
}
@media(max-height:700px){
  .scene6-stage--immersive,.scene7-stage--immersive,.scene8-stage--immersive,.scene9-stage--immersive,.scene10-stage--immersive,.scene11-stage--immersive,.scene12-stage--immersive,.scene7-stage--handwash,.scene8-stage--with-action,.scene10-stage--with-action,.scene12-stage--container{overflow-y:auto}
  .scene6-stage--immersive>.scene6-caption,.scene7-stage--immersive>.scene7-caption,.scene8-stage--immersive>.scene8-caption,.scene9-stage--immersive>.scene9-caption,.scene10-stage--immersive>.scene10-caption,.scene11-stage--immersive>.scene11-caption,.scene12-stage--immersive>.scene12-caption{max-height:min(44svh,calc(100svh - 145px))}
}

/* === REVISION 2 · the scene remains readable while the action stays explicit === */
.scene-content button,.scene-content [role="button"]{-webkit-user-select:none;user-select:none}
.scene-content input,.scene-content textarea{-webkit-user-select:text;user-select:text}
.scene-content button[data-scene-action]{pointer-events:auto!important}

/* Continuations are buttons in the document flow, never invisible full-screen hit areas. */
.scene6-tap-layer,.scene7-tap-layer,.scene8-tap-layer,.scene9-tap,.scene10-tap,.scene11-tap,.scene12-tap{
  position:static;inset:auto;display:flex;align-items:center;justify-content:center;order:2;align-self:center;
  width:min(720px,100%);max-width:100%;height:auto;min-height:44px;margin:0 auto;padding:0;transform:none;
  z-index:8;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(8,7,6,.64);backdrop-filter:blur(10px);
  box-shadow:0 12px 30px rgba(0,0,0,.18);color:#fff;cursor:pointer;pointer-events:auto;text-align:center
}
.scene6-tap-cue,.scene7-tap-cue,.scene8-tap-cue,.scene9-tap>span,.scene10-tap>span,.scene11-tap>span,.scene12-tap>span{
  position:static;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;max-width:100%;padding:10px 13px;
  transform:none;border:0;border-radius:999px;background:transparent;color:rgba(255,255,255,.88);font:750 9px/1.2 system-ui,sans-serif;
  letter-spacing:.06em;text-transform:none;white-space:normal;text-align:center
}
.scene6-tap-cue i,.scene7-tap-cue i,.scene8-tap-cue i,.scene9-tap i,.scene10-tap i,.scene11-tap i,.scene12-tap i{flex:0 0 auto}

/* S7 wet-room staging */



/* S8: the image shows the food; these rails only name what the eye can already find. */
.scene8-dish-rail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0 12px}
.scene8-dish-rail span{display:grid;gap:3px;min-width:0;padding:8px 8px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.045)}
.scene8-dish-rail b{font:700 10px/1.2 system-ui,sans-serif;color:#fff}.scene8-dish-rail small{margin:0!important;color:rgba(255,255,255,.52)!important;font:500 9px/1.25 system-ui,sans-serif!important;letter-spacing:0!important;text-transform:none!important}




.scene8-table-details b{display:grid;place-items:center;width:24px;height:24px;border:1px solid rgba(232,176,146,.35);border-radius:7px;color:#efbd9e;font:800 8px/1 system-ui,sans-serif}



/* S9: one misunderstanding gets one visible pause, then a human recovery. */
.scene9-subtext{color:rgba(255,255,255,.62)!important;font-size:12.5px!important}
.scene9-family-beat{padding-top:8px;border-top:1px solid rgba(255,255,255,.08)}
.scene9-stage--origin:not(.scene9-stage--immersive) .scene9-caption--question,.scene9-stage--reason:not(.scene9-stage--immersive) .scene9-caption--question,.scene9-stage--grandma:not(.scene9-stage--immersive) .scene9-caption--question,.scene9-stage--jiho:not(.scene9-stage--immersive) .scene9-caption--question{margin-bottom:0!important}

/* S7 greeting choices sit under the dialogue instead of over it. */
.scene7-stage--greeting{flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px;overflow-y:auto;box-sizing:border-box;padding-bottom:max(18px,env(safe-area-inset-bottom))!important}
.scene7-stage--greeting>.scene7-caption{position:static!important;order:1;align-self:center;margin:0!important;max-height:min(54svh,calc(100svh - 184px));overflow:auto}
.scene7-stage--greeting>.scene7-choice-dock,.scene7-stage--greeting>.scene7-free-dock,.scene7-stage--greeting>.scene7-nonverbal{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;order:2;align-self:center;width:min(760px,100%);margin:0 auto}

/* S11 stays quiet: no timed guide card over the payoff. */
.scene11-stage--quiet{align-items:center!important;justify-content:center!important;padding:88px 22px max(22px,env(safe-area-inset-bottom))!important}
.scene11-quiet-payoff{width:min(430px,100%);padding:15px 16px;border-left:1px solid rgba(232,176,146,.62);background:rgba(8,7,6,.18);color:rgba(255,255,255,.78)}
.scene11-quiet-payoff small{display:block;color:#e8b092;font:800 8px/1.2 system-ui,sans-serif;letter-spacing:.15em}.scene11-quiet-payoff p{margin:9px 0 0;font:400 16px/1.5 Georgia,serif}.scene11-quiet-payoff span{display:block;margin-top:10px;color:rgba(255,255,255,.56);font:700 9px/1.2 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.scene11-stage--quiet .scene11-end-continue{position:static!important;transform:none!important;margin-top:15px;opacity:1!important;animation:none!important}

@media(max-width:820px){
  .scene8-dish-rail span{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:7px 8px}.scene8-dish-rail small{text-align:right}
  
  .scene7-stage--handwash>.scene7-caption,.scene8-stage--with-action>.scene8-choice-panel,.scene8-stage--with-action>.scene8-caption{max-height:min(43svh,calc(100svh - 218px))!important}
  .scene9-stage--grandma.scene9-stage--immersive>.scene9-caption{max-height:min(42svh,calc(100svh - 185px))!important}
  .scene7-stage--greeting>.scene7-caption{max-height:min(42svh,calc(100svh - 210px))}
  .scene7-stage--greeting>.scene7-choice-dock,.scene7-stage--greeting>.scene7-free-dock,.scene7-stage--greeting>.scene7-nonverbal{width:100%}
  .scene11-stage--quiet{padding:76px 12px max(20px,env(safe-area-inset-bottom))!important}.scene11-quiet-payoff{width:100%}
}
@media(max-width:390px){
  .scene8-dish-rail b{font-size:9.5px}.scene8-dish-rail small{font-size:8.5px!important}
}

/* === IMMERSION REBUILD · the scene carries the action === */
/* S5: the correction happens in the room, then Mae names what was just read. */
.scene5-threshold-copy--recovery{max-width:580px!important}
.scene5-threshold-copy--recovery>strong{display:block;margin:6px 0 7px;color:#fff;font:500 clamp(22px,2.4vw,31px)/1.12 Georgia,serif}
.scene5-human-cue{display:grid;gap:4px;margin-top:11px;padding:9px 11px;border-left:2px solid rgba(232,176,146,.68);background:rgba(255,255,255,.035)}
.scene5-human-cue span{color:#e8b092;font:800 8px/1 system-ui,sans-serif;letter-spacing:.13em}.scene5-human-cue b{font:600 12px/1.35 system-ui,sans-serif;color:rgba(255,255,255,.82)}
.scene5-threshold-copy--recovery .scene5-mae{margin-top:11px}

/* S7: the new wash asset is a place, not a drawn icon. */
.scene[data-mode="scene7-dinner"] .scene__image{transition:transform 1s ease,filter 1s ease}


/* S8: the first table interaction points at things in the image. */
.scene8-stage--explore{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:10px;box-sizing:border-box;overflow-y:auto;padding:88px 22px max(18px,env(safe-area-inset-bottom));pointer-events:none}
.scene8-explore-label{position:relative;z-index:3;width:min(430px,100%);margin:0 auto;padding:12px 14px;border:1px solid rgba(255,255,255,.11);border-radius:14px;background:rgba(9,8,7,.48);backdrop-filter:blur(10px);pointer-events:auto}
.scene8-explore-label small{display:block;color:#e8b092;font:800 8px/1.1 system-ui,sans-serif;letter-spacing:.14em}.scene8-explore-label strong{display:block;margin-top:5px;color:#fff;font:500 clamp(21px,2.2vw,29px)/1.12 Georgia,serif}.scene8-explore-label p{margin:6px 0 0;color:rgba(255,255,255,.72);font:400 13px/1.4 Georgia,serif}
.scene8-table-hotspots{position:absolute;inset:0;z-index:4;pointer-events:none}.scene8-table-hotspot{position:absolute;display:grid;gap:3px;min-width:112px;padding:8px 10px;border:1px solid rgba(239,190,158,.52);border-radius:12px;background:rgba(15,11,9,.62);backdrop-filter:blur(8px);color:#fff;text-align:left;box-shadow:0 10px 24px rgba(0,0,0,.18);cursor:pointer;pointer-events:auto}.scene8-table-hotspot:hover,.scene8-table-hotspot:focus-visible{background:rgba(46,27,20,.82);border-color:#f0b897;outline:none}.scene8-table-hotspot b{font:750 11px/1.15 system-ui,sans-serif}.scene8-table-hotspot span{color:rgba(255,255,255,.64);font:500 9px/1.2 system-ui,sans-serif}.scene8-table-hotspot--dishes{left:50%;top:50%;transform:translate(-50%,-50%)}.scene8-table-hotspot--tools{right:11%;bottom:16%}.scene8-table-hotspot--people{right:9%;top:27%}

/* S9/S10: the social response sits next to the gesture, not inside a generic quiz card. */
.scene9-stage--situation{flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:9px;overflow-y:auto;box-sizing:border-box;padding-bottom:max(18px,env(safe-area-inset-bottom))!important}.scene9-stage--situation>.scene9-caption{order:1;align-self:center;margin:0!important;max-height:min(51svh,calc(100svh - 190px));overflow:auto}.scene9-gesture-note{order:2;align-self:center;width:min(620px,100%);padding:8px 11px;border-left:2px solid rgba(232,176,146,.58);background:rgba(255,255,255,.035);pointer-events:auto}.scene9-gesture-note span{display:block;color:#e8b092;font:800 8px/1 system-ui,sans-serif;letter-spacing:.11em}.scene9-gesture-note b{display:block;margin-top:3px;color:rgba(255,255,255,.72);font:600 11px/1.3 system-ui,sans-serif}.scene9-stage--situation>.scene9-replies{position:static!important;order:3;transform:none;align-self:center;width:min(620px,100%);margin:0 auto}.scene9-mae--after{margin-top:10px!important;width:100%!important;padding:9px 10px!important;background:rgba(255,255,255,.035)!important;border-left:2px solid rgba(232,176,146,.58)!important}
.scene10-stage--situation{flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px;overflow-y:auto;box-sizing:border-box;padding:88px 22px max(18px,env(safe-area-inset-bottom))!important}.scene10-stage--situation>.scene10-caption{order:1;align-self:center;margin:0!important;max-height:min(51svh,calc(100svh - 190px));overflow:auto}

@media(max-width:820px){
  .scene8-stage--explore{padding:76px 10px max(18px,env(safe-area-inset-bottom))}.scene8-explore-label{width:100%}.scene8-table-hotspot{min-width:96px;padding:7px 8px}.scene8-table-hotspot b{font-size:10px}.scene8-table-hotspot span{font-size:8px}.scene8-table-hotspot--dishes{left:50%;top:48%}.scene8-table-hotspot--tools{right:8%;bottom:14%}.scene8-table-hotspot--people{right:6%;top:25%}.scene10-stage--situation{padding:76px 10px max(18px,env(safe-area-inset-bottom))!important}.scene9-stage--situation{padding:76px 10px max(18px,env(safe-area-inset-bottom))!important}.scene9-stage--situation>.scene9-caption{max-height:min(42svh,calc(100svh - 230px))}
  .dobox-feedback-form>footer{position:static;bottom:auto;margin:0;padding:14px 0 calc(18px + env(safe-area-inset-bottom));background:transparent;flex-wrap:wrap}
}
@media(max-height:700px){
  .scene8-table-hotspot{padding:6px 7px}.scene8-table-hotspot span{display:none}.scene8-explore-label strong{font-size:20px}.scene8-explore-label p{font-size:12px}.scene10-stage--situation>.scene10-caption,.scene9-stage--situation>.scene9-caption{max-height:min(39svh,calc(100svh - 220px))}
}

/* Keep Hangul on a Korean-capable system face instead of the editorial serif. */
[lang="ko"],.korean-follow,.scene-lang-line>strong{font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic","Nanum Gothic","Noto Sans",system-ui,sans-serif}

/* Scene 12 keepsake */
.scene12-souvenir-container picture{display:block;width:100%;margin:8px 0 10px;overflow:hidden;border-radius:12px;background:rgba(255,255,255,.04)}
.scene12-souvenir-container picture img{display:block;width:100%;height:116px;object-fit:cover}
@media(max-width:820px){.scene12-souvenir-container picture img{height:132px}}




/* HAN tester-approved targeted fixes — 2026-09-14 */
.dobox-ui-logo{display:block;object-fit:contain;border-radius:50%;box-shadow:0 2px 14px rgba(0,0,0,.12)}
.dobox-ui-logo--scene{width:54px;height:54px}.dobox-ui-logo--mini{width:58px;height:58px}
.scene-brand{width:58px!important;height:58px!important;padding:2px!important;border:0!important;background:transparent!important;overflow:visible!important}.scene-brand span{display:none!important}
.wordmark-button{display:grid!important;place-items:center!important;width:62px!important;height:62px!important;padding:0!important;border:0!important;background:transparent!important;font-size:0!important}
.menu-brand{display:flex;align-items:center}.menu-brand img{width:58px;height:58px;border-radius:50%;object-fit:contain}
.scene1-items-note{position:absolute;left:clamp(18px,5vw,72px);bottom:clamp(24px,7vh,72px);max-width:min(360px,calc(100% - 340px));padding:14px 17px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(20,18,16,.58);backdrop-filter:blur(10px);color:#fff;opacity:1}.scene1-items-note span{display:block;font:800 8px/1 system-ui,sans-serif;letter-spacing:.14em;color:rgba(255,255,255,.58)}.scene1-items-note p{margin:8px 0 0;font:500 clamp(14px,1.15vw,17px)/1.48 Georgia,serif;overflow-wrap:break-word}
.wallet-object,.object-hotspot--jacket{background:transparent!important;border:0!important;box-shadow:none!important}.wallet-object{width:60px!important;height:44px!important;border-radius:5px!important;background:linear-gradient(145deg,#4d3627,#241a15)!important;box-shadow:0 4px 12px rgba(0,0,0,.28)!important;transform:rotate(-5deg)}.wallet-object:after{content:"";position:absolute;inset:5px;border:1px solid rgba(224,190,143,.18);border-radius:3px}.wallet-object small,.object-hotspot--jacket small{position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%);padding:5px 7px;border-radius:999px;background:rgba(15,15,14,.68);color:#fff;font:700 8px/1 system-ui,sans-serif;letter-spacing:.06em;white-space:nowrap;opacity:0;animation:hanObjectCue .5s 3.2s forwards}.object-hotspot--jacket span{opacity:0!important}.object-hotspot--jacket:after{content:"";position:absolute;inset:12%;border-radius:42%;border:1px solid rgba(255,255,255,.18);opacity:0;animation:hanObjectCue .5s 3.2s forwards}@keyframes hanObjectCue{to{opacity:.72}}.wallet-object.is-taken,.object-hotspot--jacket.is-taken{opacity:0!important;pointer-events:none!important}
.payment-neutral{margin-top:12px;padding-top:10px;border-top:1px solid rgba(82,60,44,.12);color:rgba(82,60,44,.66);font:600 10px/1.4 system-ui,sans-serif;letter-spacing:.04em}
.scene4-exit-cue{position:relative;z-index:5;max-width:420px;margin:0 auto 10px;padding:11px 13px;border-radius:15px;background:rgba(18,18,17,.52);backdrop-filter:blur(9px);color:#fff}.scene4-exit-cue span{display:block;font:800 8px/1 system-ui,sans-serif;letter-spacing:.14em;color:rgba(255,255,255,.55)}.scene4-exit-cue p{margin:5px 0 0;font:500 13px/1.4 Georgia,serif}
.notebook-letters{margin-top:18px;padding:16px;border:1px solid rgba(95,70,52,.13);border-radius:16px;background:rgba(255,250,241,.55)}.notebook-letters>p{margin:0 0 10px;color:#8b5c49;font:800 8px/1 system-ui,sans-serif;letter-spacing:.14em}.notebook-letters>div{display:flex;gap:8px;flex-wrap:wrap}.notebook-letters button{padding:9px 12px;border:1px solid rgba(95,70,52,.18);border-radius:999px;background:#fffaf2;color:#5a4638;cursor:pointer}
.scene12-phone-vibration{position:absolute;top:76px;left:50%;z-index:7;transform:translateX(-50%);color:rgba(255,255,255,.48);font:700 8px/1 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}.phone-stage--scene12{z-index:6}
.scene12-traveler-update{position:relative;z-index:6;width:min(560px,92vw);padding:18px;border:1px solid rgba(255,255,255,.10);border-radius:24px;background:linear-gradient(155deg,rgba(250,239,221,.96),rgba(224,207,183,.96));color:#48382d;box-shadow:0 26px 70px rgba(0,0,0,.38)}.scene12-traveler-update__brand{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid rgba(82,60,44,.13)}.scene12-traveler-update__brand img{width:42px;height:42px;border-radius:50%}.scene12-traveler-update__brand span{font:850 8px/1 system-ui,sans-serif;letter-spacing:.16em}.scene12-traveler-update__body{position:relative;padding:22px 4px 8px;display:flex;flex-direction:column;align-items:flex-start}.scene12-traveler-update__body>small{color:#9a6550;font:800 8px/1 system-ui,sans-serif;letter-spacing:.14em}.scene12-traveler-update__body h2{max-width:100%;margin:7px 0 7px;font:500 clamp(28px,6vw,42px)/1.02 Georgia,serif}.scene12-traveler-update__body p{margin:0;color:#725d4c;font:500 13px/1.4 Georgia,serif}.scene12-travel-trace,.traveler-card__trace,.scene12-mini-trace{display:grid;place-items:center;border:1px solid rgba(155,74,57,.34);border-radius:50%;color:#985340;transform:rotate(-5deg);background:rgba(255,255,255,.08)}.scene12-travel-trace{position:absolute;right:8px;bottom:4px;width:104px;height:104px;animation:hanTraceIn .65s .4s both}.scene12-travel-trace span,.traveler-card__trace span{font:800 8px/1 system-ui,sans-serif;letter-spacing:.12em}.scene12-travel-trace b,.traveler-card__trace b,.scene12-mini-trace b{font:600 19px/1 Georgia,serif}.scene12-travel-trace small,.traveler-card__trace small,.scene12-mini-trace small{font:750 7px/1 system-ui,sans-serif;letter-spacing:.1em}@keyframes hanTraceIn{from{opacity:0;transform:scale(1.18) rotate(-11deg)}to{opacity:.86;transform:scale(1) rotate(-5deg)}}
.traveler-card__trace{position:absolute;right:14px;bottom:10px;width:78px;height:78px;opacity:.64}.scene12-mini-trace{width:82px;height:82px;margin:10px auto 4px}.passport-memory-strip--traveler{align-items:center}.passport-memory-strip--traveler>.scene12-mini-trace{flex:0 0 68px;width:68px;height:68px;margin:0}
.scene12-download-section{margin:14px 0 0;padding:0;border:1px solid rgba(255,255,255,.08);border-radius:15px;background:rgba(255,255,255,.025)}.scene12-download-section summary{padding:12px 14px;cursor:pointer;color:#ead7bd;font:800 9px/1 system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}.scene12-download-section[open] summary{border-bottom:1px solid rgba(255,255,255,.07)}.scene12-download-actions{display:flex;gap:7px;flex-wrap:wrap;padding:12px}.scene12-download-actions button{min-height:44px;padding:9px 11px;border:1px solid rgba(255,255,255,.11);border-radius:999px;background:rgba(255,255,255,.04);color:#fff;cursor:pointer}.scene12-download-note{margin:0;padding:0 12px 12px;color:rgba(255,255,255,.5);font:500 10px/1.4 system-ui,sans-serif}
@media(max-width:820px){.dobox-ui-logo--scene{width:46px;height:46px}.scene-brand{width:48px!important;height:48px!important}.dobox-ui-logo--mini{width:50px;height:50px}.wordmark-button{width:52px!important;height:52px!important}.scene1-items-note{left:14px;right:14px;bottom:calc(87px + env(safe-area-inset-bottom));max-width:none;padding:13px 16px;border-radius:15px}.scene1-items-note p{font-size:clamp(14px,4.1vw,17px);line-height:1.44}.exit-hotspot{left:14px;right:14px;bottom:calc(15px + env(safe-area-inset-bottom));width:auto;min-height:52px;justify-content:center;gap:12px;border:1px solid rgba(255,255,255,.24);border-radius:13px;background:rgba(17,16,15,.87);backdrop-filter:blur(14px);padding:9px 14px}.exit-hotspot span{flex:0 0 17px;width:17px;height:17px;box-shadow:none}.exit-hotspot strong{padding:0;background:none;font:650 clamp(14px,3.8vw,16px)/1.25 system-ui,sans-serif;white-space:normal;text-align:center}.scene12-traveler-update{width:100%}.scene12-travel-trace{width:82px;height:82px;right:2px}.scene12-traveler-update__body h2{max-width:72%;}.notebook-letters>div{display:grid}.notebook-letters button{text-align:left}.scene12-download-actions{display:grid}.scene12-download-actions button{width:100%}}


/* RC5 — human immersion cleanup: visual points, readable language choices, lighter phone */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.scene8-observe-whisper{position:absolute;z-index:3;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translateX(-50%);margin:0;width:min(500px,calc(100% - 28px));padding:8px 12px;border-radius:999px;background:rgba(10,8,7,.38);backdrop-filter:blur(8px);color:rgba(255,255,255,.82);text-align:center;font:500 12px/1.35 Georgia,serif;pointer-events:none}
.scene8-stage--explore .scene8-explore-label{display:none!important}
.scene8-stage--explore .scene8-table-hotspot{min-width:0!important;width:42px!important;height:42px!important;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;display:grid!important;place-items:center!important;overflow:visible!important}
.scene8-stage--explore .scene8-table-hotspot>i{display:block;width:12px;height:12px;border-radius:50%;background:#f2c2a7;box-shadow:0 0 0 7px rgba(242,194,167,.16),0 0 24px rgba(242,194,167,.58);position:relative}
.scene8-stage--explore .scene8-table-hotspot>i:after{content:"";position:absolute;inset:-7px;border:1px solid rgba(255,235,221,.52);border-radius:50%;animation:hanHotspotPulse 2.2s ease-out infinite}
@keyframes hanHotspotPulse{0%{transform:scale(.68);opacity:.1}45%{opacity:.8}100%{transform:scale(1.55);opacity:0}}
.scene8-stage--explore .scene8-table-hotspot:hover>i,.scene8-stage--explore .scene8-table-hotspot:focus-visible>i{background:#fff;box-shadow:0 0 0 8px rgba(255,255,255,.18),0 0 28px rgba(255,225,205,.8)}
.scene8-stage--explore .scene8-table-hotspot--dishes{left:50%!important;top:57%!important;transform:translate(-50%,-50%)!important}
.scene8-stage--explore .scene8-table-hotspot--tools{right:18%!important;bottom:18%!important}
.scene8-stage--explore .scene8-table-hotspot--people{right:16%!important;top:30%!important}
.scene-language-replies button{display:grid!important;grid-template-columns:1fr!important;gap:4px!important;padding:11px 12px!important}
.scene-language-replies button strong{display:block;color:#f0b897;font:800 10px/1.2 system-ui,sans-serif;letter-spacing:.055em;text-transform:uppercase}
.scene-language-replies button span{display:block;font:600 15px/1.3 Georgia,serif}
.scene-language-replies button span[lang="ko"]{font-size:17px}
.scene-language-replies button small{display:block;color:rgba(255,255,255,.67);font:500 11px/1.35 system-ui,sans-serif;letter-spacing:0;text-transform:none}
.scene12-stage--favorite{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;overflow-y:auto!important;background:linear-gradient(180deg,rgba(9,8,7,.16),rgba(9,8,7,.64))!important;backdrop-filter:none!important;padding:76px 14px max(18px,env(safe-area-inset-bottom))!important}
.scene12-notification{position:relative;z-index:5;width:min(520px,calc(100% - 24px));margin:0 auto;padding:15px 16px;border:1px solid rgba(255,255,255,.11);border-radius:22px;background:linear-gradient(160deg,rgba(41,49,47,.94),rgba(19,23,22,.94));box-shadow:0 18px 50px rgba(0,0,0,.34);backdrop-filter:blur(16px);color:#fff}
.scene12-notification-head{display:flex;align-items:center;gap:10px;margin-bottom:11px}.scene12-notification-head img{width:42px;height:42px;border-radius:50%;object-fit:cover}.scene12-notification-head div{display:grid;gap:2px}.scene12-notification-head strong{font:750 15px/1.2 system-ui,sans-serif}.scene12-notification-head small{color:rgba(255,255,255,.56);font:600 10px/1.2 system-ui,sans-serif}.scene12-notification p{margin:7px 0;color:rgba(255,255,255,.92);font:500 15px/1.45 Georgia,serif}
.scene12-stage--favorite>.scene12-replies{position:relative!important;left:auto!important;bottom:auto!important;transform:none!important;order:2;width:min(520px,calc(100% - 24px))!important;margin:0 auto max(16px,env(safe-area-inset-bottom));max-height:none!important;overflow:visible!important}
.scene12-phone-vibration{display:none!important}
@media(max-width:390px){.scene8-observe-whisper{font-size:11px}.scene8-stage--explore .scene8-table-hotspot{width:38px!important;height:38px!important}.scene12-stage--favorite{padding-top:72px!important}.scene12-notification{padding:13px 14px;border-radius:18px}.scene12-notification p{font-size:13.5px}.scene-language-replies button span{font-size:13.5px}.scene-language-replies button span[lang="ko"]{font-size:15px}.scene-language-replies button small{font-size:10px}}


/* Locked journey profile + personalized final trace */
.menu-profile-lock{
  display:grid;gap:6px;margin-top:14px;padding:14px 15px;border:1px solid rgba(105,82,62,.18);
  border-radius:14px;background:rgba(255,250,243,.72);color:#5f4a3d
}
.menu-profile-lock strong{font:700 12px/1.25 system-ui,sans-serif;letter-spacing:.04em;text-transform:uppercase}
.menu-profile-lock span{font:500 12px/1.45 system-ui,sans-serif;color:#806b5b}
.scene12-personal-thread{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12)}
.scene12-personal-thread>span{display:block;margin-bottom:10px;font:700 10px/1.3 system-ui,sans-serif;letter-spacing:.13em;color:rgba(255,255,255,.6)}
.scene12-personal-thread>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.scene12-personal-thread article{min-height:92px;padding:12px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.045)}
.scene12-personal-thread small{display:block;margin-bottom:7px;font:700 9px/1.3 system-ui,sans-serif;letter-spacing:.11em;color:rgba(255,255,255,.52)}
.scene12-personal-thread p{margin:0;font:500 13px/1.45 system-ui,sans-serif;color:rgba(255,255,255,.9)}
@media(max-width:720px){.scene12-personal-thread>div{grid-template-columns:1fr}.scene12-personal-thread article{min-height:0}}

/* Late-memory callbacks */
.scene11-memory-thread--gift{padding:11px 12px!important;border:1px solid rgba(255,255,255,.09)!important;border-radius:13px;background:rgba(255,255,255,.035)}
.scene11-memory-thread--gift b{display:block;margin-bottom:4px;color:#e8b092;font:800 8px/1.3 system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.scene11-memory-thread--gift span{display:block;margin-bottom:3px;color:rgba(255,255,255,.9);font:700 12px/1.35 system-ui,sans-serif}
.scene11-memory-thread--gift p{margin:0!important;padding:0!important;border:0!important;color:rgba(255,255,255,.72)!important;font:400 12.5px/1.48 system-ui,sans-serif!important}
.scene12-relationship-echo{margin-top:13px;padding-top:11px;border-top:1px solid rgba(255,255,255,.09)}
.scene12-relationship-echo small{display:block;margin:0 0 5px!important;color:#e8b092!important;font:800 8px/1.2 system-ui,sans-serif!important;letter-spacing:.14em;text-transform:uppercase}
.scene12-relationship-echo p{margin:0!important;color:rgba(255,255,255,.88)!important;font-style:italic!important}
.scene12-personal-thread--transformation>div{grid-template-columns:1fr}
.scene12-personal-thread--transformation article{min-height:0;padding:15px 16px;background:linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.025));border-color:rgba(232,176,146,.25)}
.scene12-personal-thread--transformation small{color:#e8b092}


/* Presence / personalization / resilience */

/* Immersive response beats read as part of the world, not as modal cards. */
.scene6-stage--immersive>.scene6-caption,
.scene7-stage--immersive>.scene7-caption,
.scene8-stage--immersive>.scene8-caption,
.scene9-stage--immersive>.scene9-caption,
.scene10-stage--immersive>.scene10-caption,
.scene11-stage--immersive>.scene11-caption,
.scene12-stage--immersive>.scene12-caption{
  border:0!important;
  border-left:2px solid rgba(232,176,146,.58)!important;
  border-radius:0!important;
  background:linear-gradient(90deg,rgba(7,7,6,.66) 0%,rgba(7,7,6,.35) 62%,rgba(7,7,6,0) 100%)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  padding:11px 14px 11px 13px!important;
  text-shadow:0 2px 18px rgba(0,0,0,.48);
}

/* The gift echo is now family life, not a "memory card". */
.scene11-family-gift-beat{
  margin-top:14px;
  padding:11px 0 0;
  border-top:1px solid rgba(255,255,255,.10);
}
.scene11-family-gift-beat>span{
  display:block;
  margin-bottom:8px;
  color:rgba(255,255,255,.50);
  font:700 8px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.scene11-family-gift-beat>small{
  margin-top:9px!important;
}
.scene11-family-gift-beat>p{
  margin:4px 0 0!important;
  color:rgba(255,255,255,.82)!important;
}

/* Profile-dependent memory block: intentionally quiet, not a badge/score. */
.scene12-personal-thread--profile{
  border-top:1px solid rgba(255,255,255,.09);
}
.scene12-personal-thread--profile>div article{
  background:rgba(255,255,255,.025);
  border-left:2px solid rgba(232,176,146,.38);
}

/* Network/asset fallback must remain readable rather than showing a broken image. */
.scene.is-asset-fallback .scene__image{
  filter:saturate(.72) brightness(.62) blur(1px);
}
.scene.is-asset-fallback .scene__image-shade{
  background:linear-gradient(180deg,rgba(5,8,8,.38),rgba(5,8,8,.12) 34%,rgba(5,7,7,.55));
}

/* Keyboard-open / short viewport guardrails. */
@media(max-height:620px){
  .scene6-stage,.scene7-stage,.scene8-stage,.scene9-stage,.scene10-stage,.scene11-stage,.scene12-stage{
    padding-top:max(58px,env(safe-area-inset-top))!important;
    padding-bottom:max(8px,env(safe-area-inset-bottom))!important;
  }
  .scene6-stage--immersive>.scene6-caption,
  .scene7-stage--immersive>.scene7-caption,
  .scene8-stage--immersive>.scene8-caption,
  .scene9-stage--immersive>.scene9-caption,
  .scene10-stage--immersive>.scene10-caption,
  .scene11-stage--immersive>.scene11-caption,
  .scene12-stage--immersive>.scene12-caption{
    max-height:48dvh!important;
    margin-bottom:6px!important;
  }
}

/* Voice-line audio control */
.scene7-voice-line{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.scene7-voice-line .scene7-spoken{margin:0;flex:1 1 15rem}

/* =========================================================
   MOBILE LEGIBILITY + CONTROL SAFETY
   Real-device issues observed on Android: no control may cover copy.
   ========================================================= */
.hud-replay{width:39px;height:39px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(12,14,13,.24);backdrop-filter:blur(8px);cursor:pointer;color:#fff;font:700 12px/1 system-ui,sans-serif;letter-spacing:-.06em;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.hud-replay:hover,.hud-replay:focus-visible{background:rgba(30,35,31,.62);border-color:rgba(255,255,255,.42);outline:none}.hud-replay.needs-attention{border-color:rgba(239,183,148,.8);background:rgba(137,74,52,.62);animation:hanReplayPulse 1.5s ease-in-out infinite}@keyframes hanReplayPulse{50%{transform:scale(1.06)}}

/* Continue is a real visible control, never a tiny arrow hidden under copy. */
.scene-breath{position:absolute!important;z-index:15!important;left:50%!important;bottom:max(12px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;width:auto!important;min-width:118px!important;height:44px!important;margin:0!important;padding:0 14px!important;border-radius:999px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;background:rgba(8,8,7,.66)!important;box-shadow:0 12px 30px rgba(0,0,0,.23)!important;backdrop-filter:blur(10px)!important}
.scene-breath b{display:block;font:750 12px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.01em}.scene-breath span{font-size:14px!important;animation:none!important}

/* Reserve a physical lane for the bottom control in every immersive family scene. */
.scene6-stage--immersive,.scene7-stage--immersive,.scene8-stage--immersive,.scene9-stage--immersive,.scene10-stage--immersive,.scene11-stage--immersive,.scene12-stage--immersive{padding-bottom:calc(74px + env(safe-area-inset-bottom))!important}
.scene6-stage--immersive .scene6-caption,.scene7-stage--immersive .scene7-caption,.scene8-stage--immersive .scene8-caption,.scene9-stage--immersive .scene9-caption,.scene10-stage--immersive .scene10-caption,.scene11-stage--immersive .scene11-caption,.scene12-stage--immersive .scene12-caption{margin-bottom:0!important}

/* Speech highlight stays readable but never shifts layout. */
.scene-lang-line.is-speaking,.language-block.is-speaking,.scene7-voice-line.is-speaking{outline:1px solid rgba(241,190,156,.38);outline-offset:3px;background:linear-gradient(90deg,rgba(238,178,145,.08),transparent 70%)}

@media(max-width:820px){
  :root{--han-mobile-bottom-lane:72px}
  .scene-hud{padding-left:12px!important;padding-right:12px!important}.scene-hud__actions{gap:4px!important}.hud-lang,.hud-sound,.hud-menu,.hud-replay{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}

  /* Body copy: product copy must remain readable on a real 360–420 px phone. */
  .scene6-caption>p,.scene7-caption p,.scene8-caption p,.scene9-caption>p,.scene10-caption p,.scene11-caption p,.scene12-caption p,
  .scene6-spoken,.scene7-spoken,.scene8-spoken,.scene9-spoken,.scene10-spoken,.scene11-spoken,.scene12-spoken{
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
    font-size:15.5px!important;line-height:1.48!important;letter-spacing:0!important;
  }
  .scene6-caption>small,.scene7-caption small,.scene8-caption small,.scene9-caption>small,.scene10-caption small,.scene11-caption small,.scene12-caption small{font-size:9px!important;line-height:1.25!important}
  .scene6-caption>strong,.scene7-caption>strong,.scene8-caption strong,.scene9-caption>strong,.scene10-caption strong,.scene11-caption strong,.scene12-caption strong{font-size:22px!important;line-height:1.12!important}
  .scene-lang-line strong{font-size:22px!important;line-height:1.2!important}.scene-lang-help,.scene-lang-disclosure{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;font-size:13px!important;line-height:1.4!important}

  /* Dinner rail from the photographed bug: one clean row per dish; never 3 cramped columns. */
  .scene8-dish-rail{grid-template-columns:1fr!important;gap:5px!important;margin:9px 0 11px!important}
  .scene8-dish-rail span{display:grid!important;grid-template-columns:minmax(104px,.9fr) minmax(0,1.1fr)!important;align-items:center!important;gap:10px!important;padding:7px 9px!important;min-height:36px!important}
  .scene8-dish-rail b{font-size:12px!important;line-height:1.25!important;white-space:normal!important}.scene8-dish-rail small{font-size:11.5px!important;line-height:1.3!important;text-align:left!important;white-space:normal!important;overflow-wrap:anywhere!important}

  /* The exact scene in the photo: copy then action. The CTA is part of flow, not an overlay. */
  .scene8-stage--with-action{display:flex!important;flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px!important;overflow-y:auto!important;overscroll-behavior:contain!important;padding:70px 10px max(12px,env(safe-area-inset-bottom))!important}
  .scene8-stage--with-action>.scene8-caption,.scene8-stage--with-action>.scene8-choice-panel{position:relative!important;order:1!important;align-self:stretch!important;margin:0!important;width:100%!important;max-height:none!important;overflow:visible!important}
  .scene8-stage--with-action>.scene8-object-action,.scene8-stage--with-action>.scene8-pour-actions{position:relative!important;order:2!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;align-self:center!important;margin:0 auto!important;max-width:100%!important;min-height:46px!important}

  /* Same safety rule for object interactions elsewhere. */
  .scene6-stage--object{display:flex!important;flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px!important;overflow-y:auto!important;padding-bottom:max(12px,env(safe-area-inset-bottom))!important}
  .scene6-stage--object>.scene6-caption{order:1!important;margin:0!important;width:100%!important;max-height:none!important;overflow:visible!important}.scene6-stage--object>.scene-object-action,.scene6-stage--object>.scene6-greeting-actions{position:relative!important;order:2!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;align-self:center!important;margin:0 auto!important;max-width:100%!important}
  .scene10-stage--with-action{display:flex!important;flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:10px!important;overflow-y:auto!important;padding-bottom:max(12px,env(safe-area-inset-bottom))!important}.scene10-stage--with-action>.scene10-caption{order:1!important;margin:0!important;width:100%!important;max-height:none!important;overflow:visible!important}.scene10-stage--with-action>.scene10-object-action{position:relative!important;order:2!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;align-self:center!important;margin:0 auto!important}

  /* Reply docks become normal document flow on phones. They cannot cover dialogue. */
  .scene9-stage:has(>.scene9-replies),.scene10-stage:has(>.scene10-replies),.scene11-stage:has(>.scene11-replies),.scene12-stage:has(>.scene12-replies){display:flex!important;flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;gap:9px!important;overflow-y:auto!important;overscroll-behavior:contain!important;padding:70px 10px max(10px,env(safe-area-inset-bottom))!important}
  .scene9-stage:has(>.scene9-replies)>.scene9-caption,.scene10-stage:has(>.scene10-replies)>.scene10-caption,.scene11-stage:has(>.scene11-replies)>.scene11-caption,.scene12-stage:has(>.scene12-replies)>.scene12-caption{position:relative!important;order:1!important;margin:0!important;width:100%!important;max-height:none!important;overflow:visible!important}
  .scene9-stage:has(>.scene9-replies)>.scene9-replies,.scene10-stage:has(>.scene10-replies)>.scene10-replies,.scene11-stage:has(>.scene11-replies)>.scene11-replies,.scene12-stage:has(>.scene12-replies)>.scene12-replies{position:relative!important;order:2!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:100%!important;max-height:none!important;overflow:visible!important;margin:0!important}

  /* Buttons must not become microscopic just to fit. */
  .choice-button,.scene-conversation-choice,.scene8-choice-panel button,.scene9-replies button,.scene10-replies button,.scene11-replies button,.scene12-replies button,.scene-flow-next,.scene8-object-action,.scene10-object-action{font-size:14.5px!important;line-height:1.35!important;min-height:46px!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .scene8-caption,.scene7-caption,.scene6-caption,.scene9-caption,.scene10-caption,.scene11-caption,.scene12-caption{overflow-wrap:anywhere!important;-webkit-text-size-adjust:100%;text-size-adjust:100%}

  /* Immersive response + visible Continue lane, matching the first photographed bug. */
  .scene6-stage--immersive,.scene7-stage--immersive,.scene8-stage--immersive,.scene9-stage--immersive,.scene10-stage--immersive,.scene11-stage--immersive,.scene12-stage--immersive{padding-bottom:calc(var(--han-mobile-bottom-lane) + env(safe-area-inset-bottom))!important}
  .scene6-stage--immersive .scene6-caption,.scene7-stage--immersive .scene7-caption,.scene8-stage--immersive .scene8-caption,.scene9-stage--immersive .scene9-caption,.scene10-stage--immersive .scene10-caption,.scene11-stage--immersive .scene11-caption,.scene12-stage--immersive .scene12-caption{max-height:min(52dvh,calc(100dvh - 164px))!important;overflow:auto!important;-webkit-overflow-scrolling:touch!important}
}

@media(max-width:390px){
  .scene6-caption>p,.scene7-caption p,.scene8-caption p,.scene9-caption>p,.scene10-caption p,.scene11-caption p,.scene12-caption p,.scene6-spoken,.scene7-spoken,.scene8-spoken,.scene9-spoken,.scene10-spoken,.scene11-spoken,.scene12-spoken{font-size:15px!important}
  .scene8-dish-rail b{font-size:11.5px!important}.scene8-dish-rail small{font-size:11px!important}
}

@media(max-height:700px) and (max-width:820px){
  .scene6-stage,.scene7-stage,.scene8-stage,.scene9-stage,.scene10-stage,.scene11-stage,.scene12-stage{padding-top:60px!important}
  .scene6-stage--immersive .scene6-caption,.scene7-stage--immersive .scene7-caption,.scene8-stage--immersive .scene8-caption,.scene9-stage--immersive .scene9-caption,.scene10-stage--immersive .scene10-caption,.scene11-stage--immersive .scene11-caption,.scene12-stage--immersive .scene12-caption{max-height:min(48dvh,calc(100dvh - 150px))!important}
  .scene-breath{bottom:max(7px,env(safe-area-inset-bottom))!important;height:42px!important;min-height:42px!important}
}

/* =========================================================
   GLOBAL MOBILE FLOW / TYPOGRAPHY SAFETY
   Goal: no important text under controls; no microscopic copy;
   keyboard and browser chrome must not hide the next action.
   ========================================================= */
@media(max-width:820px){
  /* Production scenes use the visual viewport height when available. */
  .scene-stage--flow-safe{
    height:var(--han-vvh,100dvh)!important;
    max-height:var(--han-vvh,100dvh)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-end!important;
    align-items:stretch!important;
    gap:10px!important;
    padding-top:max(64px,calc(env(safe-area-inset-top) + 54px))!important;
    padding-left:10px!important;
    padding-right:10px!important;
    padding-bottom:max(14px,calc(env(safe-area-inset-bottom) + 10px))!important;
  }

  /* The continue control is in document flow on phones. This is the
     hard fix for the photographed button/copy collision. */
  .scene-stage--continue-flow>.scene-breath{
    position:relative!important;
    z-index:20!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    transform:none!important;
    order:99!important;
    align-self:center!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:148px!important;
    min-height:48px!important;
    margin:2px auto 0!important;
    padding:0 18px!important;
  }
  .scene-stage--continue-flow>.scene-breath b{font-size:14px!important;line-height:1.2!important}
  .scene-stage--continue-flow>.scene-breath span{font-size:15px!important}

  /* Direct captions and controls are ordered rather than layered. */
  .scene-stage--flow-safe> :is(.scene6-caption,.scene6-choice-dock,.scene7-caption,.scene7-choice-panel,.scene8-caption,.scene8-choice-panel,.scene9-caption,.scene10-caption,.scene11-caption,.scene12-caption){
    position:relative!important;
    left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
    transform:none!important;
    order:1!important;
    width:100%!important;
    max-width:760px!important;
    max-height:none!important;
    overflow:visible!important;
    align-self:center!important;
    margin:0 auto!important;
    flex:0 0 auto!important;
  }
  .scene-stage--flow-safe> :is(.scene6-free-dock,.scene6-greeting-actions,.scene7-choice-dock,.scene7-free-dock,.scene7-nonverbal,.scene7-handwash-actions,.scene8-pour-actions,.scene9-replies,.scene9-free,.scene10-replies,.scene10-free,.scene11-replies,.scene11-free,.scene12-replies,.scene12-other,.scene12-final-actions,.scene12-container-receive){
    position:relative!important;
    left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
    transform:none!important;
    order:2!important;
    width:100%!important;
    max-width:760px!important;
    max-height:none!important;
    overflow:visible!important;
    align-self:center!important;
    margin:0 auto!important;
    flex:0 0 auto!important;
  }

  /* Product copy: readable at actual handset width. */
  .scene-content :is(.story-text,.story-text p,.scene5-threshold-copy p,.scene5-inside-caption p,.scene6-caption>p,.scene7-caption p,.scene8-caption p,.scene9-caption>p,.scene10-caption p,.scene11-caption p,.scene12-caption p,.scene6-spoken,.scene7-spoken,.scene8-spoken,.scene9-spoken,.scene10-spoken,.scene11-spoken,.scene12-spoken,.scene8-question,.scene9-question,.scene10-question,.scene11-question,.scene12-question){
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
    font-size:16px!important;
    line-height:1.5!important;
    letter-spacing:0!important;
    text-wrap:pretty;
  }
  .scene-content :is(.scene6-caption>strong,.scene7-caption>strong,.scene8-caption>strong,.scene9-caption>strong,.scene10-caption>strong,.scene11-caption>strong,.scene12-caption>strong){
    font-size:23px!important;
    line-height:1.16!important;
  }
  .scene-content :is(.scene6-caption>small,.scene7-caption small,.scene8-caption small,.scene9-caption>small,.scene10-caption small,.scene11-caption small,.scene12-caption small,.story-speaker,.scene5-client-reply>small,.scene5-reply-echo span,.scene9-gesture-note span){
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
    font-size:11.5px!important;
    line-height:1.28!important;
    letter-spacing:.09em!important;
  }
  .scene-content :is(.scene-lang-line strong,.language-block .korean-follow,.choice-language-row .korean-follow){
    font-size:20px!important;
    line-height:1.3!important;
  }
  .scene-content :is(.scene-lang-help,.scene-lang-disclosure,.romanization,.translation,.language-help-disclosure summary){
    font-size:13.5px!important;
    line-height:1.45!important;
  }

  /* Any decision/continue control must remain touchable and legible. */
  .scene-content :is(button.choice-button,button.scene-conversation-choice,.scene6-choice-dock button,.scene7-choice-dock button,.scene7-choice-panel button,.scene8-choice-panel button,.scene9-replies button,.scene10-replies button,.scene11-replies button,.scene12-replies button,.scene-flow-next,.scene-panel-next,.scene8-object-action,.scene10-object-action,.scene12-container-receive,button[data-scene-action^="scene8-bulgogi"],button[data-scene-action^="scene8-banchan"]){
    min-height:48px!important;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
    font-size:15px!important;
    line-height:1.4!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }

  /* Inputs remain reachable with the virtual keyboard open. */
  .scene-content :is(.scene6-free-dock,.scene7-free-dock,.scene9-free,.scene10-free,.scene11-free) input,
  .scene-content textarea{
    min-height:48px!important;
    font-size:16px!important; /* prevents iOS auto-zoom */
    line-height:1.35!important;
  }

  /* Tiny instructional tap cues are never the sole action. */
  .scene-content :is(.scene6-tap-cue,.scene7-tap-cue,.scene8-tap-cue,.scene9-tap span,.scene10-tap span,.scene11-tap span,.scene12-tap span){
    font-size:12px!important;
    line-height:1.25!important;
  }

  /* The dinner reference rail from the Android captures. */
  .scene8-dish-rail{grid-template-columns:1fr!important;gap:6px!important}
  .scene8-dish-rail span{grid-template-columns:minmax(110px,.9fr) minmax(0,1.1fr)!important;min-height:42px!important;padding:8px 10px!important}
  .scene8-dish-rail b{font-size:13px!important;line-height:1.3!important}
  .scene8-dish-rail small{font-size:12.5px!important;line-height:1.35!important}

  /* If a caption becomes long, the entire stage scrolls; the copy itself does not
     become a small nested scroll box whose CTA can disappear beneath it. */
  .scene-stage--flow-safe :is(.scene6-caption,.scene7-caption,.scene8-caption,.scene9-caption,.scene10-caption,.scene11-caption,.scene12-caption){
    scrollbar-width:thin;
  }
}

@media(max-width:390px){
  .scene-content :is(.story-text,.story-text p,.scene6-caption>p,.scene7-caption p,.scene8-caption p,.scene9-caption>p,.scene10-caption p,.scene11-caption p,.scene12-caption p,.scene6-spoken,.scene7-spoken,.scene8-spoken,.scene9-spoken,.scene10-spoken,.scene11-spoken,.scene12-spoken){font-size:15.5px!important}
  .scene-content :is(.scene6-caption>strong,.scene7-caption>strong,.scene8-caption>strong,.scene9-caption>strong,.scene10-caption>strong,.scene11-caption>strong,.scene12-caption>strong){font-size:21px!important}
  .scene-stage--flow-safe{gap:8px!important;padding-left:8px!important;padding-right:8px!important}
}

@media(max-height:660px) and (max-width:820px){
  .scene-stage--flow-safe{
    justify-content:flex-start!important;
    padding-top:max(58px,calc(env(safe-area-inset-top) + 50px))!important;
  }
  .scene-stage--continue-flow>.scene-breath{margin-bottom:max(8px,env(safe-area-inset-bottom))!important}
}


/* =========================================================
   CANONICAL P0 · GLOBAL MOBILE READABILITY + NO-OVERLAP FLOOR
   Added after real-device findings. These are safety floors, not redesign.
   ========================================================= */
@media(max-width:820px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

  /* No important learning/support text is allowed to become microscopic. */
  .scene-content :is(
    .romanization,.translation,.scene-lang-help,.scene-lang-translate,
    .speech-feedback small,.scene9-free>small,.scene11-memory-thread,.scene11-phone-hint,
    .mae-aside,.scene6-mae p,.scene6-mae--whisper p,.scene7-caption p,
    .scene8-mae p,.scene9-mae p,.scene10-mae p,.scene12-context-note
  ){
    font-size:13.5px!important;
    line-height:1.45!important;
  }

  .scene-content :is(
    .story-speaker,.notebook-expression small,.dialogue-followup span,.dialogue-followup small,
    .scene2-observation span,.scene3-tip>span,.scene4-fare-note span,
    .scene4-validator-copy small,.scene4-transport-card span,.scene4-arrival-card small,
    .scene5-house-caption small,.scene5-dialogue-card>small,.scene5-threshold-copy>small,
    .scene5-inside-caption>small,.scene5-doorbell-copy>small,.scene5-offscreen span,.scene5-offscreen small,
    .scene6-client>small,.scene5-client-reply>small,.scene6-caption>small,.scene6-choice-dock>small
  ){
    font-size:11.5px!important;
    line-height:1.35!important;
  }

  /* Phone mockups stay visually phone-like but must still be readable on a phone. */
  .scene-content .phone-message{font-size:14px!important;line-height:1.42!important}
  .scene-content .phone-message--papa{font-size:13.5px!important}
  .scene-content .phone-thread-head strong{font-size:14px!important}
  .scene-content .phone-thread-head small,.scene-content .phone-notification__app,.scene-content .phone-status{font-size:10.5px!important}
  .scene-content .phone-memory-link{font-size:13px!important}

  /* Korean learning actions must be large enough to read and tap. */
  .scene-content :is(.audio-chip--text,.mic-chip--text,.choice-language-actions button,.language-tools>button){
    min-height:40px!important;
    font-size:12.5px!important;
    line-height:1.25!important;
  }

  /* If a stage contains copy plus any direct action, the action joins document flow.
     Full-screen tap layers and visual hotspots remain excluded by JS. */
  .scene-stage--flow-safe > :is(
    .scene-flow-next--standalone,.scene-object-action,.scene7-stand-action,
    .scene8-object-action,.scene10-object-action,.scene11-end-continue,.scene12-stamp-continue
  ){
    position:relative!important;
    left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
    transform:none!important;
    order:2!important;
    align-self:center!important;
    width:auto!important;
    max-width:100%!important;
    min-height:48px!important;
    margin:0 auto!important;
    flex:0 0 auto!important;
  }

  /* Passport/traveler document is part of the paid experience; labels remain legible. */
  .passport-page>p,.immersion-id-card__head span,.passport-cover small,.passport-page--visa>small{font-size:10px!important}
  .passport-page dt,.immersion-id-card dt,.traveler-card__grid dt{font-size:9.5px!important;line-height:1.3!important}
  .passport-page dd,.immersion-id-card dd,.traveler-card__grid dd{font-size:12px!important;line-height:1.35!important}
  .passport-mark{font-size:12px!important}
  .passport-mark span{font-size:9px!important}

  /* Labels may be secondary, never invisible. */
  .sound-button__label{font-size:10px!important}
  .build-stamp{font-size:10px!important}
}

@media(max-width:390px){
  .scene-content .phone-message{font-size:13.5px!important}
  .passport-page dd,.immersion-id-card dd,.traveler-card__grid dd{font-size:11.5px!important}
}

/* =========================================================
   CANONICAL P0 · SECOND-PASS MICROCOPY / MEMORY READABILITY
   Findings from static regression audit after the Android screenshots.
   ========================================================= */
@media(max-width:820px){
  /* Explanations that still escaped the previous typography floor. */
  .scene-content :is(.scene8-explore-label p,.scene5-human-cue b,.scene9-gesture-note b,.scene11-map-copy p,.scene11-quiet-payoff p){
    font-size:15px!important;
    line-height:1.45!important;
  }

  /* Image hotspots are optional discovery controls, but their labels must still be readable/touchable. */
  .scene8-table-hotspot{
    min-width:108px!important;
    min-height:48px!important;
    padding:8px 9px!important;
  }
  .scene8-table-hotspot b{font-size:12.5px!important;line-height:1.25!important}
  .scene8-table-hotspot span{font-size:11.5px!important;line-height:1.25!important}

  /* The map is a real recommendation, not decorative microtext. */
  .scene11-map-card header span,.scene11-map-copy small{font-size:10.5px!important;line-height:1.25!important}
  .scene11-map-copy strong{font-size:16px!important;line-height:1.3!important}

  /* Final memory screen must read like a paid keepsake on a phone. */
  .scene12-souvenir-shell>header small,
  .scene12-souvenir-grid article>span,
  .scene12-souvenir-shell blockquote span{font-size:10.5px!important;line-height:1.25!important}
  .scene12-souvenir-shell>header p{font-size:12.5px!important;line-height:1.35!important}
  .scene12-souvenir-grid article>small{font-size:12.5px!important;line-height:1.4!important}
  .scene12-souvenir-shell>footer p span{font-size:14px!important;line-height:1.4!important}
  .scene12-final-actions{width:100%!important;display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .scene12-final-actions button{min-height:48px!important;font-size:14px!important;line-height:1.25!important;padding:12px 14px!important}

  /* Profile copy is part of personalization, not legal fine print. */
  .profile-card__head p{font-size:12px!important;line-height:1.3!important}
  .profile-choice small{font-size:14px!important;line-height:1.4!important}
  .profile-choice strong{font-size:19px!important;line-height:1.25!important}
  .docs-hint{font-size:15px!important;line-height:1.45!important}
}

@media(max-width:390px){
  .scene8-table-hotspot{min-width:96px!important}
  .scene12-souvenir-shell{padding:16px!important}
}

/* =========================================================
   CANONICAL AUDIT · REAL-HANDSET LEGIBILITY FLOOR
   Content that carries meaning must stay readable without pinch zoom.
   ========================================================= */
@media(max-width:820px){
  .scene8-dish-rail span{min-height:50px!important;padding:9px 11px!important}
  .scene8-dish-rail b{font-size:14px!important;line-height:1.3!important}
  .scene8-dish-rail small{font-size:13.5px!important;line-height:1.38!important}
  .scene8-table-hotspot{min-width:116px!important;min-height:50px!important}
  .scene8-table-hotspot b{font-size:13.5px!important}
  .scene8-table-hotspot span{font-size:12.5px!important}

  .scene-content .phone-message{font-size:14.5px!important;line-height:1.48!important}
  .scene-content .phone-message--papa{font-size:14.5px!important}
  .scene-content .phone-memory-link{min-height:44px!important;font-size:14px!important}

  .scene12-souvenir-shell>header p{font-size:14.5px!important;line-height:1.45!important}
  .scene12-souvenir-grid article>small{font-size:14px!important;line-height:1.45!important}
  .scene12-souvenir-shell>footer p{font-size:14.5px!important;line-height:1.45!important}
  .scene12-transformation article p{font-size:14px!important;line-height:1.48!important}

  .passport-page dt,.immersion-id-card dt,.traveler-card__grid dt{font-size:11.5px!important;line-height:1.35!important}
  .passport-page dd,.immersion-id-card dd,.traveler-card__grid dd{font-size:13.5px!important;line-height:1.42!important}
  .passport-page>p,.immersion-id-card__head span,.passport-cover small,.passport-page--visa>small{font-size:11.5px!important;line-height:1.4!important}
}
@media(max-width:390px){
  .scene8-dish-rail b{font-size:13.5px!important}
  .scene8-dish-rail small{font-size:13px!important}
  .scene-content .phone-message,.scene-content .phone-message--papa{font-size:14px!important}
  .passport-page dd,.immersion-id-card dd,.traveler-card__grid dd{font-size:13px!important}
}

/* Canonical transformation proof — concrete before/after evidence, not a score. */
.scene12-transformation-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.scene12-transformation-proof article{display:grid;gap:7px;padding:13px 14px;background:rgba(8,7,7,.42);border:1px solid rgba(232,176,146,.2);border-radius:14px}
.scene12-transformation-proof article>small{font-size:10px;letter-spacing:.14em;color:#e8b092}
.scene12-transformation-proof p{margin:0;font-size:14px;line-height:1.48;color:rgba(255,255,255,.88)}
.scene12-transformation-proof b{font-size:10px;letter-spacing:.08em;color:#fff}
@media(max-width:820px){
  .scene12-transformation-proof{grid-template-columns:1fr;gap:9px}
  .scene12-transformation-proof article{padding:13px 14px}
  .scene12-transformation-proof p{font-size:15.5px;line-height:1.55}
}

/* === CANONICAL PRESENCE ENGINE · 2026-09-16 === */
.presence-layer{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;mix-blend-mode:normal}
.presence-layer>i{position:absolute;display:block;pointer-events:none}
.scene[data-presence="shop"] .scene__picture,
.scene[data-presence="street"] .scene__picture,
.scene[data-presence="home"] .scene__picture,
.scene[data-presence="dinner"] .scene__picture{
  animation:han-presence-camera var(--presence-duration,22s) ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes han-presence-camera{
  from{transform:translate3d(var(--presence-x-a,0),var(--presence-y-a,0),0) scale(1.003)}
  to{transform:translate3d(var(--presence-x-b,.2%),var(--presence-y-b,-.12%),0) scale(1.012)}
}
.scene[data-presence="transit"] .scene__picture{
  animation:han-presence-camera var(--presence-duration,20s) ease-in-out infinite alternate,han-transit-body 2.8s ease-in-out infinite alternate;
}
@keyframes han-transit-body{from{margin-top:-1px}to{margin-top:1px}}
.presence-light{inset:-12%;opacity:.16;background:radial-gradient(circle at 72% 20%,rgba(255,225,184,.24),transparent 24%),radial-gradient(circle at 18% 66%,rgba(255,255,255,.08),transparent 22%);filter:blur(28px);animation:han-room-light 9s ease-in-out infinite alternate}
@keyframes han-room-light{from{transform:translate3d(-.7%,.2%,0);opacity:.10}to{transform:translate3d(.9%,-.4%,0) scale(1.025);opacity:.20}}
.presence-home-warmth{inset:0;background:radial-gradient(ellipse at 50% 74%,rgba(255,174,106,.055),transparent 43%);animation:han-home-warmth 7.5s ease-in-out infinite alternate}
@keyframes han-home-warmth{from{opacity:.35}to{opacity:.78}}
.presence-street-glow{width:42vw;height:170%;top:-34%;left:-55%;transform:rotate(10deg);background:linear-gradient(90deg,transparent,rgba(255,239,210,.08),transparent);filter:blur(14px);animation:han-street-pass 17s linear infinite}
@keyframes han-street-pass{0%,20%{transform:translateX(-18vw) rotate(10deg);opacity:0}35%{opacity:.48}65%{opacity:.25}82%,100%{transform:translateX(185vw) rotate(10deg);opacity:0}}
.presence-steam{bottom:14%;width:24px;height:94px;border-radius:50%;opacity:0;background:radial-gradient(ellipse at center,rgba(255,255,255,.22),rgba(255,255,255,.03) 52%,transparent 72%);filter:blur(7px);transform-origin:50% 100%;animation:han-steam 5.8s ease-in-out infinite}
.presence-steam--1{left:45%;animation-delay:-1.8s}.presence-steam--2{left:51%;height:76px;animation-delay:-3.5s}.presence-steam--3{left:57%;height:88px;animation-delay:-.7s}
@keyframes han-steam{0%{opacity:0;transform:translate3d(0,18px,0) scale(.72)}20%{opacity:.17}65%{opacity:.10;transform:translate3d(8px,-30px,0) scale(1.05)}100%{opacity:0;transform:translate3d(-5px,-58px,0) scale(1.22)}}
.presence-transit-line{top:-10%;bottom:-10%;width:14vw;min-width:72px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);filter:blur(7px);transform:skewX(-9deg);animation:han-window-pass 6.2s linear infinite}
.presence-transit-line--1{left:-24%;animation-delay:-1.3s}.presence-transit-line--2{left:-42%;opacity:.55;animation-delay:-4.2s}
@keyframes han-window-pass{from{transform:translateX(0) skewX(-9deg)}to{transform:translateX(155vw) skewX(-9deg)}}

/* Spoken dialogue should feel like a live exchange, not a static transcript. */
.scene.is-voice-sequencing .is-voice-waiting{opacity:.56;transform:translateY(2px);filter:saturate(.82);transition:opacity .28s ease,transform .28s ease,filter .28s ease}
.scene.is-voice-sequencing .is-voice-complete{opacity:.88;transition:opacity .28s ease}
.scene .is-speaking{opacity:1!important;transform:none!important;filter:none!important}
.scene [data-voice-gated="true"]{opacity:.72;filter:saturate(.78);cursor:wait;transition:opacity .2s ease,filter .2s ease}

/* Runtime overlap recovery: if a real phone reports text/CTA collision, move the action into document flow. */
@media(max-width:820px){
  .scene-stage--flow-safe.layout-overlap-recovered{overflow:auto!important;overscroll-behavior:contain!important}
  .scene-stage--flow-safe.layout-overlap-recovered > :is(button[data-scene-action],form,[class*="-replies"],[class*="-actions"],[class*="-dock"]):not(.scene6-tap-layer):not(.scene7-tap-layer):not(.scene8-tap-layer):not(.scene9-tap):not(.scene10-tap):not(.scene11-tap):not(.scene12-tap):not(.scene-hotspot):not([class*="hotspot"]){
    position:relative!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;width:100%!important;max-width:none!important;margin:8px 0 0!important;z-index:18!important;
  }
  .scene-stage--flow-safe.layout-overlap-recovered--settled{padding-bottom:max(16px,env(safe-area-inset-bottom))!important}
  .presence-steam{bottom:19%;filter:blur(6px)}
  .scene[data-presence="transit"] .scene__picture{animation-duration:22s,3.1s}
}

/* Last-line readability floor for paid mobile release. */
@media(max-width:820px){
  .scene-content :is(.scene5-human-cue,.scene5-context-note,.scene6-action-echo,.scene7-nonverbal,.scene8-explore-label,.scene8-next,.scene9-gesture-note,.scene10-context-note,.scene11-quiet-payoff,.scene12-context-note,.scene12-walk-note,.mae-aside){font-size:15px!important;line-height:1.46!important}
  .scene-content :is(.story-speaker,.scene6-caption>small,.scene7-caption>small,.scene8-caption>small,.scene9-caption>small,.scene10-caption>small,.scene11-caption>small,.scene12-caption>small){font-size:11px!important;line-height:1.25!important}
  .scene-content :is(.romanization,.translation,.scene-lang-help,.scene-lang-disclosure,.language-help-disclosure summary){font-size:13.5px!important;line-height:1.42!important}
  .scene-content .choice-language-row small{font-size:13.5px!important;line-height:1.4!important}
  .scene-content :is(.scene6-tap-cue,.scene7-tap-cue,.scene8-tap-cue,.scene9-tap span,.scene10-tap span,.scene11-tap span,.scene12-tap span){font-size:12.5px!important;line-height:1.3!important;min-height:40px;display:flex!important;align-items:center;justify-content:center;padding:8px 12px!important}
}

@media(prefers-reduced-motion:reduce){
  .scene[data-presence] .scene__picture,.presence-light,.presence-home-warmth,.presence-street-glow,.presence-steam,.presence-transit-line{animation:none!important}
  .scene.is-voice-sequencing .is-voice-waiting{transform:none}
}

/* Final mobile legibility hard floor for interactive/transformational content. */
@media(max-width:820px){
  .scene-content button[data-scene-action]:not(.audio-chip):not(.mic-chip):not(.scene-hotspot):not([class*="hotspot"]){min-height:44px}
  .scene-content .scene8-table-hotspot b{font-size:12px!important;line-height:1.2!important}
  .scene-content .scene8-table-hotspot span{font-size:11.5px!important;line-height:1.2!important}
  .scene-content .scene12-transformation-proof article>small{font-size:12px!important;line-height:1.3!important}
  .scene-content .scene12-transformation-proof b{font-size:13px!important;line-height:1.35!important}
  .scene-content .scene-language-replies button small{font-size:12px!important;line-height:1.35!important}
}

/* Premium responsive refinements */
.brand__logo{width:74px;height:74px}
.sound-button{width:50px;height:50px}
.scene-hud__actions{gap:6px}
.hud-lang,.hud-sound,.hud-menu,.hud-replay{width:36px;height:36px}
.story-panel{max-width:900px;padding:20px 22px 19px;border-color:rgba(255,255,255,.10);background:linear-gradient(135deg,rgba(12,13,12,.58),rgba(12,13,12,.34));box-shadow:0 18px 48px rgba(0,0,0,.22)}
.story-text{line-height:1.52}
.story-text p:last-child{margin-bottom:0}
.scene-lang-line{gap:6px 10px;margin:10px 0;padding:12px 14px;border:1px solid rgba(255,255,255,.09);border-radius:14px;background:rgba(11,11,11,.26)}
.scene-lang-help{margin-top:1px;color:rgba(255,255,255,.66)}
.scene-lang-icon{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.06)}
.language-block{background:rgba(8,9,8,.26)}
.scene-lang-line.is-speaking,.language-block.is-speaking,.scene7-voice-line.is-speaking{outline:none!important;border-color:rgba(241,190,156,.45)!important;background:linear-gradient(90deg,rgba(238,178,145,.17),rgba(17,17,17,.22) 68%)!important;box-shadow:0 0 0 1px rgba(241,190,156,.18),0 0 22px rgba(221,153,120,.18)}
.scene-lang-line.is-speaking>strong,.language-block.is-speaking .korean-follow,.choice-language-row.is-speaking .korean-follow{letter-spacing:.01em}
.scene12-stage:has(>.scene12-replies),.scene11-stage:has(>.scene11-replies),.scene10-stage:has(>.scene10-replies),.scene9-stage:has(>.scene9-replies){display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:10px;overflow-y:auto;overscroll-behavior:contain}
.scene12-stage:has(>.scene12-replies)>.scene12-caption,.scene11-stage:has(>.scene11-replies)>.scene11-caption,.scene10-stage:has(>.scene10-replies)>.scene10-caption,.scene9-stage:has(>.scene9-replies)>.scene9-caption{position:relative;left:auto;right:auto;bottom:auto;transform:none;width:min(620px,100%);max-height:none;overflow:visible;margin:0 auto}
.scene12-stage:has(>.scene12-replies)>.scene12-replies,.scene11-stage:has(>.scene11-replies)>.scene11-replies,.scene10-stage:has(>.scene10-replies)>.scene10-replies,.scene9-stage:has(>.scene9-replies)>.scene9-replies{position:relative;left:auto;right:auto;bottom:auto;transform:none;width:min(620px,100%);max-height:none;overflow:visible;margin:0 auto}
.scene12-replies,.scene11-replies,.scene10-replies,.scene9-replies{background:rgba(10,9,8,.50);border-color:rgba(255,255,255,.08)}
.scene12-caption,.scene11-caption,.scene10-caption,.scene9-caption{border-color:rgba(255,255,255,.08);background:linear-gradient(135deg,rgba(9,8,7,.48),rgba(9,8,7,.18))}
.traveler-card__stamp{opacity:.34;transform:rotate(-10deg) scale(1.02)}
@media(max-width:820px){
  .brand__logo{width:60px;height:60px}
  .sound-button{width:44px;height:44px}
  .story-panel{padding:16px 16px 15px}
}

/* === HAN LIFE / DEVICE CONSOLIDATION · 2026-09-18 === */
.scene[data-device-experience="desktop"] .scene__picture{transform-origin:50% 50%}
.scene[data-device-experience="tablet"] .scene__picture{transform-origin:50% 54%}
.scene[data-device-experience="phone"] .scene__picture{transform-origin:50% 58%}
.scene[data-device-experience="desktop"][data-presence="dinner"] .scene__picture,
.scene[data-device-experience="desktop"][data-presence="home"] .scene__picture{filter:saturate(1.015) contrast(1.008)}
.scene[data-device-experience="phone"][data-presence="dinner"] .scene__picture,
.scene[data-device-experience="phone"][data-presence="home"] .scene__picture{animation-duration:31s;filter:saturate(1.01)}
.scene[data-device-experience="tablet"][data-presence="dinner"] .scene__picture,
.scene[data-device-experience="tablet"][data-presence="home"] .scene__picture{animation-duration:26s}

.presence-house-pass{inset:-12%;opacity:0;background:linear-gradient(98deg,transparent 32%,rgba(50,28,18,.11) 46%,rgba(255,229,191,.035) 55%,transparent 69%);filter:blur(16px);transform:translateX(-28%)}
.presence-table-shift{left:18%;right:8%;bottom:5%;height:35%;opacity:.08;background:radial-gradient(ellipse at 52% 78%,rgba(255,235,204,.22),transparent 62%);filter:blur(18px);transform:translate3d(0,0,0)}
.presence-layer.life-room .presence-home-warmth{animation:han-life-room 1.45s ease-in-out both}
.presence-layer.life-table .presence-table-shift{animation:han-life-table 1.3s ease-in-out both}
.presence-layer.life-cross .presence-house-pass{animation:han-life-cross 1.45s ease-in-out both}
@keyframes han-life-room{0%,100%{opacity:.32;transform:scale(1)}45%{opacity:.82;transform:scale(1.025)}}
@keyframes han-life-table{0%,100%{opacity:.05;transform:translateY(0)}45%{opacity:.2;transform:translateY(-5px) scale(1.025)}}
@keyframes han-life-cross{0%{opacity:0;transform:translateX(-34%)}18%{opacity:.34}72%{opacity:.12}100%{opacity:0;transform:translateX(34%)}}

.scene12-stage--message .scene12-photo-message{position:absolute;left:50%;top:50%;z-index:18;width:min(420px,calc(100% - 36px));transform:translate(-50%,-50%);display:grid;gap:7px;padding:18px 19px;border:1px solid rgba(255,255,255,.2);border-radius:22px;background:rgba(22,25,24,.82);color:#fff;text-align:left;box-shadow:0 24px 70px rgba(0,0,0,.42);backdrop-filter:blur(18px);cursor:pointer;animation:han-papa-message-in .52s cubic-bezier(.2,.8,.2,1) both}
.scene12-photo-message__app{font-size:10px;font-weight:800;letter-spacing:.12em;color:rgba(255,244,224,.7)}
.scene12-photo-message strong{font:500 20px/1.18 Georgia,serif}
.scene12-photo-message small{font-size:10px;color:rgba(255,255,255,.58)}
.scene12-papa-thread{position:absolute;z-index:18;right:clamp(18px,5vw,72px);top:50%;width:min(350px,40vw);transform:translateY(-50%);padding:14px;border:1px solid rgba(255,255,255,.17);border-radius:24px;background:rgba(23,25,24,.83);color:#fff;box-shadow:0 24px 70px rgba(0,0,0,.4);backdrop-filter:blur(18px);animation:han-papa-thread-in .5s ease both}
.scene12-papa-thread header{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;font-size:10px;letter-spacing:.12em;color:rgba(255,244,224,.72)}
.scene12-papa-thread img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px}
.scene12-papa-thread p{margin:11px 4px 3px;font-size:14px;line-height:1.45;color:rgba(255,255,255,.9)}
@keyframes han-papa-message-in{from{opacity:0;transform:translate(-50%,calc(-50% + 18px)) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes han-papa-thread-in{from{opacity:0;transform:translate(12px,-50%) scale(.98)}to{opacity:1;transform:translate(0,-50%) scale(1)}}

@media(max-width:820px){
  .scene12-stage--message .scene12-photo-message{top:auto;bottom:max(86px,calc(env(safe-area-inset-bottom) + 70px));transform:translateX(-50%);width:calc(100% - 24px)}
  .scene12-papa-thread{left:12px;right:12px;top:auto;bottom:max(94px,calc(env(safe-area-inset-bottom) + 78px));width:auto;transform:none;padding:12px}
  .scene12-papa-thread img{max-height:34svh;object-position:center}
  @keyframes han-papa-message-in{from{opacity:0;transform:translate(-50%,14px) scale(.98)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
  @keyframes han-papa-thread-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
}
@media(max-width:390px){.scene12-papa-thread p{font-size:13px}.scene12-photo-message strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){.presence-layer.life-room .presence-home-warmth,.presence-layer.life-table .presence-table-shift,.presence-layer.life-cross .presence-house-pass,.scene12-photo-message,.scene12-papa-thread{animation:none!important}}

/* HAN experience refinements · 2026-09-18
   One stylesheet, no extra override file. New mechanics only. */
.scene10-life-choices{
  position:absolute;
  z-index:18;
  left:50%;
  bottom:clamp(28px,5vh,64px);
  width:min(980px,calc(100% - 48px));
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.scene10-life-choices button{
  min-height:116px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
  gap:7px;
  padding:18px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:20px;
  background:linear-gradient(145deg,rgba(15,14,13,.78),rgba(15,14,13,.46));
  color:#fff;
  text-align:left;
  box-shadow:0 18px 44px rgba(0,0,0,.24);
  backdrop-filter:blur(13px);
}
.scene10-life-choices button:hover,.scene10-life-choices button:focus-visible{
  border-color:rgba(239,188,153,.55);
  transform:translateY(-2px);
}
.scene10-life-choices strong{font:600 18px/1.2 Georgia,serif}
.scene10-life-choices span{font-size:13px;line-height:1.4;color:rgba(255,255,255,.72)}
.scene10-family-beat,.scene11-family-beat,.scene9-family-beat{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.09);
  color:rgba(255,255,255,.82);
}

.scene12-stage--favorite .scene12-trace-prompt{position:relative;inset:auto;left:auto;right:auto;bottom:auto;transform:none;width:min(520px,100%);margin:0 auto;padding:16px 18px;background:rgba(26,20,17,.88)}
.scene12-stage--favorite>.scene12-replies{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:min(520px,100%)!important;max-height:min(50dvh,390px);overflow-y:auto!important;margin:0 auto!important}
.scene12-trace-prompt,.scene12-trace-confirm{
  position:absolute;
  z-index:16;
  left:50%;
  bottom:clamp(92px,13vh,150px);
  width:min(620px,calc(100% - 44px));
  transform:translateX(-50%);
  padding:20px 22px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:22px;
  background:rgba(10,10,10,.7);
  color:#fff;
  box-shadow:0 20px 54px rgba(0,0,0,.28);
  backdrop-filter:blur(14px);
}
.scene12-trace-prompt small,.scene12-trace-confirm>span{font-size:10px;letter-spacing:.13em;color:rgba(239,188,153,.88)}
.scene12-trace-prompt strong,.scene12-trace-confirm strong{display:block;margin:7px 0;font:600 clamp(20px,2.2vw,28px)/1.18 Georgia,serif}
.scene12-trace-prompt p,.scene12-trace-confirm p{margin:0;font-size:14px;line-height:1.5;color:rgba(255,255,255,.74)}

.scene12-recipe-card--photo{
  width:min(980px,calc(100% - 42px));
  max-height:min(82vh,760px);
  overflow:auto;
  display:grid;
  grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);
  gap:22px;
  padding:20px;
}
.scene12-recipe-card--photo>figure{
  grid-row:1/4;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.scene12-recipe-card--photo>figure img{
  width:100%;
  height:100%;
  min-height:330px;
  object-fit:cover;
  border-radius:18px;
}
.scene12-recipe-card--photo>figure figcaption{font-size:11px;line-height:1.4;color:rgba(255,255,255,.58)}
.scene12-recipe-card--photo footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.scene12-recipe-card--photo footer span{font-size:12px;line-height:1.45;color:rgba(255,255,255,.66)}
.scene12-recipe-card--photo footer button{
  min-height:44px;
  padding:10px 14px;
  border:1px solid rgba(239,188,153,.4);
  border-radius:12px;
  background:rgba(239,188,153,.12);
  color:#fff;
}

.scene12-souvenir-shell--human>header{max-width:760px}
.scene12-souvenir-grid--human{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.scene12-souvenir-grid--human article{
  min-height:210px;
  display:flex;
  flex-direction:column;
  gap:8px;
  justify-content:flex-end;
}
.scene12-souvenir-grid--human article img{
  width:100%;
  max-height:250px;
  object-fit:cover;
  border-radius:14px;
}
.scene12-souvenir-language ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.scene12-souvenir-language li{display:grid;gap:2px;padding:8px 0;border-top:1px solid rgba(255,255,255,.08)}
.scene12-souvenir-language li strong{font-size:18px}
.scene12-souvenir-language li span{font-size:12px;color:rgba(255,255,255,.65)}
.scene12-human-ending{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.1);
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:18px;
}
.scene12-human-ending>p{max-width:600px;margin:0;font-size:14px;line-height:1.55;color:rgba(255,255,255,.72)}

@media(max-width:820px){
  .scene10-life-choices{
    left:12px;
    right:12px;
    bottom:max(18px,env(safe-area-inset-bottom));
    width:auto;
    transform:none;
    grid-template-columns:1fr;
    gap:8px;
  }
  .scene10-life-choices button{min-height:76px;padding:13px 14px}
  .scene10-life-choices strong{font-size:16px}
  .scene12-trace-prompt,.scene12-trace-confirm{bottom:max(76px,calc(env(safe-area-inset-bottom) + 64px));width:calc(100% - 24px);padding:16px}
  .scene12-recipe-card--photo{
    width:calc(100% - 20px);
    max-height:88svh;
    grid-template-columns:1fr;
    gap:14px;
    padding:14px;
  }
  .scene12-recipe-card--photo>figure{grid-row:auto}
  .scene12-recipe-card--photo>figure img{min-height:0;max-height:30svh;aspect-ratio:4/3}
  .scene12-recipe-card--photo footer{align-items:stretch;flex-direction:column}
  .scene12-souvenir-grid--human{grid-template-columns:1fr}
  .scene12-souvenir-grid--human article{min-height:0}
  .scene12-human-ending{align-items:stretch;flex-direction:column}
}

/* HAN lived-evening staging · 2026-09-18
   Uses the new post-dinner photography as the world, not as cards. */
.scene[data-mode="scene10-help"] .scene10-stage--life-choice,
.scene[data-mode="scene10-end"] .scene10-stage--after-table,
.scene[data-mode="scene11-opening"] .scene11-stage,
.scene[data-mode="scene11-meal"] .scene11-stage,
.scene[data-mode="scene11-jeonju"] .scene11-stage,
.scene[data-mode="scene11-end"] .scene11-stage{
  isolation:isolate;
}

.scene10-caption--life,.scene11-caption--life{
  width:min(470px,100%);
  padding:11px 13px;
  border-color:rgba(255,255,255,.055);
  border-radius:14px;
  background:linear-gradient(100deg,rgba(11,9,8,.46),rgba(11,9,8,.12));
  backdrop-filter:blur(7px);
  box-shadow:0 12px 34px rgba(0,0,0,.13);
}
.scene10-caption--life p,.scene11-caption--life p{margin-top:4px}
.scene11-room-cue{opacity:.64;font-style:italic}

.scene[data-mode="scene10-help"] .scene10-life-choices{
  width:min(850px,calc(100% - 56px));
  bottom:clamp(22px,4.5vh,48px);
  gap:9px;
}
.scene[data-mode="scene10-help"] .scene10-life-choices button{
  min-height:60px;
  justify-content:center;
  padding:13px 15px;
  border-radius:14px;
  border-color:rgba(255,255,255,.12);
  background:rgba(16,13,11,.34);
  box-shadow:0 10px 28px rgba(0,0,0,.15);
  backdrop-filter:blur(9px);
}
.scene[data-mode="scene10-help"] .scene10-life-choices button::before{
  content:'';
  width:22px;height:1px;margin-bottom:5px;
  background:rgba(240,196,163,.58);
}
.scene[data-mode="scene10-help"] .scene10-life-choices strong{font-size:15px;font-weight:500}

.scene[data-mode="scene11-opening"] .scene11-caption,
.scene[data-mode="scene11-meal"] .scene11-caption,
.scene[data-mode="scene11-jeonju"] .scene11-caption{
  max-width:520px;
}
.scene[data-mode="scene11-opening"] .scene11-stage--route-kitchen .scene11-caption{align-self:flex-end}
.scene[data-mode="scene11-opening"] .scene11-stage--route-room .scene11-caption{align-self:flex-start}

.scene[data-mode="scene10-help"] .scene__image,
.scene[data-mode="scene10-end"] .scene__image{object-position:center center}
.scene:has(.scene11-stage--route-kitchen) .scene__image{object-position:center 54%}
.scene:has(.scene11-stage--route-room) .scene__image{object-position:center 46%}
.scene[data-mode="scene11-meal"] .scene__image{object-position:center 52%}
.scene[data-mode="scene11-jeonju"] .scene__image{object-position:center 46%}
.scene[data-mode="scene11-end"] .scene__image,
.scene[data-mode="scene12-time"] .scene__image{object-position:center 46%}

/* Let conversation answers sit on the world instead of forming a second panel. */
.scene[data-mode="scene11-meal"] .scene11-replies,
.scene[data-mode="scene11-jeonju"] .scene11-replies{
  padding:7px;
  gap:5px;
  border-radius:15px;
  background:rgba(9,8,7,.32);
  backdrop-filter:blur(9px);
}
.scene[data-mode="scene11-meal"] .scene11-replies button,
.scene[data-mode="scene11-jeonju"] .scene11-replies button{
  min-height:42px;
  padding:9px 11px;
  border-radius:10px;
  background:rgba(255,255,255,.055);
  border-color:rgba(255,255,255,.085);
}

@media(max-width:820px){
  .scene10-caption--life,.scene11-caption--life{width:100%;padding:10px 11px;background:linear-gradient(100deg,rgba(11,9,8,.52),rgba(11,9,8,.17))}
  .scene[data-mode="scene10-help"] .scene10-life-choices{left:10px;right:10px;width:auto;bottom:max(10px,env(safe-area-inset-bottom));gap:6px}
  .scene[data-mode="scene10-help"] .scene10-life-choices button{min-height:48px;padding:10px 12px;border-radius:12px}
  .scene[data-mode="scene10-help"] .scene10-life-choices button::before{display:none}
  .scene[data-mode="scene10-help"] .scene10-life-choices strong{font-size:14px}
  .scene:has(.scene11-stage--route-kitchen) .scene__image{object-position:center 50%}
  .scene:has(.scene11-stage--route-room) .scene__image{object-position:center 43%}
  .scene[data-mode="scene11-meal"] .scene__image{object-position:center 48%}
  .scene[data-mode="scene11-jeonju"] .scene__image{object-position:center 43%}
  .scene[data-mode="scene11-end"] .scene__image,.scene[data-mode="scene12-time"] .scene__image{object-position:center 43%}
}

/* HAN lived-evening staging · S8→S12 · 2026-09-18 */
.scene8-stage--lived-table .scene8-caption,
.scene8-stage--quiet-look .scene8-caption,
.scene8-caption--life,
.scene9-caption--life{
  background:linear-gradient(180deg,rgba(18,15,12,.10),rgba(18,15,12,.30));
  border-color:rgba(255,255,255,.10);
  box-shadow:none;
  backdrop-filter:blur(5px);
}
.scene8-stage--quiet-look .scene8-observe-whisper{
  max-width:26rem;
  background:rgba(12,10,8,.26);
  border:0;
  box-shadow:none;
  font-weight:500;
}
/* S8 bibimbap: dialogue and choices occupy separate rows on both form factors. */
.scene8-stage--conversation{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  gap:10px;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding-bottom:max(18px,env(safe-area-inset-bottom));
}
.scene8-stage--conversation>.scene8-caption--question{
  margin:0!important;
  flex:0 0 auto;
  width:min(600px,100%);
  max-height:min(38svh,240px);
  overflow:auto;
}
.scene8-stage--conversation>.scene8-life-replies{
  position:relative;
  inset:auto;
  left:auto;
  right:auto;
  bottom:auto;
  transform:none;
  margin:0;
  flex:0 0 auto;
  width:min(600px,100%);
  max-width:100%;
  z-index:7;
}
.scene8-life-replies{
  position:absolute;
  left:clamp(18px,5vw,74px);
  bottom:clamp(22px,7vh,84px);
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  max-width:min(680px,86vw);
  z-index:7;
}
.scene8-life-replies button{
  appearance:none;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(15,12,10,.42);
  color:#fff;
  border-radius:999px;
  padding:11px 15px;
  font:inherit;
  font-size:.92rem;
  line-height:1.2;
  backdrop-filter:blur(8px);
  cursor:pointer;
}
.scene8-life-replies button:hover,
.scene8-life-replies button:focus-visible{
  background:rgba(15,12,10,.68);
  border-color:rgba(255,255,255,.54);
}
.scene8-room-cue{
  opacity:.82;
  margin-top:.55rem;
}
.scene8-stage--mix{
  cursor:default;
}
.scene8-mix-zone{
  --mix-rotation:-.55rad;
  position:absolute;
  left:50%;
  top:58%;
  width:clamp(185px,27vw,310px);
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border-radius:50%;
  touch-action:none;
  user-select:none;
  z-index:8;
  cursor:grab;
  outline:none;
}
.scene8-mix-zone::before{
  content:"";
  position:absolute;
  inset:13%;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  box-shadow:0 0 0 999px rgba(0,0,0,0);
  transition:border-color .2s ease,transform .2s ease;
}
.scene8-mix-zone.is-mixing{cursor:grabbing}
.scene8-mix-zone.is-mixing::before{border-color:rgba(255,255,255,.62);transform:scale(1.025)}
.scene8-mix-bowl{
  position:absolute;
  inset:20%;
  border-radius:50%;
  background:radial-gradient(circle at 44% 42%,rgba(251,235,183,.16),rgba(78,42,18,.16) 55%,rgba(28,18,11,.08) 70%,transparent 72%);
}
.scene8-mix-spoon{
  position:absolute;
  left:50%;
  top:50%;
  width:46%;
  height:9px;
  border-radius:999px;
  transform-origin:0 50%;
  transform:rotate(var(--mix-rotation));
  background:linear-gradient(90deg,rgba(255,255,255,.88),rgba(205,205,205,.62));
  box-shadow:0 2px 7px rgba(0,0,0,.3);
  pointer-events:none;
}
.scene8-mix-spoon::after{
  content:"";
  position:absolute;
  right:-8px;
  top:50%;
  width:22px;
  height:14px;
  transform:translateY(-50%);
  border-radius:55%;
  background:rgba(226,226,226,.9);
}
.scene8-mix-zone>span{
  position:absolute;
  left:50%;
  bottom:-34px;
  transform:translateX(-50%);
  white-space:nowrap;
  color:#fff;
  font-size:.82rem;
  letter-spacing:.01em;
  text-shadow:0 1px 8px rgba(0,0,0,.7);
  opacity:.9;
}
.scene8-mix-zone.is-complete{animation:hanMixDone .18s ease both}
@keyframes hanMixDone{to{transform:translate(-50%,-50%) scale(.98);opacity:.65}}
.scene8-bite-hotspot{
  position:absolute;
  left:50%;
  top:61%;
  width:clamp(130px,18vw,220px);
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  background:rgba(10,8,6,.04);
  color:#fff;
  cursor:pointer;
  z-index:7;
}
.scene8-bite-hotspot span{
  position:absolute;
  left:50%;
  bottom:-28px;
  transform:translateX(-50%);
  padding:6px 10px;
  border-radius:999px;
  background:rgba(12,10,8,.38);
  backdrop-filter:blur(6px);
  font-size:.82rem;
}
.scene8-bite-hotspot:hover,
.scene8-bite-hotspot:focus-visible{border-color:rgba(255,255,255,.58);background:rgba(255,255,255,.06)}
.scene8-next--quiet b{display:none}

/* After-dinner images supplied for HAN are the world; UI stays subordinate. */
.scene10-stage--help .scene10-life-choices,
.scene11-stage--meal .scene11-replies,
.scene11-stage--jeonju .scene11-replies{
  gap:7px;
}
.scene11-stage--meal .scene11-replies button,
.scene11-stage--jeonju .scene11-replies button{
  border-radius:999px;
  background:rgba(16,13,11,.40);
  border-color:rgba(255,255,255,.18);
  backdrop-filter:blur(7px);
}

@media (max-width:760px){
  .scene8-life-replies{
    left:14px;
    right:14px;
    bottom:calc(20px + env(safe-area-inset-bottom));
    max-width:none;
    display:grid;
    grid-template-columns:1fr;
  }
  .scene8-stage--conversation{gap:8px;padding:70px 10px max(12px,env(safe-area-inset-bottom))!important}
  .scene8-stage--conversation>.scene8-caption--question{max-height:min(31svh,220px);width:100%}
  .scene8-stage--conversation>.scene8-life-replies{width:100%;max-height:min(36svh,285px);overflow-y:auto;left:auto;right:auto;bottom:auto}
  .scene8-life-replies button{
    width:fit-content;
    max-width:92%;
    justify-self:start;
    text-align:left;
    padding:10px 13px;
    font-size:.88rem;
  }
  .scene8-mix-zone{
    top:63%;
    width:min(64vw,260px);
  }
  .scene8-mix-zone>span{
    white-space:normal;
    width:80vw;
    text-align:center;
  }
  .scene8-bite-hotspot{
    top:65%;
    width:min(44vw,190px);
  }
}
@media (min-width:761px) and (max-width:1180px){
  .scene8-mix-zone{width:min(30vw,290px);top:61%}
}
@media (prefers-reduced-motion:reduce){
  .scene8-mix-zone.is-complete{animation:none}
}
.sr-only-focusable{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sr-only-focusable:focus-visible{position:absolute;left:16px;bottom:16px;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal;padding:10px 14px;border-radius:999px;z-index:20;background:#16120e;color:#fff;border:1px solid rgba(255,255,255,.5)}

/* S10 dessert conversation: caption and responses share the same flow on desktop and mobile. */
.scene[data-mode="scene10-help"] .scene10-stage--life-choice{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-end!important;
  gap:10px!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  padding-bottom:max(18px,env(safe-area-inset-bottom))!important;
}
.scene[data-mode="scene10-help"] .scene10-stage--life-choice>.scene10-caption--life{
  position:relative!important;inset:auto!important;transform:none!important;
  margin:0!important;order:1!important;flex:0 0 auto!important;
  width:min(560px,100%)!important;max-height:min(32svh,220px)!important;overflow:auto!important;
}
.scene[data-mode="scene10-help"] .scene10-stage--life-choice>.scene10-life-choices{
  position:relative!important;inset:auto!important;transform:none!important;
  margin:0!important;order:2!important;flex:0 0 auto!important;
  width:min(850px,100%)!important;max-height:min(45svh,340px)!important;overflow-y:auto!important;
}

/* HAN MOBILE FLOW · S10 caption and choices are independent rows. */
@media (max-width:820px){
  .scene[data-mode="scene10-help"] .scene10-stage--life-choice{
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-end!important;
    align-items:stretch!important;
    gap:8px!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    padding:72px 10px max(10px,env(safe-area-inset-bottom))!important;
  }
  .scene[data-mode="scene10-help"] .scene10-stage--life-choice>.scene10-caption--life{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    order:1!important;
    width:100%!important;
    margin:0!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .scene[data-mode="scene10-help"] .scene10-stage--life-choice>.scene10-life-choices{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    order:2!important;
    width:100%!important;
    margin:0!important;
  }
}

/* LOT13 — removed legacy full-screen scene tap. Narrative beats keep the visible bottom Continue control defined above. */

/* Generic scene-wide progression keeps only a small cue; contextual actions keep their label. */
.scene6-tap-layer.is-generic .scene6-tap-cue,
.scene7-tap-layer.is-generic .scene7-tap-cue,
.scene8-tap-layer.is-generic .scene8-tap-cue,
.scene9-tap.is-generic>span,
.scene10-tap.is-generic>span,
.scene11-tap.is-generic>span,
.scene12-tap.is-generic>span{
  width:auto!important;height:auto!important;min-width:112px!important;min-height:42px!important;
  padding:9px 14px!important;font-size:12px!important;line-height:1.2!important;border-radius:999px!important;
  display:inline-flex!important;align-items:center;justify-content:center!important;gap:8px!important;
  background:rgba(17,13,10,.78)!important;border:1px solid rgba(255,255,255,.30)!important;
  color:#fff!important;white-space:nowrap!important;
}
.scene6-tap-layer.is-generic .scene6-tap-cue i,
.scene7-tap-layer.is-generic .scene7-tap-cue i,
.scene8-tap-layer.is-generic .scene8-tap-cue i,
.scene9-tap.is-generic i,
.scene10-tap.is-generic i,
.scene11-tap.is-generic i,
.scene12-tap.is-generic i{margin:0!important}

.scene7-spoken--gift-reaction{font-style:italic}

/* Mobile: continuation has its own visible row, never an invisible full-screen hitbox. */
@media(max-width:820px){
  .scene-stage--continue-flow>.scene-breath{
    position:relative!important;
    inset:auto!important;
    left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
    width:fit-content!important;height:44px!important;
    min-width:118px!important;min-height:44px!important;
    margin:4px auto 0!important;padding:0!important;
    order:99!important;align-self:center!important;flex:0 0 auto!important;
    z-index:20!important;
    pointer-events:auto!important;
  }
  .scene-stage--continue-flow>.scene-breath b{
    position:static!important;
    transform:none!important;
    min-height:44px!important;
    bottom:auto!important;left:auto!important;
  }
}

/* QA8 — S11: physical actions replace generic Continue beats */
.scene11-gesture{position:absolute;z-index:18;right:22px;bottom:max(22px,env(safe-area-inset-bottom));pointer-events:auto;display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 15px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(15,13,10,.78);backdrop-filter:blur(12px);color:#fff;box-shadow:0 12px 34px rgba(0,0,0,.28);font:650 13px/1.15 system-ui,sans-serif;cursor:pointer}
.scene11-gesture i{width:21px;height:21px;border-radius:50%;border:1px solid rgba(255,255,255,.35);position:relative;flex:0 0 auto}
.scene11-gesture i:after{content:"";position:absolute;inset:5px;border-radius:50%;background:rgba(255,255,255,.72);animation:hanGesturePulse 1.8s ease-in-out infinite}
.scene11-gesture--plate i:before,.scene11-gesture--tray i:before{content:"";position:absolute;left:3px;right:3px;bottom:4px;height:4px;border:1px solid rgba(255,255,255,.72);border-radius:50%}
.scene11-gesture--phone i{border-radius:5px;width:15px;height:23px}
.scene11-gesture--towel i{border-radius:2px;transform:rotate(-8deg)}
@keyframes hanGesturePulse{0%,100%{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}
@media(max-width:820px){.scene11-gesture{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);min-height:43px;padding:9px 13px;font-size:12px}.scene11-stage--immersive:has(>.scene11-gesture){padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}}

/* QA9 — core-pass polish: subtle life, tactile S11, quieter final souvenirs. */
@keyframes han-core-drift-left{0%{transform:scale(1.018) translate3d(0,0,0)}100%{transform:scale(1.035) translate3d(-.45%,.18%,0)}}
@keyframes han-core-drift-right{0%{transform:scale(1.018) translate3d(0,0,0)}100%{transform:scale(1.035) translate3d(.45%,-.12%,0)}}
.scene[data-mode="scene6-seoyeon"] .scene__image,
.scene[data-mode="scene7-sibling"] .scene__image,
.scene[data-mode="scene8-welcome"] .scene__image,
.scene[data-mode="scene9-opening"] .scene__image,
.scene[data-mode="scene10-taste"] .scene__image,
.scene[data-mode="scene11-jeonju"] .scene__image{animation:han-core-drift-left 11s ease-out both;transform-origin:52% 44%}
.scene[data-mode="scene6-papa"] .scene__image,
.scene[data-mode="scene7-conversation"] .scene__image,
.scene[data-mode="scene8-table"] .scene__image,
.scene[data-mode="scene9-reason"] .scene__image,
.scene[data-mode="scene10-help"] .scene__image,
.scene[data-mode="scene11-end"] .scene__image{animation:han-core-drift-right 12s ease-out both;transform-origin:48% 46%}

.scene11-stage.is-acting .scene11-caption{transform:translateY(-2px);opacity:.72;transition:transform .32s ease,opacity .32s ease}
.scene11-stage.is-acting .scene11-gesture{transform:scale(.94) translateY(4px);opacity:.42;transition:transform .28s ease,opacity .28s ease}
.scene11-stage.is-acting.scene11-stage--route-kitchen~*{} /* keep selector harmless for older engines */
.scene:has(.scene11-stage.is-acting) .scene__image{transform:scale(1.025) translateY(-.3%);transition:transform .38s ease}
.scene11-gesture--phone.is-acting,.scene11-stage.is-acting .scene11-gesture--phone{transform:scale(.96)}

/* The final screen reads as a memory, not four equal reward cards. */
.scene12-souvenir-grid--human{grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);align-items:start}
.scene12-souvenir-grid--human .scene12-souvenir-photo{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(220px,.75fr);grid-template-rows:auto 1fr;column-gap:18px;align-items:end}
.scene12-souvenir-grid--human .scene12-souvenir-photo>span{grid-column:1/-1}
.scene12-souvenir-grid--human .scene12-souvenir-photo img{grid-column:1;grid-row:2;aspect-ratio:16/9;min-height:230px}
.scene12-souvenir-grid--human .scene12-souvenir-photo strong{grid-column:2;grid-row:2;align-self:end;padding:0 4px 8px;font:500 clamp(18px,2vw,27px)/1.3 Georgia,serif}
.scene12-souvenir-language{background:rgba(255,255,255,.025)!important}
.scene12-download-section{margin-top:18px}

@media(max-width:820px){
  .scene12-souvenir-grid--human{grid-template-columns:1fr}
  .scene12-souvenir-grid--human .scene12-souvenir-photo{display:block;grid-column:auto}
  .scene12-souvenir-grid--human .scene12-souvenir-photo img{min-height:0;aspect-ratio:4/3}
  .scene12-souvenir-grid--human .scene12-souvenir-photo strong{display:block;padding:10px 0 0;font-size:17px}
}
@media(prefers-reduced-motion:reduce){
  .scene[data-mode^="scene6-"] .scene__image,.scene[data-mode^="scene7-"] .scene__image,.scene[data-mode^="scene8-"] .scene__image,.scene[data-mode^="scene9-"] .scene__image,.scene[data-mode^="scene10-"] .scene__image,.scene[data-mode^="scene11-"] .scene__image{animation:none!important;transform:none!important}
  .scene11-stage.is-acting .scene11-caption,.scene11-stage.is-acting .scene11-gesture{transition:none!important}
}


/* HAN QA10 · coherent SVG UI icon set */
.ui-svg{width:1em;height:1em;display:inline-block;vertical-align:-.14em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}
.sound-button__icon .ui-svg{width:19px;height:19px;vertical-align:0}
.mini-sound .ui-svg,.hud-sound .ui-svg,.hud-replay .ui-svg{width:17px;height:17px;vertical-align:0}
.letter-close .ui-svg,.modal-close .ui-svg,.scene3-card-overlay__close .ui-svg,.city-route-overlay__close .ui-svg,.scene11-map-card header button .ui-svg,.experience-menu__panel header button .ui-svg{width:19px;height:19px;vertical-align:0}
.scene-panel-next i .ui-svg,.scene-flow-next i .ui-svg,.scene-breath span .ui-svg{width:14px;height:14px;vertical-align:0}
.profile-back{display:inline-flex;align-items:center;gap:7px}.profile-back .ui-svg{width:14px;height:14px;vertical-align:0}
.payment-success__check .ui-svg{width:18px;height:18px;vertical-align:0}
.itinerary-step>i .ui-svg{width:13px;height:13px;vertical-align:0}
.scene12-countdown b .ui-svg{width:1em;height:1em;vertical-align:0;stroke-width:1.35}

/* S11 participation and S12 memories: integrated into the active stylesheet. */
.scene11-stage--choice{flex-direction:column;align-items:center;justify-content:flex-end;gap:12px;overflow:auto;padding-bottom:max(15px,env(safe-area-inset-bottom))}
.scene11-stage--choice .scene11-caption{margin:0 auto;width:min(555px,100%);max-height:min(26svh,180px);overflow:auto}
.scene11-stage--choice .scene11-replies,.scene11-stage--choice .scene11-free{position:relative;inset:auto;left:auto;bottom:auto;transform:none;width:min(555px,100%);max-height:min(43svh,305px);overflow:auto;flex-shrink:0}
.scene11-free-back,.scene12-free-back{display:block;margin:9px 0 0;padding:7px 0;background:none;border:0;color:#edc9ad;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font:500 12px/1.4 system-ui,sans-serif}
.scene12-free{position:absolute;z-index:7;pointer-events:auto;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(500px,calc(100% - 24px));padding:15px;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:rgba(15,13,12,.91);backdrop-filter:blur(12px)}
.scene12-free label{display:block;margin-bottom:9px;color:#fff;font:500 14px/1.4 Georgia,serif}.scene12-free>div{display:flex;gap:6px;flex-wrap:wrap}.scene12-free input{flex:1 1 190px;min-width:0;padding:10px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:rgba(255,255,255,.06);color:#fff}.scene12-free>div button{flex:1 1 125px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#80674f;color:#fff;padding:10px;cursor:pointer;font:600 12px/1.3 system-ui,sans-serif}
.scene12-souvenir-recipe img{width:100%;max-height:120px;margin-top:8px;object-fit:cover;border-radius:9px}.scene12-souvenir-recipe button,.scene12-notebook-link{display:block;margin-top:10px;padding:9px 10px;border:1px solid rgba(255,255,255,.25);border-radius:12px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;font:650 11px/1.3 system-ui,sans-serif}
.scene12-souvenir-language ul{margin:9px 0;padding:0;list-style:none}.scene12-souvenir-language li{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.12)}.scene12-souvenir-language li strong{grid-column:1;font:550 13px/1.3 system-ui,sans-serif}.scene12-souvenir-language li>span{grid-column:1;color:rgba(255,255,255,.72);font:400 11px/1.35 Georgia,serif}.scene12-expression-play{grid-column:2;grid-row:1 / span 2;align-self:center;display:flex;align-items:center;gap:4px;min-width:58px;padding:7px;border:1px solid rgba(255,255,255,.23);border-radius:999px;background:rgba(255,255,255,.07);color:#fff;cursor:pointer;font:600 10px/1 system-ui,sans-serif}.scene12-expression-play .icon-speaker{display:inline-block;min-width:13px}
.scene12-souvenir-stamp img{width:min(165px,100%);height:96px;margin:7px auto;object-fit:contain}.scene12-recipe-source{margin-top:10px}.scene12-recipe-source a{color:#74503a;text-decoration:underline;text-underline-offset:3px}
@media(max-width:820px){.scene11-stage--choice{padding-top:68px;gap:9px}.scene11-stage--choice .scene11-caption{max-height:min(26svh,150px)}.scene11-stage--choice .scene11-replies,.scene11-stage--choice .scene11-free{max-height:min(40svh,270px)}.scene12-souvenir-grid article{min-height:0}.scene12-stage--souvenirs .scene12-souvenir-shell{margin:0 auto}}
@media(max-height:620px){.scene11-stage--choice .scene11-caption{max-height:22svh}.scene11-stage--choice .scene11-replies,.scene11-stage--choice .scene11-free{max-height:39svh}}

/* DOBOX HAN: language keepsake, within the existing notebook and final-memory engine. */
.han-keepsake{margin:22px 0;padding:24px;background:#f7efe2;border:1px solid #d9c8ae;border-radius:15px;color:#493a2e}.han-keepsake>header{display:flex;align-items:center;gap:14px;margin-bottom:18px}.han-keepsake>header img{width:53px;height:53px;object-fit:contain;flex:none}.han-keepsake>header small{font:700 9px/1.4 system-ui;letter-spacing:.13em;color:#9e6c4e}.han-keepsake h3{font:500 29px/1.1 Georgia,serif;margin:3px 0}.han-keepsake>header p{margin:0;font-size:12px;color:#806854}.han-phrase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.han-phrase-card{min-width:0;padding:15px;background:#fffaf1;border:1px solid #e4d7c3;border-radius:12px}.han-phrase-head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:8px}.han-phrase-head small{font:700 10px/1.4 system-ui;color:#896d54}.han-phrase-head button{display:flex;gap:5px;align-items:center;justify-content:center;padding:6px 8px;background:#efe4d1;border:1px solid #d7c4a9;border-radius:999px;color:#644d38;font:700 10px/1.2 system-ui;cursor:pointer}.han-phrase-card>strong{display:block;font:650 21px/1.4 system-ui;color:#46352b}.han-romanization{display:block;margin-top:2px;font:11px/1.5 system-ui;color:#977c64}.han-phrase-card p{margin:7px 0 0!important;font-size:13px;line-height:1.5}.han-phrase-card .han-nuance{font-size:12px;color:#806852}.han-keepsake-trace{border-top:1px solid #e3d5c0;margin:18px 0 0;padding-top:12px;font-size:12px;color:#806852}.han-keepsake-stamp img{display:block;width:135px;height:135px;object-fit:contain;margin:12px auto 0}.scene12-souvenir-language ul{max-height:240px;overflow:auto}@media(max-width:650px){.han-keepsake{padding:16px}.han-phrase-grid{grid-template-columns:1fr}.han-keepsake h3{font-size:25px}.han-keepsake>header img{width:43px;height:43px}.han-phrase-card{padding:13px}}

/* HAN final: post-immersion feedback is short by default; research remains optional. */
.dobox-feedback .han-feedback-more,.dobox-feedback .han-feedback-survey{border-bottom:1px solid rgba(255,255,255,.09);padding:14px 2px}
.dobox-feedback .han-feedback-more>summary,.dobox-feedback .han-feedback-survey>summary{cursor:pointer;color:#f6d5bf;font:650 13px/1.5 system-ui,sans-serif;list-style-position:inside;min-height:34px}
.dobox-feedback .han-feedback-more__inner,.dobox-feedback .han-feedback-survey__inner{padding:12px 0 7px;display:grid;gap:10px}
.dobox-feedback .han-feedback-more__inner>label{font:600 13px/1.4 system-ui,sans-serif;margin:4px 0 0}
.dobox-feedback .han-feedback-survey__inner>p{font:400 12px/1.55 system-ui,sans-serif;color:#d3c7bc;margin:0 0 10px}
.dobox-feedback .han-survey-question{min-width:0;border:0;border-top:1px solid rgba(255,255,255,.09);margin:0;padding:15px 0}
.dobox-feedback .han-survey-question>legend{font:650 13px/1.5 system-ui,sans-serif;color:#f9eee5;padding:0 2px}
.dobox-feedback .han-survey-options{display:grid;gap:7px;margin-top:9px}
.dobox-feedback .han-survey-options>label{display:flex;align-items:center;gap:10px;font:450 12px/1.45 system-ui,sans-serif;color:#ece0d5;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1);border-radius:11px;padding:10px;margin:0;cursor:pointer;min-height:44px}
.dobox-feedback .han-survey-options input{width:18px;height:18px;flex:none;accent-color:#e3aa87;padding:0;margin:0}
.dobox-feedback .han-feedback-privacy select{box-sizing:border-box;width:100%;background:#171513;color:#fff;border-radius:10px;border:1px solid rgba(255,255,255,.2);min-height:44px;padding:10px}
.dobox-feedback .han-feedback-privacy small{color:#c9bbb1;font:400 12px/1.5 system-ui,sans-serif}
.dobox-feedback .han-feedback-privacy [hidden]{display:none!important}
.dobox-feedback .han-feedback-account-note{color:#cbbcb1;font:400 11px/1.5 system-ui,sans-serif;margin:0;padding:0 2px 10px}
@media(max-width:620px){.dobox-feedback .han-feedback-more,.dobox-feedback .han-feedback-survey{padding:12px 0}.dobox-feedback .han-survey-question>legend{font-size:12px}}

/* HAN — Letter reading: one readable flow on desktop, no accidental backdrop close. */
.letter-layer{padding:clamp(14px,3vh,30px) 18px;overscroll-behavior:contain}
.letter-sheet{width:min(760px,calc(100vw - 36px));max-height:calc(100dvh - 36px);padding:clamp(24px,3vw,44px) clamp(22px,4vw,54px) 0;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain;transform:none}
.letter-body{column-count:1!important;column-gap:0!important;font:400 clamp(16px,1.3vw,18px)/1.65 Georgia,serif;max-width:66ch}
.letter-body p{break-inside:auto;margin:0 0 1em}
.letter-close{position:sticky;float:right;top:0;right:0;z-index:3;width:42px;height:42px;margin:-12px -14px 0 10px;background:rgba(247,236,221,.93);border:1px solid rgba(90,67,52,.2);border-radius:50%}
.letter-finish{position:sticky;bottom:0;z-index:3;display:flex;justify-content:flex-end;margin:25px -10px 0;padding:16px 8px 18px;background:linear-gradient(0deg,#f4e8d9 65%,rgba(244,232,217,.96) 82%,rgba(244,232,217,0))}
.letter-finish__button{min-height:45px;padding:11px 23px;border-radius:999px;border:1px solid #9b715a;background:#805441;color:#fffaf3;font:650 13px/1.2 system-ui,sans-serif;cursor:pointer}
.letter-finish__button:focus-visible,.letter-close:focus-visible{outline:3px solid #ad7152;outline-offset:3px}
@media(max-width:820px){.letter-layer{padding:max(12px,env(safe-area-inset-top)) 10px max(12px,env(safe-area-inset-bottom));align-items:center}.letter-sheet{width:100%;max-height:calc(100dvh - 28px);padding:24px 19px 0}.letter-close{margin:-8px -8px 0 10px}.letter-finish{margin:20px -8px 0;padding:14px 6px max(16px,env(safe-area-inset-bottom))}.letter-body{font-size:16px;line-height:1.57}}

/* S9 · one optional, human-length conversation turn; scoped to this beat. */
.scene9-stage--interests{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:12px;padding:74px 24px max(22px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;box-sizing:border-box}
.scene9-stage--interests>.scene9-caption{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:min(650px,100%);margin:0 auto!important;max-height:36dvh;overflow-y:auto;pointer-events:auto;padding:16px 19px!important}
.scene9-stage--interests .han-conversation-choices,.scene9-stage--interests .han-conversation-free{position:relative;z-index:3;align-self:center;width:min(650px,100%);max-height:min(36dvh,286px);overflow-y:auto;display:grid;gap:7px;pointer-events:auto;scrollbar-width:thin;border:1px solid rgba(251,220,186,.25);border-radius:12px;padding:7px;background:rgba(18,13,11,.60)}
.scene9-stage--interests .han-conversation-choices button,.scene9-stage--interests .han-conversation-free button{min-height:42px;padding:9px 14px;text-align:left;color:#fff;background:rgba(16,13,11,.79);border:1px solid rgba(255,255,255,.23);border-radius:10px;font:500 14px/1.4 system-ui,sans-serif;cursor:pointer}
.scene9-stage--interests .han-conversation-choices button:hover,.scene9-stage--interests .han-conversation-free button:hover{background:rgba(78,52,39,.91)}
.scene9-stage--interests .han-conversation-choices>.han-choice-scroll-cue{position:sticky;top:-7px;z-index:8;display:block;grid-column:1/-1;padding:7px 8px;background:#33251f;color:#f9d4af;border-radius:7px;font:650 10px/1.36 system-ui,sans-serif;letter-spacing:.012em}
.scene9-stage--interests .han-conversation-choices{scrollbar-width:thin;scrollbar-color:#d6ab86 #2c2019}
.scene9-stage--interests .han-conversation-choices::-webkit-scrollbar{width:7px}.scene9-stage--interests .han-conversation-choices::-webkit-scrollbar-thumb{background:#d6ab86;border-radius:9px}
.scene9-stage--interests .han-conversation-choices--age{grid-template-columns:repeat(2,minmax(0,1fr))}
.scene9-stage--interests .han-conversation-free{background:rgba(11,10,9,.80);border-radius:12px;padding:14px}
.scene9-stage--interests .han-conversation-free label{font-size:13px}.scene9-stage--interests .han-conversation-free>div{display:flex;gap:7px}.scene9-stage--interests .han-conversation-free input{min-width:0;flex:1;padding:10px;color:#fff;background:#221b18;border:1px solid #8d7365;border-radius:8px}
.scene9-stage--interests .han-conversation-muted{font-size:14px;opacity:.88;margin-top:10px}
.scene9-stage--interests .han-interest-echo{border-left:2px solid #d7a481;padding-left:12px;word-break:break-word}
.scene9-stage--interests .han-conversation-tip{margin-top:12px;border-top:1px solid rgba(255,255,255,.2);padding-top:9px;font:400 13px/1.5 system-ui,sans-serif;pointer-events:auto}
.scene9-stage--interests .han-conversation-tip summary{cursor:pointer;list-style:revert;color:#f2c1a1}.scene9-stage--interests .han-conversation-tip div{padding:8px 0 0}.scene9-stage--interests .han-conversation-tip span{font-weight:700;letter-spacing:.08em;font-size:11px}.scene9-stage--interests .han-conversation-tip p{margin:5px 0;color:#fff}
.scene9-stage--interests.scene9-stage--immersive .scene-flow-next{position:relative;align-self:center;margin:0 auto;pointer-events:auto}
@media(max-width:820px){.scene9-stage--interests{padding:64px 12px calc(16px + env(safe-area-inset-bottom));gap:8px}.scene9-stage--interests:not(.scene9-stage--immersive)>.scene9-caption{max-height:min(23dvh,168px);padding:10px 13px!important}.scene9-stage--interests:not(.scene9-stage--immersive)>.scene9-caption .scene9-family-beat{display:none}.scene9-stage--interests:not(.scene9-stage--immersive)>.scene9-caption .han-conversation-tip{margin-top:5px;padding-top:5px}.scene9-stage--interests .han-conversation-choices{max-height:min(31dvh,255px);grid-template-columns:1fr}.scene9-stage--interests .han-conversation-choices--age{grid-template-columns:1fr}.scene9-stage--interests .han-conversation-choices button{min-height:43px;padding:8px 12px;font-size:13px}.scene9-stage--interests .han-conversation-free{max-height:35dvh;padding:10px}.scene9-stage--interests .han-conversation-free>div{flex-wrap:wrap}.scene9-stage--interests .han-conversation-free input{width:100%;flex-basis:100%}}
/* This particular conversation uses the available desktop width, not a stretched mobile stack. */
@media (min-width:821px){
  .scene9-stage--interests:not(.scene9-stage--immersive){display:grid;grid-template-columns:minmax(280px,.87fr) minmax(420px,1.13fr);column-gap:clamp(20px,3.3vw,56px);align-content:end;align-items:end;justify-content:space-between;padding:76px clamp(24px,4vw,64px) 30px;overflow-y:auto}
  .scene9-stage--interests:not(.scene9-stage--immersive)>.scene9-caption{grid-column:1;width:100%;max-height:35dvh;margin:0!important;align-self:end}
  .scene9-stage--interests:not(.scene9-stage--immersive)>.han-conversation-choices,.scene9-stage--interests:not(.scene9-stage--immersive)>.han-conversation-free{grid-column:2;width:100%;max-height:35dvh;align-self:end;margin:0}
  .scene9-stage--interests:not(.scene9-stage--immersive)>.han-conversation-choices:not(.han-conversation-choices--age){grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .scene9-stage--interests:not(.scene9-stage--immersive)>.han-conversation-choices button{min-height:52px}
}
/* S5 welcome: visitors greet the host before offering the already chosen gift. */
.scene5-father-stage--known .scene5-dialogue-card{width:min(540px,100%);max-height:min(62dvh,480px);overflow-y:auto;pointer-events:auto}
.scene5-father-stage--known .scene5-greeting-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:18px}
.scene5-father-stage--known .scene5-greeting-actions button{background:rgba(52,33,25,.78);color:#fff;border:1px solid rgba(255,255,255,.28);border-radius:11px;min-height:48px;padding:10px 13px;font:500 14px/1.42 system-ui,sans-serif;cursor:pointer;text-align:left}
.scene5-father-stage--known .scene5-greeting-actions button:hover{background:rgba(111,76,59,.88)}
@media(max-width:820px){.scene5-father-stage--known .scene5-greeting-actions{grid-template-columns:1fr}.scene5-father-stage--known .scene5-dialogue-card{max-height:57dvh}.scene5-father-stage--known .scene5-greeting-actions button{min-height:42px;font-size:13px}}


/* HAN · desktop finish · one active stylesheet. These selectors are scoped to proven defects. */
@media (min-width:821px){
  /* Header keeps the picture in front, but labels and controls become legible in bright interiors. */
  .scene-hud{padding:clamp(18px,2.1vw,30px) clamp(28px,3.1vw,54px) 0;align-items:center;gap:18px}
  .scene-hud__actions{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid rgba(255,255,255,.17);border-radius:999px;background:rgba(16,13,11,.42);backdrop-filter:blur(14px);box-shadow:0 8px 30px rgba(0,0,0,.12)}
  .scene-hud__actions button{display:grid;place-items:center;width:38px!important;height:38px!important;min-width:38px!important;border-color:rgba(255,255,255,.18);background:rgba(23,20,18,.28);color:#fff}
  .scene-hud__actions button:hover,.scene-hud__actions button:focus-visible{outline:2px solid rgba(244,208,174,.67);outline-offset:2px;background:rgba(88,61,45,.62)}
  .dobox-ui-logo--scene{width:45px;height:45px}
  .scene-brand{padding:0;filter:drop-shadow(0 4px 12px rgba(0,0,0,.20))}
  /* Menu is a real desktop layout, not a larger mobile drawer. */
  .experience-menu__panel{width:min(940px,88vw);grid-template-columns:minmax(180px,220px) minmax(0,1fr)}
  .experience-menu__panel>header{padding:23px clamp(24px,3vw,42px)}
  .experience-menu__panel>nav{padding:25px 16px;gap:3px;overflow-y:auto}
  .experience-menu__panel>nav button{font-size:14px;line-height:1.42;min-height:43px;padding:11px 15px;border-radius:0 9px 9px 0}
  .experience-menu__body{padding:clamp(26px,3vw,46px) clamp(26px,3.2vw,48px) 54px}
  .menu-section-head h2{line-height:1.13;margin:12px 0 12px}
  .menu-section-head>span{font-size:12px;line-height:1.5}
  .menu-paper-copy{margin-top:26px;padding:25px 29px}
  /* S7 call: leave grand-mother and Ji-ho in view, keep a single reading/action stack. */
  .scene[data-mode="scene7-dinner"]:has(.scene7-stage--call-to-table) .scene__image{object-position:center 50%;transform:none!important;animation:none!important}
  .scene7-stage--call-to-table{display:flex!important;flex-direction:column!important;justify-content:flex-end!important;align-items:flex-start!important;gap:12px!important;padding:100px clamp(30px,4vw,64px) 34px!important;overflow:visible!important}
  .scene7-stage--call-to-table>.scene7-caption{order:1!important;align-self:flex-start!important;position:relative!important;margin:0!important;width:min(445px,36vw)!important;max-height:min(58dvh,570px)!important;overflow-y:auto!important;padding:19px 22px!important;border-radius:16px!important;background:linear-gradient(135deg,rgba(14,12,11,.82),rgba(12,11,10,.62))!important;backdrop-filter:blur(14px);box-shadow:0 15px 42px rgba(0,0,0,.22)}
  .scene7-stage--call-to-table>.scene7-caption>small{font:700 11px/1.3 system-ui,sans-serif;letter-spacing:.12em;margin:0 0 10px}
  .scene7-stage--call-to-table>.scene7-caption>.scene-lang-line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;min-height:0;padding:12px 14px;margin:0 0 11px;border-radius:11px}
  .scene7-stage--call-to-table .scene-lang-line>.korean-follow{grid-column:1;font-size:clamp(25px,2.35vw,34px)!important;line-height:1.2}
  .scene7-stage--call-to-table .scene-lang-line>.scene-lang-disclosure,.scene7-stage--call-to-table .scene-lang-line>.scene-lang-help,.scene7-stage--call-to-table .scene-lang-line>.scene-lang-translate{grid-column:1;grid-row:2;margin:0;line-height:1.45}
  .scene7-stage--call-to-table .scene-lang-line>.scene-lang-tools{grid-column:2;grid-row:1/3;align-self:center}
  .scene7-stage--call-to-table>.scene7-caption>p{font:400 clamp(15px,1.16vw,18px)/1.52 Georgia,serif;margin:10px 0 0;max-width:36ch}
  .scene7-stage--call-to-table>.scene7-stand-action{order:2!important;position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;margin:0!important;align-self:flex-start!important;min-height:47px;max-width:min(445px,36vw);padding:11px 19px;border:1px solid rgba(255,236,212,.34);background:rgba(35,23,18,.81);border-radius:11px;color:#fff;font:700 14px/1.3 system-ui,sans-serif;cursor:pointer}
  .scene7-stage--call-to-table>.scene7-stand-action:hover,.scene7-stage--call-to-table>.scene7-stand-action:focus-visible{background:rgba(112,73,49,.88);outline:2px solid rgba(244,208,174,.7);outline-offset:2px}
  /* Short narrative cards: readable rhythm and coherent bottom-left docking throughout S5–S12. */
  .scene-content :is(.scene5-inside-caption,.scene6-caption,.scene7-caption,.scene8-caption,.scene9-caption,.scene10-caption,.scene11-caption,.scene12-caption){line-height:1.5}
  .scene-content :is(.scene6-caption,.scene7-caption,.scene8-caption,.scene9-caption,.scene10-caption,.scene11-caption,.scene12-caption)>small{font-size:10px;line-height:1.3;margin-bottom:10px}
  .scene-content :is(.scene6-caption,.scene7-caption,.scene8-caption,.scene9-caption,.scene10-caption,.scene11-caption,.scene12-caption)>strong{line-height:1.17;letter-spacing:-.015em;margin-bottom:8px}
  .scene-content :is(.scene6-caption,.scene7-caption,.scene8-caption,.scene9-caption,.scene10-caption,.scene11-caption,.scene12-caption)>p{line-height:1.51;margin-top:10px}
  /* Existing scene-photo crops: keep heads away from the viewport edge, no global crop changes. */
  .scene[data-mode="scene7-dinner"]:has(.scene7-stage--handwash) .scene__image{object-position:50% 48%;animation:none!important}
}
/* S7 mobile: a compact card and an associated next action, never two detached overlays. */
@media(max-width:820px){
  .scene7-stage--call-to-table{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:8px;padding:70px 12px calc(14px + env(safe-area-inset-bottom));overflow:auto}
  .scene7-stage--call-to-table>.scene7-caption{order:1;position:relative!important;align-self:stretch!important;width:100%!important;max-height:49dvh!important;margin:0!important;padding:12px 15px!important;overflow-y:auto;background:rgba(15,11,10,.76)}
  .scene7-stage--call-to-table>.scene7-stand-action{order:2;position:relative!important;width:fit-content;align-self:center!important;margin:0!important;transform:none!important;min-height:44px;padding:10px 15px}
}
/* Bowl: use the actual bibimbap image, not a white line floating in front of Seo-yeon. */
.scene8-stage--mix .scene8-mix-zone--in-bowl{left:50%;top:73%;width:clamp(155px,19vw,250px);border-radius:50%;pointer-events:auto;touch-action:none;cursor:grab;outline:none;box-shadow:none;background:transparent}
.scene8-stage--mix .scene8-mix-zone--in-bowl::before{inset:43%;border:2px solid rgba(248,220,179,.8);box-shadow:0 0 0 8px rgba(242,190,134,.16),0 0 13px rgba(255,245,204,.4);background:rgba(28,16,8,.22)}
.scene8-stage--mix .scene8-mix-zone--in-bowl.is-mixing::before{inset:5%;border:2px dashed rgba(255,225,184,.84);box-shadow:0 0 0 4px rgba(242,190,134,.08);background:rgba(242,185,118,.07)}
.scene8-stage--mix .scene8-mix-zone--in-bowl>.scene8-mix-hint{position:absolute;left:50%;bottom:calc(100% + 12px);transform:translateX(-50%);padding:7px 12px;background:rgba(27,19,13,.79);border:1px solid rgba(255,235,199,.3);border-radius:20px;color:#fff;font:600 12px/1.3 system-ui,sans-serif;white-space:nowrap;text-shadow:none;opacity:1}
.scene8-stage--mix .scene8-mix-zone--in-bowl:focus-visible{outline:3px solid #f3b987;outline-offset:4px}
@media(min-width:821px){
  .scene8-stage--mix>.scene8-caption{align-self:flex-end;width:min(370px,29vw);padding:15px 18px;margin:auto auto 0 0;position:relative;top:auto;bottom:3%;background:rgba(18,13,10,.72)}
  .scene8-stage--mix{padding:95px clamp(25px,3.3vw,54px) 24px}
}
@media(max-width:820px){
  .scene8-stage--mix>.scene8-caption{align-self:flex-start;width:min(290px,77vw);padding:11px 13px;position:relative;margin:0 auto auto 0;top:0;max-height:19dvh;overflow:auto;background:rgba(14,10,8,.77)}
  .scene8-stage--mix .scene8-mix-zone--in-bowl{left:50%;top:77%;width:min(47vw,210px)}
  .scene8-stage--mix .scene8-mix-zone--in-bowl>.scene8-mix-hint{font-size:11px;white-space:normal;min-width:145px;text-align:center}
}

/* The physical gift is visible only at the handover, not persistently over the world. */
.scene5-gift-reveal-action{display:block;width:100%;margin-top:14px;padding:13px 17px;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:rgba(255,255,255,.12);color:#fff;text-align:left;font:650 14px/1.35 system-ui;cursor:pointer}
.scene5-gift-reveal-action:focus-visible{outline:3px solid #f2bf87;outline-offset:3px}

/* DOBOX HAN 2026-09-24 · Mobile production corrections in the single active stylesheet.
   Product thumbnails appear only for exact product matches. The body can scroll without
   hiding an answer, and the wardrobe uses a proper thumb-first vertical layout on phone. */
.gift-option{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:100px;padding:12px;overflow:hidden}
.gift-option .gift-product-preview,.gift-option .gift-product-icon{width:72px;height:72px;object-fit:contain;display:grid;place-items:center;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.11);border-radius:12px;flex:none;font-size:30px}
.gift-option .gift-product-preview{background:rgba(229,208,183,.11)}
.gift-option .gift-option-copy{display:block;min-width:0}
.gift-option .gift-option-copy strong{font:600 16px/1.32 Georgia,serif;overflow-wrap:break-word}
.gift-option .gift-option-copy small{font:400 12px/1.43 system-ui,sans-serif;margin-top:6px}
.gift-option b{white-space:nowrap;align-self:center;font-size:13px;font-variant-numeric:tabular-nums}
.gift-selected-chip--visual{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:2px 10px}
.gift-selected-chip--visual>.gift-product-preview,.gift-selected-chip--visual>.gift-product-icon{grid-row:1/3;grid-column:1;width:52px;height:52px;object-fit:contain;display:grid;place-items:center;background:rgba(255,255,255,.055);border-radius:9px;font-size:24px}
.gift-selected-chip--visual>span:not(.gift-product-icon){grid-column:2;grid-row:1}
.gift-selected-chip--visual>strong{grid-column:2;grid-row:2}
.gift-selected-chip--visual>b{grid-column:3;grid-row:1/3}
.gift-reaction-beat{padding:8px 1px 0;font:400 14px/1.45 Georgia,serif;color:rgba(255,255,255,.85)}
@media(min-width:821px){
  .scene[data-mode="scene2-choices"] .story-panel{max-width:min(980px,88vw);max-height:calc(100dvh - 125px);overflow-y:auto;scrollbar-width:thin}
  .scene[data-mode="scene2-choices"] .gift-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .scene[data-mode="scene2-choices"] .gift-look{grid-column:1/-1}
}
@media(max-width:820px){
  .scene[data-mode="scene2-choices"] .story-panel{top:max(72px,calc(env(safe-area-inset-top) + 70px));bottom:max(12px,env(safe-area-inset-bottom));max-height:none;overflow-y:auto;overscroll-behavior:contain;padding:14px;scrollbar-width:thin}
  .scene[data-mode="scene2-choices"] .story-text p{font-size:15px;line-height:1.44;margin-bottom:10px}
  .scene[data-mode="scene2-choices"] .gift-options{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px}
  .scene[data-mode="scene2-choices"] .gift-option{display:grid;grid-template-columns:63px minmax(0,1fr) auto;min-height:82px;gap:9px;padding:8px 9px;border-radius:12px}
  .scene[data-mode="scene2-choices"] .gift-option .gift-product-preview,.scene[data-mode="scene2-choices"] .gift-option .gift-product-icon{width:63px;height:63px;font-size:27px}
  .scene[data-mode="scene2-choices"] .gift-option .gift-option-copy strong{font-size:15px;line-height:1.25}
  .scene[data-mode="scene2-choices"] .gift-option .gift-option-copy small{display:block;font-size:11px;line-height:1.35;margin-top:3px}
  .scene[data-mode="scene2-choices"] .gift-option b{font-size:12px;align-self:center}
  .scene[data-mode="scene2-choices"] .gift-look{grid-column:1;margin-top:2px;padding:9px 5px;min-height:40px}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-select{display:flex;flex-direction:column;align-items:stretch;gap:13px;overflow-y:auto;padding:max(76px,calc(env(safe-area-inset-top) + 62px)) 15px max(22px,env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(18,15,13,.46),rgba(18,15,13,.76) 36%,rgba(18,15,13,.92))}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-select>div:first-child{flex:none}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-select h1{font-size:clamp(28px,8vw,36px);line-height:1.08;margin-bottom:9px}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-select>div:first-child>p:last-child{font-size:13px;line-height:1.45;margin:0}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-grid{display:grid;grid-template-columns:1fr;gap:9px;width:100%;align-items:stretch;padding-bottom:8px}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-card{display:grid;grid-template-columns:94px minmax(0,1fr);width:100%;min-height:94px;height:94px!important;border-radius:14px;overflow:hidden;background:rgba(25,22,20,.9)}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-card img{position:relative;inset:auto;width:94px;height:94px;object-fit:cover;object-position:center}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-card::after{display:none}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-card>span{position:relative;inset:auto;align-self:center;display:block;padding:10px 12px;z-index:2}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-card strong{font-size:16px;line-height:1.3}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-card small{display:block;font-size:11px;line-height:1.4;margin-top:4px;color:rgba(255,255,255,.78)}
  .scene[data-mode="scene3-outfit"] .scene3-outfit-confirm{max-height:calc(100dvh - 106px);overflow-y:auto}
  .scene8-stage--mix .scene8-mix-zone--in-bowl:before{inset:12%;background:transparent;border:2px solid rgba(255,245,214,.5);box-shadow:0 0 0 4px rgba(38,22,10,.10)}
  .scene8-stage--mix .scene8-mix-zone--in-bowl.is-mixing:before{inset:12%;background:rgba(255,255,255,.025);border-color:rgba(255,244,222,.82)}
}
@media(max-width:365px){.scene[data-mode="scene2-choices"] .gift-option{grid-template-columns:52px minmax(0,1fr) auto;gap:7px}.scene[data-mode="scene2-choices"] .gift-option .gift-product-preview,.scene[data-mode="scene2-choices"] .gift-option .gift-product-icon{width:52px;height:52px}.scene[data-mode="scene2-choices"] .gift-option .gift-option-copy strong{font-size:13.5px}.scene[data-mode="scene2-choices"] .gift-option .gift-option-copy small{font-size:10px}.scene[data-mode="scene2-choices"] .gift-option b{font-size:11px}}
/* Keep enough visible world above the product tray: content-driven sheet, never full-screen by default. */
@media(max-width:820px){
  .scene[data-mode="scene2-choices"] .story-panel{top:auto;max-height:min(72dvh,650px);height:auto;bottom:max(12px,env(safe-area-inset-bottom));}
}

/* Product images supplied for the six previously unillustrated gifts (single active stylesheet). */
.gift-option .gift-product-preview[src*="/han_"],.gift-selected-chip .gift-product-preview[src*="/han_"]{object-fit:cover;object-position:center;background:rgba(236,216,186,.1)}

/* HAN: short camera POV response to existing S5 greeting / S7 rise actions (desktop + mobile). */
@keyframes han-pov-greeting{0%,100%{transform:translateY(0) scale(1)}42%{transform:translateY(-3.4%) rotate(.35deg) scale(1.065)}65%{transform:translateY(-3.2%) scale(1.06)}}
@keyframes han-pov-stand{0%{transform:translateY(1.5%) scale(1.015)}60%{transform:translateY(-1.1%) scale(1.007)}100%{transform:translateY(0) scale(1)}}
.scene.han-pov-bowing .scene__picture{animation:han-pov-greeting .96s cubic-bezier(.38,.02,.23,1) both}
.scene.han-pov-rising .scene__picture{animation:han-pov-stand .69s cubic-bezier(.2,.72,.32,1) both}
@media(prefers-reduced-motion:reduce){.scene.han-pov-bowing .scene__picture,.scene.han-pov-rising .scene__picture{animation:none!important}}

/* S6 · A real POV stand-and-greet beat before Grandmother's response.
   Same established scene engine, no new asset; motion-reduction aware. */
@keyframes han-pov-grandma-greeting{0%{transform:translateY(1.1%) scale(1.012)}32%{transform:translateY(-1.2%) scale(1.008)}68%{transform:translateY(1.1%) scale(1.008)}100%{transform:translateY(0) scale(1)}}
.scene.han-pov-grandma-greeting .scene__picture{animation:han-pov-grandma-greeting .76s ease-in-out both}
@media(prefers-reduced-motion:reduce){.scene.han-pov-grandma-greeting .scene__picture{animation:none!important}}


/* S6: an explicit, thumb-accessible response without hiding the portrait. */
.scene6-seoyeon-reply{display:block;width:100%;min-height:48px;margin-top:18px;padding:12px 16px;border:1px solid rgba(255,255,255,.38);border-radius:14px;background:rgba(26,24,22,.75);color:#fff;font-family:inherit;font-size:15px;font-weight:600;line-height:1.4;text-align:left;cursor:pointer}
.scene6-seoyeon-reply:focus-visible{outline:3px solid #f2d4a8;outline-offset:3px}
@media(max-width:820px){.scene6-seoyeon-reply{min-height:52px;margin-top:16px;font-size:16px}}

/* HAN S9 speech & participation: original Korean leads, a single short meaning follows.
   Scope deliberately excludes all other scenes and avoids parallel legacy CSS. */
.scene9-stage .scene-lang-line--conversation{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;padding:13px 16px;margin:10px 0 4px;min-width:0;overflow:hidden}
.scene9-stage .scene-lang-line--conversation>.korean-follow{display:block;grid-column:1;grid-row:1;color:#fff;font-size:clamp(21px,2vw,29px);line-height:1.35;white-space:normal;overflow-wrap:anywhere;letter-spacing:0}
.scene9-stage .scene-lang-line--conversation>.scene-lang-meaning{display:block;grid-column:1;grid-row:2;font:500 clamp(13px,1.04vw,15.5px)/1.48 system-ui,sans-serif;color:rgba(255,255,255,.9);overflow-wrap:anywhere}
.scene9-stage .scene-lang-line--conversation>.scene-lang-disclosure{grid-column:1;grid-row:3;margin:0;font:400 12px/1.5 system-ui,sans-serif;color:rgba(255,255,255,.68)}
.scene9-stage .scene-lang-line--conversation>.scene-lang-tools{grid-column:2;grid-row:1/4;align-self:center;z-index:1}
.scene9-stage .scene-lang-line--conversation.is-speaking>.korean-follow{background:linear-gradient(100deg,#f7c9a8 0%,#fff3d7 36%,#fff 52%,#f1c59c 65%,#fff 100%);background-size:275% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;animation:han-s9-voice-glow var(--speech-duration,1.8s) linear forwards;text-shadow:none;filter:drop-shadow(0 0 6px rgba(255,226,188,.34))}
.scene9-stage .scene-lang-line--conversation.is-speaking>.korean-follow::after{content:'';display:block;position:absolute;left:0;bottom:-3px;width:100%;height:2px;background:linear-gradient(90deg,#d6a17c,#ffebc5);transform:scaleX(0);transform-origin:left;animation:korean-follow var(--speech-duration,1.8s) linear forwards;box-shadow:0 0 9px rgba(245,196,146,.5)}
@keyframes han-s9-voice-glow{to{background-position:0 0}}
.scene9-stage--interests .han-conversation-choices button>span{display:block}
.scene9-stage--interests .han-conversation-choices button>small[lang=ko]{display:block;margin-top:5px;color:#f1d0b7;font:500 14px/1.5 "Noto Sans KR",system-ui,sans-serif;overflow-wrap:anywhere}
@media(max-width:820px){.scene9-stage .scene-lang-line--conversation{padding:10px 12px}.scene9-stage .scene-lang-line--conversation>.korean-follow{font-size:20px}.scene9-stage .scene-lang-line--conversation>.scene-lang-meaning{font-size:13px}.scene9-stage--interests .han-conversation-choices button>small[lang=ko]{font-size:13px}.scene9-stage--interests:not(.scene9-stage--immersive)>.scene9-caption{max-height:min(23dvh,168px)}}
@media(prefers-reduced-motion:reduce){.scene9-stage .scene-lang-line--conversation.is-speaking>.korean-follow,.scene9-stage .scene-lang-line--conversation.is-speaking>.korean-follow::after{animation:none!important;background:none!important;color:#fff!important;filter:none!important}}

/* HAN user-test finish: scoped corrections only; shared engine retained. */
.han-moment-insight{margin:12px 0 0;border-top:1px solid rgba(250,221,191,.25);padding-top:9px;color:#f5d4b8;font:500 12px/1.48 system-ui,sans-serif;max-width:100%}
.han-moment-insight summary{cursor:pointer;display:inline-flex;align-items:center;min-height:36px;gap:8px;font-weight:650;text-decoration:underline;text-underline-offset:4px}
.han-moment-insight summary::before{content:"✦";font-size:11px}
.han-moment-insight p{margin:5px 0 3px!important;font:400 13px/1.52 system-ui,sans-serif!important;color:#fff3e7!important}
.han-moment-insight a{color:#ffdfad;text-underline-offset:3px}
/* Scene-level spoken replies: the same narrative action is reachable by text and speech. */
.scene8-bulgogi-oral{position:relative;z-index:8;width:min(550px,100%)}
.scene8-life-replies.han-spoken-replies{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;overflow:auto;max-height:min(35svh,290px)}
.scene8-bulgogi-oral .han-oral-choice__select,.scene8-life-replies .han-oral-choice__select{width:100%;max-width:none;justify-self:stretch;text-align:left;border-radius:12px;white-space:normal}
.scene8-bulgogi-oral .han-oral-choice__speak,.scene8-life-replies .han-oral-choice__speak{width:65px;max-width:65px;border-radius:12px;min-height:46px;text-align:center}
.han-spoken-replies{display:grid;gap:7px;min-width:0;pointer-events:auto}
.han-oral-choice{display:grid;grid-template-columns:minmax(0,1fr) 65px;gap:7px;align-items:stretch;min-width:0}
.han-oral-choice .han-oral-choice__select{width:100%;min-width:0;text-align:left;white-space:normal;overflow-wrap:anywhere;padding:11px 13px;background:rgba(33,25,21,.80);border:1px solid rgba(255,235,212,.20);border-radius:12px;color:#fff;min-height:50px;font:500 14px/1.37 Georgia,serif}
.han-oral-choice .han-oral-choice__speak{width:65px;min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 5px;background:rgba(232,198,165,.16);border:1px solid rgba(255,235,212,.40);border-radius:12px;color:#fff1de;min-height:50px;font:650 10px/1.1 system-ui,sans-serif}
.han-oral-choice .han-oral-choice__speak .icon-mic{pointer-events:none}
.han-oral-choice button:focus-visible{outline:3px solid #f6d3af;outline-offset:2px}
.han-spoken-replies>.han-choice-speech-status{grid-column:1/-1;line-height:1.4;padding:10px 12px;white-space:normal}
.han-spoken-replies>.han-choice-speech-status[hidden]{display:none}
@media(max-width:820px){.han-oral-choice{grid-template-columns:minmax(0,1fr) 55px;gap:5px}.han-oral-choice .han-oral-choice__speak{width:55px;min-height:46px}.han-oral-choice .han-oral-choice__select{font-size:13.5px;min-height:46px}.han-spoken-replies{gap:5px}}
.han-interest-choice{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;align-items:stretch;min-width:0}
.han-conversation-choices .han-interest-choice>.han-interest-select{min-width:0;min-height:58px;display:flex;flex-direction:column;justify-content:center}
.han-conversation-choices .han-interest-choice>.han-interest-say{font:650 11px/1.4 system-ui,sans-serif;min-height:46px;width:115px;text-align:center;color:#fff3e9;border-color:rgba(255,215,174,.5);background:rgba(73,50,36,.92)}
.han-choice-speech-status{padding:8px 10px;border-radius:9px;background:#f9ecda;color:#4a3327;font:600 12px/1.4 system-ui,sans-serif;grid-column:1/-1}
.han-choice-speech-status[hidden]{display:none}
@media(max-width:820px){.han-interest-choice{grid-template-columns:minmax(0,1fr) auto;gap:5px}.han-conversation-choices .han-interest-choice>.han-interest-select{min-height:55px}.han-conversation-choices .han-interest-choice>.han-interest-say{width:87px;min-height:48px;padding:5px 7px;font-size:10px}.han-moment-insight p{font-size:12.5px!important}}
@media(max-width:355px){.han-interest-choice{grid-template-columns:1fr}.han-conversation-choices .han-interest-choice>.han-interest-say{width:100%;min-height:36px}}
.scene[data-mode="scene12-stamp"] .traveler-card__stamp--arriving{position:relative!important;display:block;right:auto!important;bottom:auto!important;inset:auto!important;width:min(185px,48vw)!important;height:auto!important;margin:16px auto 2px;opacity:1;filter:drop-shadow(0 2px 1px rgba(123,31,23,.24));mix-blend-mode:multiply;animation:hanRedSealIn .88s .36s cubic-bezier(.17,.9,.25,1) both}
@keyframes hanRedSealIn{0%{opacity:0;transform:translateY(-38px) rotate(-16deg) scale(1.18);filter:blur(1px) drop-shadow(0 17px 8px rgba(85,25,20,.16))}55%{opacity:1;transform:translateY(4px) rotate(-10deg) scale(.94);filter:blur(0) drop-shadow(0 0 0 rgba(85,25,20,0))}72%{opacity:1;transform:translateY(0) rotate(-10deg) scale(1.025);filter:drop-shadow(0 1px 0 rgba(85,25,20,.08))}100%{opacity:1;transform:translateY(0) rotate(-10deg) scale(1);filter:drop-shadow(0 1px 1px rgba(123,31,23,.18))}}
.scene[data-mode="scene12-stamp"] .scene12-travel-trace{display:none!important;animation:none!important}
.scene[data-mode="scene12-recipe"] .scene__image{filter:brightness(.40) saturate(.78)!important;transform:none!important}
.scene[data-mode="scene12-recipe"] .scene12-stage--black{background:rgba(14,11,9,.15)}
.scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo{color:#34271e;background:#f5ead9}
.scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo :is(header small,h2,h2 span,.scene12-recipe-grid h3){color:#553726!important}
.scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo :is(p,li,footer,footer span,figure figcaption){color:#49392c!important;text-shadow:none!important}
.scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo footer button{color:#fff!important;background:#654632;border-color:#654632}
.scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo .scene12-recipe-source a{color:#62432f!important}
.scene[data-mode="scene12-recipe"] .scene12-recipe-grid section{background:#fffaf2;border:1px solid #decdb8}
@media(prefers-reduced-motion:reduce){.scene[data-mode="scene12-stamp"] .traveler-card__stamp--arriving{animation:none;opacity:.91;transform:rotate(-10deg);filter:none}}
/* HAN · spoken responses do not crush gift dialogue on small devices. */
@media(max-width:820px){
  .scene[data-mode^="scene2"] .choice-language-row{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;min-width:0!important}
  .scene[data-mode^="scene2"] .choice-language-row>.choice-button{width:100%!important;min-width:0!important}
  .scene[data-mode^="scene2"] .choice-language-actions{grid-column:1/-1;display:flex!important;flex-wrap:wrap!important;width:100%!important;gap:6px!important;margin:0!important;justify-content:flex-start!important}
  .scene[data-mode^="scene2"] .choice-language-actions button{min-width:0!important;flex:1 1 92px!important;max-width:100%!important;min-height:42px!important;height:auto!important;white-space:normal!important;padding:7px 8px!important;line-height:1.25!important}
  .scene[data-mode^="scene2"] .choice-language-row>.speech-feedback{grid-column:1/-1;width:100%;font-size:12px;line-height:1.4}
}
/* After mixing, allow the in-scene meaning note to be opened without hiding it behind the bowl hotspot. */
.scene8-stage--mixed>.scene8-caption{z-index:9;max-height:min(44dvh,360px)!important;overflow-y:auto!important;overscroll-behavior:contain!important}
.scene8-stage--mixed .han-moment-insight summary{position:relative;z-index:10}
@media(max-width:820px){
  /* The visitor's blue ceramic bowl is at the bottom of the supplied portrait.
     Keep that action visible: place the short contextual note in the mid-frame,
     away from the bowl and from the family members' faces. */
  .scene8-stage--mixed>.scene8-caption{
    position:absolute!important;top:clamp(290px,37dvh,340px)!important;
    bottom:auto!important;left:16px!important;right:auto!important;
    width:min(305px,calc(100vw - 32px))!important;
    max-height:min(31dvh,252px)!important;
    overflow-y:auto!important;
  }
  .scene8-stage--mixed .scene8-bite-hotspot{top:85%!important;width:min(35vw,138px)!important}
  .scene8-stage--mixed .scene8-bite-hotspot span{bottom:calc(100% + 4px)}
}

.han-cultural-beat{margin:9px 0 0;padding:9px 11px;border-left:2px solid #eac499;background:rgba(81,53,34,.68);border-radius:0 8px 8px 0;color:#fff0da;font:500 13px/1.5 system-ui,sans-serif}
@media(max-width:820px){.han-cultural-beat{font-size:12.5px;line-height:1.46}}

/* Two free-text social answers: spoken or typed, same canonical consequence. */
.scene9-free>div:has(>[data-scene-action="han-free-speech"]){display:flex;align-items:stretch;gap:4px;min-width:0}
.scene9-free>div:has(>[data-scene-action="han-free-speech"])>input{min-width:0;flex:1 1 auto}
.scene9-free [data-scene-action="han-free-speech"]{flex:0 0 43px;width:43px;min-height:44px;border:1px solid rgba(255,232,207,.46);border-radius:11px;background:rgba(79,53,37,.95);color:#fff;display:flex;align-items:center;justify-content:center}
.scene9-free [data-scene-action="han-free-speech"]:focus-visible{outline:3px solid #f6d3af;outline-offset:2px}

/* DOBOX scene UX: one canonical interaction layer, no duplicated microphone. */
.language-block{padding-right:100px!important}.language-float-tools{right:12px!important;top:12px!important;bottom:auto!important;left:auto!important;position:absolute!important}
.language-float-tools .audio-chip--text{min-width:76px!important;min-height:40px!important}
.choice-language-row.han-visitor-reply{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center;gap:8px;padding:0;background:transparent}
.han-visitor-reply .choice-button--language{min-width:0;min-height:58px;padding:11px 14px!important;display:flex;flex-direction:column;justify-content:center;gap:2px;overflow-wrap:anywhere}
.han-visitor-reply .choice-button--language strong{font:600 clamp(17px,4.8vw,23px)/1.3 system-ui,sans-serif!important}
.han-visitor-reply .choice-button--language small{font:400 13px/1.3 system-ui,sans-serif!important;letter-spacing:0!important;opacity:.85}
.han-visitor-reply .choice-language-actions{display:flex!important;flex-direction:row!important;align-items:center!important;gap:6px!important;justify-content:flex-end!important;margin:0!important}
.han-visitor-reply .choice-language-actions button{min-height:44px!important;margin:0!important;padding:8px 11px!important;font:600 13px/1.2 system-ui,sans-serif!important;white-space:nowrap}
.han-visitor-reply .han-choice-listen{width:44px!important;min-width:44px!important;padding:8px!important}
.han-visitor-reply .han-reply-speak{min-width:70px!important}
.han-reply-sheet[hidden]{display:none!important}
.han-replies-open,.han-letters-continue{border:1px solid rgba(255,230,210,.48);border-radius:12px;background:rgba(103,58,38,.90);color:#fff;font:700 15px/1.25 system-ui,sans-serif;min-height:48px;padding:10px 20px;cursor:pointer}
.han-context-dialogue{max-height:min(43dvh,350px)!important;overflow-y:auto!important;overscroll-behavior:contain;width:min(455px,calc(100vw - 28px));padding:14px 17px!important}
.han-context-dialogue .story-text{margin:3px 0!important}.han-context-dialogue .story-text p{margin:0!important}
.han-context-dialogue .language-block{margin:7px 0!important;padding:11px 94px 11px 12px!important}
.han-context-dialogue .language-block>strong{font-size:clamp(18px,4.7vw,23px)!important}
.han-context-dialogue .gift-selected-chip{padding:5px 8px!important;min-height:48px!important;gap:7px!important;margin:7px 0!important}
.han-context-dialogue .gift-selected-chip img{max-width:36px!important;max-height:36px!important}
.han-context-dialogue .gift-selected-chip strong{font-size:13px!important}.han-context-dialogue .gift-selected-chip span{font-size:9px!important}
.han-context-dialogue .han-replies-open{width:100%;margin-top:8px}
.han-reply-sheet{position:fixed;z-index:150;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(510px,calc(100vw - 24px));max-height:min(58dvh,480px);overflow:auto;padding:13px;border:1px solid rgba(253,232,203,.4);border-radius:17px;background:rgba(38,30,25,.97);box-shadow:0 12px 44px rgba(0,0,0,.38);pointer-events:auto;overscroll-behavior:contain}
.han-reply-sheet__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;color:#ffe4cf;font:800 11px/1.3 system-ui,sans-serif;letter-spacing:.13em}
.han-reply-sheet__head button{min-width:40px;min-height:40px;border:1px solid #967361;border-radius:50%;color:#fff;background:#563b30;font-size:23px;cursor:pointer}
.han-reply-sheet__choices{display:grid;gap:8px}
.han-reply-sheet .han-visitor-reply{grid-template-columns:minmax(0,1fr) auto!important;margin:0!important}
.han-reply-sheet .han-visitor-reply .choice-button{background:rgba(255,255,255,.08)!important}
.han-letters-hint{margin:15px 0 0;padding:9px 12px;background:rgba(16,11,7,.58);color:#f3e8d8;font-size:13px;border-radius:11px}
.han-letters-continue{display:block;margin:18px auto 0;width:min(380px,100%)}
/* QA10/PASS14: letters mobile layout is canonical here; no parallel inline guard. */
.scene[data-mode="letters"] .letter-table .han-letters-continue,
.scene[data-mode="letters"] .letter-table .han-letters-hint{
  position:absolute;z-index:60;pointer-events:auto;
  box-sizing:border-box;margin:0;
}
@media (max-width:820px){
  .scene[data-mode="letters"] .letter-table .han-letters-continue,
  .scene[data-mode="letters"] .letter-table .han-letters-hint{
    left:16px;right:16px;top:auto;width:auto;
    bottom:calc(clamp(146px,42vw,170px) + env(safe-area-inset-bottom));
    max-height:18svh;overflow:auto;text-align:center;
  }
  .scene[data-mode="letters"] .letter-table .han-letters-continue{
    min-height:50px;padding:11px 15px;font-size:14px;line-height:1.35;
    border-radius:16px;background:rgba(87,49,34,.94);
    box-shadow:0 8px 26px rgba(0,0,0,.25);
  }
  .scene[data-mode="letters"] .letter-table .han-letters-hint{
    padding:10px 12px;font-size:13px;line-height:1.35;
  }
}
@media (min-width:821px){
  .scene[data-mode="letters"] .letter-table .han-letters-continue,
  .scene[data-mode="letters"] .letter-table .han-letters-hint{
    right:var(--safe-x);bottom:calc(max(42px,env(safe-area-inset-bottom)) + 180px);
    width:min(488px,calc(100vw - 2 * var(--safe-x)));
    text-align:center;
  }
}
.han-papa-direct{font:500 clamp(18px,2vw,24px)/1.4 Georgia,serif;margin:0 0 5px}.han-reply-prompt{margin:7px 0 9px;font-size:13px;color:#f4caa7}
.scene[data-mode="scene6-salon"] .scene__image{object-position:center 50%!important;transform:none!important;animation:none!important}
@media(max-width:820px){
 .language-block{padding:12px 12px 7px!important}.language-float-tools{position:static!important;justify-content:flex-end!important;margin-top:4px!important}
 .han-context-dialogue{left:12px!important;right:12px!important;bottom:max(14px,env(safe-area-inset-bottom))!important;max-height:36dvh!important;width:auto!important}
 .han-context-dialogue .language-block{padding:9px 11px!important}.han-context-dialogue .language-float-tools{margin:0!important}
 .han-context-dialogue .gift-selected-chip{max-height:44px!important}
 .han-reply-sheet{max-height:51dvh!important}
 .han-visitor-reply .choice-button--language{min-height:55px!important}
 .han-visitor-reply .choice-button--language small{font-size:12px!important}
 .han-visitor-reply .choice-language-actions button{font-size:12px!important;padding:6px 9px!important}
 .scene[data-mode="scene6-salon"] .scene__image{object-position:center 44%!important}
}
@media(prefers-reduced-motion:reduce){.han-reply-sheet{scroll-behavior:auto}}

/* Flashback: show Papa Han when he speaks, with desktop and mobile art of the same person. */
.scene[data-mode="papa1"] .scene__image,.scene[data-mode="papa2"] .scene__image,.scene[data-mode="branch1"] .scene__image,.scene[data-mode="branch2"] .scene__image,.scene[data-mode="branch3"] .scene__image,.scene[data-mode="invite"] .scene__image{object-fit:cover!important;object-position:center 25%!important;transform:none!important;animation:none!important}


/* Scene2 seller stage: fixed reply affordance; only the optional context scrolls. */
.han-context-dialogue{display:flex!important;flex-direction:column!important;gap:7px!important;overflow:hidden!important}
.han-context-dialogue__body{min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain}
.han-context-dialogue .han-replies-open{flex:0 0 auto;margin:0!important;position:relative!important;display:block!important;min-height:44px!important}
.han-context-dialogue .han-inline-client{margin:0 0 7px;font:400 13px/1.3 system-ui,sans-serif}
.han-context-dialogue .han-inline-client span{color:#eebd9d;font-size:9px;letter-spacing:.1em}
.han-context-dialogue .han-inline-client strong{font-size:16px;font-weight:550}
.han-context-dialogue .dialogue-followup{padding:7px 9px!important;margin:0 0 4px!important}.han-context-dialogue .dialogue-followup strong{font-size:19px!important}.han-context-dialogue .dialogue-followup small{font-size:12px!important}
@media(min-width:821px){.scene[data-mode="papa1"] .scene__image,.scene[data-mode="papa2"] .scene__image,.scene[data-mode="branch1"] .scene__image,.scene[data-mode="branch2"] .scene__image,.scene[data-mode="branch3"] .scene__image,.scene[data-mode="invite"] .scene__image{object-position:center top!important}}

/* One seat action inside the scene's own card; never a detached 9px button. */
.scene[data-mode="scene6-salon"] .scene6-caption--invitation{z-index:10!important;width:min(445px,calc(100vw - 28px))!important;padding:17px 18px!important;max-height:45dvh!important;overflow:auto!important}
.scene[data-mode="scene6-salon"] .scene6-caption--invitation strong{font-size:clamp(18px,2vw,24px)!important;line-height:1.35!important}
.scene[data-mode="scene6-salon"] .han-scene6-seat{display:block;margin-top:13px;min-height:48px;padding:11px 20px;border:1px solid rgba(255,227,204,.46);border-radius:12px;background:rgba(105,61,40,.93);color:#fff;font:700 15px/1.3 system-ui,sans-serif;cursor:pointer}
.scene[data-mode="scene6-salon"] .han-scene6-seat:focus-visible{outline:3px solid #f5cb9f;outline-offset:3px}
.scene[data-mode="scene2-context"] .han-visitor-reply>.choice-button--language{grid-column:1!important;grid-row:1!important;width:100%!important;min-width:0!important}
.scene[data-mode="scene2-context"] .han-visitor-reply>.choice-language-actions{grid-column:2!important;grid-row:1!important;width:auto!important;min-width:0!important;flex-wrap:nowrap!important;display:flex!important;gap:4px!important}
.scene[data-mode="scene2-context"] .han-reply-sheet{background:#291f19!important}
.scene[data-mode="scene2-context"] .han-reply-sheet .han-visitor-reply{grid-template-columns:minmax(0,1fr) 82px!important;gap:5px!important}
.scene[data-mode="scene2-context"] .han-reply-sheet .han-reply-speak{min-width:0!important;width:82px!important;padding:7px!important}
.scene[data-mode="scene2-context"] .han-context-dialogue .dialogue-followup small{font-size:14px!important;line-height:1.35!important}
@media(max-width:820px){.scene[data-mode="scene6-salon"] .scene6-caption--invitation{left:12px!important;right:12px!important;bottom:max(18px,env(safe-area-inset-bottom))!important;width:auto!important}.scene[data-mode="scene6-salon"] .scene6-caption--invitation strong{font-size:18px!important}.scene[data-mode="scene2-context"] .han-reply-sheet{max-height:45dvh!important}}

@media(max-width:820px){.scene[data-mode="scene6-salon"] .scene__picture{inset:0!important;background:#382b23 url("assets/scene6/evening-mobile.webp") center center/cover no-repeat}.scene[data-mode="scene6-salon"] .scene__image{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center 36%!important;transform:none!important;filter:none!important}}
/* During Papa Han's short spoken beat, keep the upcoming response readable while
   its click target waits for the dialogue; never show an empty dark response box. */
.scene[data-mode="papa2"] .story-actions [data-scene-gated="true"]:disabled{opacity:.73!important;pointer-events:none!important;cursor:default!important}

/* HAN UX REPRISE — LOT 01 · restaurant / first contact (single active architecture).
   Phone: compact spoken line + optional response sheet. Desktop: conversation rail
   beside the action, never a centered full-width dialogue wall. */
.scene[data-mode="papa1"] .scene__image-shade,
.scene[data-mode="papa2"] .scene__image-shade,
.scene[data-mode="branch1"] .scene__image-shade,
.scene[data-mode="branch2"] .scene__image-shade,
.scene[data-mode="branch3"] .scene__image-shade,
.scene[data-mode="invite"] .scene__image-shade{
  background:linear-gradient(180deg,rgba(7,6,5,.17),transparent 35%,rgba(7,6,5,.07) 75%,rgba(7,6,5,.27));
}
.scene[data-mode="papa1"] .story-panel,
.scene[data-mode="papa2"] .story-panel,
.scene[data-mode="branch1"] .story-panel,
.scene[data-mode="branch2"] .story-panel,
.scene[data-mode="branch3"] .story-panel,
.scene[data-mode="invite"] .story-panel{
  background:rgba(32,27,23,.84);border-color:rgba(247,219,196,.24);
  box-shadow:0 12px 38px rgba(0,0,0,.20);backdrop-filter:blur(8px);
}
.scene[data-mode="papa2"] .han-conversation-dialogue,
.scene[data-mode="branch1"] .han-conversation-dialogue,
.scene[data-mode="branch2"] .han-conversation-dialogue{
  display:flex;flex-direction:column;gap:8px;max-height:min(33dvh,260px)!important;
  padding:13px 16px!important;overflow:hidden!important;
}
.han-conversation-dialogue .han-context-dialogue__body{overflow-y:auto;min-height:0;flex:1 1 auto}
.han-conversation-dialogue .han-reply-prompt{margin:0;font-size:13px;color:#f2dcc6}
.han-conversation-dialogue .han-replies-open{width:100%;margin-top:0;flex-shrink:0}
.han-conversation-replies[hidden]{display:none!important}
.han-conversation-replies{background:#30261f!important;border:1px solid rgba(246,211,176,.32)!important}
.han-conversation-replies .han-reply-sheet__choices{display:grid;gap:9px}
.han-conversation-replies .choice-button{min-height:48px;font:500 15px/1.35 system-ui,sans-serif}
.han-conversation-replies .han-visitor-reply{grid-template-columns:minmax(0,1fr) 82px!important;gap:7px!important}
.han-conversation-replies .han-visitor-reply .choice-language-actions{display:flex;grid-column:2;grid-row:1;gap:5px;align-items:stretch}
.han-conversation-replies .han-reply-speak{width:82px!important;min-width:0!important;padding:8px!important}
.han-conversation-replies .choice-button--language{grid-column:1;grid-row:1;min-width:0!important}
.scene[data-mode="afterletters"] .room-time-note{bottom:max(88px,env(safe-area-inset-bottom) + 80px);animation:room-note-in .55s .2s both}
.scene[data-mode="afterletters"] .scene-flow-next--standalone{min-height:44px;font-size:13px}
@media (min-width:821px){
  .scene[data-mode="papa2"] .han-conversation-dialogue,
  .scene[data-mode="branch1"] .han-conversation-dialogue,
  .scene[data-mode="branch2"] .han-conversation-dialogue{width:min(420px,34vw)!important;max-height:34dvh!important;right:clamp(24px,4vw,70px)!important;bottom:clamp(24px,5dvh,64px)!important}
  .han-conversation-replies{left:auto!important;right:clamp(24px,4vw,70px)!important;bottom:clamp(24px,5dvh,64px)!important;transform:none!important;width:min(430px,35vw)!important;max-height:min(66dvh,570px)!important}
  .scene:has(.han-conversation-replies:not([hidden])) .han-conversation-dialogue{opacity:.22;pointer-events:none}
}
@media(max-width:820px){
  .scene[data-mode="papa2"] .han-conversation-dialogue,
  .scene[data-mode="branch1"] .han-conversation-dialogue,
  .scene[data-mode="branch2"] .han-conversation-dialogue{
    left:12px!important;right:12px!important;bottom:max(14px,env(safe-area-inset-bottom))!important;
    max-height:min(30dvh,230px)!important;width:auto!important;padding:12px 14px!important;
  }
  .han-conversation-dialogue .story-text{font-size:clamp(15px,4.1vw,18px)}
  .han-conversation-dialogue .han-papa-direct{font-size:clamp(16px,4.3vw,20px)}
  .han-conversation-replies{width:calc(100vw - 20px)!important;max-height:min(54dvh,480px)!important;bottom:max(10px,env(safe-area-inset-bottom))!important;padding:12px!important}
  .scene[data-mode="afterletters"] .room-time-note{bottom:max(103px,env(safe-area-inset-bottom) + 95px)}
}
@media(prefers-reduced-motion:reduce){.han-conversation-dialogue{animation:none}}
/* LOT 02 · Scene 2–3: two deliberately different compositions; one active engine. */
.scene[data-mode="scene2-choices"] .scene-content{pointer-events:none}
.han-shop-products{position:absolute;z-index:18;right:clamp(18px,4vw,65px);top:max(122px,calc(env(safe-area-inset-top) + 110px));bottom:auto;max-height:min(69dvh,660px);width:min(500px,40vw);display:flex;flex-direction:column;gap:11px;padding:19px;background:rgba(35,29,25,.94);border:1px solid rgba(243,207,178,.32);border-radius:19px;box-shadow:0 24px 70px rgba(0,0,0,.35);pointer-events:auto;overflow:hidden}
.han-shop-products__head{flex:0 0 auto}.han-shop-products__head span{font:800 10px/1.4 system-ui,sans-serif;color:#ebbb9c;letter-spacing:.12em;text-transform:uppercase}.han-shop-products__head h2{margin:6px 0 0;font:500 clamp(21px,2vw,29px)/1.15 Georgia,serif;color:#fff6eb}
.han-shop-products__list{display:grid;gap:9px;min-height:0;overflow-y:auto;overscroll-behavior:contain;align-content:start;scrollbar-width:thin}
.han-shop-products .gift-option{display:grid;grid-template-columns:74px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:87px;padding:8px 10px;margin:0;background:rgba(252,245,231,.055);border:1px solid rgba(255,246,231,.17);border-radius:12px;text-align:left;transform:none;flex-direction:row;color:#fff}
.han-shop-products .gift-product-preview{width:74px!important;height:67px!important;max-height:67px;max-width:74px;object-fit:cover;border-radius:8px}
.han-shop-products .gift-product-icon{width:74px;height:67px;display:grid;place-items:center;background:rgba(255,255,255,.06);border-radius:8px;font-size:26px}
.han-shop-products .gift-option strong{font:600 15px/1.25 Georgia,serif;color:#fff}.han-shop-products .gift-option small{margin-top:4px;font:400 11px/1.4 system-ui,sans-serif;color:#e8d9ce}.han-shop-products .gift-option b{font:700 13px/1.2 system-ui,sans-serif;white-space:nowrap;color:#f1c6a5;align-self:center}
.han-shop-products .gift-option:focus-visible,.han-shop-products__observe:focus-visible,.han-shop-depart button:focus-visible,.han-home-gift button:focus-visible{outline:3px solid #f6d2a7;outline-offset:3px}
.han-shop-products__observe{flex:0 0 auto;align-self:start;border:0;padding:7px 4px;background:transparent;font:600 12px/1.4 system-ui,sans-serif;color:#f8d2b7;text-decoration:underline;cursor:pointer}
.han-shop-products .scene2-shelf-observation{flex:0 1 auto;margin:0;padding:8px 10px;max-height:72px;overflow-y:auto;background:#48382c;border-radius:8px;color:#fff2e7;font:400 12px/1.4 system-ui,sans-serif}
.scene[data-mode="scene2-entry"] .scene-hotspot--door{right:16%;bottom:22%;min-width:116px;min-height:52px}
.scene[data-mode="scene2-context"] .han-context-dialogue .gift-selected-chip{display:none!important}
.han-shop-depart{position:absolute;z-index:18;bottom:max(24px,env(safe-area-inset-bottom));left:clamp(18px,4vw,64px);width:min(430px,calc(100% - 36px));display:grid;gap:10px;padding:18px;background:rgba(34,27,23,.91);border:1px solid rgba(247,214,187,.26);border-radius:18px;box-shadow:0 16px 40px #120d0b55;color:#fff}
.han-shop-depart .gift-selected-chip{margin:0}.han-shop-depart p{margin:0;font:400 16px/1.35 Georgia,serif}
.han-shop-depart button,.han-home-gift__action button{min-height:47px;border:1px solid rgba(251,224,202,.42);border-radius:12px;background:#925d45;color:#fff;font:700 14px/1.3 system-ui,sans-serif;padding:10px 16px;cursor:pointer}
.han-home-gift{position:absolute;inset:0;z-index:14;pointer-events:none}.han-home-gift .scene3-gift-object{pointer-events:none}.han-home-gift__action{position:absolute;left:clamp(18px,4vw,64px);bottom:max(24px,env(safe-area-inset-bottom));width:min(360px,calc(100% - 36px));display:grid;gap:12px;background:rgba(30,25,21,.81);backdrop-filter:blur(8px);border:1px solid rgba(255,244,228,.27);border-radius:15px;padding:14px 16px;pointer-events:auto}
.han-home-gift__action p{margin:0;color:#fff3e5;font:400 16px/1.4 Georgia,serif}
@media(min-width:821px){
 .scene[data-mode="scene2-context"] .han-context-dialogue{left:clamp(18px,4vw,65px)!important;right:auto!important;bottom:clamp(22px,4vh,45px)!important;width:min(470px,38vw)!important;max-height:60dvh!important}
 .scene[data-mode="scene2-context"] .han-reply-sheet{left:auto!important;right:clamp(18px,4vw,65px)!important;transform:none!important;width:min(465px,40vw);max-height:72dvh!important}
}
@media(max-width:820px){
 .han-shop-products{top:auto;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));width:auto;max-height:56dvh;padding:13px 12px;border-radius:17px;gap:8px;background:rgba(38,30,25,.96)}
 .han-shop-products__head h2{font-size:18px;margin-top:3px}.han-shop-products__head span{font-size:9px}
 .han-shop-products__list{gap:6px}.han-shop-products .gift-option{min-height:66px;padding:6px 7px;grid-template-columns:53px minmax(0,1fr) auto;gap:8px}
 .han-shop-products .gift-product-preview,.han-shop-products .gift-product-icon{width:53px!important;height:53px!important;max-width:53px;max-height:53px}
 .han-shop-products .gift-option strong{font-size:13px}.han-shop-products .gift-option small{font-size:10px;line-height:1.25}.han-shop-products .gift-option b{font-size:11px}
 .han-shop-products .scene2-shelf-observation{font-size:11px;max-height:52px}
 .han-shop-depart{left:11px;right:11px;bottom:max(12px,env(safe-area-inset-bottom));width:auto;padding:12px}.han-shop-depart p{font-size:14px}
 .han-home-gift .scene3-gift-object--dresser{bottom:25%!important;right:5%;width:min(155px,38vw)}
 .han-home-gift .scene3-gift-object figcaption{display:none}
 .han-home-gift__action{left:12px;right:12px;bottom:max(13px,env(safe-area-inset-bottom));width:auto;max-width:none;padding:12px}.han-home-gift__action p{font-size:14px}
}
@media(max-width:375px){.han-shop-products{max-height:58dvh}.han-shop-products .gift-option small{display:none}.han-shop-products .gift-option{min-height:58px}.han-shop-products .gift-product-preview,.han-shop-products .gift-product-icon{height:45px!important}.han-shop-products .gift-option strong{font-size:13px}}

/* LOT 03 — The familiar greeting and gift are composed differently by device.
   These are new component classes rather than a parallel override of the old narrative UI. */
.scene:is([data-mode="scene5-father"],[data-mode="scene5-gift"]).is-transitioning .scene__image{opacity:.78;filter:blur(.35px);transition:opacity .32s ease,filter .32s ease}
.scene:is([data-mode="scene5-father"],[data-mode="scene5-gift"]) .scene__image{transition:opacity .32s ease,filter .32s ease}
.scene5-father-stage--known{align-items:flex-start;justify-content:flex-end}
.scene5-father-stage--known .scene5-dialogue-card{width:min(430px,37vw);max-height:min(56dvh,490px);overflow-y:auto}
.scene5-father-stage--known .scene5-greeting-actions{grid-template-columns:1fr;gap:9px}
.scene5-father-stage--known .scene5-greeting-actions button{min-height:46px}
.scene5-gift-in-hand{position:absolute;z-index:2;right:clamp(30px,11%,170px);bottom:clamp(160px,26vh,290px);width:clamp(125px,15vw,225px);pointer-events:none;filter:drop-shadow(0 18px 16px rgba(0,0,0,.35))}
.scene5-gift-in-hand .scene3-gift-object{position:static!important;inset:auto!important;width:100%!important;margin:0!important;filter:none!important;animation:scene3-object-in .5s ease both}
.scene5-gift-in-hand .scene3-gift-object img{width:100%;height:auto;max-height:250px;object-fit:contain}
.scene5-gift-in-hand figcaption{display:none}
.scene5-gift-stage--retrieve .scene5-dialogue-card,.scene5-gift-stage--choice .scene5-dialogue-card{position:relative;z-index:3}
@media(min-width:821px){
 .scene5-gift-stage--retrieve .scene5-dialogue-card,.scene5-gift-stage--choice .scene5-dialogue-card{width:min(430px,37vw);max-height:60dvh;overflow-y:auto}
 .scene5-gift-stage--choice .scene-conversation-choices--gift{display:grid;grid-template-columns:1fr;gap:8px}
}
@media(max-width:820px){
 .scene5-father-stage--known .scene5-dialogue-card{width:100%;max-height:46dvh;padding:13px 15px;overflow-y:auto}
 .scene5-father-stage--known .scene5-greeting-actions{grid-template-columns:1fr;gap:8px}
 .scene5-gift-in-hand{right:13%;bottom:clamp(210px,33dvh,325px);width:min(30vw,132px)}
 .scene5-gift-in-hand .scene3-gift-object img{max-height:165px}
 .scene5-gift-stage--retrieve .scene5-dialogue-card{max-height:32dvh;overflow-y:auto}
 .scene5-gift-stage--choice .scene5-dialogue-card{max-height:54dvh;overflow-y:auto}
 .scene5-gift-stage--choice .scene-conversation-choices--gift{display:grid;grid-template-columns:1fr;gap:7px}
}

/* Dessert is offered once, without making acceptance compulsory. The fruit
   photograph stays in frame above a short, device-sized choice. */
.scene[data-mode="scene10-dessert"] .scene10-stage--with-action>.scene10-caption{align-self:flex-start;margin:0!important;width:min(420px,36vw)!important;max-height:min(24dvh,195px)!important;padding:12px 15px!important;background:rgba(24,19,16,.80)!important}
.han-dessert-actions{position:relative;z-index:9;order:2;display:grid;grid-template-columns:1fr 1fr;gap:8px;width:min(420px,36vw);max-width:100%;align-self:flex-start;margin:0;pointer-events:auto}
.han-dessert-actions button{min-width:0;min-height:47px;padding:10px 12px;border:1px solid rgba(255,232,209,.35);border-radius:12px;background:rgba(34,26,21,.86);color:#fff4e8;font:650 13.5px/1.35 system-ui,sans-serif;cursor:pointer}
.han-dessert-actions button:hover{background:rgba(92,61,44,.95)}
.han-dessert-actions button:focus-visible{outline:3px solid #f8cc99;outline-offset:3px}
@media(max-width:820px){
 .scene[data-mode="scene10-dessert"] .scene10-stage--with-action>.scene10-caption{width:100%!important;max-height:min(22dvh,170px)!important;padding:10px 12px!important}
 .han-dessert-actions{align-self:stretch;width:100%;max-width:none}
 .han-dessert-actions button{min-height:46px;padding:9px 8px;font-size:12.5px}
}

/* LOT06 — S9 conversation: one speaker + a voluntary reply drawer, not a wall of text. */
.scene9-stage.han-s9-conversation{
  display:flex!important;flex-direction:column!important;justify-content:flex-end!important;
  align-items:flex-start!important;gap:10px!important;overflow:visible!important;
  padding:clamp(65px,8vh,96px) clamp(14px,4vw,54px) max(18px,env(safe-area-inset-bottom))!important;
}
.scene9-stage.han-s9-conversation>.scene9-caption{
  order:0!important;
  position:relative!important;inset:auto!important;transform:none!important;
  width:min(450px,100%)!important;max-width:min(450px,100%)!important;
  max-height:min(30dvh,248px)!important;overflow:auto!important;
  margin:0!important;padding:13px 16px!important;align-self:flex-start!important;
  background:rgba(25,21,19,.85)!important;backdrop-filter:blur(9px);
  box-sizing:border-box!important;flex:0 1 auto!important;
}
.scene9-stage.han-s9-conversation>.scene9-caption .scene-lang-line--conversation{
  margin:4px 0!important;padding:6px 2px!important;background:transparent!important;
  border:0!important;box-shadow:none!important;
}
.scene9-stage.han-s9-conversation .scene9-family-beat{display:none!important}
.scene9-stage.han-s9-conversation>.han-s9-answer{
  order:1!important;
  position:relative!important;inset:auto!important;transform:none!important;
  width:min(450px,100%)!important;max-width:min(450px,100%)!important;
  margin:0!important;align-self:flex-start!important;z-index:18;pointer-events:auto;
}
.scene9-stage.han-s9-conversation .han-s9-answer>summary{
  list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px;
  width:100%;min-height:48px;padding:12px 16px;box-sizing:border-box;
  background:rgba(50,32,24,.93);border:1px solid rgba(255,221,191,.58);
  border-radius:14px;color:#fff4e4;font:650 14px/1.4 system-ui,sans-serif;cursor:pointer;
}
.scene9-stage.han-s9-conversation .han-s9-answer>summary::-webkit-details-marker{display:none}
.scene9-stage.han-s9-conversation .han-s9-answer[open]>summary{border-radius:14px 14px 0 0}
.scene9-stage.han-s9-conversation .han-s9-answer[open]>summary span{transform:rotate(180deg)}
.scene9-stage.han-s9-conversation .han-s9-answer__body{
  max-height:min(42dvh,340px);overflow-y:auto;overscroll-behavior:contain;
  padding:10px;background:rgba(26,20,17,.96);border:1px solid rgba(255,221,191,.35);
  border-top:0;border-radius:0 0 14px 14px;box-sizing:border-box;
}
.scene9-stage.han-s9-conversation .han-s9-answer__body>.scene9-replies,
.scene9-stage.han-s9-conversation .han-s9-answer__body>.scene9-free,
.scene9-stage.han-s9-conversation .han-s9-answer__body>.han-conversation-choices{
  position:relative!important;inset:auto!important;transform:none!important;
  width:100%!important;max-width:100%!important;max-height:none!important;
  margin:0!important;display:grid;gap:7px;overflow:visible!important;
  padding:0!important;box-shadow:none!important;background:transparent!important;border:0!important;
}
.scene9-stage.han-s9-conversation .han-s9-answer__body .han-interest-choice{
  display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:6px;min-width:0;
}
.scene9-stage.han-s9-conversation .han-s9-answer__body .han-interest-choice .han-interest-say{
  width:48px;min-height:48px;display:flex;align-items:center;justify-content:center;padding:8px;
}
.scene9-stage.han-s9-conversation .han-s9-answer__body .han-interest-choice .han-interest-select{
  min-width:0;width:100%;min-height:48px;
}
.scene9-stage.han-s9-conversation .han-s9-answer__body button{
  white-space:normal;overflow-wrap:anywhere;min-height:44px;
}
.scene9-stage.han-s9-conversation .han-s9-answer:focus-within>summary,
.scene9-stage.han-s9-conversation .han-s9-answer button:focus-visible{outline:2px solid #ffe0ae;outline-offset:2px}
.scene9-stage.han-s9-conversation>.scene9-free,
.scene9-stage.han-s9-conversation>.han-conversation-free{
  position:relative!important;inset:auto!important;transform:none!important;
  width:min(450px,100%)!important;margin:0!important;max-height:34dvh!important;overflow:auto!important;
  align-self:flex-start!important;background:rgba(24,17,14,.94);border-radius:12px;padding:12px;pointer-events:auto;
}
@media(min-width:1025px){
  .scene9-stage.han-s9-conversation{align-items:flex-end!important;padding:72px clamp(24px,4vw,64px) 26px!important;}
  .scene9-stage.han-s9-conversation>.scene9-caption,
  .scene9-stage.han-s9-conversation>.han-s9-answer,
  .scene9-stage.han-s9-conversation>.scene9-free,
  .scene9-stage.han-s9-conversation>.han-conversation-free{align-self:flex-end!important;width:min(392px,31vw)!important;max-width:min(392px,31vw)!important;}
  .scene9-stage.han-s9-conversation .han-s9-answer__body{max-height:min(46dvh,420px)}
}
@media(max-width:820px){
  .scene9-stage.han-s9-conversation{padding:70px 12px max(12px,env(safe-area-inset-bottom))!important;}
  .scene9-stage.han-s9-conversation>.scene9-caption{max-height:min(27dvh,228px)!important;padding:9px 12px!important;}
  .scene9-stage.han-s9-conversation>.han-s9-answer{max-height:unset!important;}
  .scene9-stage.han-s9-conversation .han-s9-answer__body{max-height:min(39dvh,310px);}
  .scene9-stage.han-s9-conversation .han-s9-answer>summary{min-height:48px;}
}
@media(max-height:570px){
 .scene9-stage.han-s9-conversation>.scene9-caption{max-height:28dvh!important}
 .scene9-stage.han-s9-conversation .han-s9-answer__body{max-height:30dvh}
}
@media(min-width:1025px){
  .scene9-stage--jiho.han-s9-conversation{align-items:flex-start!important;}
  .scene9-stage--jiho.han-s9-conversation>.scene9-caption,
  .scene9-stage--jiho.han-s9-conversation>.han-s9-answer{align-self:flex-start!important;}
}

/* LOT 07 — One device-adaptive answer drawer for dessert and after-dinner dialogue.
   No older panel is duplicated: previous reply rows live inside this single drawer. */
.scene10-stage:has(>.han-after-dinner-answer)>.scene10-caption,
.scene11-stage:has(>.han-after-dinner-answer)>.scene11-caption{
  width:min(500px,calc(100% - 410px));max-height:min(31svh,245px);
  margin:0 auto 0 0;overflow:auto;
}
.scene11-stage--choice:has(>.han-after-dinner-answer){
  display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-end;
  overflow:visible;gap:0;
}
.scene11-stage--choice:has(>.han-after-dinner-answer)>.scene11-caption{align-self:flex-end;flex-shrink:1;}
.han-after-dinner-answer{
  position:absolute;right:clamp(14px,3vw,44px);bottom:max(20px,env(safe-area-inset-bottom));
  z-index:24;pointer-events:auto;width:min(355px,calc(100% - 28px));
  border:1px solid rgba(245,220,187,.38);border-radius:16px;
  background:rgba(33,26,22,.90);color:#fff6e7;
  box-shadow:0 16px 42px rgba(0,0,0,.30);backdrop-filter:blur(12px);
}
.han-after-dinner-answer>summary{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:46px;padding:10px 15px;cursor:pointer;list-style:none;
  font:650 14px/1.25 system-ui,sans-serif;
}
.han-after-dinner-answer>summary::-webkit-details-marker{display:none}
.han-after-dinner-answer>summary span{transition:transform .2s ease}
.han-after-dinner-answer[open]>summary span{transform:rotate(180deg)}
.han-after-dinner-answer__body{max-height:min(43svh,390px);overflow:auto;overscroll-behavior:contain;padding:3px 9px 9px;border-top:1px solid rgba(245,220,187,.16)}
.han-after-dinner-answer .scene10-replies,.han-after-dinner-answer .scene11-replies{
  position:static!important;inset:auto!important;transform:none!important;
  display:grid!important;width:100%!important;max-width:none!important;max-height:none!important;
  padding:0!important;margin:0!important;border:0!important;background:transparent!important;
  box-shadow:none!important;backdrop-filter:none!important;overflow:visible!important;
}
.han-after-dinner-answer .han-oral-choice{width:100%;}
.han-after-dinner-answer .han-oral-choice__select{
  width:100%;padding:10px 11px;font-size:13px;min-height:46px;
}
.han-after-dinner-answer .han-oral-choice__speak{min-height:46px;}
.han-after-dinner-answer .scene-language-replies .han-oral-choice__select strong,
.han-after-dinner-answer .scene-language-replies .han-oral-choice__select span,
.han-after-dinner-answer .scene-language-replies .han-oral-choice__select small{
  display:block;text-align:left;margin:1px 0 3px;
}
.han-after-dinner-answer .scene-language-replies .han-oral-choice__select span[lang=ko]{font-size:16px;}
.han-after-dinner-answer :is(summary,button):focus-visible{outline:3px solid #f6d3af;outline-offset:2px}
@media(max-width:820px){
  .scene10-stage:has(>.han-after-dinner-answer),
  .scene11-stage:has(>.han-after-dinner-answer){padding:70px 10px max(12px,env(safe-area-inset-bottom))!important;}
  .scene10-stage:has(>.han-after-dinner-answer)>.scene10-caption,
  .scene11-stage:has(>.han-after-dinner-answer)>.scene11-caption{
    width:100%!important;max-height:min(23svh,170px)!important;
    margin:0 0 64px!important;padding:10px 12px!important;
  }
  .han-after-dinner-answer{left:10px;right:10px;bottom:max(9px,env(safe-area-inset-bottom));width:auto;}
  .han-after-dinner-answer__body{max-height:min(42svh,330px);}
  .scene10-stage:has(>.han-after-dinner-answer[open])>.scene10-caption,
  .scene11-stage:has(>.han-after-dinner-answer[open])>.scene11-caption{
    position:absolute;top:76px;left:10px;right:10px;
    width:auto!important;max-height:min(21svh,145px)!important;margin:0!important;
  }
  .scene10-stage:has(>.han-after-dinner-answer[open]),
  .scene11-stage:has(>.han-after-dinner-answer[open]){align-items:flex-start;}
}
@media(max-height:620px){
 .han-after-dinner-answer__body{max-height:38svh}
 .scene10-stage:has(>.han-after-dinner-answer[open])>.scene10-caption,
 .scene11-stage:has(>.han-after-dinner-answer[open])>.scene11-caption{max-height:18svh!important}
}
@media(prefers-reduced-motion:reduce){.han-after-dinner-answer>summary span{transition:none}}

/* LOT 08 · Farewell, photo, keepsakes: the scene retains the room / night street. */
.scene[data-mode^="scene12-"] .scene12-stage--paper{background:linear-gradient(180deg,rgba(23,17,13,.22),rgba(23,17,13,.48));backdrop-filter:none}
.scene[data-mode="scene12-favorite"] .scene__image,
.scene[data-mode="scene12-recipe"] .scene__image,
.scene[data-mode="scene12-stamp"] .scene__image,
.scene[data-mode="scene12-souvenirs"] .scene__image{filter:brightness(.7) saturate(.85)!important;transform:none!important}
/* One real transparent seal asset for the card and keepsakes, including exported HTML. */
.scene[data-mode="scene12-stamp"] .scene12-stamp-ink{
  position:relative!important;inset:auto!important;display:block!important;
  width:min(214px,43vw)!important;height:auto!important;
  max-width:100%;aspect-ratio:1;margin:10px 8px 0 auto!important;
  overflow:visible;mix-blend-mode:multiply;transform-origin:50% 45%;
  animation:hanStamp08 1.05s .22s cubic-bezier(.17,.86,.27,1) both!important;
}
.scene[data-mode="scene12-stamp"] .scene12-traveler-update__body{padding:18px 8px 12px}
.scene[data-mode="scene12-stamp"] .scene12-traveler-update__body h2,
.scene[data-mode="scene12-stamp"] .scene12-traveler-update__body p{max-width:100%;position:relative;z-index:2}
.scene[data-mode="scene12-stamp"] .scene12-traveler-update{width:min(520px,92vw);background:#f5e9d6}
@keyframes hanStamp08{
  0%{opacity:0;transform:translate3d(0,-46px,0) scale(1.32) rotate(-16deg);filter:blur(1.2px)}
  53%{opacity:.9;transform:translate3d(0,1px,0) scale(.94) rotate(-9deg);filter:blur(0)}
  67%{opacity:.62;transform:translate3d(0,0,0) scale(.975) rotate(-9deg)}
  100%{opacity:.92;transform:translate3d(0,0,0) scale(1) rotate(-9deg);filter:none}
}
.scene[data-mode="scene12-stamp"] .scene12-stamp-continue{
  opacity:1!important;animation:none!important;
  min-height:46px;padding:12px 22px;border-radius:999px;
  border:1px solid rgba(255,236,213,.45);background:rgba(28,20,15,.88);
  color:#fff;font:650 12px/1.35 system-ui,sans-serif;letter-spacing:0;
  text-transform:none;bottom:max(14px,env(safe-area-inset-bottom));white-space:normal;
  max-width:calc(100% - 28px);text-align:center
}
/* In the photo result the picture, rather than a text panel, owns the visual space. */
.scene12-stage--photo-result .scene12-photo-memory{width:min(850px,calc(100% - 36px));border-bottom-width:6px}
.scene12-stage--photo-result .scene12-photo-memory figcaption{display:grid;grid-template-columns:1fr;gap:4px;padding:10px 14px;min-height:auto}
.scene12-stage--photo-result .scene12-photo-memory figcaption small{margin:0;line-height:1.4}
.scene12-stage--photo-result .scene12-photo-memory img{max-height:52dvh;object-fit:contain;background:#f1e8d8}
/* No black void behind the recipe, and no white-on-cream leftovers in its caption or footer. */
.scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo{width:min(1000px,calc(100% - 32px));max-height:min(80dvh,820px);padding:22px;color:#3e3027;background:#f6ecde;overflow:auto}
.scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo :is(figure figcaption,footer,footer span,footer a){color:#574434!important;text-shadow:none!important}
.scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo>figure img{min-height:0;height:auto;max-height:350px;aspect-ratio:4/3;object-fit:cover}
.scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo h2{overflow-wrap:anywhere}
.scene[data-mode="scene12-recipe"] .scene12-tap{z-index:7;pointer-events:none}
.scene[data-mode="scene12-recipe"] .scene12-tap>span{pointer-events:auto;min-height:44px;padding:11px 18px;background:rgba(34,26,19,.92);color:#fff;font-size:12px;letter-spacing:0;text-transform:none}
/* Visitor responses sit in an independent lane; Korean speaking is only offered for visitor choices. */
.scene12-replies.han-spoken-replies{pointer-events:auto;display:grid;gap:7px}
.scene12-replies.han-spoken-replies .han-oral-choice{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:6px;align-items:stretch}
.scene12-replies.han-spoken-replies .han-oral-choice__select{display:grid;align-content:center;gap:3px;min-height:52px;padding:9px 13px;border:1px solid rgba(255,255,255,.15);border-radius:11px;background:rgba(255,255,255,.04);color:#fff}
.scene12-replies.han-spoken-replies .han-oral-choice__select strong{font:600 12px/1.35 system-ui,sans-serif}
.scene12-replies.han-spoken-replies .han-oral-choice__select span[lang="ko"]{font:600 17px/1.28 system-ui,sans-serif}
.scene12-replies.han-spoken-replies .han-oral-choice__select small{color:#ebd6c5;font:400 12px/1.4 system-ui,sans-serif}
.scene12-replies.han-spoken-replies .han-oral-choice__speak{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;min-height:48px;border:1px solid rgba(243,207,168,.35);border-radius:11px;background:rgba(61,42,31,.84);color:#fff;font:600 11px/1.2 system-ui,sans-serif}
.scene12-replies.han-spoken-replies .han-choice-speech-status[hidden]{display:none}
/* A calm mobile layout: portrait remains above the compact action area; buttons stay usable. */
@media(max-width:820px){
  .scene12-stage--photo-result{padding:75px 10px 54px}
  .scene12-stage--photo-result .scene12-photo-memory{width:calc(100% - 8px);border-width:5px;border-bottom-width:5px}
  .scene12-stage--photo-result .scene12-photo-memory img{max-height:43dvh}
  .scene12-stage--photo-result .scene12-photo-memory figcaption strong{font-size:12px;line-height:1.35}
  .scene[data-mode="scene12-recipe"] .scene12-stage--recipe{padding:68px 10px 74px;display:flex;align-items:center;justify-content:center}
  .scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo{display:flex;flex-direction:column;gap:10px;width:100%;max-height:calc(100dvh - 176px);padding:13px;border-radius:17px}
  .scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo>figure{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;align-items:center}
  .scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo>figure img{width:90px;height:78px;aspect-ratio:auto;border-radius:9px}
  .scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo>figure figcaption{font-size:11px}
  .scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo h2{font-size:clamp(22px,6vw,28px);margin:5px 0}
  .scene[data-mode="scene12-recipe"] .scene12-recipe-grid{grid-template-columns:1fr;gap:7px}
  .scene[data-mode="scene12-recipe"] .scene12-recipe-grid section{padding:11px}
  .scene[data-mode="scene12-recipe"] .scene12-recipe-grid li{font-size:13px;line-height:1.4;margin:4px 0}
  .scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo footer{display:grid;gap:8px}
  .scene[data-mode="scene12-recipe"] .scene12-tap span{bottom:calc(10px + env(safe-area-inset-bottom));width:min(340px,calc(100% - 25px));justify-content:center;white-space:normal}
  .scene[data-mode="scene12-stamp"] .scene12-stage--stamp{padding:64px 12px 74px;align-items:center}
  .scene[data-mode="scene12-stamp"] .scene12-traveler-update{width:100%;padding:14px;border-radius:18px}
  .scene[data-mode="scene12-stamp"] .scene12-traveler-update__body h2{font-size:clamp(26px,7vw,34px)!important;max-width:100%}
  .scene[data-mode="scene12-stamp"] .scene12-stamp-ink{width:min(174px,46vw)!important;margin:9px auto 0!important}
  .scene12-replies.han-spoken-replies .han-oral-choice{grid-template-columns:minmax(0,1fr) 56px}
  .scene12-replies.han-spoken-replies .han-oral-choice__speak{font-size:10px}
  .scene[data-mode="scene12-farewell"] .scene12-caption{max-height:46dvh!important;overflow:auto}
  .scene[data-mode="scene12-souvenirs"] .scene12-souvenir-shell{width:100%;padding:13px}
  .scene[data-mode="scene12-souvenirs"] .scene12-souvenir-grid--human{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){.scene[data-mode="scene12-stamp"] .scene12-stamp-ink{animation:none!important;opacity:.92;transform:rotate(-9deg)}}
/* Single treated imprint in every retained-memory view. */
.scene12-souvenir-seal,.han-keepsake-seal{width:min(170px,45vw);height:auto;aspect-ratio:1;display:block;align-self:center;mix-blend-mode:multiply;transform:rotate(-8deg)}
.han-keepsake-seal{width:min(155px,43vw);margin:auto}
.scene12-souvenir-stamp .scene12-souvenir-seal{max-height:180px;object-fit:contain}
.scene[data-mode="scene12-stamp"] .scene12-stage--stamp{align-items:center;justify-content:center;padding-bottom:80px}
.scene[data-mode="scene12-recipe"] .scene12-stage--recipe{align-items:stretch;justify-content:center;padding-bottom:78px}
.scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo{scrollbar-width:thin;scrollbar-color:#ab8f71 #f4ebdf}
.scene[data-mode="scene12-souvenirs"] .scene12-souvenir-shell{background:rgba(33,25,19,.82);backdrop-filter:blur(9px)}
@media(max-width:820px){
  .scene[data-mode="scene12-stamp"] .scene12-stage--stamp{padding-bottom:76px}
  .scene12-replies.han-spoken-replies{max-height:min(46dvh,345px);overflow:auto}
  .scene12-replies.han-spoken-replies .han-oral-choice__select{font-size:13px!important;text-align:left}
}
/* Separate desktop conversation lanes, without covering the family's center frame. */
@media(min-width:1024px){
 .scene[data-mode="scene12-time"] .scene12-stage:has(>.scene12-replies),
 .scene[data-mode="scene12-container"] .scene12-stage:has(>.scene12-replies),
 .scene[data-mode="scene12-farewell"] .scene12-stage:has(>.scene12-replies){
   display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;
   gap:clamp(30px,8vw,160px);padding:90px 38px 54px;overflow:visible;
 }
 .scene[data-mode="scene12-time"] .scene12-stage:has(>.scene12-replies)>.scene12-caption,
 .scene[data-mode="scene12-container"] .scene12-stage:has(>.scene12-replies)>.scene12-caption,
 .scene[data-mode="scene12-farewell"] .scene12-stage:has(>.scene12-replies)>.scene12-caption{
   position:relative!important;inset:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
   margin:0!important;width:min(390px,30vw)!important;max-height:55dvh!important;
   overflow:auto!important;flex:0 1 390px;align-self:flex-end
 }
 .scene[data-mode="scene12-time"] .scene12-stage:has(>.scene12-replies)>.scene12-replies,
 .scene[data-mode="scene12-container"] .scene12-stage:has(>.scene12-replies)>.scene12-replies,
 .scene[data-mode="scene12-farewell"] .scene12-stage:has(>.scene12-replies)>.scene12-replies{
   position:relative!important;inset:auto!important;left:auto!important;right:auto!important;bottom:auto!important;
   transform:none!important;margin:0!important;width:min(390px,30vw)!important;max-height:55dvh!important;
   overflow:auto!important;flex:0 1 390px;align-self:flex-end
 }
}

/* QA11: user chooses freely, or practises ONE reply in a compact voluntary panel.
   The 'Dire' label must NEVER break into two lines. */
.han-oral-choice{grid-template-columns:minmax(0,1fr) 79px!important;gap:7px!important}
.han-oral-choice .han-oral-choice__speak{width:79px!important;max-width:none!important;min-width:79px!important;
  white-space:nowrap!important;overflow:hidden!important;word-break:keep-all!important;
  font:650 12px/1.2 system-ui,sans-serif!important;padding:8px 7px!important;
}
.han-spoken-replies.is-practicing{overflow-y:auto!important;max-height:min(43dvh,340px)!important;
  grid-template-columns:minmax(0,1fr)!important;padding:0!important;}
.han-spoken-replies.is-practicing>:not(.han-practice-sheet){display:none!important}
.han-practice-sheet{width:100%;min-width:0;max-height:100%;overflow-y:auto;padding:12px;
  border:1px solid rgba(255,231,204,.30);border-radius:13px;background:rgba(29,21,18,.96);color:#fff;
  font:400 14px/1.4 system-ui,sans-serif;box-sizing:border-box;}
.han-practice-sheet__label{font:700 11px/1.2 system-ui,sans-serif;letter-spacing:.1em;color:#edd0ae;margin:0 0 8px}
.han-practice-sheet__phrase{font:600 clamp(19px,5vw,25px)/1.3 system-ui,sans-serif;color:#fff;margin:0 0 8px;overflow-wrap:anywhere}
.han-practice-sheet__help{margin:0 0 12px;font-size:12px;line-height:1.3;color:#ead8c6}
.han-practice-sheet__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.han-practice-sheet__actions button{min-height:44px!important;min-width:0;width:100%;padding:8px!important;
  font:650 12px/1.25 system-ui,sans-serif!important;text-align:center!important;border-radius:10px!important;
  background:rgba(124,82,56,.54);border:1px solid rgba(255,234,208,.35);color:#fff;white-space:normal!important;}
.han-practice-sheet__actions button:focus-visible{outline:2px solid #ffdfb7;outline-offset:2px}
.han-practice-sheet .han-choice-speech-status:not([hidden]){display:block!important;margin-top:8px}
@media(max-width:820px){
 .han-oral-choice{grid-template-columns:minmax(0,1fr) 76px!important}
 .han-oral-choice .han-oral-choice__speak{width:76px!important;min-width:76px!important;font-size:12px!important}
 .scene12-replies.han-spoken-replies .han-oral-choice{grid-template-columns:minmax(0,1fr) 76px!important}
 .han-practice-sheet{padding:10px}
}

/* QA11 · scène 8 : choix volontaires, pas trois réponses qui mangent l'image dès l'arrivée. */
.scene[data-mode="scene8-bibimbap"] .han-s8-answer{position:relative!important;inset:auto!important;
  order:2;flex:0 0 auto;align-self:flex-start;width:min(600px,100%);max-width:100%;
  max-height:min(43dvh,370px);overflow-y:auto;z-index:8;margin:0!important;
  color:#fff;background:rgba(24,17,13,.88);border:1px solid rgba(255,235,208,.30);
  border-radius:15px;box-shadow:0 12px 30px rgba(0,0,0,.21);backdrop-filter:blur(10px)}
.scene[data-mode="scene8-bibimbap"] .han-s8-answer>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;
  min-height:48px;padding:10px 16px;cursor:pointer;font:700 14px/1.3 system-ui,sans-serif}
.scene[data-mode="scene8-bibimbap"] .han-s8-answer>summary::-webkit-details-marker{display:none}
.scene[data-mode="scene8-bibimbap"] .han-s8-answer[open]>summary span{transform:rotate(180deg)}
.scene[data-mode="scene8-bibimbap"] .han-s8-answer__body{padding:0 8px 8px}
.scene[data-mode="scene8-bibimbap"] .han-s8-answer .scene8-life-replies{
  position:relative!important;inset:auto!important;transform:none!important;display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;width:100%!important;max-width:none!important;
  max-height:min(32dvh,275px);overflow-y:auto!important;margin:0!important;gap:6px}
.scene[data-mode="scene8-bibimbap"] .han-s8-answer .han-oral-choice{width:100%}
@media(max-width:820px){
  .scene[data-mode="scene8-bibimbap"] .han-s8-answer{width:100%;max-height:min(43dvh,350px)}
  .scene[data-mode="scene8-bibimbap"] .han-s8-answer .scene8-life-replies{max-height:min(31dvh,265px)}
  .scene[data-mode="scene8-bibimbap"] .han-s8-answer[open]{max-height:min(46dvh,390px)}
}
.scene[data-mode="scene8-bibimbap"] .han-s8-answer,
.scene[data-mode="scene8-bibimbap"] .han-s8-answer summary,
.scene[data-mode="scene8-bibimbap"] .han-s8-answer__body{pointer-events:auto!important}

/* QA11: same one-phrase reply flow for Seo-yeon's interest question. */
.han-conversation-choices.is-practicing{overflow:auto!important;max-height:min(45dvh,360px)!important;display:block!important}
.han-conversation-choices.is-practicing>:not(.han-practice-sheet){display:none!important}
.han-conversation-choices.is-practicing>.han-practice-sheet{max-height:none!important}
/* LOT13 — touch targets: compact icons remain readable/tappable on real phones. */
@media (max-width:820px){
  .scene-lang-icon{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;flex:0 0 44px!important}
  .scene-content .audio-chip:not(.audio-chip--text),
  .scene-content .mic-chip:not(.mic-chip--text){width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;flex:0 0 44px!important}
}


/* =========================================================
   LOT17 — DINNER COMPOSITION FINAL
   One ownership model for the dinner welcome and pouring gesture.
   These stages deliberately opt out of generic flow stacking.
   ========================================================= */
.han-invite-thread{
  margin:0 0 14px!important;padding:10px 12px;border-left:2px solid rgba(239,183,148,.65);
  background:rgba(72,48,34,.22);color:rgba(255,255,255,.83)!important;
  font:400 14px/1.48 Inter,system-ui,sans-serif!important
}
.scene[data-mode="scene8-welcome"] .han-meal-welcome,
.scene[data-mode="scene8-pour"] .han-meal-pour{
  position:absolute!important;inset:0!important;height:100%!important;box-sizing:border-box!important;
  isolation:isolate;overflow:hidden!important
}
.scene[data-mode="scene8-welcome"] .han-meal-voice,
.scene[data-mode="scene8-pour"] .han-meal-voice{
  position:absolute!important;z-index:8!important;left:clamp(20px,4vw,58px)!important;right:auto!important;
  top:auto!important;bottom:92px!important;width:min(420px,34vw)!important;max-width:calc(100vw - 40px)!important;
  max-height:min(31dvh,245px)!important;overflow-y:auto!important;margin:0!important;padding:13px 16px!important;
  border:1px solid rgba(255,235,212,.22)!important;border-radius:15px!important;
  background:rgba(24,18,14,.79)!important;backdrop-filter:blur(10px);box-shadow:0 15px 38px rgba(0,0,0,.22)
}
.scene[data-mode="scene8-welcome"] .han-meal-next,
.scene[data-mode="scene8-pour"] .han-meal-next{
  position:absolute!important;z-index:9!important;left:clamp(20px,4vw,58px)!important;right:auto!important;
  top:auto!important;bottom:26px!important;width:min(420px,34vw)!important;max-width:calc(100vw - 40px)!important;
  min-height:48px;margin:0!important;padding:10px 15px;border:1px solid rgba(255,231,204,.36);border-radius:13px;
  background:rgba(37,27,21,.9);color:#fff6ea;font:650 14px/1.3 Inter,system-ui,sans-serif;text-align:left;cursor:pointer
}
.scene[data-mode="scene8-pour"] .han-meal-pour--start>.han-meal-voice{
  bottom:24px!important;width:min(335px,28vw)!important;max-height:125px!important
}
.han-pour-hotspot{
  position:absolute;z-index:7;right:1.5%;top:35%;width:37%;height:49%;border:0;background:transparent;cursor:pointer;
  color:#fff;display:flex;align-items:flex-end;justify-content:center;padding:0 4% 5%;
}
.han-pour-hotspot::before{
  content:"";position:absolute;inset:5% 8% 7%;border:1px solid transparent;border-radius:28px;transition:.18s ease;
}
.han-pour-hotspot:hover::before,.han-pour-hotspot:focus-visible::before{border-color:rgba(255,232,204,.52);background:rgba(255,255,255,.035)}
.han-pour-hotspot:focus-visible{outline:none}
.han-pour-hotspot span{
  position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 14px;
  border:1px solid rgba(255,235,212,.4);border-radius:999px;background:rgba(31,23,18,.84);backdrop-filter:blur(8px);
  font:700 13px/1.2 Inter,system-ui,sans-serif;box-shadow:0 8px 24px rgba(0,0,0,.2)
}
.scene[data-mode="scene8-pour"] .han-cultural-beat{margin-top:8px!important;padding:8px 10px!important;border-left:2px solid rgba(239,183,148,.75);background:rgba(99,65,43,.52);font-size:12.5px!important;line-height:1.4!important}

@media(max-width:820px){
  .scene[data-mode="scene8-welcome"] .han-meal-voice,
  .scene[data-mode="scene8-pour"] .han-meal-voice{
    left:12px!important;right:12px!important;width:auto!important;max-width:none!important;
    bottom:max(78px,calc(env(safe-area-inset-bottom) + 72px))!important;
    max-height:min(29dvh,220px)!important;padding:10px 12px!important
  }
  .scene[data-mode="scene8-welcome"] .han-meal-next,
  .scene[data-mode="scene8-pour"] .han-meal-next{
    left:12px!important;right:12px!important;width:auto!important;max-width:none!important;
    bottom:max(12px,env(safe-area-inset-bottom))!important;min-height:50px!important;text-align:center
  }
  .scene[data-mode="scene8-pour"] .han-meal-pour--start>.han-meal-voice{
    left:12px!important;right:auto!important;width:min(62vw,255px)!important;bottom:max(16px,env(safe-area-inset-bottom))!important;
    max-height:118px!important;padding:9px 11px!important
  }
  .han-pour-hotspot{right:0;top:36%;width:48%;height:44%;padding:0 7% 3%}
  .han-pour-hotspot span{min-height:40px;padding:7px 11px;font-size:12px}
  .scene[data-mode="scene8-pour"] .han-meal-pour--done>.han-meal-voice{
    max-height:min(33dvh,260px)!important
  }
}
@media(max-width:390px){
  .scene[data-mode="scene8-welcome"] .han-meal-voice,
  .scene[data-mode="scene8-pour"] .han-meal-voice{max-height:min(28dvh,205px)!important}
  .scene[data-mode="scene8-pour"] .han-meal-pour--done>.han-meal-voice{max-height:min(35dvh,270px)!important}
}


/* LOT18 · ouverture et réponses orales : le monde reste visible, la voix reste facultative. */
.han-scene1-oral{display:grid;gap:8px;min-width:0}
.han-conversation-replies .han-scene1-oral .han-oral-choice{width:100%;grid-template-columns:minmax(0,1fr) 78px!important}
.han-conversation-replies .han-scene1-oral .han-oral-choice__select{font-family:Georgia,"Times New Roman",serif!important;font-size:14px!important;line-height:1.35!important}
.han-conversation-replies .han-scene1-oral .han-oral-choice__speak{width:78px!important;min-width:78px!important}
.scene5-gift-spoken,.scene7-greeting-spoken{width:100%;min-width:0}
.scene5-gift-spoken .han-oral-choice,.scene7-greeting-spoken .han-oral-choice{width:100%}
.scene7-choice-dock>.scene7-greeting-spoken{grid-column:1/-1}
@media(min-width:821px){
  .scene[data-mode="papa2"] .han-conversation-replies,.scene[data-mode="branch1"] .han-conversation-replies,.scene[data-mode="branch2"] .han-conversation-replies{width:min(455px,36vw)!important;max-height:min(64dvh,560px)!important}
  .scene[data-mode="papa2"] .han-conversation-dialogue,.scene[data-mode="branch1"] .han-conversation-dialogue,.scene[data-mode="branch2"] .han-conversation-dialogue{width:min(390px,31vw)!important}
}
@media(max-width:820px){
  .han-conversation-replies .han-scene1-oral .han-oral-choice{grid-template-columns:minmax(0,1fr) 70px!important}
  .han-conversation-replies .han-scene1-oral .han-oral-choice__speak{width:70px!important;min-width:70px!important}
  .scene[data-mode="papa2"] .han-conversation-replies,.scene[data-mode="branch1"] .han-conversation-replies,.scene[data-mode="branch2"] .han-conversation-replies{max-height:min(50dvh,420px)!important}
}

/* LOT18 · focused oral practice: one phrase at a time, not a second menu on top of the first. */
.han-reply-sheet__choices.is-practicing>:not(.han-practice-sheet),
.story-actions.is-practicing>:not(.han-practice-sheet),
.choice-language-row.is-practicing>:not(.han-practice-sheet){display:none!important}
.han-reply-sheet__choices.is-practicing,.story-actions.is-practicing,.choice-language-row.is-practicing{display:block!important;overflow:auto!important}
.han-reply-sheet__choices.is-practicing>.han-practice-sheet,.story-actions.is-practicing>.han-practice-sheet,.choice-language-row.is-practicing>.han-practice-sheet{max-height:none!important}

/* LOT20 · object-led water service: no visitor hands, reusable transparent elements. */
.han-water-service{overflow:hidden}
.han-water-objects{position:absolute;inset:auto 4% 5% auto;width:min(42vw,520px);height:min(40vh,420px);pointer-events:none;z-index:8}
.han-water-objects img{position:absolute;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(0,0,0,.24))}
.han-water-carafe{width:68%;right:20%;bottom:-4%;transform-origin:64% 72%;transition:transform .65s ease}
.han-water-carafe--tilted{transform:rotate(-20deg) translate(-5%,-6%)}
.han-water-glass{width:38%;right:0;bottom:0}
.scene8-stage--pour .han-pour-hotspot{z-index:18}
@media(max-width:820px){
  .han-water-objects{width:68vw;height:34vh;right:2%;bottom:7%}
  .han-water-carafe{width:70%;right:18%}
  .han-water-glass{width:40%;right:0}
}
@media(prefers-reduced-motion:reduce){.han-water-carafe{transition:none}}

/* S6 object lock: the mandarin hotspot tracks the photographed basket while
   the caption and the alternative "leave it between us" action stay in their
   own readable lanes. This final scoped rule wins over older generic object
   flow rules without introducing another layout system. */
.scene[data-mode="scene6-mandarin"] .han-s6-mandarin--object-led{
  position:absolute!important;inset:0!important;display:block!important;
  pointer-events:none!important;overflow:hidden!important;
}
.scene[data-mode="scene6-mandarin"] .han-s6-mandarin--object-led>.scene6-caption{
  position:absolute!important;z-index:6!important;left:clamp(12px,3vw,42px)!important;
  top:clamp(72px,11vh,120px)!important;right:auto!important;bottom:auto!important;
  width:min(390px,calc(100% - 24px))!important;max-width:none!important;
  max-height:min(30dvh,260px)!important;overflow:auto!important;margin:0!important;
  pointer-events:none!important;
}
.scene[data-mode="scene6-mandarin"] .han-s6-mandarin-hotspot{
  position:absolute!important;z-index:7!important;left:44%!important;top:68%!important;
  width:clamp(150px,31vw,430px)!important;height:clamp(100px,24vh,230px)!important;
  pointer-events:auto!important;touch-action:manipulation!important;
}
.scene[data-mode="scene6-mandarin"] .han-s6-mandarin-pass{
  position:absolute!important;z-index:8!important;right:clamp(12px,3vw,42px)!important;
  left:auto!important;bottom:max(14px,env(safe-area-inset-bottom))!important;
  pointer-events:auto!important;touch-action:manipulation!important;
}
@media(max-width:820px){
  .scene[data-mode="scene6-mandarin"] .han-s6-mandarin--object-led>.scene6-caption{
    left:12px!important;right:12px!important;top:70px!important;width:auto!important;
    max-height:min(25dvh,220px)!important;
  }
  .scene[data-mode="scene6-mandarin"] .han-s6-mandarin-hotspot{
    left:43%!important;top:68%!important;width:62vw!important;height:29vh!important;
  }
  .scene[data-mode="scene6-mandarin"] .han-s6-mandarin-pass{
    left:12px!important;right:12px!important;bottom:max(12px,env(safe-area-inset-bottom))!important;
    width:auto!important;transform:none!important;text-align:center!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .scene[data-mode="scene6-mandarin"] .han-s6-mandarin-hotspot::before{animation:none!important}
}

/* LOT20 · S8 identity-neutral bibimbap object layer. No visitor hand is rendered. */
.han-bibimbap-object{position:absolute;right:7%;bottom:3%;width:min(36vw,460px);height:min(38vh,390px);pointer-events:none;z-index:8}
.han-bibimbap-bowl{position:absolute;width:86%;right:0;bottom:-2%;object-fit:contain;filter:drop-shadow(0 16px 22px rgba(0,0,0,.28))}
.han-bibimbap-spoon{position:absolute;width:26%;right:25%;bottom:10%;transform:rotate(-32deg);transform-origin:75% 78%;filter:drop-shadow(0 10px 12px rgba(0,0,0,.24));animation:han-spoon-breathe 2.4s ease-in-out infinite}
.han-bibimbap-spoon--mixed{right:5%;bottom:16%;transform:rotate(-18deg)}
@keyframes han-spoon-breathe{0%,100%{translate:0 0}50%{translate:-3px -4px}}
@media(max-width:820px){.han-bibimbap-object{right:-4%;bottom:6%;width:66vw;height:32vh}.han-bibimbap-bowl{width:92%}.han-bibimbap-spoon{width:28%;right:24%;bottom:12%}.han-bibimbap-spoon--mixed{right:3%;bottom:18%}}
@media(prefers-reduced-motion:reduce){.han-bibimbap-spoon{animation:none}}

/* Responsive recipe-card imagery: the mobile table keeps its portrait crop
   instead of inheriting the desktop panorama inside the card. */
.scene12-recipe-card--photo>figure>picture{display:block;flex:1 1 auto;min-height:0;width:100%}
.scene12-recipe-card--photo>figure>picture img{display:block;width:100%;height:100%;min-height:330px;object-fit:cover;border-radius:18px}
@media(max-width:820px){
  .scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo>figure>picture{width:90px;height:78px;flex:none}
  .scene[data-mode="scene12-recipe"] .scene12-recipe-card--photo>figure>picture img{width:90px;height:78px;min-height:0;border-radius:9px}
}

/* HUMAN UI / AUDIO PASS · reduced-motion speech feedback.
   Keep the active line legible, but do not animate a text sweep for visitors
   who have asked the browser to reduce motion. */
@media(prefers-reduced-motion:reduce){
  .scene-lang-line.is-speaking>strong,
  .language-block.is-speaking .korean-follow,
  .choice-language-row.is-speaking .korean-follow,
  .scene5-offscreen.is-speaking>strong,
  .scene9-stage .scene-lang-line--conversation.is-speaking>.korean-follow,
  .scene-lang-line.is-speaking>strong::after,
  .language-block.is-speaking .korean-follow::after,
  .scene9-stage .scene-lang-line--conversation.is-speaking>.korean-follow::after{
    animation:none!important;
    background:none!important;
    color:#fff!important;
    filter:none!important;
  }
}

/* === HAN UI / INTERACTIONS PASS 02 · 2026-09-26 ===
   Consolidated overrides: one conversation surface, lived-object interactions,
   mobile-first safe zones. This block intentionally supersedes earlier local
   panel sizing rules without creating a second stylesheet. */

:root{
  --han-gold:#e6b97d;
  --han-gold-soft:rgba(230,185,125,.28);
  --han-panel:rgba(13,11,10,.64);
  --han-panel-soft:rgba(13,11,10,.48);
}

/* Questions addressed to the visitor get one warm cue, never a full-screen effect. */
.scene6-caption--question,.scene7-caption--question,.scene8-caption--question,
.scene9-caption--question,.scene10-caption--question,.scene11-caption--question,.scene12-caption--question,
.han-question-focus .scene6-caption,.scene7-choice-panel,.scene8-choice-panel{
  border-color:rgba(230,185,125,.42)!important;
  box-shadow:0 18px 46px rgba(0,0,0,.20),0 0 0 1px rgba(230,185,125,.08),0 0 28px rgba(230,185,125,.10)!important;
}
@keyframes hanQuestionBreath{0%{box-shadow:0 18px 46px rgba(0,0,0,.20),0 0 0 0 rgba(230,185,125,.18)}55%{box-shadow:0 18px 46px rgba(0,0,0,.20),0 0 0 7px rgba(230,185,125,.035)}100%{box-shadow:0 18px 46px rgba(0,0,0,.20),0 0 0 1px rgba(230,185,125,.08)}}
.scene6-caption--question,.scene7-caption--question,.scene8-caption--question,
.scene9-caption--question,.scene10-caption--question,.scene11-caption--question,.scene12-caption--question,
.han-question-focus .scene6-caption{animation:hanQuestionBreath .9s ease-out 1}

/* Spoken reply UX: pick the sentence first, then reveal only its actions. */
.han-answer-option{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:0!important;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(30,23,19,.58);overflow:hidden;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.han-answer-option+.han-answer-option{margin-top:6px}
.han-answer-option.is-selected{border-color:rgba(230,185,125,.48);background:rgba(52,38,29,.76);box-shadow:0 0 0 1px rgba(230,185,125,.10)}
.han-answer-preview,.han-answer-option .han-oral-choice__select{border:0!important;border-radius:0!important;background:transparent!important;min-height:48px!important;padding:11px 13px!important;color:#fff!important;text-align:left!important;width:100%!important;box-shadow:none!important}
.han-answer-actions,.han-oral-choice__actions{display:none!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0 9px 9px}
.han-answer-option.is-selected .han-answer-actions,.han-answer-option.is-selected .han-oral-choice__actions{display:grid!important}
.han-answer-tool{min-height:44px;border:1px solid rgba(255,255,255,.14)!important;border-radius:10px!important;background:rgba(255,255,255,.055)!important;color:#fff!important;padding:8px 10px!important;font:700 10px/1.15 system-ui,sans-serif!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important}
.han-answer-tool--send{background:rgba(230,185,125,.16)!important;border-color:rgba(230,185,125,.40)!important;color:#fff4e5!important}
.han-answer-preview:focus-visible,.han-answer-tool:focus-visible{outline:3px solid rgba(246,211,175,.9)!important;outline-offset:2px!important}
.choice-language-row.han-answer-option{grid-template-columns:1fr!important}
.choice-language-row.han-answer-option .choice-language-actions{grid-column:1!important;margin:0!important;width:auto!important}

/* S6: greeting follows a visible family cue; no binary etiquette quiz. */
.scene6-stage--grandma-approach .scene6-greeting-actions{display:flex;justify-content:flex-start;align-items:center;gap:8px;max-width:min(520px,100%)}
.scene6-stay-seated{display:none!important}

/* S6: the mandarin is now a tactile object with actual visual states. */
.han-s6-mandarin--tactile{pointer-events:none;overflow:hidden}
.han-s6-mandarin--tactile>.scene6-caption{position:absolute!important;z-index:8;left:clamp(14px,3vw,42px);top:clamp(76px,10vh,116px);bottom:auto!important;width:min(390px,calc(100% - 28px))!important;max-height:30vh;overflow:auto;pointer-events:none}
.han-s6-mandarin-object{position:absolute;z-index:9;left:51%;top:63%;width:clamp(142px,19vw,250px);aspect-ratio:1;border:0;background:transparent;transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer;touch-action:manipulation;filter:drop-shadow(0 22px 24px rgba(0,0,0,.32));transition:transform .18s ease,filter .18s ease}
.han-s6-mandarin-object img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.han-s6-mandarin-object span{position:absolute;left:50%;bottom:-4px;transform:translate(-50%,100%);padding:7px 10px;border:1px solid rgba(255,236,208,.28);border-radius:999px;background:rgba(22,16,12,.70);backdrop-filter:blur(8px);color:#fff;font:700 9px/1 system-ui,sans-serif;white-space:nowrap;opacity:.88}
.han-s6-mandarin-object:not(.is-open)::after{content:'';position:absolute;inset:12%;border:1px solid rgba(248,206,146,.55);border-radius:50%;box-shadow:0 0 0 8px rgba(228,158,86,.07);animation:hanObjectPulse 2.15s ease-in-out infinite;pointer-events:none}
.han-s6-mandarin-object:hover,.han-s6-mandarin-object:focus-visible{transform:translate(-50%,-50%) scale(1.035);filter:drop-shadow(0 24px 28px rgba(0,0,0,.38)) brightness(1.035);outline:none}
.han-s6-mandarin--tactile>.scene-flow-next{position:absolute!important;z-index:10;right:clamp(12px,3vw,38px)!important;left:auto!important;bottom:max(14px,env(safe-area-inset-bottom))!important;transform:none!important;width:auto!important;max-width:min(330px,calc(100% - 24px))}

/* S7: world-led sink cue. */
.han-s7-world-cue{pointer-events:none}
.han-s7-world-cue>.scene7-caption{position:absolute!important;z-index:7;left:clamp(14px,3vw,38px);top:clamp(76px,11vh,118px);bottom:auto!important;width:min(400px,calc(100% - 28px))!important;max-height:28vh!important;overflow:auto;pointer-events:none}
.han-s7-world-faucet{position:absolute;z-index:8;left:52%;top:48%;width:clamp(110px,16vw,190px);height:clamp(90px,15vh,150px);border:0;background:transparent;border-radius:50%;pointer-events:auto;cursor:pointer}
.han-s7-world-faucet::after{content:'';position:absolute;inset:20%;border:1px solid rgba(239,206,166,.64);border-radius:50%;box-shadow:0 0 0 8px rgba(224,172,116,.07);animation:hanObjectPulse 2.2s ease-in-out infinite}
.han-s7-world-faucet:focus-visible{outline:3px solid rgba(246,211,175,.9);outline-offset:4px}
.han-s7-world-cue>.scene-flow-next{position:absolute!important;z-index:8;right:clamp(12px,3vw,38px)!important;left:auto!important;bottom:max(14px,env(safe-area-inset-bottom))!important;transform:none!important;width:auto!important}
.han-s7-sink .han-s7-faucet-target{background:transparent!important;border:0!important;box-shadow:none!important}
.han-s7-sink .han-s7-faucet-target>span{position:absolute;left:50%;bottom:-10px;transform:translate(-50%,100%);min-width:70px;padding:6px 8px;border-radius:999px;background:rgba(18,14,11,.66);color:#fff;font:700 9px/1 system-ui,sans-serif;white-space:nowrap}
.han-s7-faucet-target--phase-1>span,.han-s7-faucet-target--phase-2>span{display:none}

/* S8: carafe is a draggable object, not a 'Pour' button. */
.han-water-objects{pointer-events:none}
.han-water-carafe-wrap,.han-water-glass-wrap{position:absolute;pointer-events:auto}
.han-water-carafe-wrap{left:31%;bottom:7%;width:clamp(100px,12vw,168px);transform:translate(var(--carafe-x,0),var(--carafe-y,0));touch-action:none;cursor:grab;transition:transform .2s ease,filter .2s ease,opacity .18s ease;z-index:9}
.han-water-carafe-wrap img{position:static!important;width:100%!important;max-width:none!important;pointer-events:none}
.han-water-carafe-wrap.is-dragging{cursor:grabbing;transition:none;filter:drop-shadow(0 18px 22px rgba(0,0,0,.42)) brightness(1.04)}
.han-water-carafe-wrap.is-pouring{opacity:.25;transform:translate(var(--carafe-x,0),var(--carafe-y,0)) rotate(-18deg) scale(.92)}
.han-water-carafe-wrap:focus-visible{outline:3px solid rgba(246,211,175,.9);outline-offset:4px;border-radius:18px}
.han-water-glass-wrap{right:31%;bottom:8%;width:clamp(76px,8vw,116px);z-index:8;border-radius:50%;transition:box-shadow .2s ease,transform .2s ease}
.han-water-glass-wrap img{position:static!important;width:100%!important;max-width:none!important;pointer-events:none}
.han-water-glass-wrap.is-ready{box-shadow:0 0 0 9px rgba(230,185,125,.10),0 0 30px rgba(230,185,125,.20);transform:scale(1.05)}
.han-pour-hotspot{display:none!important}
.han-water-service>.scene8-caption{pointer-events:none}

/* Desktop: use the width instead of enlarging the mobile panel. */
@media(min-width:821px){
  .scene6-caption,.scene7-caption,.scene8-caption,.scene9-caption,.scene10-caption,.scene11-caption,.scene12-caption{width:min(600px,43vw)!important;max-width:620px!important;max-height:42vh!important;overflow:auto!important;padding:16px 18px!important;background:linear-gradient(135deg,rgba(13,11,10,.68),rgba(13,11,10,.44))!important}
  .scene6-choice-dock,.scene7-choice-dock,.scene7-choice-panel,.scene8-choice-panel,.scene9-replies,.scene10-replies,.scene11-replies,.scene12-replies{width:min(620px,46vw)!important;max-width:660px!important}
  .han-spoken-replies{width:min(620px,46vw)}
  .han-answer-actions,.han-oral-choice__actions{grid-template-columns:repeat(3,minmax(96px,1fr))}
}

/* Mobile: one compact lower surface. Replies replace, they do not stack upward. */
@media(max-width:820px){
  .scene6-stage,.scene7-stage,.scene8-stage,.scene9-stage,.scene10-stage,.scene11-stage,.scene12-stage{padding-left:10px!important;padding-right:10px!important;padding-bottom:max(10px,env(safe-area-inset-bottom))!important}
  .scene6-caption,.scene7-caption,.scene8-caption,.scene9-caption,.scene10-caption,.scene11-caption,.scene12-caption,
  .scene6-choice-dock,.scene7-choice-dock,.scene7-choice-panel,.scene8-choice-panel,.scene9-replies,.scene10-replies,.scene11-replies,.scene12-replies{
    width:100%!important;max-width:none!important;max-height:34svh!important;overflow:auto!important;overscroll-behavior:contain!important;border-radius:15px!important;padding:11px 12px!important;background:linear-gradient(135deg,rgba(12,10,9,.76),rgba(12,10,9,.58))!important;box-shadow:0 14px 40px rgba(0,0,0,.26)!important
  }
  .scene6-caption>p,.scene7-caption p,.scene8-caption p,.scene9-caption>p,.scene10-caption p,.scene11-caption p,.scene12-caption p,.scene6-spoken,.scene7-spoken,.scene8-spoken,.scene9-spoken,.scene10-spoken,.scene11-spoken,.scene12-spoken{font-size:14px!important;line-height:1.43!important}
  .scene6-caption>strong,.scene7-caption>strong,.scene8-caption>strong,.scene9-caption>strong,.scene10-caption>strong,.scene11-caption>strong,.scene12-caption>strong{font-size:20px!important;line-height:1.14!important}
  .scene-lang-line>strong{font-size:20px!important;line-height:1.32!important}
  .scene-lang-help,.scene-lang-meaning,.scene-lang-disclosure{font-size:12.5px!important}
  .han-answer-option{border-radius:12px}
  .han-answer-preview,.han-answer-option .han-oral-choice__select{min-height:46px!important;padding:10px 11px!important;font-size:13.5px!important}
  .han-answer-actions,.han-oral-choice__actions{grid-template-columns:repeat(3,minmax(0,1fr));padding:0 7px 7px;gap:5px}
  .han-answer-tool{min-height:44px!important;font-size:9.5px!important;padding:7px 6px!important}
  .han-s6-mandarin--tactile>.scene6-caption{top:68px!important;left:10px!important;width:min(310px,calc(100% - 20px))!important;max-height:22svh!important;padding:10px 11px!important}
  .han-s6-mandarin-object{left:50%;top:58%;width:min(42vw,172px)}
  .han-s6-mandarin-object span{font-size:8px;padding:6px 8px}
  .han-s6-mandarin--tactile>.scene-flow-next{left:50%!important;right:auto!important;bottom:max(8px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;width:calc(100% - 20px)!important;max-width:none!important}
  .han-s7-world-cue>.scene7-caption{top:68px!important;left:10px!important;width:min(310px,calc(100% - 20px))!important;max-height:21svh!important;padding:10px 11px!important}
  .han-s7-world-faucet{left:55%;top:47%;width:32vw;height:18vh}
  .han-s7-world-cue>.scene-flow-next{left:50%!important;right:auto!important;bottom:max(8px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;width:calc(100% - 20px)!important;max-width:none!important}
  .han-water-carafe-wrap{left:20%;bottom:12%;width:min(24vw,108px)}
  .han-water-glass-wrap{right:20%;bottom:12%;width:min(18vw,82px)}
  .han-water-service>.scene8-caption{position:absolute!important;left:10px!important;right:auto!important;top:68px!important;bottom:auto!important;width:min(310px,calc(100% - 20px))!important;max-height:21svh!important;padding:10px 11px!important}
  .han-meal-pour--done>.scene-flow-next{position:absolute!important;left:50%!important;bottom:max(8px,env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;width:calc(100% - 20px)!important}
}

@media(max-width:390px){
  .scene6-caption,.scene7-caption,.scene8-caption,.scene9-caption,.scene10-caption,.scene11-caption,.scene12-caption,
  .scene6-choice-dock,.scene7-choice-dock,.scene7-choice-panel,.scene8-choice-panel,.scene9-replies,.scene10-replies,.scene11-replies,.scene12-replies{max-height:32svh!important}
  .han-answer-actions,.han-oral-choice__actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .han-answer-tool--send{grid-column:1/-1}
  .han-s6-mandarin-object{top:56%;width:min(40vw,154px)}
}

@media(prefers-reduced-motion:reduce){
  .scene6-caption--question,.scene7-caption--question,.scene8-caption--question,.scene9-caption--question,.scene10-caption--question,.scene11-caption--question,.scene12-caption--question,.han-question-focus .scene6-caption{animation:none!important}
  .han-s6-mandarin-object:not(.is-open)::after,.han-s7-world-faucet::after{animation:none!important}
  .han-water-carafe-wrap,.han-s6-mandarin-object{transition:none!important}
}

/* === HAN CONVERSATION / RESPONSIVE PASS 03 · 2026-09-26 ===
   One active conversation surface. Family talk stays in-world; answers do not stack over dialogue. */

/* Direct answer docks: no extra "Reply" disclosure step. */
.han-s9-answer.han-answer-dock,
.han-after-dinner-answer.han-answer-dock{
  display:block!important;
  pointer-events:auto;
}
.han-s9-answer.han-answer-dock>.han-s9-answer__body,
.han-after-dinner-answer.han-answer-dock>.han-after-dinner-answer__body{
  display:block!important;
  border-top:0!important;
}
.han-s9-answer.han-answer-dock>summary,
.han-after-dinner-answer.han-answer-dock>summary{display:none!important}

/* Family-to-family passages: compact thread, not a second dialogue system. */
.scene11-stage--family-thread{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
  padding:clamp(68px,9vh,110px) clamp(18px,4vw,58px) clamp(24px,5vh,52px)!important;
}
.han-family-thread{
  position:relative;
  z-index:18;
  width:min(560px,44vw);
  max-height:min(56vh,520px);
  overflow:auto;
  padding:15px 17px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(13,11,10,.68),rgba(13,11,10,.38));
  box-shadow:0 18px 52px rgba(0,0,0,.24);
  backdrop-filter:blur(11px);
}
.han-family-thread--compact{width:min(500px,40vw)}
.han-family-time{
  display:block;margin:0 0 10px;color:rgba(255,225,192,.64);
  font:750 10px/1.2 system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase;
}
.han-family-line{
  display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;
  align-items:start;padding:8px 0;border-top:1px solid rgba(255,255,255,.055);
}
.han-family-line:first-of-type{border-top:0;padding-top:2px}
.han-family-line small{
  padding-top:2px;color:rgba(243,191,151,.82);font:800 9.5px/1.25 system-ui,sans-serif;
  letter-spacing:.08em;text-transform:uppercase;
}
.han-family-line p{margin:0;color:rgba(255,255,255,.94);font-size:15.5px;line-height:1.5}
.han-thread-next{
  position:absolute;z-index:22;right:clamp(16px,3vw,42px);bottom:max(16px,env(safe-area-inset-bottom));
  min-width:48px;min-height:44px;padding:8px 13px;border:1px solid rgba(244,204,157,.28);
  border-radius:999px;background:rgba(28,21,17,.66);color:#f5cda5;backdrop-filter:blur(10px);
  font:700 12px/1 system-ui,sans-serif;letter-spacing:.12em;cursor:pointer;
  box-shadow:0 10px 28px rgba(0,0,0,.2);
}
.han-thread-next:hover,.han-thread-next:focus-visible{border-color:rgba(246,211,175,.72);background:rgba(50,35,27,.76);outline:none}

/* Questions: gold is an address cue, not a game-state reward. */
.han-question-focus :is(.scene9-caption--question,.scene10-caption--question,.scene11-caption--question,.scene12-caption--question),
.scene9-caption--question,.scene10-caption--question,.scene11-caption--question,.scene12-caption--question{
  border-color:rgba(229,181,116,.36)!important;
  box-shadow:0 0 0 1px rgba(229,181,116,.08),0 10px 34px rgba(0,0,0,.22),0 0 26px rgba(205,145,91,.08)!important;
}

/* Answers are conversational rows, not cards. */
.han-answer-dock :is(.scene9-replies,.scene10-replies,.scene11-replies,.scene12-replies){gap:6px!important}
.han-answer-dock :is(.scene9-replies,.scene10-replies,.scene11-replies,.scene12-replies)>button,
.han-answer-option{
  border-radius:12px!important;
  background:rgba(27,22,19,.68)!important;
  border-color:rgba(255,255,255,.085)!important;
  box-shadow:none!important;
}
.han-answer-dock :is(.scene9-replies,.scene10-replies,.scene11-replies,.scene12-replies)>button{
  min-height:46px!important;padding:10px 12px!important;text-align:left!important;
  font-size:13.5px!important;line-height:1.35!important;
}
.han-answer-option.is-selected{background:rgba(48,37,29,.82)!important;border-color:rgba(230,185,125,.48)!important}
.han-answer-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.han-answer-actions:has(.han-answer-tool:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))!important}
.han-answer-tool{min-height:42px!important}
.han-answer-tool--listen span:first-child{font-size:14px;transform:rotate(180deg)}

/* Desktop: dialogue and response use separate horizontal zones when a question is active. */
@media(min-width:821px){
  .scene9-stage.han-s9-conversation,
  .scene10-stage:has(>.han-after-dinner-answer),
  .scene11-stage:has(>.han-after-dinner-answer),
  .scene12-stage:has(>.scene12-replies){
    display:grid!important;
    grid-template-columns:minmax(360px,600px) minmax(360px,620px)!important;
    align-items:end!important;
    justify-content:space-between!important;
    gap:clamp(20px,4vw,64px)!important;
    padding:clamp(74px,9vh,110px) clamp(26px,4vw,64px) clamp(22px,4vh,48px)!important;
    overflow:visible!important;
  }
  .scene9-stage.han-s9-conversation>.scene9-caption,
  .scene10-stage:has(>.han-after-dinner-answer)>.scene10-caption,
  .scene11-stage:has(>.han-after-dinner-answer)>.scene11-caption,
  .scene12-stage:has(>.scene12-replies)>.scene12-caption{
    grid-column:1!important;position:relative!important;inset:auto!important;transform:none!important;
    align-self:end!important;width:min(600px,100%)!important;max-width:600px!important;max-height:42vh!important;
    margin:0!important;overflow:auto!important;
  }
  .scene9-stage.han-s9-conversation>.han-s9-answer,
  .scene10-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene11-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene12-stage:has(>.scene12-replies)>.scene12-replies{
    grid-column:2!important;position:relative!important;inset:auto!important;transform:none!important;
    align-self:end!important;width:min(620px,100%)!important;max-width:620px!important;max-height:46vh!important;
    margin:0!important;overflow:auto!important;
    border-radius:16px!important;
  }
  .han-s9-answer__body,.han-after-dinner-answer__body{max-height:46vh!important;overflow:auto!important}
}

/* Phone: one lower answer surface, question stays compact above it. */
@media(max-width:820px){
  .scene9-stage.han-s9-conversation,
  .scene10-stage:has(>.han-after-dinner-answer),
  .scene11-stage:has(>.han-after-dinner-answer),
  .scene12-stage:has(>.scene12-replies){
    display:flex!important;flex-direction:column!important;justify-content:flex-end!important;align-items:stretch!important;
    gap:7px!important;padding:64px 10px max(10px,env(safe-area-inset-bottom))!important;overflow:hidden!important;
  }
  .scene9-stage.han-s9-conversation>.scene9-caption,
  .scene10-stage:has(>.han-after-dinner-answer)>.scene10-caption,
  .scene11-stage:has(>.han-after-dinner-answer)>.scene11-caption,
  .scene12-stage:has(>.scene12-replies)>.scene12-caption{
    position:relative!important;inset:auto!important;transform:none!important;width:100%!important;max-width:none!important;
    max-height:18svh!important;overflow:auto!important;margin:0!important;padding:9px 11px!important;flex:0 1 auto!important;
  }
  .scene9-stage.han-s9-conversation>.han-s9-answer,
  .scene10-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene11-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene12-stage:has(>.scene12-replies)>.scene12-replies{
    position:relative!important;inset:auto!important;transform:none!important;width:100%!important;max-width:none!important;
    max-height:31svh!important;overflow:auto!important;margin:0!important;padding:7px!important;flex:0 0 auto!important;
    background:rgba(28,22,18,.86)!important;border:1px solid rgba(245,220,187,.18)!important;border-radius:14px!important;
    box-shadow:0 12px 36px rgba(0,0,0,.28)!important;backdrop-filter:blur(11px)!important;
  }
  .han-s9-answer__body,.han-after-dinner-answer__body{max-height:none!important;overflow:visible!important;padding:0!important}
  .han-answer-dock :is(.scene9-replies,.scene10-replies,.scene11-replies,.scene12-replies){max-height:none!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important}
  .han-family-thread{width:100%!important;max-width:none!important;max-height:34svh!important;padding:11px 12px;border-radius:15px}
  .scene11-stage--family-thread{align-items:stretch!important;padding:64px 10px max(62px,calc(env(safe-area-inset-bottom) + 50px))!important}
  .han-family-line{grid-template-columns:76px minmax(0,1fr);gap:8px;padding:6px 0}
  .han-family-line p{font-size:14px;line-height:1.43}
  .han-family-line small{font-size:8.7px}
  .han-thread-next{right:10px;bottom:max(9px,env(safe-area-inset-bottom));min-width:46px;min-height:42px}
  .han-answer-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important;padding:0 6px 6px!important;gap:4px!important}
  .han-answer-tool{font-size:9.5px!important;padding:6px 4px!important}
}

@media(max-width:390px){
  .scene9-stage.han-s9-conversation>.han-s9-answer,
  .scene10-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene11-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene12-stage:has(>.scene12-replies)>.scene12-replies{max-height:29svh!important}
  .han-family-thread{max-height:32svh!important}
  .han-answer-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .han-answer-tool--send{grid-column:1/-1}
}

@media(prefers-reduced-motion:reduce){
  .han-thread-next{transition:none!important}
}

/* Pass 03 final mobile cap: active question + answers stay below ~42% of the viewport. */
@media(max-width:820px){
  .scene9-stage.han-s9-conversation>.scene9-caption,
  .scene10-stage:has(>.han-after-dinner-answer)>.scene10-caption,
  .scene11-stage:has(>.han-after-dinner-answer)>.scene11-caption,
  .scene12-stage:has(>.scene12-replies)>.scene12-caption{max-height:13svh!important}
  .scene9-stage.han-s9-conversation>.han-s9-answer,
  .scene10-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene11-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene12-stage:has(>.scene12-replies)>.scene12-replies{max-height:28svh!important}
}
@media(max-width:390px){
  .scene9-stage.han-s9-conversation>.han-s9-answer,
  .scene10-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene11-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene12-stage:has(>.scene12-replies)>.scene12-replies{max-height:27svh!important}
}

/* PASS 04 — language hierarchy, family translation, seasonal references */
.scene-lang-line--subtitle{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px}
.scene-lang-line--subtitle .scene-localized-subtitle{grid-column:1;font:600 clamp(17px,1.6vw,22px)/1.35 var(--font-sans,system-ui,sans-serif);letter-spacing:-.01em}
.scene-lang-line--subtitle .scene-korean-original{grid-column:1;max-width:max-content;margin-top:2px;font-size:12px;opacity:.78}
.scene-lang-line--subtitle .scene-korean-original summary{cursor:pointer;list-style:none;color:rgba(248,223,191,.88)}
.scene-lang-line--subtitle .scene-korean-original summary::-webkit-details-marker{display:none}
.scene-lang-line--subtitle .scene-korean-original[open] span{display:block;margin-top:7px;font-size:16px;color:#fff6eb}
.scene-lang-line--subtitle .scene-lang-tools{grid-column:2;grid-row:1/3}
.han-family-translation{display:flex;align-items:flex-start;gap:8px;margin-top:10px;padding-top:9px;border-top:1px solid rgba(238,202,158,.14);font-size:13px;line-height:1.4;color:rgba(255,244,229,.86)}
.han-family-translation small{flex:0 0 auto;margin-top:1px;font-size:9px;letter-spacing:.12em;color:rgba(235,183,126,.9)}
.han-korean-option{margin:4px 10px 10px;padding-top:6px;border-top:1px solid rgba(255,255,255,.06)}
.han-korean-option>summary{cursor:pointer;list-style:none;width:max-content;max-width:100%;font-size:12px;color:rgba(240,196,143,.92)}
.han-korean-option>summary::-webkit-details-marker{display:none}
.han-korean-option__body{display:grid;gap:6px;margin-top:8px;padding:9px 10px;border-radius:10px;background:rgba(255,255,255,.035)}
.han-korean-option__body>strong{font-size:17px;color:#fff7ec}
.han-korean-option__body>small{font-size:11px;color:rgba(255,244,228,.66)}
.han-korean-option__body>div{display:flex;flex-wrap:wrap;gap:6px}
.han-answer-option--local-first .han-answer-preview>strong{font-size:15px;line-height:1.35}
.han-answer-option--local-first .han-answer-preview>small{margin-top:3px;font-size:10px;opacity:.66}
.notebook-seasonal{margin:18px 0;padding:16px;border:1px solid rgba(151,111,71,.2);border-radius:16px;background:rgba(246,238,225,.62)}
.notebook-seasonal__head{display:flex;gap:11px;align-items:center;margin-bottom:10px}
.notebook-seasonal__head>span{font-size:26px}
.notebook-seasonal__head div{display:grid;gap:2px}
.notebook-seasonal__head small{font-size:9px;letter-spacing:.14em;color:#82664c}
.notebook-seasonal__head strong{font:650 17px/1.25 var(--font-serif,Georgia,serif);color:#33271e}
.notebook-seasonal p{margin:0 0 10px;color:#493b30;font-size:13px;line-height:1.55}
.notebook-seasonal a{color:#694b31;text-decoration:underline;text-underline-offset:3px;font-size:12px}
.notebook-seasonal__links{display:flex;flex-wrap:wrap;gap:8px 14px}
.notebook-seasonal--city{background:rgba(235,231,218,.52)}
@media(max-width:820px){
  .scene-lang-line--subtitle .scene-localized-subtitle{font-size:17px}
  .scene-lang-line--subtitle .scene-korean-original{font-size:11px}
  .han-family-translation{font-size:12px}
  .han-korean-option{margin-left:6px;margin-right:6px}
  .han-korean-option__body>div{display:grid;grid-template-columns:1fr 1fr}
  .notebook-seasonal{padding:13px;border-radius:14px}
}


/* PASS 05 — emotional rhythm: the room should carry the evening, not a wall of UI. */
.scene[data-mode^="scene10-"] .scene__image-shade,
.scene[data-mode^="scene11-"] .scene__image-shade{
  background:
    radial-gradient(circle at 72% 24%,rgba(225,168,104,.075),transparent 28%),
    linear-gradient(180deg,rgba(8,7,6,.08) 0%,rgba(8,7,6,.04) 42%,rgba(7,6,5,.46) 100%);
}
.scene[data-mode="scene11-end"] .scene__image-shade{
  background:
    radial-gradient(circle at 67% 30%,rgba(223,164,102,.045),transparent 31%),
    linear-gradient(180deg,rgba(7,7,7,.12),rgba(6,6,6,.08) 48%,rgba(4,4,4,.50));
}
.scene[data-mode="scene12-outside"] .scene__image-shade,
.scene[data-mode="scene12-walk"] .scene__image-shade{
  background:linear-gradient(180deg,rgba(6,8,10,.22),rgba(6,8,10,.05) 48%,rgba(4,5,7,.42));
}
.han-family-line{transition:background .22s ease,border-color .22s ease,transform .22s ease}
.han-family-line[data-family-speaker="papa-han"] small{color:rgba(241,190,139,.88)}
.han-family-line[data-family-speaker="seo-yeon"] small{color:rgba(245,204,176,.88)}
.han-family-line[data-family-speaker="ji-ho"] small{color:rgba(205,221,211,.88)}
.han-family-line[data-family-speaker="grand-mere"] small,
.han-family-line[data-family-speaker="grandmother"] small{color:rgba(230,210,166,.9)}
.han-family-line[data-family-speaker="a-table"]{margin-top:5px;padding:9px 10px;border:1px solid rgba(255,255,255,.05);border-radius:12px;background:rgba(255,255,255,.025)}
.han-family-line[data-family-speaker="a-table"] small{color:rgba(255,225,192,.48)}
.han-family-line[data-family-speaker="a-table"] p{color:rgba(255,255,255,.72);font-style:italic}
.scene[data-mode="scene11-opening"] .han-family-thread,
.scene[data-mode="scene11-jeonju"] .han-family-thread{background:linear-gradient(145deg,rgba(13,11,10,.60),rgba(13,11,10,.28));box-shadow:0 16px 44px rgba(0,0,0,.18)}
.scene[data-mode="scene11-end"] .scene11-quiet-payoff{background:rgba(8,7,6,.12);border-left-color:rgba(232,176,146,.42)}
@media(max-width:820px){
  .scene[data-mode="scene11-jeonju"] .han-family-thread{max-height:31svh!important;overflow:auto;scrollbar-width:thin}
  .scene[data-mode="scene11-jeonju"] .han-family-line{grid-template-columns:70px minmax(0,1fr);padding:5px 0}
  .scene[data-mode="scene11-jeonju"] .han-family-line p{font-size:13.5px;line-height:1.42}
}
@media(prefers-reduced-motion:reduce){.han-family-line{transition:none!important}}

/* PASS06 — one quiet emotional breath after Papa Han's travel anecdote. The supplied traditional cue carries the moment; UI stays almost absent. */
.scene11-stage--emotion{align-items:flex-end;justify-content:flex-start;padding-bottom:max(74px,calc(env(safe-area-inset-bottom) + 58px))}
.scene11-quiet-payoff--emotion{width:auto;min-width:116px;padding:11px 14px;background:rgba(8,7,6,.09);border-left-color:rgba(232,176,146,.28);backdrop-filter:blur(5px)}
.scene11-quiet-payoff--emotion span{margin-top:5px;font-size:14px;letter-spacing:.35em;color:rgba(255,255,255,.52)}
@media(max-width:820px){.scene11-stage--emotion{padding:64px 10px max(62px,calc(env(safe-area-inset-bottom) + 50px))!important}.scene11-quiet-payoff--emotion{width:auto!important;max-width:46vw;padding:9px 11px}}


/* PASS07 — final conversation / farewell responsive polish */
.han-s8-answer--open{z-index:7;padding:9px;border:1px solid rgba(255,255,255,.10);border-radius:16px;background:rgba(12,10,8,.62);backdrop-filter:blur(13px);pointer-events:auto}
.han-s8-answer--open .scene8-life-replies{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:100%!important;margin:0!important}
.scene12-give-phone{width:58px;height:58px;padding:0;border-radius:50%;font-size:0;background:rgba(12,10,9,.50);box-shadow:0 0 0 5px rgba(255,255,255,.08),0 14px 36px rgba(0,0,0,.28)}
.scene12-give-phone::before{content:'';display:block;width:22px;height:22px;margin:auto;border:2px solid rgba(255,255,255,.9);border-radius:50%;box-shadow:inset 0 0 0 4px rgba(255,255,255,.08)}
.scene12-give-phone:focus-visible{outline:2px solid #e8b092;outline-offset:5px}
.scene12-container-receive{background:rgba(21,17,13,.42);border-color:rgba(232,176,146,.34)}
.scene12-stage--outside .scene12-caption{max-width:470px;background:linear-gradient(135deg,rgba(8,8,8,.32),rgba(8,8,8,.08))}
@media(max-width:820px){
  .scene8-stage--bibimbap.scene8-stage--conversation{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:68px 10px max(10px,env(safe-area-inset-bottom));overflow:hidden}
  .scene8-stage--bibimbap.scene8-stage--conversation>.scene8-caption{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:100%!important;max-height:22svh;overflow:auto;margin:0!important}
  .scene8-stage--bibimbap.scene8-stage--conversation>.han-s8-answer--open{position:static!important;left:auto!important;bottom:auto!important;transform:none!important;width:100%;max-height:34svh;overflow:auto;margin:0!important}
  .scene[data-mode="scene12-time"] .scene12-stage,.scene[data-mode="scene12-farewell"] .scene12-stage{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:8px;padding:68px 10px max(10px,env(safe-area-inset-bottom));overflow:hidden}
  .scene[data-mode="scene12-time"] .scene12-caption,.scene[data-mode="scene12-farewell"] .scene12-caption{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:100%!important;max-height:25svh;overflow:auto;margin:0!important}
  .scene[data-mode="scene12-time"] .scene12-replies,.scene[data-mode="scene12-farewell"] .scene12-replies{position:static!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:100%!important;max-height:37svh;overflow:auto;margin:0!important}
  .scene12-stage--photo:not(.scene12-stage--photo-result){padding-left:10px;padding-right:10px}
  .scene12-stage--photo:not(.scene12-stage--photo-result) .scene12-caption{max-height:31svh;overflow:auto;width:100%}
  .scene12-give-phone{bottom:max(18px,env(safe-area-inset-bottom));width:54px;height:54px}
  .scene12-stage--outside .scene12-caption{max-height:28svh;overflow:auto}
}
@media(max-width:390px){
  .scene[data-mode="scene12-time"] .scene12-caption,.scene[data-mode="scene12-farewell"] .scene12-caption{max-height:23svh}
  .scene[data-mode="scene12-time"] .scene12-replies,.scene[data-mode="scene12-farewell"] .scene12-replies{max-height:38svh}
}
@media(prefers-reduced-motion:reduce){
  .scene12-countdown{display:none!important}.scene12-photo-memory{opacity:1!important;animation:none!important;transform:none!important}
}


/* PASS08 — interaction QA: physical verbs, two-step sink, stable mobile targets. */
.phone-pay-button--gesture{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;justify-items:start;gap:12px;text-align:left;background:linear-gradient(180deg,rgba(93,72,61,.78),rgba(55,42,36,.86));border-color:rgba(245,213,193,.24)}
.phone-pay-button--gesture .phone-pay-visual{height:auto;min-width:74px;justify-content:flex-start;gap:5px}
.phone-pay-button--gesture>strong{font:750 12px/1.25 system-ui,sans-serif;color:#fff7ed}
.phone-pay-button--gesture:hover,.phone-pay-button--gesture:focus-visible{filter:brightness(1.08);outline:2px solid rgba(246,211,175,.9);outline-offset:2px}

.han-s6-mandarin-object span{font-size:8px;letter-spacing:.04em;opacity:.72;background:rgba(22,16,12,.58);border-color:rgba(255,236,208,.18)}
.han-s7-sink[data-water-running="true"] .han-s7-faucet-target--phase-1::after{content:'';position:absolute;inset:22%;border:1px solid rgba(239,206,166,.58);border-radius:50%;box-shadow:0 0 0 7px rgba(224,172,116,.06);animation:hanObjectPulse 2.1s ease-in-out infinite}
.han-s7-sink[data-water-running="true"] .han-s7-faucet-target--phase-1>span{display:none!important}

@media(max-width:820px){
  .phone-pay-button--gesture{min-height:54px;padding:9px 12px;gap:10px}
  .phone-pay-button--gesture .phone-pay-visual{min-width:66px}
  .han-answer-tool{min-height:44px!important}
  .han-s6-mandarin-object span{bottom:1px;padding:6px 9px}
}
@media(prefers-reduced-motion:reduce){
  .han-s7-sink[data-water-running="true"] .han-s7-faucet-target--phase-1::after{animation:none}
}


/* PASS09 — genuine proximity gestures for NFC payment and bus validation. */
.han-nfc-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(104px,.44fr);align-items:center;gap:14px;width:100%}
.han-nfc-terminal{min-height:82px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:linear-gradient(180deg,rgba(19,22,23,.92),rgba(5,7,8,.96));display:grid;place-items:center;align-content:center;gap:5px;transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease}
.han-nfc-terminal i{width:42px;height:30px;border:1px solid rgba(238,244,245,.28);border-radius:7px;box-shadow:inset 0 0 0 5px rgba(255,255,255,.02)}
.han-nfc-terminal span{font-size:9px;letter-spacing:.18em;color:rgba(255,255,255,.58)}
.han-nfc-terminal.is-ready{border-color:rgba(230,191,132,.6);box-shadow:0 0 0 1px rgba(230,191,132,.12),0 0 32px rgba(214,165,99,.12)}
.han-nfc-terminal.is-hit{border-color:rgba(167,224,145,.7);box-shadow:0 0 0 1px rgba(167,224,145,.2),0 0 38px rgba(167,224,145,.16)}
.han-nfc-phone{touch-action:none;user-select:none;transform:translate(var(--nfc-x,0),var(--nfc-y,0));transition:transform .2s ease,filter .18s ease,box-shadow .18s ease;cursor:grab}
.han-nfc-phone.is-dragging{transition:none;cursor:grabbing;z-index:8;filter:brightness(1.08);box-shadow:0 18px 44px rgba(0,0,0,.28)}
.han-nfc-phone.is-paying{transition:transform .16s ease;transform:translate(var(--nfc-x,0),var(--nfc-y,0)) scale(.96)}
.scene4-transport-card[data-scene4-card-drag]{touch-action:none;user-select:none;transform:translate(var(--transit-x,0),var(--transit-y,0));cursor:grab}
.scene4-transport-card[data-scene4-card-drag].is-dragging{transition:none!important;cursor:grabbing;z-index:12;box-shadow:0 32px 70px rgba(0,0,0,.45)}
.scene4-validator-device.is-ready{box-shadow:0 0 0 1px rgba(226,190,125,.45),0 0 52px rgba(226,190,125,.11),0 30px 70px rgba(0,0,0,.4)}
.scene4-validator-device.is-hit{box-shadow:0 0 0 1px rgba(168,241,124,.5),0 0 60px rgba(123,210,99,.17),0 30px 70px rgba(0,0,0,.4)}
@media(max-width:820px){
  .han-nfc-stage{grid-template-columns:minmax(0,1fr) 96px;gap:10px}.han-nfc-terminal{min-height:68px;border-radius:14px}.han-nfc-phone{min-height:58px}
  .scene4-transport-card[data-scene4-card-drag]{touch-action:none}
}
@media(prefers-reduced-motion:reduce){.han-nfc-phone,.scene4-transport-card[data-scene4-card-drag]{transition:none!important}}


/* PASS 10 — responsive/audio-ready polish.
   Phone keeps one response surface and only expands Korean help inside the selected reply. */
.han-korean-option{overflow:hidden}
.han-korean-option[open]{padding-bottom:2px}
.han-korean-option>summary{min-height:34px;display:inline-flex;align-items:center;gap:6px;padding:4px 2px}
.han-korean-option__body{min-width:0}
.han-korean-option__body>strong{overflow-wrap:anywhere}
.han-interest-say{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;min-width:74px!important;padding:7px 9px!important}
.han-interest-say small{font:700 9px/1 system-ui,sans-serif!important;color:inherit!important}

@media(max-width:820px){
  .scene9-stage.han-s9-conversation>.scene9-caption,
  .scene10-stage:has(>.han-after-dinner-answer)>.scene10-caption,
  .scene11-stage:has(>.han-after-dinner-answer)>.scene11-caption,
  .scene12-stage:has(>.scene12-replies)>.scene12-caption{
    max-height:12svh!important;
    flex:0 1 auto!important;
  }
  .scene9-stage.han-s9-conversation>.han-s9-answer,
  .scene10-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene11-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene12-stage:has(>.scene12-replies)>.scene12-replies{
    max-height:27svh!important;
    scrollbar-width:thin;
  }
  .han-answer-option{margin-top:0!important}
  .han-answer-option+.han-answer-option{margin-top:5px!important}
  .han-answer-preview,.han-answer-option .han-oral-choice__select{
    min-height:44px!important;
    padding:9px 10px!important;
    font-size:13px!important;
  }
  .han-answer-option--local-first .han-answer-preview>strong{font-size:13.5px!important}
  .han-answer-option--local-first .han-answer-preview>small{font-size:9.5px!important}
  .han-answer-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:0 6px 6px!important}
  .han-answer-actions .han-answer-tool--send{grid-column:auto!important}
  .han-korean-option{margin:2px 7px 7px!important;padding-top:3px!important}
  .han-korean-option__body{margin-top:4px!important;padding:7px 8px!important;gap:4px!important}
  .han-korean-option__body>strong{font-size:15px!important}
  .han-korean-option__body>small{font-size:10px!important}
  .han-korean-option__body>div{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important}
  .han-korean-option__body .han-answer-tool{min-height:40px!important;font-size:9px!important;padding:5px!important}
  .han-practice-sheet{max-height:26svh!important}
  .han-practice-sheet__phrase{font-size:18px!important}
  .han-practice-sheet__help{font-size:11px!important;margin-bottom:8px!important}
  .han-practice-sheet__actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important}
  .han-practice-sheet__actions button{min-height:40px!important;font-size:9.5px!important}
  .han-interest-choice{grid-template-columns:minmax(0,1fr) auto!important}
  .han-interest-say{min-width:68px!important;min-height:44px!important}
}
@media(max-width:390px){
  .scene9-stage.han-s9-conversation>.han-s9-answer,
  .scene10-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene11-stage:has(>.han-after-dinner-answer)>.han-after-dinner-answer,
  .scene12-stage:has(>.scene12-replies)>.scene12-replies{max-height:26svh!important}
  .han-korean-option__body>div{grid-template-columns:1fr!important}
}
@media(min-width:821px){
  .han-answer-dock .han-answer-option{max-width:620px}
  .han-korean-option__body>div{display:flex;align-items:center;gap:7px}
  .han-korean-option__body .han-answer-tool{min-width:118px}
}

.han-answer-option--local-first:not(.is-selected)>.han-korean-option{display:none!important}


/* PASS12 — end-to-end mobile QA fixes.
   S12 custom memory input stays in flow and above the software keyboard. */
@media(max-width:820px){
  .scene12-stage--favorite>.scene12-free{
    position:relative!important;
    left:auto!important;right:auto!important;bottom:auto!important;
    transform:none!important;
    width:min(520px,100%)!important;
    margin:0 auto!important;
    flex:0 0 auto!important;
    padding:12px!important;
  }
  .scene12-stage--favorite>.scene12-free input{
    min-height:48px!important;
    font-size:16px!important;
    line-height:1.35!important;
  }
  .scene12-stage--favorite>.scene12-free>div button,
  .scene12-stage--favorite>.scene12-free-back{
    min-height:48px!important;
    font-size:13px!important;
  }
  .scene12-stage--favorite:has(>.scene12-free){
    justify-content:flex-end!important;
    padding-bottom:max(14px,calc(env(safe-area-inset-bottom) + 10px))!important;
  }
}
@media(max-width:390px){
  .scene12-stage--favorite>.scene12-free>div{display:grid!important;grid-template-columns:1fr!important}
}

/* ================================================================
   PASS 14 — CASCADE CONSOLIDATION (2026-09-27)
   Proven fixes were merged into their canonical rules above.
   Keep only the language/audio finger-safe floor here.
   ================================================================ */
@media (max-width:820px){
  .scene-content :is(.audio-chip--text,.mic-chip--text,.choice-language-actions button,.language-tools>button),
  .han-answer-tool{
    min-height:44px!important;
  }
}


/* FINAL CERTIFICATE — one localized system, same DOBOX Jeonju identity */
.scene[data-mode="scene12-certificate"] .scene__image{filter:brightness(.48) saturate(.72)!important;transform:none!important}
.scene[data-mode="scene12-certificate"] .scene__image-shade{background:linear-gradient(180deg,rgba(16,13,11,.38),rgba(16,13,11,.72))!important}
.scene12-stage--certificate{inset:0;display:grid;place-items:center;padding:74px 24px 30px;overflow:auto;overscroll-behavior:contain}
.scene12-certificate-shell{width:min(1120px,96vw);margin:auto;padding:18px 18px 20px;border:1px solid rgba(255,238,217,.18);border-radius:22px;background:rgba(26,21,18,.78);backdrop-filter:blur(12px);box-shadow:0 26px 80px rgba(0,0,0,.36);color:#fff}
.scene12-certificate-shell>header{text-align:center;margin:0 auto 13px;max-width:720px}.scene12-certificate-shell>header small{display:block;color:#dca78c;font:800 9px/1.25 system-ui;letter-spacing:.16em}.scene12-certificate-shell>header h2{margin:7px 0 4px;font:500 clamp(27px,4vw,42px)/1 Georgia,serif}.scene12-certificate-shell>header p{margin:0;color:rgba(255,255,255,.72);font:13px/1.45 system-ui}
.han-certificate{position:relative;display:block;width:min(100%,980px);aspect-ratio:4/3;margin:0 auto;overflow:hidden;border-radius:4px;background:#eadcc6;box-shadow:0 18px 48px rgba(0,0,0,.28)}.han-certificate__art{display:block;width:100%;height:100%;object-fit:cover}.han-certificate__name{position:absolute;left:50%;top:49.6%;transform:translate(-50%,-50%);width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;color:#6f2b25;font:italic clamp(12px,3.2vw,48px)/1 Georgia,"Times New Roman",serif;text-shadow:0 1px rgba(255,255,255,.35)}.han-certificate__name--long{font-size:clamp(10px,2.7vw,39px)}.han-certificate__name--xl{font-size:clamp(9px,2.2vw,32px)}.han-certificate__date{position:absolute;left:83.9%;top:85.5%;transform:translate(-50%,-50%);width:19%;white-space:nowrap;text-align:center;color:#3f3028;font:clamp(7px,1.2vw,22px)/1 Georgia,"Times New Roman",serif;letter-spacing:.02em}.han-certificate__seal{position:absolute;left:85.8%;top:70.4%;width:13.7%;height:auto;transform:translate(-50%,-50%) rotate(-9deg);opacity:.78;mix-blend-mode:multiply;filter:drop-shadow(0 1px 1px rgba(81,18,16,.2));animation:hanCertificateSealIn .82s .28s cubic-bezier(.17,.9,.25,1) both}
@keyframes hanCertificateSealIn{from{opacity:0;transform:translate(-50%,-50%) rotate(-15deg) scale(1.42)}65%{opacity:.86;transform:translate(-50%,-50%) rotate(-8deg) scale(.96)}to{opacity:.78;transform:translate(-50%,-50%) rotate(-9deg) scale(1)}}
.scene12-certificate-actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:14px}.scene12-certificate-actions button,.scene12-souvenir-certificate button{min-height:46px;padding:11px 16px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.07);color:#fff;font:700 11px/1.2 system-ui;letter-spacing:.02em;cursor:pointer}.scene12-certificate-actions .scene12-certificate-next{background:#b66b4f;border-color:#c98468;color:#fff}
.scene12-souvenir-certificate{display:grid;gap:8px;align-content:start}.scene12-souvenir-certificate>.han-certificate--compact{width:100%;margin:2px 0 0;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.18)}.scene12-souvenir-certificate>.han-certificate--compact .han-certificate__seal{animation:none}.scene12-souvenir-certificate>strong{font:600 16px/1.25 Georgia,serif}.scene12-souvenir-certificate>button{justify-self:start;min-height:40px;padding:9px 13px;background:#efe3d1;border-color:#d4bda0;color:#5a4333}
@media(max-width:650px){.scene12-stage--certificate{padding:66px 10px max(20px,env(safe-area-inset-bottom))}.scene12-certificate-shell{width:100%;padding:12px 10px 14px;border-radius:17px}.scene12-certificate-shell>header{margin-bottom:10px}.scene12-certificate-shell>header h2{font-size:25px}.scene12-certificate-shell>header p{font-size:12px}.scene12-certificate-actions{display:grid;grid-template-columns:1fr;width:100%;gap:8px}.scene12-certificate-actions button{width:100%;min-height:48px}.han-certificate{border-radius:3px}}
@media(orientation:landscape) and (max-height:540px){.scene12-stage--certificate{padding:58px 16px 14px}.scene12-certificate-shell{display:grid;grid-template-columns:minmax(0,1fr) 220px;grid-template-areas:"cert head" "cert actions";align-items:center;gap:10px;padding:10px 12px}.scene12-certificate-shell>header{grid-area:head;margin:0;text-align:left}.scene12-certificate-shell>.han-certificate{grid-area:cert;max-height:calc(100svh - 76px);width:auto;max-width:100%}.scene12-certificate-actions{grid-area:actions;display:grid;margin:0}.scene12-certificate-actions button{width:100%}}
@media(prefers-reduced-motion:reduce){.han-certificate__seal{animation:none}}
