:root{--ink: #120d13;--ink-soft: #1e1820;--wood: #2d1d28;--wood-light: #4b2d3d;--wine: #6f3246;--rose: #c77882;--ticket: #ead7b5;--ticket-deep: #b88445;--gold: #d7a653;--gold-pale: #f0dca8;--cyan: #34535a;--cyan-light: #6e9798;--paper-ink: #302128;--mist: #beb7b2;--line: #d9c7a4;--white: #fffaf0;--ink-30: rgba(18, 13, 19, .3);--ink-58: rgba(18, 13, 19, .58);--ink-78: rgba(18, 13, 19, .78);--paper-14: rgba(234, 215, 181, .14);--paper-28: rgba(234, 215, 181, .28);--gold-25: rgba(215, 166, 83, .25);--font-ui: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;font-family:var(--font-ui);color:var(--white);background:var(--ink);font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html,body{overflow-x:clip;background:var(--ink)}button,input{font:inherit}button{min-height:44px;border:0;cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:2px solid var(--gold-pale);outline-offset:3px}.app-shell{position:relative;min-height:100dvh;overflow:clip;background:var(--ink)}.ticket-intro,.countdown-scene{position:relative;min-height:100dvh;overflow:hidden;display:grid;place-items:center;padding:30px;text-align:center;background:var(--ink)}.ticket-intro:before,.countdown-scene:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,var(--ink) 0 14%,var(--ink-soft) 14.2% 14.6%,var(--ink) 14.8% 29%);opacity:.42}.intro-void{position:absolute;inset:11% 20%;border:1px solid var(--paper-14);box-shadow:0 0 0 30px var(--ink-30);transform:perspective(500px) rotateX(62deg)}.intro-ticket{position:relative;z-index:1;width:min(76vw,305px);min-height:238px;display:flex;flex-direction:column;justify-content:space-between;padding:24px;color:var(--paper-ink);background:var(--ticket);clip-path:polygon(0 0,100% 0,100% 42%,96% 46%,100% 50%,100% 100%,0 100%,0 54%,4% 50%,0 46%);box-shadow:10px 12px 0 var(--wood),0 28px 60px var(--ink-78);transform:rotate(-4deg);transition:transform .18s ease-out,box-shadow .18s ease-out}.intro-ticket:after{content:"";position:absolute;inset:11px;border:1px dashed var(--ticket-deep);pointer-events:none}.intro-ticket span{color:var(--wine);font-size:12px;font-weight:800;letter-spacing:.14em}.intro-ticket strong{font-size:31px;line-height:1.12;letter-spacing:0}.intro-ticket i{color:var(--wood-light);font-size:13px;font-style:normal;font-weight:800;letter-spacing:.16em}.intro-ticket.is-holding{transform:rotate(0) scale(.97);box-shadow:4px 6px 0 var(--wood),0 15px 38px var(--ink-78)}.ticket-intro button{position:absolute;z-index:2;bottom:max(34px,env(safe-area-inset-bottom));display:grid;gap:4px;padding:0;color:var(--gold-pale);background:transparent}.ticket-intro button b{font-size:16px}.ticket-intro button small{color:var(--mist);font-size:12px}.countdown-ticket{position:relative;z-index:1;width:min(58vw,210px);aspect-ratio:1;display:grid;place-items:center;color:var(--ticket);background:var(--wood);clip-path:polygon(0 0,100% 0,100% 42%,94% 50%,100% 58%,100% 100%,0 100%,0 58%,6% 50%,0 42%);font-size:clamp(72px,24vw,112px);font-weight:850;box-shadow:inset 0 0 0 1px var(--paper-28),0 30px 72px var(--ink-78)}.countdown-ticket:after{content:"";position:absolute;inset:12px;border:1px dashed var(--gold)}.countdown-scene p,.countdown-scene span{position:relative;z-index:1}.countdown-scene p{margin:24px 0 6px;color:var(--ticket);font-size:15px}.countdown-scene span{color:var(--mist);font-size:12px}.venue-game{position:relative;min-height:100dvh;overflow:hidden;isolation:isolate;touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(180deg,var(--wood) 0 58%,var(--ink) 58%)}.venue-game:before{content:"";position:absolute;z-index:-2;inset:0;background:repeating-linear-gradient(90deg,transparent 0 12%,var(--ink-30) 12.3% 13%,transparent 13.3% 26%)}.venue-game:after{content:"";position:absolute;z-index:8;inset:0;pointer-events:none;background:radial-gradient(circle 112px at var(--spot-x) var(--spot-y),transparent 0 58%,var(--ink-78) 78%)}.venue-hud{position:relative;z-index:12;display:flex;justify-content:space-between;align-items:center;padding:max(16px,env(safe-area-inset-top)) 16px 0;color:var(--ticket);font-size:11px;font-weight:800;letter-spacing:.1em}.venue-progress{display:flex;gap:6px;padding:9px 0}.venue-progress i{width:10px;height:10px;border:1px solid var(--ticket-deep);transform:rotate(45deg)}.venue-progress i.found{background:var(--gold);box-shadow:0 0 14px var(--gold)}.venue-curtain{position:absolute;z-index:3;top:0;width:25%;height:78%;background:repeating-linear-gradient(90deg,var(--wine) 0 18%,var(--wood-light) 19% 25%,var(--wine) 27% 43%);box-shadow:inset -10px 0 22px var(--ink-30);transform:translate(var(--sway-x))}.venue-curtain.left{left:-7%;clip-path:polygon(0 0,100% 0,84% 100%,0 91%)}.venue-curtain.right{right:-7%;transform:scaleX(-1) translate(calc(var(--sway-x) * -1));clip-path:polygon(0 0,100% 0,84% 100%,0 91%)}.venue-title{position:relative;z-index:9;padding:clamp(68px,13vh,118px) 25px 0;pointer-events:none}.venue-title p{margin:0 0 10px;color:var(--gold);font-size:10px;font-weight:900;letter-spacing:.16em}.venue-title h1{max-width:330px;margin:0;color:var(--white);font-size:clamp(32px,9.5vw,44px);line-height:1.07;letter-spacing:0;overflow-wrap:anywhere}.venue-title span{display:block;max-width:250px;margin-top:16px;color:var(--ticket);font-size:13px;line-height:1.55}.spot-cone{position:absolute;z-index:2;top:-18%;left:var(--spot-x);width:340px;height:640px;transform:translate(-50%) rotate(calc(var(--sway-x) * .1));transform-origin:top;background:linear-gradient(180deg,var(--gold-25),transparent 73%);clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);pointer-events:none}.venue-dust{position:absolute;z-index:5;inset:0;pointer-events:none;opacity:.32;background-image:radial-gradient(var(--ticket) 1px,transparent 1.5px);background-size:37px 41px;transform:translate(var(--sway-x),var(--sway-y))}.venue-stage{position:absolute;z-index:7;left:0;right:0;bottom:0;height:48dvh;min-height:345px;transform:translate(var(--sway-x),var(--sway-y));transition:transform .26s cubic-bezier(.2,.7,.2,1)}.stage-riser{position:absolute;inset:auto -8% 0;height:34%;background:repeating-linear-gradient(90deg,var(--wood) 0 7%,var(--ink-soft) 7.3% 8%,var(--wood) 8.3% 15%);border-top:1px solid var(--gold-25);transform:perspective(360px) rotateX(34deg);transform-origin:bottom}.stage-arch{position:absolute;left:12%;right:12%;bottom:18%;height:76%;border:2px solid var(--ticket-deep);border-bottom:0;border-radius:180px 180px 0 0;box-shadow:inset 0 0 0 10px var(--ink-30),0 -12px 32px var(--ink-30)}.stage-backdrop{position:absolute;left:24%;right:24%;bottom:28%;height:55%;display:grid;place-items:center;color:var(--ticket);font-size:23px;font-weight:850;letter-spacing:.15em;opacity:.08;background:linear-gradient(180deg,var(--ink-soft),var(--ink))}.venue-object{position:absolute;z-index:10;display:grid;place-items:center;padding:0;color:var(--ticket);background:transparent;font-size:11px;font-weight:760;text-shadow:0 2px 4px var(--ink)}.venue-object i{display:block;transition:transform .12s ease-out,filter .12s ease-out}.venue-object:active i{transform:scale(.93);filter:brightness(1.3)}.venue-object span{position:absolute;top:calc(100% - 6px);white-space:nowrap;opacity:0;transition:opacity .14s ease}.venue-object.is-found span,.venue-object:active span{opacity:1}.venue-object.is-found i{filter:drop-shadow(0 0 9px var(--gold))}.venue-object.mic{left:10%;bottom:20%;width:70px;height:150px}.venue-object.mic i{width:24px;height:72px;border:7px solid var(--rose);border-bottom:0;border-radius:20px 20px 0 0;box-shadow:0 50px 0 -10px var(--ticket),0 65px 0 -10px var(--ticket)}.venue-object.duck{right:10%;bottom:25%;width:92px;height:100px}.venue-object.duck i{width:58px;height:54px;border-radius:50% 46% 45% 45%;background:var(--gold);box-shadow:inset -12px -5px var(--ticket-deep)}.venue-object.duck i:after{content:"";display:block;width:22px;height:9px;margin:24px 0 0 47px;background:var(--rose);clip-path:polygon(0 0,100% 50%,0 100%)}.venue-object.cake{left:37%;bottom:13%;width:86px;height:86px}.venue-object.cake i{width:68px;height:42px;border-radius:5px 5px 13px 13px;background:repeating-linear-gradient(90deg,var(--rose) 0 18%,var(--ticket) 19% 28%);border-top:13px solid var(--ticket);box-shadow:0 -28px 0 -20px var(--gold)}.venue-object.balloon{right:34%;bottom:56%;width:80px;height:150px}.venue-object.balloon i{width:55px;height:74px;border-radius:50% 50% 49% 49%;background:var(--cyan-light);box-shadow:inset -13px -9px var(--cyan)}.venue-object.balloon i:after{content:"";position:absolute;width:1px;height:66px;background:var(--ticket);transform:translate(26px,72px)}.venue-object.speaker{left:7%;bottom:2%;width:83px;height:100px}.venue-object.speaker i{width:60px;height:76px;background:var(--cyan);border:3px solid var(--ticket-deep);box-shadow:inset 0 14px 0 var(--ink)}.venue-object.speaker i:after{content:"";display:block;width:23px;height:23px;margin:35px auto;border:5px solid var(--gold-pale);border-radius:50%}.venue-danmaku{position:absolute;z-index:11;right:11%;top:48%;min-height:36px;padding:0 12px;color:var(--paper-ink);background:var(--ticket);clip-path:polygon(0 0,100% 0,96% 100%,4% 100%);font-size:11px;font-weight:800;transform:rotate(-4deg)}.venue-whisper{position:absolute;z-index:13;left:18px;right:18px;bottom:max(20px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;min-height:54px;padding:10px 14px;color:var(--ticket);background:var(--ink-78);border-left:2px solid var(--gold);font-size:13px;line-height:1.45;pointer-events:none}.venue-whisper i{width:7px;height:7px;flex:none;background:var(--rose);transform:rotate(45deg)}.venue-door{position:absolute;z-index:14;right:18px;bottom:max(90px,calc(90px + env(safe-area-inset-bottom)));display:grid;gap:2px;min-width:138px;padding:9px 12px;color:var(--paper-ink);background:var(--ticket);clip-path:polygon(0 0,100% 0,100% 100%,5% 100%,0 88%);text-align:left;box-shadow:6px 7px 0 var(--wood)}.venue-door span{font-size:11px;font-weight:700}.venue-door b{color:var(--wine);font-size:15px}.venue-game.is-burst .venue-stage{animation:stage-settle .52s ease-out 1}.venue-game.is-burst .stage-backdrop{opacity:.72}.venue-game.is-burst .venue-curtain{height:67%}@keyframes stage-settle{20%{transform:translate(calc(var(--sway-x) + 8px),calc(var(--sway-y) - 5px)) rotate(1deg)}to{transform:translate(var(--sway-x),var(--sway-y))}}.room-screen{min-height:100dvh;padding-bottom:calc(102px + env(safe-area-inset-bottom));background:linear-gradient(180deg,var(--cyan) 0,var(--ink-soft) 38%,var(--ink) 100%)}.room-head{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;padding:max(12px,env(safe-area-inset-top)) 14px 10px}.room-head button{width:44px;padding:0;color:var(--ticket);background:var(--ink-58);border:1px solid var(--paper-28);border-radius:50%;font-size:30px;line-height:1}.room-head p,.room-head strong{display:block;margin:0}.room-head p{color:var(--gold-pale);font-size:10px;font-weight:850;letter-spacing:.1em}.room-head strong{margin-top:3px;color:var(--ticket);font-size:12px;line-height:1.35;font-weight:520}.room-head>span{padding:7px 8px;color:var(--cyan-light);border:1px solid var(--cyan-light);font-size:10px;font-weight:850;writing-mode:vertical-rl}.room-canvas{width:100%;max-height:58dvh;aspect-ratio:390 / 460;overflow:hidden;background:var(--ink-soft);border-top:1px solid var(--paper-28);border-bottom:1px solid var(--paper-28);box-shadow:0 20px 36px var(--ink-58)}.room-canvas canvas{display:block}.room-loading{width:100%;aspect-ratio:390 / 460;display:grid;place-items:center;color:var(--gold-pale);background:repeating-linear-gradient(90deg,var(--ink-soft) 0 14%,var(--wood) 14.5% 15%,var(--ink-soft) 15.5% 29%);font-size:13px}.inventory{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:8px;align-items:center;margin:12px;padding:11px 12px;color:var(--paper-ink);background:var(--ticket);clip-path:polygon(0 0,100% 0,100% 81%,98% 100%,0 100%);box-shadow:5px 6px 0 var(--wood)}.inventory p{margin:0;color:var(--wine);font-size:12px;font-weight:850}.inventory div{display:flex;min-width:0;gap:5px;overflow-x:auto}.inventory span,.inventory small{flex:none;padding:5px 7px;border:1px dashed var(--ticket-deep);color:var(--paper-ink);font-size:10px;white-space:nowrap}.inventory button{min-height:38px;padding:0 9px;color:var(--ticket);background:var(--wood);font-size:11px;font-weight:800}.primary{min-height:52px;padding:0 18px;color:var(--paper-ink);background:var(--ticket);clip-path:polygon(0 0,100% 0,100% 100%,4% 100%,0 86%);box-shadow:6px 7px 0 var(--wood);font-weight:850;transition:transform .12s ease-out,box-shadow .12s ease-out}.primary:active{transform:translate(3px,3px);box-shadow:3px 4px 0 var(--wood)}.room-enter{position:fixed;z-index:14;left:20px;right:20px;bottom:max(20px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center}.scrim{position:fixed;z-index:30;inset:0;display:flex;align-items:flex-end;padding:0;background:var(--ink-58)}.inspect-panel{position:relative;width:100%;max-height:min(78dvh,620px);overflow-y:auto;padding:25px 20px calc(20px + env(safe-area-inset-bottom));color:var(--paper-ink);background:var(--ticket);border-top:3px solid var(--gold);box-shadow:0 -22px 54px var(--ink-78)}.inspect-panel:before{content:"";position:absolute;top:8px;left:50%;width:44px;height:3px;background:var(--ticket-deep);transform:translate(-50%)}.inspect-panel small{color:var(--wine);font-size:11px;font-weight:850;letter-spacing:.08em}.inspect-panel h2{margin:10px 44px 16px 0;font-size:20px;line-height:1.35;letter-spacing:0}.inspect-panel p{color:var(--wood-light);font-size:14px;line-height:1.6}.close{position:absolute;top:10px;right:10px;width:44px;padding:0;color:var(--paper-ink);background:transparent;font-size:28px}.inspect-panel>button:not(.close),.code-row button{margin:0 8px 8px 0;padding:0 13px;color:var(--ticket);background:var(--wood);font-size:13px;font-weight:800}.code-row{display:flex;gap:8px}.code-row input{min-width:0;width:138px;height:46px;padding:0 12px;color:var(--paper-ink);background:var(--white);border:1px solid var(--ticket-deep);font-size:17px;letter-spacing:.12em}.ticket-fragment{float:right;width:112px;min-height:64px;margin:0 0 9px 13px;padding:9px;background:var(--gold-pale);border:1px dashed var(--wine);transform:rotate(2deg)}.ticket-fragment span{display:block;font-size:20px;font-weight:900}.ticket-fragment i{display:block;margin-top:5px;font-size:10px;font-style:normal;line-height:1.3}.clue-chip.quiet{background:var(--cyan)!important}.story-game,.story-ending{min-height:100dvh;overflow:hidden;color:var(--ticket);background:var(--ink)}.story-game{position:relative;padding-bottom:calc(26px + env(safe-area-inset-bottom))}.story-hud{position:relative;z-index:8;display:flex;justify-content:space-between;padding:max(16px,env(safe-area-inset-top)) 17px 0;color:var(--ticket);font-size:11px;font-weight:800;letter-spacing:.1em}.story-hud b{color:var(--gold)}.story-world{position:relative;height:51dvh;min-height:360px;overflow:hidden;background:linear-gradient(180deg,var(--wood) 0 62%,var(--ink-soft) 62%)}.scene-corridor .story-world{background:linear-gradient(180deg,var(--cyan) 0 62%,var(--ink-soft) 62%)}.scene-backstage .story-world{background:linear-gradient(180deg,var(--ink-soft) 0 62%,var(--wood) 62%)}.scene-dawn .story-world{background:linear-gradient(180deg,var(--rose) 0 54%,var(--ticket-deep) 54%,var(--wood) 100%)}.world-grain{position:absolute;inset:0;opacity:.24;background-image:radial-gradient(var(--ticket) 1px,transparent 1px);background-size:33px 37px}.world-door{position:absolute;left:50%;bottom:21%;width:122px;height:244px;border:2px solid var(--ticket-deep);border-bottom:0;transform:translate(-50%);background:var(--ink);box-shadow:0 0 0 9px var(--ink-30)}.world-light{position:absolute;left:50%;bottom:0;width:270px;height:230px;transform:translate(-50%);background:linear-gradient(180deg,transparent,var(--gold-25));clip-path:polygon(44% 0,56% 0,100% 100%,0 100%)}.world-floor{position:absolute;inset:auto 0 0;height:25%;background:repeating-linear-gradient(90deg,var(--wood) 0 8%,var(--ink-soft) 8.3% 9%,var(--wood) 9.3% 17%);transform:perspective(260px) rotateX(35deg);transform-origin:bottom}.story-ticket{position:absolute;z-index:5;left:17px;top:17px;width:105px;padding:9px 10px;color:var(--paper-ink);background:var(--ticket);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 64%,6% 56%,0 48%);transform:rotate(-3deg)}.story-ticket em{display:block;color:var(--wine);font-size:18px;font-style:normal;font-weight:900;letter-spacing:.12em}.story-ticket span{display:block;margin-top:2px;font-size:9px;line-height:1.3}.story-character{position:absolute;z-index:4;bottom:9%;width:54%;height:78%;opacity:.38;filter:saturate(.5);transform:scale(.91);transform-origin:bottom;transition:transform .26s cubic-bezier(.2,.7,.2,1),opacity .18s ease,filter .18s ease}.story-character.yang{left:-7%}.story-character.tan{right:-7%}.story-character.is-speaking{z-index:6;opacity:1;filter:saturate(1);transform:scale(1.08) translateY(-4px)}.story-character.yang.is-speaking{transform-origin:33% bottom}.story-character.tan.is-speaking{transform-origin:67% bottom}.character-halo{position:absolute;inset:17% 11% 9%;border:1px solid var(--paper-28);border-radius:50% 50% 0 0}.character-hair{position:absolute;z-index:3;left:50%;top:9%;width:58%;height:35%;background:var(--wood);border-radius:48% 48% 35% 35%;transform:translate(-50%);box-shadow:inset 0 -22px var(--wine)}.tan .character-hair{background:var(--cyan);box-shadow:inset 0 -20px var(--ink-soft)}.character-face{position:absolute;z-index:4;left:50%;top:20%;width:48%;height:34%;background:var(--gold-pale);border-radius:46% 46% 44% 44%;transform:translate(-50%);box-shadow:inset 0 -12px var(--ticket-deep)}.character-neck{position:absolute;z-index:2;left:50%;top:47%;width:19%;height:14%;background:var(--gold-pale);transform:translate(-50%)}.character-body{position:absolute;z-index:1;left:50%;bottom:0;width:82%;height:48%;background:var(--wine);border-radius:50% 50% 0 0;transform:translate(-50%);box-shadow:inset 0 20px var(--wood-light)}.tan .character-body{background:var(--cyan);box-shadow:inset 0 20px var(--ink-soft)}.collar{position:absolute;top:0;left:50%;width:34%;height:26%;background:var(--ticket);clip-path:polygon(0 0,100% 0,50% 100%);transform:translate(-50%)}.eye{position:absolute;top:45%;width:9%;height:13%;background:var(--paper-ink);border-radius:50%;animation:blink 5s infinite}.eye.left{left:28%}.eye.right{right:28%}.brow{position:absolute;top:29%;width:18%;height:4%;background:var(--wood)}.brow.left{left:24%;transform:rotate(8deg)}.brow.right{right:24%;transform:rotate(-8deg)}.mouth{position:absolute;left:50%;bottom:18%;width:20%;height:9%;border-bottom:2px solid var(--paper-ink);border-radius:0 0 50% 50%;transform:translate(-50%)}.blush{position:absolute;top:65%;width:12%;height:6%;background:var(--rose);opacity:.42;border-radius:50%}.blush.left{left:13%}.blush.right{right:13%}.story-character>span{position:absolute;z-index:8;bottom:-15px;left:50%;padding:4px 7px;color:var(--ticket);background:var(--ink-58);border:1px solid var(--paper-28);transform:translate(-50%);font-size:10px;white-space:nowrap}.expression-watch .yang .mouth{width:11%;border-radius:50%}.expression-sad .yang .mouth{transform:translate(-50%) rotate(180deg)}.expression-nervous .tan .mouth{width:10%;height:12%;border-radius:50%}.expression-surprised .tan .eye{height:18%}.expression-relief .eye{transform:scaleY(.65)}.expression-smile .yang .mouth{width:25%}.expression-shy .tan .blush{opacity:.75}.story-subtitle{position:relative;z-index:10;min-height:114px;margin:-15px 14px 0;padding:16px 18px;color:var(--paper-ink);background:var(--ticket);border-left:3px solid var(--wine);box-shadow:6px 8px 0 var(--wood)}.story-subtitle p{margin:0 0 7px;color:var(--wine);font-size:11px;font-weight:900;letter-spacing:.1em}.story-subtitle div{font-size:16px;line-height:1.62}.story-subtitle i{display:inline-block;width:5px;height:17px;margin-left:3px;vertical-align:-3px;background:var(--wine);animation:cursor .7s step-end infinite}.story-subtitle i.done{opacity:0}.story-choices{display:grid;gap:9px;padding:18px 14px 0;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .18s ease,transform .22s ease}.story-choices.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.story-choices button{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) 22px;align-items:center;min-height:56px;padding:10px 13px;color:var(--ticket);background:var(--wood);border-left:2px solid var(--ticket-deep);text-align:left;transition:transform .11s ease-out,background .11s ease-out}.story-choices button:after{content:"";position:absolute;right:0;top:0;width:14px;height:14px;background:var(--ink);clip-path:polygon(100% 0,0 0,100% 100%)}.story-choices button:active,.story-choices button.is-committing{transform:translate(5px);background:var(--wine)}.story-choices small{color:var(--gold);font-size:9px;font-weight:850;letter-spacing:.08em}.story-choices span{min-width:0;font-size:14px;font-weight:700;line-height:1.4}.story-choices b{color:var(--gold-pale);font-size:23px;font-weight:400}.story-rewind{margin:18px 14px;color:var(--mist);font-size:12px}.story-rewind summary{min-height:44px;display:flex;align-items:center;color:var(--gold);cursor:pointer}.story-rewind div{display:flex;flex-wrap:wrap;gap:6px}.story-rewind button{min-height:34px;padding:0 9px;color:var(--ticket);background:transparent;border:1px solid var(--paper-28);font-size:11px}.story-ending{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:max(42px,env(safe-area-inset-top)) 25px calc(26px + env(safe-area-inset-bottom));background:linear-gradient(180deg,var(--wine),var(--ink) 72%)}.ending-curtain{position:absolute;top:0;right:-8%;width:44%;height:44%;background:repeating-linear-gradient(90deg,var(--wood) 0 18%,var(--wine) 19% 34%);clip-path:polygon(0 0,100% 0,100% 100%,13% 80%)}.ending-kicker{position:relative;margin:0 0 30px;color:var(--gold);font-size:11px;font-weight:900;letter-spacing:.18em}.ending-ticket{position:relative;width:min(84vw,330px);min-height:145px;display:flex;flex-direction:column;justify-content:space-between;padding:17px;color:var(--paper-ink);background:var(--ticket);clip-path:polygon(0 0,100% 0,100% 43%,96% 50%,100% 57%,100% 100%,0 100%,0 56%,4% 50%,0 44%);box-shadow:8px 9px 0 var(--wood)}.ending-ticket span{color:var(--wine);font-size:11px;font-weight:900;letter-spacing:.14em}.ending-ticket strong{font-size:31px;line-height:1.1}.ending-ticket i{color:var(--wood-light);font-size:11px;font-style:normal}.ending-text{max-width:340px;margin:27px 0 12px;color:var(--ticket);font-size:15px;line-height:1.7}.route-stamps{display:flex;flex-wrap:wrap;gap:6px}.route-stamps span{padding:6px 8px;color:var(--gold-pale);border:1px dashed var(--gold);font-size:10px}.completion{color:var(--gold);font-size:13px}.gift-letter{width:100%;margin:8px 0 20px;padding:17px;color:var(--paper-ink);background:var(--ticket);border-top:2px solid var(--wine);box-shadow:5px 6px 0 var(--wood)}.gift-letter small,.gift-letter strong,.gift-letter span{display:block}.gift-letter small{color:var(--wine);font-size:10px;font-weight:850;letter-spacing:.08em}.gift-letter strong{margin:8px 0;font-size:16px;line-height:1.55}.gift-letter span{color:var(--wood-light);font-size:12px;line-height:1.5}.story-replay{width:100%;margin-top:auto;color:var(--ticket);background:var(--wood);border-left:2px solid var(--gold);font-weight:800;text-align:left;padding:0 15px}.story-replay span{float:right;color:var(--gold);font-size:20px}.debug-toggle{position:fixed;z-index:50;right:10px;bottom:10px;width:36px;min-height:36px;color:var(--ticket);background:var(--ink-58);border:1px solid var(--paper-28);border-radius:50%}.debug{position:fixed;z-index:51;right:10px;bottom:54px;width:min(300px,calc(100vw - 20px));padding:13px;color:var(--paper-ink);background:var(--ticket);box-shadow:5px 6px 0 var(--wood);font-size:12px}.debug button{min-height:34px;margin:2px;color:var(--ticket);background:var(--wood)}.debug-var{display:flex;justify-content:space-between;align-items:center}.debug .danger{background:var(--wine)}@keyframes blink{0%,44%,47%,to{transform:scaleY(1)}45%,46%{transform:scaleY(.08)}}@keyframes cursor{50%{opacity:0}}@media(max-width:374px){.venue-title h1{font-size:30px}.venue-object.duck{right:5%}.venue-object.balloon{right:28%}.room-head strong{font-size:11px}.story-world{min-height:330px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.venue-game:after{background:radial-gradient(circle 112px at var(--spot-x) var(--spot-y),transparent 0 58%,var(--ink-58) 78%)}}
