:root{color-scheme:light;--cream:#fff8f1;--plum:#54314c;--rose:#d9afc3;--muted:#805b71;--gold:#c7a977;font-family:Arial,Helvetica,sans-serif;color:var(--plum);background:var(--cream)}
*{box-sizing:border-box}body{margin:0;min-width:280px;background:radial-gradient(ellipse at 12% 6%,#f1d8e4 0,transparent 42%),radial-gradient(ellipse at 92% 95%,#efd8df,transparent 42%),var(--cream);min-height:100svh}body:before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.13;background-image:url('assets/grain.svg');z-index:9}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;min-height:48px}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #754f88;outline-offset:5px}button,a{touch-action:manipulation}button{border:0}button.primary{background:var(--plum);color:var(--cream);padding:16px 25px;border-radius:4px;box-shadow:0 6px 15px #54314c18;font-size:14px;letter-spacing:.04em}.primary:hover{background:#6c405f}.secondary{border:1px solid #b88ba1;background:transparent;border-radius:4px;padding:12px 19px}.quiet{background:none;text-decoration:underline;text-underline-offset:5px;padding:8px 14px;font-size:13px}h1,h2,p{margin:0}h1,h2,.serif{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(38px,5vw,62px);line-height:1.05;letter-spacing:-.04em}h2{font-size:clamp(30px,4vw,44px);line-height:1.12}.eyebrow{font-size:10px;letter-spacing:.22em;text-transform:uppercase;line-height:1.7}.topline{display:flex;justify-content:space-between;align-items:center;max-width:1100px;margin:auto;padding:25px 30px;border-bottom:1px solid #54314c20}.monogram{font-family:Georgia,serif;font-size:25px;font-style:italic}.tiny{font-size:11px;line-height:1.6;color:var(--muted)}main{padding:0 20px}section[hidden],div[hidden],p[hidden],button[hidden],audio[hidden]{display:none!important}.waiting,.invite{max-width:600px;margin:auto;text-align:center;padding:55px 0 30px}.waiting h1{margin:20px 0 18px}.intro{font-size:14px;line-height:1.8;color:var(--muted);max-width:370px;margin:18px auto}.envelope{position:relative;display:block;padding:0;width:min(300px,85%);height:184px;margin:38px auto 30px;background:#edd0db;border:1px solid #c395ac;box-shadow:0 19px 28px #6e3e5317,0 2px 3px #6e3e531a;transform:rotate(-3deg);border-radius:3px}.envelope:before{content:'';position:absolute;inset:0;background:linear-gradient(32deg,transparent 49.6%,#bb8a9e 50%,transparent 50.4%),linear-gradient(-32deg,transparent 49.6%,#bb8a9e 50%,transparent 50.4%)}.envelope:after{content:'';position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 63%);background:linear-gradient(#f8e5ec,#e5bbc9);border-top:1px solid #fff}.seal{position:absolute;z-index:1;left:calc(50% - 28px);top:75px;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#9d506c;box-shadow:inset 0 0 0 4px #b86d86,inset 0 0 0 5px #843f5a,0 3px 5px #75364a4d;color:#f5d3dc;font:italic 30px Georgia;animation:breathe 5s ease-in-out infinite}.envelope:active{transform:rotate(-1deg) translateY(2px)}.seal-response{min-height:36px;font-family:Georgia,serif;font-style:italic;font-size:15px}.countdown-wrap{margin:28px auto 0;max-width:320px;border-top:1px solid #c7a97766;padding-top:24px}.countdown{font:36px Georgia;letter-spacing:.12em;font-variant-numeric:tabular-nums;margin:10px 0}.footer{margin:30px auto 0;padding:20px;text-align:center;font-size:10px;letter-spacing:.08em;color:var(--muted)}.invite h1{margin:14px 0}.puzzle{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:min(304px,100%);aspect-ratio:1;margin:26px auto 20px;padding:8px;background:#ead3de;border:1px solid #c7a977;border-radius:3px;box-shadow:0 15px 28px #54314c12}.piece{aspect-ratio:1;min-width:0;padding:0;background-image:url('assets/invitation.svg');background-size:200% 200%;border:1px solid #c5a482;border-radius:1px;position:relative}.piece[data-piece='0']{background-position:0 0}.piece[data-piece='1']{background-position:100% 0}.piece[data-piece='2']{background-position:0 100%}.piece[data-piece='3']{background-position:100% 100%}.piece[aria-pressed='true']{outline:3px solid var(--plum);outline-offset:1px;z-index:1}.piece[data-correct='true']:after{content:'✓';position:absolute;right:5px;bottom:3px;font-size:12px;color:#54314c}.puzzle-message{min-height:40px;font-size:13px;line-height:1.5}.ticket{padding:24px 20px;margin:22px auto;background:var(--cream);border:1px solid var(--gold);outline:1px solid #c7a97770;outline-offset:-7px;max-width:360px;box-shadow:0 12px 24px #54314c0d}.ticket h2{font-size:33px;margin:10px 0}.ticket p{font-size:13px;line-height:1.6}.ticket .primary{margin-top:20px}.late{font-size:12px;line-height:1.6;max-width:440px;margin:18px auto;padding:12px 16px;background:#fff8f1;border-left:2px solid var(--gold);text-align:left}.experience{max-width:1040px;margin:30px auto}.theater-heading{text-align:center;margin:22px auto}.theater-heading h1{font-size:clamp(34px,4vw,48px);margin:9px 0}.theater-heading .subtitle{font:italic 16px Georgia}.stage-shell{max-width:860px;margin:25px auto 0;position:relative;filter:drop-shadow(0 18px 20px #48273b25)}#stage{width:100%;height:auto;display:block}#stage [data-scene]{transition:none}.caption{display:flex;justify-content:space-between;align-items:center;gap:14px;max-width:810px;margin:0 auto;padding:18px 4px;border-bottom:1px solid #54314c20}.act-name{font:20px Georgia}.act-number{white-space:nowrap}.player{max-width:650px;margin:20px auto;text-align:center}.player-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}audio{display:block;width:100%;height:46px;border-radius:24px;background:#f1e6e9;accent-color:var(--plum)}.player .tiny{margin-top:12px}.ending{padding:35px 10px;text-align:center;border-top:1px solid #c7a97777;margin:30px auto 0;max-width:500px}.ending h2{margin:12px 0}.ending p{font:italic 17px/1.6 Georgia}.ending button{margin-top:23px}.audio-error{font-size:13px;line-height:1.6;background:#f7e0e5;padding:16px;margin:12px 0}.audio-error a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}noscript{display:block;padding:30px;text-align:center} @keyframes breathe{50%{box-shadow:inset 0 0 0 4px #b86d86,inset 0 0 0 5px #843f5a,0 3px 11px #75364a55}}@media(max-width:540px){.topline{padding:18px 20px}.topline .eyebrow{font-size:8px;letter-spacing:.13em}main{padding:0 14px}.waiting,.invite{padding-top:38px}.waiting h1{font-size:43px}.envelope{margin-top:30px}.experience{margin-top:24px}.stage-shell{margin:22px -6px 0}.caption{padding:16px 5px}.act-name{font-size:17px;max-width:230px}.act-number{font-size:9px}.theater-heading .subtitle{font-size:14px}.player{margin:17px 5px}.footer{margin-top:18px}.intro{max-width:290px}.puzzle-message{padding:0 8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}
body{padding-bottom:env(safe-area-inset-bottom,0px)}.topline{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}main{padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px))}

/* Ambientação sonora V3.2: controle independente da voz, sempre acessível. */
#music,#bell,#paper {display:none!important}
.sound-controls {display:flex;justify-content:center;align-items:center;gap:13px;flex-wrap:wrap;margin:10px auto 0}
.sound-toggle{min-height:44px;padding:9px 14px;border:1px solid #b88ba1;border-radius:40px;background:#f8eaef;color:#54314c;font-size:12px;white-space:nowrap}
.sound-toggle[aria-pressed="false"] {opacity:.68}
.sound-hint {color:#805b71;font-size:11px;line-height:1.5;max-width:260px;text-align:left}
.music-warning {font-size:12px;line-height:1.65;margin:12px auto;padding:12px;border:1px solid #c7a977;background:#fff2e5;color:#54314c;max-width:580px}
.music-warning .quiet {min-height:44px}
@media(max-width:540px){.sound-controls{flex-direction:column;gap:6px}.sound-hint{text-align:center}.sound-toggle{min-width:145px}}

/* V4 — composição única de telefone. Camada sobre o CSS V3.2. */
:root{--wine:#54283a;--ink:#422f36;--parchment:#fff8e9;--muted:#725463}
html{background:#f3e5de}body{max-width:480px;margin:0 auto;min-height:100svh;background:#f8eee7;color:var(--ink);box-shadow:0 0 80px #45233512;transition:background 2.4s ease}button{min-height:44px}button:disabled{cursor:default}.quiet{min-height:44px}.topline{padding:18px 20px;gap:10px}.topline .eyebrow{font-size:8px}.topline .tiny{white-space:nowrap}.primary{min-height:50px}.waiting,.invite{padding-top:35px}.waiting h1{font-size:clamp(39px,11vw,53px);color:var(--wine);margin:14px auto 18px}.waiting h1 em{font-weight:400}.waiting .eyebrow{font-size:8px}.complaint{font:italic 13px/1.65 Georgia;color:#775061}.waiting .intro{font-size:13px;line-height:1.65;max-width:310px;margin:16px auto}
.waiting-door{position:relative;isolation:isolate;overflow:hidden;width:min(286px,100%);height:282px;margin:23px auto;border:1px solid #b99665;border-radius:140px 140px 7px 7px;background:#eedcb8;box-shadow:0 16px 25px #522a381a,inset 0 0 0 7px #ecd9bb,inset 0 0 0 8px #b89665;--room-light:.7}.waiting-door:before{content:'';position:absolute;inset:13px;border:1px solid #ba9a6d;border-radius:130px 130px 0 0;z-index:4;pointer-events:none}.door-leaf{position:absolute;top:0;bottom:0;width:51%;background:repeating-linear-gradient(90deg,#4d2236 0,#693549 19%,#53273a 38%);transition:transform 1.6s cubic-bezier(.22,.6,.25,1);z-index:1}.door-leaf.left{left:0;border-right:1px solid #bc9367}.door-leaf.right{right:0}.door-halo{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 85%,#fff9d8,#d6b074);opacity:var(--room-light);transition:opacity .5s}.door-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px 16px;color:#f9e5c3}.door-number{position:absolute;top:38px;border-bottom:1px solid #d2b08080;padding-bottom:6px;letter-spacing:.2em;font:13px Georgia}.door-footnote{position:absolute;bottom:23px;font-size:7px;letter-spacing:.22em;text-transform:uppercase}.key-control,.cord-control{background:transparent;color:#ffedcf;display:flex;align-items:center;flex-direction:column;font-size:11px;gap:6px;padding:14px;width:170px}.key-control #key-symbol{font:58px Georgia;line-height:1;transition:transform .35s}.sconces{display:flex;gap:12px}.sconce{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;min-height:86px;background:#331e2970;border:1px solid #b99767;border-radius:30px 30px 5px 5px;color:#dfc69e}.sconce span{font-size:29px;line-height:1.3}.sconce small{letter-spacing:3px}.sconce[data-lit=true]{color:#fffad1;background:#a77e3e;box-shadow:0 0 20px #ffdea060}.cord-control span:first-child{font:22px/1 Georgia;color:#d9b47a}.waiting[data-step=room] .door-leaf.left{transform:translateX(-94%)}.waiting[data-step=room] .door-leaf.right{transform:translateX(94%)}.waiting[data-step=room] .door-content{color:#674531}.waiting[data-step=room] .waiting-door{height:130px;transition:height 1.6s}.waiting[data-step=room] .door-number{font-size:28px;top:32px}.waiting[data-step=room] .door-footnote{bottom:20px}.waiting[data-step=room]>h1,.waiting[data-step=room]>.complaint,.waiting[data-step=room]>#waiting-instruction{display:none}.seal-response{font-size:13px;line-height:1.6;min-height:42px;max-width:290px;margin:12px auto;color:#735160}#waiting-room h2{font-size:31px;line-height:1.18;max-width:330px;margin:auto;color:var(--wine)}.countdown-wrap{background:#fff8e980;padding:20px 12px;border:1px solid #ba986d66;border-radius:100px 100px 5px 5px;max-width:280px}.countdown{font-size:32px;letter-spacing:.09em}.room-objects{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:22px auto 0}.room-objects button{background:#ecddd1;border:1px solid #c6aa88;color:#67424c;border-radius:40px 40px 5px 5px;font-size:9px;padding:10px 2px;min-height:79px}.room-objects span{display:block;font:25px Georgia;margin-bottom:8px}.room-objects [data-touched='1'] span{transform:rotate(-9deg) scale(1.12);transition:transform .3s}.global-sound{text-align:center;margin:18px auto 0}.sound-toggle{background:#f9f0e7;color:#54314c;opacity:1!important}.sound-toggle[aria-pressed=false]{border-style:dashed}.footer{font-size:9px;margin-top:5px}
.puzzle{grid-template-columns:repeat(3,1fr);gap:4px;padding:6px;width:min(304px,100%)}.piece{background-size:300% 300%;min-height:0;transition:box-shadow .2s}.piece[data-piece='0']{background-position:0 0}.piece[data-piece='1']{background-position:50% 0}.piece[data-piece='2']{background-position:100% 0}.piece[data-piece='3']{background-position:0 50%}.piece[data-piece='4']{background-position:50% 50%}.piece[data-piece='5']{background-position:100% 50%}.piece[data-piece='6']{background-position:0 100%}.piece[data-piece='7']{background-position:50% 100%}.piece[data-piece='8']{background-position:100% 100%}.piece[data-correct=true]:after{background:#fff8ed;border-radius:50%;width:15px;height:15px;line-height:15px;right:3px;bottom:3px}.puzzle-help{display:flex;flex-wrap:wrap;justify-content:center;gap:3px}.puzzle-help .quiet{font-size:12px}#puzzle-preview{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#392732d9;pointer-events:none;padding:25px}#puzzle-preview img{width:min(320px,100%);box-shadow:0 20px 50px #0005}.ticket{animation:ticket-stamp .6s ease-out}.ticket .eyebrow{font-size:8px}@keyframes ticket-stamp{0%{opacity:0;transform:scale(1.04) rotate(-3deg)}100%{opacity:1;transform:none}}
.experience{margin-top:24px}.theater-heading h1{font-size:38px}.theater-heading .eyebrow{font-size:8px}.theater-heading .subtitle{font-size:13px}.stage-shell{isolation:isolate;filter:none;margin:18px -8px 0;position:relative}#stage{overflow:visible}#camera{transform-origin:0 0}#spotlight{mix-blend-mode:screen}.caption{gap:7px;padding:14px 3px}.act-name{font-size:16px;max-width:205px}.act-number{font-size:8px;letter-spacing:.07em}.player-actions{gap:8px}.player-actions .primary,.player-actions .secondary{font-size:12px;padding:13px 16px}.sound-controls{gap:8px}.sound-hint{font-size:10px;max-width:270px}.sentence{position:absolute;z-index:4;left:9%;right:9%;top:28%;padding:20px 16px 24px;background:#fff7e6;color:#352738;box-shadow:3px 10px 26px #28152e55;border:1px solid #b79866;pointer-events:none}.sentence:after{content:'';position:absolute;right:0;bottom:0;border:10px solid;border-color:#e2cbaa #f4e3ce #f4e3ce #e2cbaa}.sentence .eyebrow{font-size:8px;color:#705167}.sentence p{font:italic clamp(18px,5.4vw,25px)/1.3 Georgia;margin-top:9px}#blackout{position:fixed;inset:0;z-index:1000;background:#000;opacity:0;pointer-events:none}.outside{position:absolute;width:100%;height:auto;left:0;bottom:-16%;overflow:visible;z-index:5;pointer-events:none}.hotspot{position:absolute;z-index:6;transform:translate(-50%,-50%);min-height:44px;min-width:44px;max-width:132px;border:1px solid #aa8a60;background:#fff8e8ed;border-radius:40px;padding:6px 12px;color:#603b4e;box-shadow:0 4px 10px #42263118;font-size:9px}.hotspot span{display:block}.hotspot span:first-child{font:22px Georgia}.hotspot:active{background:#f1d6ba}.stage-shell[data-reaction='0'] #stars{filter:drop-shadow(0 0 5px #fbe9ac)}.stage-shell[data-reaction='2'] #moon{filter:drop-shadow(0 0 10px #fff2bd)}.stage-shell[data-reaction='4'] #curtain-right{opacity:.75}body[data-finale=true]{background:#fffdf6}body[data-finale=true] .stage-shell{margin-bottom:100px}body[data-finale=true] .theater-heading{opacity:.6}body[data-finale=true] .caption{border-color:#c7a97744}
@media(min-width:481px){.topline{padding:20px 24px}main{padding:0 22px}.waiting,.invite{padding-top:36px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}#blackout{transition:opacity .18s ease!important}.stage-shell [filter]{filter:none}.stage-shell[data-reaction] #stars,.stage-shell[data-reaction] #moon{filter:none}.room-objects [data-touched] span{transform:none}}
[hidden]{display:none!important}
/* A câmera fica recortada no palco; apenas o SVG final pode sair da moldura. */
#stage{overflow:hidden}.hotspot{width:min(118px,36%)}
