:root{--ink:#392c42;--night:#2d2538;--wine:#92566e;--pink:#e5afaf;--gold:#f3d5a4;--cream:#fff4e6;--mist:#c8b3b8}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--night);color:var(--cream);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #f9dd98;outline-offset:3px}.hidden{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif}.screen{position:absolute;inset:0;min-height:100svh;overflow:hidden}.stars{pointer-events:none;position:fixed;inset:0;background:radial-gradient(circle at 22% 14%,#ffeece66 0 2px,transparent 3px),radial-gradient(circle at 73% 11%,#e5d3c6aa 0 2px,transparent 3px),radial-gradient(circle at 85% 59%,#e5c5a36b 0 1px,transparent 3px),radial-gradient(circle at 37% 74%,#f6d19d5b 0 1px,transparent 2px);background-size:340px 380px,480px 550px,390px 420px,520px 410px;opacity:.85;z-index:5}.eyebrow{font-size:10px;letter-spacing:.32em;color:var(--gold);font-weight:750}.home-screen{background:radial-gradient(ellipse at 50% 26%,#a47777 0%,#664963 39%,#302639 91%);display:flex;align-items:center;justify-content:center;text-align:center;padding:30px 22px 64px}.home-screen:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent 0 110px,#fff6d707 112px 113px,transparent 115px 200px);pointer-events:none}.main-panel{position:relative;width:min(100%,485px);z-index:7;display:flex;align-items:center;flex-direction:column;animation:fadeup .7s ease both}.door-art{width:min(60vw,265px);height:min(68vw,295px);position:relative;margin:24px auto 16px;filter:drop-shadow(0 20px 24px #23172790)}.door-glow{position:absolute;inset:14% -20% -7%;border-radius:50%;background:radial-gradient(#fae3ab99,transparent 65%);filter:blur(16px);animation:breathe 4s ease-in-out infinite}.tiny-door{position:absolute;bottom:18px;left:18%;width:64%;height:85%;padding:10px;border-radius:49% 49% 8px 8px/33% 33% 8px 8px;background:linear-gradient(105deg,#d8ae77,#f8ddaa 37%,#92705a);box-shadow:inset 0 0 0 2px #ffe8bcb7,0 14px 30px #201825a0}.door-inner{position:relative;width:100%;height:100%;border-radius:48% 48% 4px 4px/32% 32% 4px 4px;background:repeating-linear-gradient(90deg,transparent 0 25px,#eebba512 27px 30px),linear-gradient(130deg,#e2a48b,#914d69 46%,#482d4a);border:4px solid #74445a;box-shadow:inset 14px 0 22px #29183266,inset -10px 0 16px #e0a69c2a}.door-inner:before{content:"";position:absolute;inset:20% 12% 10%;border:2px solid #b87c87a0;border-radius:52% 52% 4px 4px/28% 28% 4px 4px}.door-knob{position:absolute;top:61%;right:14%;width:13px;height:13px;border-radius:50%;background:#ffe7a9;box-shadow:0 0 12px #ffb864}.door-step{position:absolute;bottom:5px;left:9%;width:82%;height:18px;border-radius:70%;background:linear-gradient(90deg,#6d505c,#e9bd92,#6d505c)}.tiny-snowflake{position:absolute;color:#ffe9b5;text-shadow:0 0 18px #ffcd81;animation:float 3s infinite ease-in-out}.tiny-snowflake.one{font-size:42px;top:4%;left:2%}.tiny-snowflake.two{font-size:27px;top:25%;right:0%;animation-delay:.7s}.tiny-snowflake.three{font-size:26px;bottom:18%;left:1%;animation-delay:1.5s}h1{font-weight:500;font-size:clamp(34px,7vw,52px);line-height:1.16;letter-spacing:-.045em;text-shadow:0 4px 16px #28203780}h1 em{font-weight:400;color:#f9d9ae;font-size:.89em}.lede{max-width:370px;font-size:14px;line-height:1.6;color:#f9e8e0ce;margin-top:17px}.button{border:0;border-radius:999px;padding:15px 23px;font-weight:750;transition:transform .15s,box-shadow .2s}.button:active,.count-btn:active{transform:scale(.97)}.button.primary{color:#4a3546;background:linear-gradient(120deg,#ffe5b7,#f6be9c);box-shadow:0 8px 24px #2213235e,0 1px 0 #fff3d4 inset}.button.secondary{color:#50364c;background:#f3e5dc}.button.danger{background:#f9e8e9;color:#9f3143}.main-action{margin-top:28px;font-size:15px;min-width:290px;letter-spacing:.02em}.footnote{margin-top:15px;color:#f7e3daaa;font-size:12px;line-height:1.6;max-width:280px}.soft-footer{position:absolute;left:18px;right:18px;bottom:max(18px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;font-size:10px;color:#e3bdc0a0;z-index:9;gap:12px}.secret-handle{position:absolute;z-index:12;right:15px;top:max(12px,env(safe-area-inset-top));height:42px;width:42px;display:grid;place-items:center;color:#fbd6ac9a;font-size:22px;touch-action:none;user-select:none}.hold-progress{position:absolute;inset:0;border:2px solid transparent;border-radius:50%;pointer-events:none}.secret-handle.holding .hold-progress{border-color:#f9dbaf;animation:progressRing 3.8s linear forwards}
/* Setup */
.setup-screen{background:linear-gradient(175deg,#4c394f 0%,#312b3c 40%,#272436 100%);z-index:20;display:flex;flex-direction:column}.setup-header{display:flex;align-items:center;gap:16px;padding:calc(16px + env(safe-area-inset-top)) max(17px,calc((100vw - 650px)/2)) 14px;background:#231f31b3;box-shadow:0 4px 20px #1b132034;z-index:1}.setup-header h2{font-size:26px;font-weight:normal;margin-top:4px}.icon-button{color:inherit;background:transparent;border:1px solid #efd8cb44;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;font-size:30px;line-height:1}.header-star{margin-left:auto;font-size:26px;color:#f4d5a4}.setup-scroll{width:100%;overflow-y:auto;overscroll-behavior:contain;padding:20px max(17px,calc((100vw - 650px)/2)) calc(36px + env(safe-area-inset-bottom))}.notice,.form-card{position:relative;border-radius:22px;padding:24px 21px;margin:0 0 17px;border:1px solid #ffdfbe24;background:linear-gradient(145deg,#6a5367aa,#524658aa);box-shadow:0 9px 26px #170e2036}.notice{background:linear-gradient(120deg,#9a707c35,#e4b39023);border-color:#f4bd8e55}.notice strong{color:#ffda9b;font-size:14px}.notice p,.hint{color:#efdbd8bd;font-size:13px;line-height:1.6;margin-top:7px}.section-number{width:33px;height:33px;display:grid;place-items:center;border-radius:50%;background:#f2d2b9;color:#5a384a;font-weight:800;font-size:12px;margin-bottom:12px}.form-card h3{font-size:22px;line-height:1.3;font-weight:normal}.count-stepper{display:flex;align-items:center;justify-content:center;gap:22px;margin:24px auto 0}.count-btn{height:45px;width:45px;border:1px solid #f3d8b681;border-radius:50%;background:#f5ddbb20;color:#ffe7c3;font-size:25px}.count-stepper output{min-width:30px;text-align:center;font-size:28px;font-weight:bold;color:#fbdcaf}.small{font-size:11px}.subtle{color:#dbc6cb9e;text-align:center;margin-top:9px}.character-fields{display:grid;gap:14px;margin-top:19px}.char-field{background:#2d243963;padding:16px;border:1px solid #e7bcaa2e;border-radius:17px}.char-field-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.char-field-head strong{font-size:14px;color:#f5d9bf}.char-num{color:#eed0ab9a;font-weight:750}.char-line{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label{font-size:12px;color:#e9d5d5}.field input,.field select{min-height:43px;border:1px solid #efd5c33f;border-radius:10px;background:#3c3049;color:#fff2e4;padding:8px 10px;width:100%;outline:none}.field select{appearance:auto}.field input::placeholder{color:#d2b1b4a0}.photo-line{display:flex;gap:13px;align-items:center;margin-top:15px}.photo-mini{width:76px;height:96px;border-radius:13px;border:1px dashed #f8dbb666;display:grid;place-items:center;background:linear-gradient(155deg,#7c6a83,#4d3b58);flex-shrink:0;overflow:hidden}.photo-mini img{width:100%;height:100%;object-fit:contain}.photo-mini .placeholder{font-size:34px}.photo-info{display:grid;align-content:center;gap:7px;min-width:0}.photo-info strong{font-size:12px;line-height:1.4;color:#efdbd4}.photo-info p{color:#dec6c3a8;font-size:11px;line-height:1.4}.upload-photo{display:inline-block;border:1px solid #efd5c388;border-radius:999px;font-size:12px;padding:8px 13px;color:#ffe0b7;cursor:pointer;width:max-content}.upload-photo input{display:none}.segmented{display:flex;background:#281f33;border:1px solid #eed6c532;border-radius:13px;padding:4px;margin:17px 0 15px;gap:4px}.segment{flex:1;min-width:0;padding:12px 7px;border:0;color:#d5bbc8;background:none;border-radius:10px;font-size:13px}.segment.active{background:#f4d9b6;color:#4e3447;font-weight:800;box-shadow:0 2px 10px #1b1b2a75}.full{width:100%}.form-status{font-size:12px;text-align:center;color:#ffe1b5;margin-top:10px;min-height:12px}.backup-details{font-size:12px;color:#e7c9c5;margin-top:18px}.backup-details summary{cursor:pointer;padding:12px 0}.backup-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.backup-options .button{font-size:12px;padding:10px 8px}.backup-options .danger{grid-column:span 2}.privacy{font-size:11px;line-height:1.65;color:#e9d6d6a8;padding:9px 15px 20px;text-align:center}.privacy span{color:#f4d49e}
/* camera */
.camera-screen{z-index:30;background:#584958}#liveCamera,.camera-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.camera-fallback{background:linear-gradient(125deg,#847577,#b5a099 60%,#947d7b);display:grid;place-items:center}.camera-fallback span{font-size:55px;color:#f5e4d085;filter:blur(1px)}.wall-pattern{position:absolute;inset:0;background:repeating-linear-gradient(0deg,#ded0c91a 0 1px,transparent 2px 125px);opacity:.7}.camera-screen:before{position:absolute;inset:0;content:"";z-index:1;background:linear-gradient(180deg,#161320b5 0,transparent 32%,transparent 64%,#1e1721ad 100%);pointer-events:none}.camera-top{position:absolute;z-index:5;top:calc(16px + env(safe-area-inset-top));left:17px;right:17px;display:flex;gap:13px;align-items:center;color:#fff0df;font-size:10px;letter-spacing:.15em;font-weight:750;text-shadow:0 2px 6px #0005}.camera-back{background:#352c3a77}.scan-frame{position:absolute;inset:19% 10% 26%;z-index:3;max-width:450px;max-height:530px;margin:auto;animation:scanFloat 3.5s ease-in-out infinite}.scan-frame i{position:absolute;width:52px;height:52px;border:solid #ffe5a6;filter:drop-shadow(0 0 8px #fedca4a8);opacity:.85}.scan-frame i:nth-child(1){top:0;left:0;border-width:3px 0 0 3px;border-radius:12px 0 0 0}.scan-frame i:nth-child(2){top:0;right:0;border-width:3px 3px 0 0;border-radius:0 12px 0 0}.scan-frame i:nth-child(3){bottom:0;left:0;border-width:0 0 3px 3px;border-radius:0 0 0 12px}.scan-frame i:nth-child(4){bottom:0;right:0;border-width:0 3px 3px 0;border-radius:0 0 12px 0}.scan-star{position:absolute;inset:0;display:grid;place-items:center;font-size:60px;color:#f9e5bc96;text-shadow:0 0 25px #ffd18fa8;animation:twinkle 2s infinite}.scan-shimmer{position:absolute;left:10%;right:10%;top:5%;height:4px;background:linear-gradient(90deg,transparent,#ffd597aa,transparent);box-shadow:0 0 22px #fff2ce;animation:scanDown 2.4s linear infinite}.camera-caption{position:absolute;z-index:5;bottom:calc(48px + env(safe-area-inset-bottom));left:10%;right:10%;font-family:Georgia,serif;text-align:center;font-size:22px;line-height:1.45;text-shadow:0 3px 15px #000}.camera-caption span{display:block;margin-top:9px;font:normal 12px ui-sans-serif,sans-serif;color:#ffedce}.magic-portal{position:absolute;inset:0;z-index:4;display:grid;place-items:center;pointer-events:none;opacity:0;transform:scale(.5)}.magic-portal.opening{animation:portalZoom 2.55s cubic-bezier(.4,0,.2,1) both}.magical-ring{height:220px;width:165px;border-radius:50% 50% 7% 7% / 32% 32% 7% 7%;border:12px solid #fff2c5;box-shadow:0 0 0 9px #b9747aab,0 0 45px 21px #ffd99e,0 0 130px 80px #ffcd8787;background:radial-gradient(#fffaf2,#ffdd9e,#ffe4b4c9)}.light-door{position:absolute;width:140px;height:208px;border-radius:50% 50% 7% 7% / 34% 34% 7% 7%;background:linear-gradient(115deg,#b57e75,#613a53);overflow:hidden;box-shadow:0 0 55px #ffc98e}.light-door-inside{position:absolute;inset:7px;border-radius:50% 50% 7% 7% / 34% 34% 7% 7%;background:radial-gradient(#fff9c2,#efc687)}.portal-dust{position:absolute;inset:-50%;background:repeating-conic-gradient(from 30deg,transparent 0deg 13deg,#fff7d82a 14deg 16deg,transparent 17deg 30deg);animation:turn 8s linear infinite}.white-flash{position:absolute;inset:0;background:#fff9dd;z-index:6;opacity:0;pointer-events:none}.camera-screen.is-flashing .white-flash{animation:flash .7s ease-out forwards}
/* magical room */
.room-screen{z-index:40;background:#312839}.room-background{position:absolute;inset:0;background-image:linear-gradient(#21182215,#22192f4d),url(assets/room.svg);background-position:center;background-size:cover}.room-background:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 60%,transparent 35%,#20152477 100%);pointer-events:none}.room-glow{pointer-events:none;position:absolute;inset:0;background:radial-gradient(ellipse at 75% 65%,#ffb36d3d,transparent 45%);animation:breathe 2.3s infinite alternate}.characters{position:absolute;inset:0;z-index:2;overflow:hidden}.room-character{position:absolute;bottom:17%;width:23%;max-width:220px;height:44%;display:flex;align-items:flex-end;justify-content:center;transform:translateX(-50%);transition:filter .3s;filter:drop-shadow(0 12px 9px #261627bd);animation:characterSway var(--delay,4s) ease-in-out infinite alternate}.room-character:before{content:"";position:absolute;bottom:-8%;left:10%;width:80%;height:18%;background:#251e3599;filter:blur(13px);border-radius:50%;z-index:-1}.room-character .char-image{height:100%;max-width:100%;object-fit:contain;object-position:bottom;transform-origin:center 80%;animation:softBob 3.2s ease-in-out infinite;filter:drop-shadow(0 0 2px #fae7cc69)}.room-character.speaking .char-image{animation:speakBob .38s ease-in-out infinite alternate;filter:drop-shadow(0 0 13px #ffda8a9c)}.room-character .nameplate{position:absolute;bottom:-14%;color:#fff2dc;font-size:11px;background:#2e293cc2;padding:6px 10px;border-radius:30px;border:1px solid #edd6b66e;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis}.room-character .default-character{height:100%;width:100%;position:relative;display:flex;align-items:flex-end;justify-content:center}.default-character svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 5px 11px #140e1e7d)}.room-character.speaking .default-character{animation:speakBob .38s ease-in-out infinite alternate}.room-character.many{width:clamp(55px,16%,150px);height:35%}.room-character.many .nameplate{font-size:9px;padding:4px 7px}.room-character.end-surprised{animation:surprise .5s 2 ease-in-out}.room-topline{position:absolute;z-index:6;top:calc(17px + env(safe-area-inset-top));left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:0 20px;color:#fff0d9;font-size:11px;letter-spacing:.12em;text-shadow:0 2px 9px #000a}.room-exit{border:1px solid #f9dfbe91;background:#34263e99;color:#fff4d9;border-radius:50%;width:34px;height:34px;font-size:25px;display:grid;place-items:center}.subtitles{position:absolute;z-index:7;bottom:calc(61px + env(safe-area-inset-bottom));left:8%;right:8%;max-width:700px;margin:auto;text-align:center;font-size:clamp(14px,2.7vw,21px);line-height:1.5;font-weight:700;text-shadow:0 2px 12px #201222f8;background:#302039c9;border:1px solid #e8b99590;border-radius:20px;padding:13px 20px;box-shadow:0 10px 35px #261428ab;opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s}.subtitles.visible{opacity:1;transform:translateY(0)}.room-footer{position:absolute;z-index:5;bottom:calc(18px + env(safe-area-inset-bottom));left:20px;right:20px;text-align:center;color:#fff2d8ca;font-size:11px;text-shadow:0 2px 6px #251929}.ambient-sparkles{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 23% 27%,#fff1bcdf 0 2px,transparent 3px),radial-gradient(circle at 78% 19%,#ffd7baba 0 2px,transparent 4px),radial-gradient(circle at 68% 63%,#ffe49bab 0 2px,transparent 4px);animation:twinkle 3s infinite alternate}
/* Photo editor */
.editor-overlay{position:fixed;inset:0;z-index:100;background:#1c172de8;display:flex;align-items:center;justify-content:center;padding:15px}.editor-card{background:#fff6e9;color:#3b2d42;width:min(100%,480px);max-height:96svh;border-radius:22px;padding:17px;overflow-y:auto;box-shadow:0 12px 55px #0009}.editor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:13px}.editor-head h2{font-size:26px}.editor-head p{font-size:12px;color:#725d68;margin-top:4px}.icon-button.dark{color:#523644;border-color:#c6a9aa}.editor-canvas-wrap{margin:14px auto;border-radius:15px;overflow:hidden;background-color:#e6d8d3;background-image:linear-gradient(45deg,#f9f0ea 25%,transparent 25%,transparent 75%,#f9f0ea 75%),linear-gradient(45deg,#f9f0ea 25%,transparent 25%,transparent 75%,#f9f0ea 75%);background-size:24px 24px;background-position:0 0,12px 12px;max-height:43svh;display:flex;justify-content:center;touch-action:none}#editCanvas{display:block;width:auto;height:min(43svh,385px);max-width:100%;object-fit:contain;touch-action:none}.editor-tools{display:flex;flex-wrap:wrap;gap:7px}.chip{font-size:11px;padding:10px;border:1px solid #c1a6a9;background:#fff9f0;color:#593c52;border-radius:999px}.chip.active{background:#805668;color:#fff5dd}.tolerance-label{display:flex;justify-content:space-between;font-size:12px;color:#765764;margin-top:13px}#maskTolerance{width:100%;margin:9px 0;accent-color:#ab6673}.editor-help{font-size:12px;color:#796371;line-height:1.45;margin-bottom:14px}.toast{position:fixed;z-index:99;bottom:calc(35px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:90vw;width:max-content;color:#533b4c;background:#f5dcb8;border-radius:12px;padding:11px 16px;font-size:13px;box-shadow:0 12px 30px #1118}
@keyframes float{50%{transform:translateY(-13px) rotate(11deg)}}@keyframes breathe{50%{opacity:.6;transform:scale(1.04)}}@keyframes fadeup{from{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}@keyframes turn{to{transform:rotate(360deg)}}@keyframes twinkle{50%{opacity:.3}}@keyframes progressRing{to{box-shadow:0 0 16px #f9daaa;background:#fbd0aa2d}}@keyframes scanDown{from{top:3%}to{top:95%}}@keyframes scanFloat{50%{transform:translateY(-6px)}}@keyframes portalZoom{0%{opacity:0;transform:scale(.2)}18%{opacity:1;transform:scale(.85)}60%{opacity:1;transform:scale(1.4)}100%{opacity:1;transform:scale(8)}}@keyframes flash{0%{opacity:0}40%{opacity:1}100%{opacity:0}}@keyframes characterSway{from{transform:translateX(-50%) rotate(-1.5deg)}to{transform:translateX(-50%) rotate(1.5deg)}}@keyframes softBob{50%{transform:translateY(-5px)}}@keyframes speakBob{0%{transform:rotate(-2deg) translateY(-4px) scale(1.01)}100%{transform:rotate(2deg) translateY(-1px) scale(1.03)}}@keyframes surprise{50%{transform:translateX(-50%) translateY(-20px)}}
@media (max-width:600px){.home-screen{align-items:center;padding-bottom:90px}.door-art{margin:12px auto 14px;width:min(57vw,234px);height:min(65vw,252px)}h1{font-size:clamp(33px,8vw,46px)}.lede{font-size:13px}.main-action{min-width:min(85vw,340px);font-size:14px}.room-background{background-position:center center}.room-character{height:32%;width:30%;bottom:29%}.room-character.many{height:25%;width:24%;bottom:32%}.room-topline{font-size:9px;letter-spacing:.06em}.subtitles{left:6%;right:6%;bottom:calc(69px + env(safe-area-inset-bottom));padding:13px;font-size:15px}.room-footer{font-size:10px}.camera-caption{font-size:20px}.setup-header{padding-left:17px;padding-right:17px}}@media (max-width:360px){.char-line{grid-template-columns:1fr}.main-action{margin-top:18px}.room-character .nameplate{display:none}}@media (prefers-reduced-motion:reduce){.stars,.ambient-sparkles,.scan-shimmer{animation:none}.room-character{animation:none}}

.preview-button{margin:16px 0 10px;border:1px solid #e9c4ad;font-size:13px}


/* ============================= V2 PARENT WELCOME ========================== */
.welcome-screen{z-index:10;overflow-y:auto;background:radial-gradient(ellipse at 52% -10%,#9b6d70 0%,#62445d 37%,#2c253b 86%);padding:35px 20px 80px;text-align:center;display:flex;align-items:flex-start;justify-content:center}
.welcome-shell{z-index:6;position:relative;width:min(100%,550px);margin:auto;display:flex;align-items:center;flex-direction:column;gap:15px;animation:fadeup .6s ease both}
.welcome-logo{width:clamp(128px,29vw,208px);height:clamp(128px,29vw,208px);object-fit:contain;border-radius:25%;box-shadow:0 24px 45px #1911255e;border:1px solid #f8dbbe4a}
.welcome-screen h1{font-size:clamp(32px,6.4vw,45px);line-height:1.17}
.welcome-screen h1 em,.handoff-wrap h2 em{color:#ffe2ab;font-weight:400}
.welcome-lede{font-size:14px;line-height:1.68;color:#f1d9d8;max-width:510px}
.welcome-steps{display:grid;gap:10px;text-align:left;width:min(100%,440px);margin:7px auto;padding:13px;border:1px solid #fce0ba48;border-radius:17px;background:#35273b7f}
.welcome-steps span{font-size:13px;color:#fff2df;display:flex;align-items:center;gap:12px}
.welcome-steps b{font-size:12px;min-width:27px;height:27px;border-radius:50%;background:#f5d1a2;color:#4c3440;display:grid;place-items:center}
.welcome-shell .button{max-width:440px}.welcome-privacy{max-width:480px;font-size:11px;line-height:1.55;color:#ead5cdac}
/* ============================= V2 HANDOFF ========================== */
.handoff-screen{z-index:15;background:radial-gradient(ellipse at 50% 34%,#a16a6f 0%,#5a4056 42%,#241f31 100%);display:grid;place-items:center;padding:28px;animation:fadeup .45s ease both}
.handoff-wrap{text-align:center;width:min(100%,460px);display:grid;justify-items:center;gap:19px;position:relative;z-index:8;line-height:1.6}
.handoff-icon{height:136px;width:136px;border-radius:50%;background:radial-gradient(circle,#fff9d0 0%,#f4c783 13%,#e7af847a 35%,transparent 70%);box-shadow:0 0 105px #ffda945f;display:grid;place-items:center;font-size:74px;color:#fff6d6;animation:breathe 3s infinite}
.handoff-wrap h2{font-size:clamp(31px,7vw,46px);font-weight:500;line-height:1.15}.handoff-wrap p{color:#f7e5de;font-size:15px}.handoff-wrap .button{margin-top:18px}
/* ============================= V2 CHILD ENTRY ========================== */
.home-screen{background:radial-gradient(ellipse at 50% 30%,#94736c 0%,#5f455b 43%,#292437 100%)}
.kids-icon{width:min(51vw,250px);height:min(51vw,250px);border-radius:27%;object-fit:cover;box-shadow:0 25px 65px #22172d9c,0 0 70px #fbd4a14d;margin:25px 0 20px;border:3px solid #f4d9b784;animation:breathe 4s infinite}
.home-screen h1{font-size:clamp(31px,7vw,52px)}
.home-screen .main-panel{max-width:550px}.home-screen .lede{max-width:420px}
/* ============================= V2 PANORAMIC STORY ROOM ========================== */
.room-screen{z-index:40;background:#2e2234;isolation:isolate}
.room-viewport{position:absolute;inset:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x;cursor:grab;-webkit-overflow-scrolling:touch}
.room-viewport::-webkit-scrollbar{display:none}.room-viewport.is-dragging{cursor:grabbing;user-select:none}
.room-stage{height:100%;width:max(100%,calc(100svh * 1.9148936));min-width:100%;position:relative;overflow:hidden}
.room-illustration{position:absolute;inset:0;background:url('assets/pokojicek-v2.svg') center/100% 100% no-repeat}
.room-fireglow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 70% 62%,#ffb7612e 0%,transparent 25%);animation:breathe 3s infinite}
.room-dust{position:absolute;inset:0;pointer-events:none;opacity:.6;background:radial-gradient(circle at 22% 47%,#ffe5af 0 2px,transparent 3px),radial-gradient(circle at 73% 28%,#ffecc1 0 3px,transparent 4px),radial-gradient(circle at 53% 14%,#fff5dc 0 2px,transparent 3px);animation:twinkle 2.8s infinite alternate}
.characters{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:visible}
.toy-seat{position:absolute;top:51.5%;width:13%;height:36.5%;transform:translateX(-50%);filter:drop-shadow(0 18px 10px #241b27b0)}
.chair-shadow{position:absolute;bottom:5%;left:0;width:100%;height:12%;background:#201c2970;filter:blur(11px);border-radius:50%}
.chair-back{position:absolute;inset:2% 7% 15%;background:linear-gradient(122deg,#c3a58b 0%,var(--chair-hue) 11%,var(--chair-hue) 63%,#3f3b47 100%);border:9px solid #ac805d;border-radius:46% 46% 18% 18%/30% 30% 15% 15%;box-shadow:inset 0 0 0 5px #e0c4a47d,inset 15px 0 16px #f4cba52e,inset -19px -10px 19px #261b3568}
.chair-seam{position:absolute;inset:10% 8% 15%;border:3px solid #e8c5ac43;border-radius:48% 48% 30% 30%}
.toy-seat .room-character{position:absolute;z-index:3;inset:auto 10% 17%;height:63%;width:80%;transform:none;display:grid;place-items:end center;animation:seatBreathe 3.4s ease-in-out infinite alternate;transform-origin:center bottom;filter:drop-shadow(0 6px 5px #271c3580);transition:transform .6s ease-in, opacity .52s ease-in,filter .25s}
.toy-seat .room-character:before{display:none}
.toy-seat .room-character .char-image{display:block;height:100%;width:100%;object-fit:contain;object-position:bottom;animation:none;filter:drop-shadow(0 3px 2px #241b287f)}
.toy-seat .room-character .default-character{height:100%;width:100%;display:grid;place-items:end center;animation:none}
.toy-seat .room-character .default-character svg{height:100%;width:100%}
.toy-seat .room-character.speaking{animation:speakBob .42s ease-in-out infinite alternate;filter:drop-shadow(0 0 8px #ffe5ad)}
.toy-seat.hiding .room-character{transform:translateY(105%) scale(.56) rotate(-12deg);opacity:0;animation:none!important}
.chair-front{position:absolute;inset:0;z-index:4;pointer-events:none}
.chair-arm{position:absolute;bottom:10%;height:39%;width:22%;background:linear-gradient(110deg,#d6b192,var(--chair-hue) 50%,#3c3944);border:6px solid #9f795d;box-shadow:inset 3px 4px 5px #f0d5b14a;border-radius:47% 47% 30% 30%;z-index:5}
.chair-arm.left{left:2%}.chair-arm.right{right:2%}
.chair-cushion{position:absolute;bottom:13%;left:19%;right:19%;height:13%;border-radius:35% 35% 30% 30%;background:linear-gradient(#b29280,var(--chair-hue));border:4px solid #ac846c;z-index:4}
.chair-leg{position:absolute;bottom:0;width:12%;height:18%;background:linear-gradient(#b18254,#5c3b38);border-radius:8px;z-index:0}.chair-leg.left{left:17%}.chair-leg.right{right:17%}
.toy-seat .nameplate{position:absolute;z-index:7;bottom:-7%;left:50%;transform:translateX(-50%);max-width:96%;background:#3b273dc9;border:1px solid #fbe1bb8c;color:#fff7da;border-radius:18px;padding:7px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;box-shadow:0 5px 18px #25152780}
.room-topline{z-index:10;top:calc(12px + env(safe-area-inset-top));background:linear-gradient(#1e1722a0,transparent);min-height:55px}
.room-hint{position:absolute;top:calc(64px + env(safe-area-inset-top));z-index:10;left:50%;transform:translateX(-50%);width:max-content;max-width:95%;font-size:12px;padding:9px 17px;background:#35243dce;border:1px solid #f2d8b88c;border-radius:30px;color:#fbe8c8;pointer-events:none}
.room-controls{position:absolute;z-index:10;inset:45% 9px auto;display:flex;justify-content:space-between;pointer-events:none}
.room-controls button{pointer-events:auto;border-radius:50%;font-size:35px;line-height:1;width:42px;height:52px;background:#39263ba8;border:1px solid #ffe6b9ad;color:#ffebc6;box-shadow:0 0 15px #34222e94}
.room-screen .subtitles{z-index:12;bottom:calc(74px + env(safe-area-inset-bottom));max-width:720px;background:#38243ce8}
.room-screen .room-footer{z-index:12;bottom:calc(21px + env(safe-area-inset-bottom));background:#30233da1;border-radius:16px;padding:8px 12px;width:max-content;max-width:95%;left:50%;right:auto;transform:translateX(-50%);white-space:normal}
.room-curtain{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle at center,#ffe9b700 0%,#7c507456 60%,#322238a8 100%);z-index:14;opacity:0;transition:opacity .9s;overflow:hidden}
.room-curtain span{font-size:90px;color:#ffe9af;text-shadow:0 0 55px #ffebad;transform:scale(.5);opacity:0;transition:1s}
.room-screen.magic-close .room-curtain{opacity:1}.room-screen.magic-close .room-curtain span{transform:scale(1.4);opacity:1}
@keyframes seatBreathe{from{transform:rotate(-1.4deg)}to{transform:rotate(1.4deg)}}
@media(max-width:600px){.welcome-screen{padding-top:17px;padding-bottom:70px}.welcome-logo{width:132px;height:132px}.welcome-lede{font-size:12px}.welcome-steps{gap:7px;padding:10px}.welcome-steps span{font-size:12px}.kids-icon{margin:10px 0 12px;width:min(56vw,235px);height:min(56vw,235px)}.room-hint{font-size:10px;top:calc(62px + env(safe-area-inset-top))}.room-controls button{width:35px;height:45px;font-size:28px}.toy-seat .nameplate{font-size:10px;padding:5px 7px}.room-screen .subtitles{bottom:calc(76px + env(safe-area-inset-bottom));font-size:14px}}
@media(max-width:390px){.welcome-screen h1{font-size:29px}.welcome-logo{width:112px;height:112px}.welcome-steps span{font-size:11px}.welcome-shell{gap:11px}}
