.intro-scene{--intro-safe-top: max(env(safe-area-inset-top, 0px), var(--safe-top, 0px));--intro-safe-bottom: max(env(safe-area-inset-bottom, 0px), var(--safe-bottom, 0px));position:absolute;inset:0;isolation:isolate;overflow:hidden;color:#fff4dc;background:#2f292c;font-family:Manrope,sans-serif}.intro__canvas{position:absolute;inset:0;overflow:hidden}.intro__canvas canvas{display:block}.intro__shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#17151b9c 0%,#17151b08 27%,transparent 49%,#1b1721cf 70%,#1b1721 100%)}.intro__header{position:absolute;top:max(16px,var(--intro-safe-top));left:23px;right:18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.intro__brand{font:800 14px/1.16 Nunito,sans-serif;letter-spacing:.02em;text-shadow:0 1px 8px #211f22}.intro__brand b{color:#f1c881;font-weight:900}.intro-scene button{touch-action:manipulation;font-family:inherit;cursor:pointer}.intro__skip{min-height:44px;padding:0 13px;color:#fff1db;font-size:12px;font-weight:650;border-radius:25px;border:1px solid #ffe4b647;background:#25212970;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.intro__location{position:absolute;top:max(87px,calc(var(--intro-safe-top) + 64px));left:24px;right:24px;text-align:center;font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 6px #262226;animation:intro-caption .55s ease both}.intro__footer{position:absolute;bottom:0;left:0;right:0;padding:12px 26px max(22px,var(--intro-safe-bottom))}.intro__caption{min-height:163px;animation:intro-caption .5s ease both}.intro__speaker{margin:0 0 9px;color:#efc982;font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.intro__speaker span{color:#c7bbb9;font-size:9px;font-weight:500;letter-spacing:.06em}.intro__caption h1{margin:0 0 11px;max-width:345px;font:850 28px/1.08 Nunito,sans-serif;letter-spacing:-.015em;text-wrap:balance}.intro__text{margin:0;max-width:365px;font-size:13px;line-height:1.65;font-weight:450;color:#e5dbce;text-wrap:pretty}.intro__progress{display:flex;gap:6px;margin:19px 0 13px}.intro__progress>span{position:relative;height:2px;flex:1;background:#f5dfb22d;overflow:hidden;border-radius:2px}.intro__progress i{display:block;height:100%;width:100%;background:#f0c57c;transform:scaleX(0);transform-origin:left}.intro__progress .is-complete i{transform:scaleX(1)}.intro__progress .is-current i{animation:intro-progress var(--beat-time) linear both}.intro__controls{display:flex;align-items:center;gap:11px}.intro__pause{width:44px;height:44px;display:grid;place-items:center;border:1px solid #eed5b63d;border-radius:50%;color:#e6d2af;background:#f5deb208;padding:10px}.intro__pause svg{width:20px;height:20px;fill:currentColor;stroke:currentColor;stroke-width:2;stroke-linecap:round}.intro__counter{color:#ad9d99;font-size:10px;font-variant-numeric:tabular-nums}.intro__next{display:flex;align-items:center;gap:21px;margin-left:auto;min-height:46px;padding:0 20px;background:#efc982;color:#382b2e;border:1px solid #ffe4b5;border-radius:24px;box-shadow:0 3px 15px #0002;font-size:12px;font-weight:800}.intro__next span{font-size:20px;font-weight:400}.intro-scene button:focus-visible{outline:3px solid #fff4d7;outline-offset:3px}.intro__loading{position:absolute;left:35px;right:35px;top:43%;display:flex;align-items:center;flex-direction:column;gap:15px;text-align:center;font-size:14px}.intro__loading p{font-size:13px;line-height:1.6;margin:0}.intro__loading button{background:#efc982;color:#382b2e;border-radius:24px;border:0;min-height:44px;padding:0 24px;font-weight:800}.intro__reel{width:30px;height:30px;border:2px solid #f0c57c44;border-top-color:#f0c57c;border-radius:50%;animation:intro-spin 1.3s linear infinite}.intro--reduced .intro__caption,.intro--reduced .intro__location,.intro--reduced .intro__reel{animation:none}@keyframes intro-progress{to{transform:scaleX(1)}}@keyframes intro-caption{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes intro-spin{to{transform:rotate(360deg)}}@media(max-height:700px){.intro__footer{padding:10px 22px max(15px,var(--intro-safe-bottom))}.intro__caption{min-height:135px}.intro__caption h1{font-size:24px;margin-bottom:8px}.intro__text{font-size:12px;line-height:1.5}.intro__speaker{margin-bottom:6px}.intro__progress{margin:12px 0 9px}.intro__location{top:max(75px,calc(var(--intro-safe-top) + 59px));font-size:9px}}@media(max-width:340px){.intro__footer{padding-left:19px;padding-right:19px}.intro__caption h1{font-size:23px}.intro__text{font-size:11px}.intro__caption{min-height:126px}.intro__header{left:19px}}.story-dialogue{--story-gutter: 18px;--story-bottom: max(18px, var(--safe-bottom, 0px));display:flex;flex-direction:column;overflow:hidden;background:#282537;padding:max(18px,var(--safe-top, 0px)) var(--story-gutter) var(--story-bottom);gap:12px;isolation:isolate}.story-dialogue__backdrop{position:absolute;inset:0;z-index:-3;background-size:cover;background-position:center 45%;animation:story-camera 16s ease-out both}.story-dialogue__vignette{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#191c2be6,#1e1d2a1f 38%,#1e1b2740 65%,#292539)}.story-dialogue .story-dialogue__header{position:relative;inset:auto;display:flex;align-items:flex-start;gap:12px;padding:0;color:#fff6e6}.story-dialogue__header>div{flex:1;min-width:0}.story-dialogue__chapter{font-size:9px;letter-spacing:2px;color:#f2c66d;font-weight:800}.story-dialogue__header h2{font-size:24px;line-height:1.12;text-align:left;margin:8px 0 0;text-shadow:0 2px 10px #292539}.story-dialogue .story-dialogue__header>button{flex:none;font-size:11px;padding:0 9px;min-height:44px;border:1px solid #fff6e633;border-radius:14px;background:#29253966;color:#fff6e6}.story-dialogue__setting{align-self:flex-start;color:#fff6e6;font-size:10px;display:flex;gap:7px;align-items:center;padding:7px 10px;border-radius:20px;background:#292539a6;max-width:100%}.story-dialogue__setting>span{flex:none;width:5px;height:5px;background:#f2c66d;border-radius:50%}.story-dialogue__stage{position:relative;flex:1;min-height:100px;margin:0 calc(-1 * var(--story-gutter)) -16%}.story-dialogue__stage--recording{margin-bottom:0}.story-dialogue__actor{position:absolute;bottom:-9px;width:74%;height:100%;max-height:450px;display:flex;align-items:flex-end;transition:filter .4s,transform .5s,opacity .4s}.story-dialogue__actor img{width:100%;max-height:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 8px 14px #20203088)}.story-dialogue__actor.is-left{left:-9%}.story-dialogue__actor.is-right{right:-9%}.story-dialogue__actor.is-speaking{z-index:2;transform:scale(1.03);transform-origin:bottom}.story-dialogue__actor.is-listening{filter:brightness(.63) saturate(.72);transform:scale(.86);transform-origin:bottom;opacity:.94}.story-dialogue__recording{width:85%;height:calc(100% - 12px);max-height:380px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-3deg)}.story-dialogue__recording img{width:100%;max-height:calc(100% - 30px);object-fit:contain;border:7px solid #f4dfb7;box-shadow:0 12px 40px #171727aa}.story-dialogue__recording>span{background:#292539;color:#f2c66d;padding:8px 12px;font-size:10px;letter-spacing:2px}.story-dialogue .story-dialogue__card{position:relative;inset:auto;width:auto;margin:0 calc(-1 * var(--story-gutter)) calc(-1 * var(--story-bottom));border-radius:0;padding:10px var(--story-gutter) var(--story-bottom);min-height:0;flex:none;border:0;background:var(--narrative-ink);box-shadow:none;overflow:visible;z-index:3}.story-dialogue__arrival{max-height:64px;overflow:auto}.story-dialogue__arrival:empty{display:none}.story-dialogue__identity{line-height:1}.story-dialogue .story-dialogue__line{animation:story-line .28s ease both}.story-dialogue .story-dialogue__card footer{margin-top:10px}.story-dialogue__back,.story-dialogue__history-button{min-width:44px;min-height:44px;border:0;background:transparent;color:#e0d5c2;padding:0 8px;font-size:13px;border-radius:12px}.story-dialogue__back{min-width:44px;border:1px solid #fff6e62b;background:#fff6e60d;font-size:21px}.story-dialogue__back:disabled{opacity:.35}.story-dialogue .story-dialogue__card .primary{margin-left:auto;min-height:44px;padding:0 18px;min-width:128px;gap:12px;font-size:14px;border-radius:12px}.story-dialogue__progress{height:2px;background:#fff6e625;margin-top:8px;border-radius:3px;overflow:hidden}.story-dialogue__progress>span{display:block;height:100%;background:#5eaaa0;transition:width .25s}.story-dialogue__history{max-height:min(310px,calc(100dvh - 340px - var(--safe-top, 0px) - var(--safe-bottom, 0px)));overflow:auto;overscroll-behavior:contain;margin-bottom:12px;padding:12px 16px;border:1px solid #e8d4ab;border-radius:18px;background:#fff6e6;color:#343248}.story-dialogue__history h3{margin:0 0 14px}.story-dialogue__history>div{border-left:2px solid #d9bd89;padding:0 0 5px 12px;margin:0 0 14px;font-size:13px}.story-dialogue .story-dialogue__history p{animation:none;color:#3f394f;font-size:13px;line-height:1.5;margin:4px 0 0;min-height:0}.story-dialogue--still *,.story-dialogue--still *:before{animation:none!important;transition:none!important}@keyframes story-camera{0%{transform:scale(1)}to{transform:scale(1.06)}}@keyframes story-line{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:350px){.story-dialogue{--story-gutter: 12px;gap:8px}.story-dialogue__header h2{font-size:21px}}@media(max-height:650px){.story-dialogue{--story-bottom: max(10px, var(--safe-bottom, 0px));gap:7px;padding-top:max(10px,var(--safe-top, 0px))}.story-dialogue__header h2{font-size:19px;margin-top:4px}}@media(prefers-reduced-motion:reduce){.story-dialogue *{animation:none!important;transition:none!important}}.narrative-deck{--narrative-ink: #272b3b;position:relative;isolation:isolate;background:var(--narrative-ink);color:#fff6e6}.narrative-deck:before{content:"";position:absolute;z-index:-1;inset:-42px 0 auto;height:43px;pointer-events:none;background:linear-gradient(0deg,var(--narrative-ink),#272b3b00)}.narrative-message{position:relative;padding:0 18px 15px;border:1px solid #e8d4ab;border-radius:18px;background:#fff6e6;box-shadow:0 4px 12px #1117252b,inset 0 0 0 3px #fffbf1;color:#343248}.narrative-deck .narrative-name{display:inline-block;position:relative;margin:-12px 0 0;padding:5px 15px;background:#345c59;border:1px solid #d8c38e;border-radius:10px;box-shadow:0 2px 4px #223b3933;color:#fff1ca;font:900 19px/1.2 Nunito,sans-serif}.narrative-deck .narrative-direction{margin:8px 0 0;color:#706653;font:italic 11px/1.45 Manrope,sans-serif}.narrative-direction:empty{display:none}.narrative-deck .narrative-copy{margin:8px 0 0;min-height:0;font-size:16px;font-weight:600;line-height:1.5;color:#343248;text-wrap:pretty}.narrative-deck>footer{margin-top:10px;display:flex;align-items:center;gap:8px}@media(max-width:350px),(max-height:650px){.narrative-message{padding:0 14px 12px;border-radius:16px}.narrative-deck .narrative-copy{font-size:15px;line-height:1.45}.narrative-deck .narrative-name{font-size:18px}.narrative-deck .narrative-direction{font-size:10px;margin-top:6px}}.cosmetic-avatar{position:relative;display:inline-block;flex:0 0 auto;width:100%;height:100%;aspect-ratio:1;vertical-align:middle;isolation:isolate}.cosmetic-avatar__window{position:absolute;inset:5%;overflow:hidden;border-radius:50%;background:#e8e0c9}.cosmetic-avatar .cosmetic-avatar__portrait{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;object-fit:contain;object-position:center bottom;transform:none}.cosmetic-avatar .cosmetic-avatar__frame{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;object-fit:contain;transform:none;z-index:1}.cosmetic-avatar--framed .cosmetic-avatar__window{inset:8%}.avatar:has(.cosmetic-avatar){overflow:visible;border:0;background:transparent;box-shadow:none}.route-scrim{position:absolute;inset:0;z-index:20;display:flex;padding:max(10px,var(--safe-top),env(safe-area-inset-top)) 9px max(12px,var(--safe-bottom),env(safe-area-inset-bottom));background:#171b2bd1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.route-dialog{width:100%;max-height:920px;margin:auto;display:flex;flex-direction:column;overflow:hidden;border:1px solid #f9eacb;border-radius:26px;background:#fff7e8;color:#344b4b;box-shadow:0 6px #a0886659,0 24px 65px #0b132c80;animation:route-arrive .25s ease-out both}.route-map{height:100%}.route-dialog button{min-height:44px}.route-dialog button:focus-visible,.route-scroll:focus-visible{outline:3px solid #b7822d;outline-offset:-3px}.route-heading{position:relative;padding:20px 22px 13px;flex-shrink:0;background:#244f52;color:#fff5db}.route-eyebrow{font-size:10px;font-weight:700;letter-spacing:.06em;color:#c8ded5}.route-heading h2{margin:6px 38px 13px 0;font-size:28px;line-height:1.1;font-weight:950}.route-close{position:absolute;top:10px;right:10px;width:44px;display:grid;place-items:center;border-radius:50%;background:#fff5e6ed;color:#38514f;z-index:3;box-shadow:0 2px 4px #162d3529}.route-progress{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#e7e6cf}.route-progress b{font-size:16px;color:#fff6df}.route-progress>span:last-child{display:flex;align-items:center;gap:5px}.route-progress img{width:21px;height:21px;object-fit:contain}.route-meter{height:5px;margin-top:8px;overflow:hidden;border-radius:5px;background:#173e41}.route-meter>span{display:block;height:100%;border-radius:inherit;background:#ecc471;transition:width .3s ease}.route-stages{display:flex;flex-shrink:0;padding:10px 12px 8px;gap:6px;border-bottom:1px solid #deceb0;background:#fbefd9}.route-stages button{position:relative;flex:1;padding:7px 3px 10px;border-radius:11px;color:#50604f;background:#ede3d0;border:1px solid #dcd0b6;display:flex;flex-direction:column;gap:2px;align-items:center}.route-stages strong{font-family:Nunito,sans-serif;font-weight:900;font-size:18px}.route-stages span{font-size:9px;white-space:nowrap}.route-stages button[aria-pressed=true]{background:#326764;color:#fff7df;border-color:#244f52;box-shadow:0 2px #194845}.route-stages i{position:absolute;bottom:3px;left:35%;right:35%;height:2px;border-radius:3px;background:#9eab9b}.route-stages i.completed{background:#e6bf5e}.route-stages i.current{background:#eacb7a}.route-tools{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;padding:0 12px;background:#fff7e8;border-bottom:1px solid #e0d4bd}.route-tools>span{font-size:10px;font-weight:600;color:#50604f}.route-tools>div{display:flex;gap:2px}.route-tools button{width:44px;display:grid;place-items:center;background:transparent;color:#50604f;border-radius:8px}.route-tools button[aria-pressed=true]{color:#245957;background:#e6ebdc}.route-scroll{flex:1;min-height:0;position:relative;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b7ac86 #ece4cb}.route-canvas{position:relative;width:100%;height:1050px;background-size:100% 100%;background-repeat:no-repeat}.route-destination{position:absolute;top:4.3%;left:12%;right:12%;display:flex;flex-direction:column;align-items:center;text-align:center;color:#fbf2cf;text-shadow:0 2px 3px #152e30;background:#254c42e8;box-shadow:0 3px #9b794baa;border:1px solid #e7c477;border-radius:12px;padding:8px 12px}.route-destination>span{font-family:Nunito,sans-serif;font-size:19px;font-weight:900}.route-destination small{font-size:10px;color:#ebddbc}.route-stop{position:absolute;transform:translate(-50%,-50%);width:82px;height:82px;display:flex;flex-direction:column;align-items:center}.route-node{position:relative;width:82px;height:82px;padding:0;background:none;flex-shrink:0;border-radius:50%;filter:drop-shadow(0 4px 3px #3a392f44);transition:transform .15s}.route-node:hover{transform:translateY(-2px)}.route-node:active{transform:translateY(3px) scale(.95)}.route-node>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.route-node>strong{position:relative;display:block;transform:translateY(-3px);font-family:Nunito,sans-serif;font-size:28px;font-weight:950;color:#fff4d8;text-shadow:0 2px 1px #163e40}.route-node.current>strong{color:#62442b;text-shadow:0 1px 0 #ffe6ae}.route-node.locked>strong{color:#687575;text-shadow:0 1px 0 #e3e6d7}.route-node__lock{position:absolute;bottom:0;right:0;background:#eef0e4;color:#6d7976;width:25px;height:25px;display:grid;place-items:center;border:1px solid #9da9a0;border-radius:50%}.route-node__lock svg{width:13px;height:13px}.route-node.recommended{animation:route-beacon 3s ease-in-out infinite}.route-you{position:absolute;top:47px;left:83px;font-size:10px;font-weight:800;background:#295b57;color:#fff5cf;border:1px solid #f9dfa0;border-radius:8px;white-space:nowrap;padding:4px 10px;box-shadow:0 2px 3px #163b3a30;pointer-events:none}.route-stars{display:inline-flex;align-items:center;justify-content:center;gap:0;white-space:nowrap;line-height:1}.route-stars img{width:23px;height:23px;object-fit:contain;filter:drop-shadow(0 1px 1px #69472844)}.route-stars img.unearned{filter:grayscale(1);opacity:.35}.route-stop>.route-stars{position:absolute;bottom:-6px;pointer-events:none}.route-difficulty{position:absolute;top:21px;left:78px;border:1px solid #ead2b4;background:#6a4655f5;color:#fff0d8;font-size:9px;font-weight:800;border-radius:6px;padding:5px 7px;white-space:nowrap;pointer-events:none}.route-difficulty.finale{background:#2e505a}.route-milestone{position:absolute;right:86px;top:17px;width:93px;display:flex;flex-direction:column;align-items:center;color:#526255;pointer-events:none}.route-milestone>img{width:28px;height:28px;filter:drop-shadow(0 2px 2px #775b2b66)}.route-milestone>span{border:1px solid #d7c59f;background:#fff8e9f2;border-radius:5px;padding:3px 5px;font-size:8px;font-weight:800;white-space:nowrap}.route-milestone.restored>span{background:#e5eddc;color:#356153}.route-milestone.locked{opacity:.8}.route-start-label{position:absolute;bottom:3%;left:12%;right:12%;padding:7px;border-radius:8px;background:#fff5ddea;color:#58624a;font-size:10px;text-align:center;box-shadow:0 1px 4px #524a3122}.route-footer{padding:10px 16px 13px;flex-shrink:0;border-top:1px solid #d6c8a9;background:#fff7e8;box-shadow:0 -5px 15px #55432612}.route-footer-copy{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.route-footer-copy strong{font:900 15px Nunito,sans-serif}.route-footer-copy>span{font-size:9px;color:#50604f}.route-footer-actions{display:flex;gap:8px}.route-primary{display:flex;justify-content:center;align-items:center;gap:10px;flex:1;border:1px solid #22554c;border-radius:13px;background:#33776a;color:#fff9de;font:900 17px Nunito,sans-serif;padding:11px 14px;box-shadow:0 3px #20564c;min-height:48px!important}.route-primary:hover{background:#2d6f64}.route-primary:disabled{background:#d8dccc;border-color:#c5caba;box-shadow:0 3px #b8beae;color:#66715f}.route-locate,.route-story{width:46px;border:1px solid #d7c69e;border-radius:12px;background:#f3e7cb;color:#4b6958;display:grid;place-items:center;box-shadow:0 3px #d6c5a2}.route-story img{width:30px;height:30px}.route-filters{display:flex;gap:5px;padding:7px 12px;flex-shrink:0;border-bottom:1px solid #ded3ba}.route-filters button{flex:1;min-height:44px;border-radius:9px;background:#f0e8d7;color:#50604f;font-size:10px;font-weight:750}.route-filters button[aria-pressed=true]{background:#dae6d6;color:#29564d;border:1px solid #a6baa0}.route-list{padding:12px}.route-list-item{width:100%;display:flex;align-items:center;gap:11px;text-align:left;margin-bottom:8px;padding:8px 12px 8px 7px;border:1px solid #dfd4bd;border-radius:16px;background:#fffaf0;color:#36544e;box-shadow:0 2px #eee2cd}.route-list-item.current{background:#f6ecd1;border-color:#c8a660}.route-list-number{position:relative;display:grid;place-items:center;flex-shrink:0;width:62px;height:62px}.route-list-number img{position:absolute;inset:0;width:100%;height:100%}.route-list-number b{position:relative;top:-2px;font:900 23px Nunito,sans-serif;color:#fff5dd;text-shadow:0 1px 1px #384b41}.route-list-item.locked .route-list-number b,.route-list-item.current .route-list-number b{color:#556552;text-shadow:none}.route-list-copy{display:flex;flex-direction:column;gap:3px;flex:1}.route-list-copy>strong{font:850 14px Nunito,sans-serif;line-height:1.15}.route-list-copy>small{font-size:10px;color:#50604f}.route-list-copy>em{font-size:10px;font-style:normal;color:#50604f}.route-list-copy>.route-stars{align-self:flex-start}.route-list-copy>.route-stars img{width:19px;height:19px}.route-empty{text-align:center;padding:35px 15px;color:#677567}.route-empty>img{width:60px;height:60px}.route-empty h3{margin:15px 0 8px;font-size:18px}.route-empty p{font-size:12px;line-height:1.6}.level-ticket{max-height:min(810px,100%);height:auto}.ticket-cover{position:relative;flex-shrink:0;height:180px;text-align:center;background-size:cover;background-position:center 72%;isolation:isolate}.ticket-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#214e4dfc,#294e4355 90%);z-index:-1}.ticket-cover>.route-close{right:auto;left:10px}.ticket-difficulty{position:absolute;right:13px;top:18px;padding:5px 9px;border:1px solid #e7d4a3;border-radius:7px;background:#f8ecd1;color:#4e6c57;font-size:10px;font-weight:800}.ticket-difficulty.hard{background:#775565;color:#fff4de}.ticket-difficulty.finale{background:#324d65;color:#fff4de}.ticket-number{position:relative;width:84px;height:84px;margin:15px auto 0;display:grid;place-items:center}.ticket-number img{position:absolute;width:100%;height:100%}.ticket-number strong{position:relative;top:-3px;font:950 30px Nunito,sans-serif;color:#62442b;text-shadow:0 1px 0 #e5cf9b}.ticket-number img[src$="node-complete.webp"]+strong{color:#fff4d8;text-shadow:0 2px 1px #163e40}.ticket-number img[src$="node-locked.webp"]+strong{color:#405653;text-shadow:0 1px 0 #e3e6d7}.ticket-chapter{display:block;font-size:8px;letter-spacing:.15em;color:#e3dfb7;margin-top:0}.ticket-cover h2{font:950 28px Nunito,sans-serif;color:#fff5db;line-height:1.1;margin:3px 0}.ticket-cover .route-stars img{width:20px;height:20px}.ticket-body{overflow:auto;min-height:0;padding:18px 22px;overscroll-behavior:contain}.ticket-body>h3{font:900 21px Nunito,sans-serif;margin:0 0 6px;text-align:center;color:#385351}.ticket-description{font-size:11px;line-height:1.6;text-align:center;color:#50604f;margin:0 0 14px}.ticket-facts{display:flex;justify-content:space-between;align-items:center;border-block:1px dashed #d7c6a4;padding:10px 0;margin-bottom:15px;font-size:10px;color:#50604f}.ticket-facts>span:first-child>b{font:950 27px Nunito,sans-serif;color:#356358;vertical-align:middle;margin-right:3px}.ticket-facts>span:last-child{text-align:right;line-height:1.6}.ticket-facts>span:last-child>b{color:#4b6b5e}.ticket-body h4{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#50604f;margin:13px 0 9px}.ticket-objectives{display:flex;gap:8px}.ticket-objectives>div{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;padding:9px 4px 8px;background:#f0e7d2;border:1px solid #e1d3b5;border-radius:13px;min-width:0}.ticket-objectives img{width:45px;height:45px;object-fit:contain}.ticket-objectives strong{position:absolute;top:7px;right:6px;background:#fff7e8;border-radius:7px;padding:2px 5px;font:900 16px Nunito,sans-serif;color:#426453;box-shadow:0 1px 2px #40392f20}.ticket-objectives span{font-size:9px;margin-top:4px;text-align:center;color:#50604f}.ticket-reward{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding:10px 12px;background:#e8eedc;border:1px solid #d3ddbf;border-radius:10px}.ticket-reward>span{font-size:10px;color:#58715a}.ticket-reward>strong{display:flex;align-items:center;gap:4px;font:900 16px Nunito,sans-serif;white-space:nowrap}.ticket-reward img{width:23px;height:23px;object-fit:contain}.ticket-hint{font-size:9px;line-height:1.6;margin:6px 0 12px;color:#50604f}.ticket-inventory{display:flex;gap:8px}.ticket-inventory>span{flex:1;display:flex;align-items:center;gap:7px;border:1px solid #e0d5bc;border-radius:10px;padding:5px 8px}.ticket-inventory img{width:37px;height:37px;object-fit:contain}.ticket-inventory>span>span{font-size:9px;color:#50604f;display:flex;flex-direction:column;gap:3px}.ticket-inventory b{color:#4b6654;font-size:12px}.ticket-message{padding:10px 12px;background:#f0e7d4;border:1px solid #e0cfac;border-radius:10px;font-size:11px;line-height:1.55;color:#50604f;display:flex;align-items:center;gap:10px;margin:12px 0 0}.ticket-message svg{flex-shrink:0}.ticket-footer{padding:12px 22px 17px;flex-shrink:0;border-top:1px dashed #d6c6a4;background:#fff8e9;display:flex;flex-direction:column;gap:8px}.route-recover{background:#e7ecdc;color:#436a5d;border-radius:10px;font-size:11px;padding:8px}.route-switch-body{padding:24px}.route-switch-body h2{font:900 23px Nunito,sans-serif;line-height:1.15;margin:15px 30px 12px 0}.route-switch-body p{font-size:12px;line-height:1.65;color:#50604f}.route-switch-actions{display:flex;flex-direction:column;gap:12px;margin-top:18px}.route-switch-actions>.secondary{min-height:46px}.route-switch{position:relative}@keyframes route-arrive{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes route-beacon{0%,to{filter:drop-shadow(0 4px 3px #3a392f44)}50%{filter:drop-shadow(0 0 9px #f4be4d)}}@media(max-height:680px){.route-heading{padding:14px 17px 10px}.route-heading h2{font-size:24px;margin:4px 38px 7px 0}.route-stages{padding:6px 9px}.route-stages button{padding-top:4px;padding-bottom:7px}.route-footer{padding:8px 12px 10px}.route-footer-copy{margin-bottom:6px}.ticket-cover{height:151px}.ticket-number{width:67px;height:67px;margin-top:10px}.ticket-cover h2{font-size:25px}.ticket-body{padding:14px 18px}.ticket-footer{padding:10px 18px 13px}}@media(max-width:350px){.route-heading h2{font-size:24px}.route-heading{padding-left:17px;padding-right:17px}.route-stages span{font-size:8px}.route-canvas{height:1010px}.route-milestone{right:79px;width:72px}.route-milestone>span{font-size:7px}.route-node,.route-stop{width:76px;height:76px}.route-difficulty{left:71px;font-size:8px;padding:4px 5px}.route-footer-copy>span{font-size:8px}.route-list-copy>strong{font-size:12px}.ticket-body{padding-inline:16px}.ticket-description{font-size:10px}.ticket-cover h2{font-size:25px}}@media(prefers-reduced-motion:reduce){.route-dialog,.route-node.recommended{animation:none}.route-node,.route-meter>span{transition:none}}.ticket-mechanics{margin:14px 0;border:1px solid #dac9ad;border-radius:15px;background:#fff9ed}.ticket-mechanics summary{min-height:44px;padding:13px 14px;cursor:pointer;font-size:12px;font-weight:800}.ticket-mechanics ul{margin:0;padding:0 13px;list-style:none}.ticket-mechanics li{display:flex;gap:9px;align-items:flex-start;padding:9px 0;border-top:1px solid #e9dcc7}.ticket-mechanics li img{width:36px;height:36px;object-fit:contain;flex:0 0 36px}.ticket-mechanics li strong{display:block;font-size:12px}.ticket-mechanics li small{display:block;margin-top:3px;color:#71675f;font-size:11px;line-height:1.5}.ticket-mechanics>p{padding:0 13px 11px;font-size:11px;line-height:1.5;color:#71675f}@font-face{font-family:Manrope;src:url(/assets/fonts/Manrope-Variable.woff2) format("woff2");font-weight:200 800;font-display:swap}@font-face{font-family:Nunito;src:url(/assets/fonts/Nunito-Variable.woff2) format("woff2");font-weight:200 1000;font-display:swap}:root{font-family:Manrope,Arial,sans-serif;color:#343248;background:#171725;font-synthesis:none;--cream: #fff6e6;--navy: #22213b;--gold: #f2c66d;--safe-top: 0px;--safe-bottom: 0px}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;border:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.45;cursor:default}button:focus-visible{outline:3px solid #628ae5;outline-offset:3px}button:active:not(:disabled){transform:translateY(2px)}button,img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Nunito,Manrope,sans-serif}p{line-height:1.55}canvas{display:block;touch-action:none}#root{width:100%;height:100dvh;display:grid;place-items:center}.game-shell{width:100%;max-width:470px;height:100dvh;max-height:1000px;position:relative;isolation:isolate;overflow:hidden;background:#22213b;box-shadow:0 0 120px #0008}.town-canvas{position:absolute;inset:0;z-index:-3}.town-canvas canvas{width:100%!important;height:100%!important;object-fit:cover}.town-vignette{position:absolute;inset:0;background:linear-gradient(#18182e77,transparent 42%,transparent 55%,#22213b 100%);z-index:-2;pointer-events:none}.town-top{display:flex;gap:9px;align-items:center;position:absolute;top:calc(18px + var(--safe-top));left:18px;right:18px;height:46px}.avatar{width:47px;height:47px;background:#fff6e6;border:2px solid #f2c66d;border-radius:50%;overflow:hidden;box-shadow:0 3px 10px #0004}.avatar img{width:49px;height:49px;object-fit:cover;margin-left:-4px}.wallet{height:34px;border-radius:18px;color:#fff6e6;background:#29263bcc;display:flex;align-items:center;gap:5px;padding:2px 13px 2px 5px;font-weight:800;font-size:16px;border:1px solid #ffffff30}.coins{gap:7px;padding-left:10px}.coins svg{width:19px;color:#f2c66d}.round{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#fff6e6;background:#2f2b45dd;border:1px solid #fff4}.town-top>.round{margin-left:auto}.town-title{position:absolute;left:0;right:0;top:calc(86px + var(--safe-top));text-align:center;color:var(--cream);text-shadow:0 2px 12px #2b253a88}.eyebrow{font-size:9px;letter-spacing:2.1px;font-weight:800}.town-title h1{font-family:Nunito,sans-serif;font-size:53px;line-height:.97;font-weight:1000;letter-spacing:-1.8px;margin:10px 0 15px}.town-title h1 span{display:block;font-size:31px;line-height:1.18;letter-spacing:-.7px}.town-chapter{display:flex;justify-content:center;align-items:center;gap:9px;padding:0 14px;color:var(--cream);text-shadow:0 1px 6px #211b29,0 2px 16px #211b2999}.town-chapter>span{font-size:9px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#ffe4a5}.town-chapter h2{border-left:1px solid #ffe4a599;padding-left:9px;font-size:15px;line-height:22px;font-weight:800;letter-spacing:.1px}.town-bottom{position:absolute;bottom:calc(28px + var(--safe-bottom));left:20px;right:20px}.quest{display:flex;align-items:center;gap:12px;position:relative;min-height:89px;background:#fff6e6ed;border-radius:19px;border:1px solid #fffbed;box-shadow:0 5px 22px #1d16333d;padding:14px 12px;width:100%;text-align:left;color:#343248;transition:border-color .15s,background-color .15s}.quest:hover{border-color:#f2c66d;background:#fff9ec}.quest:focus-visible{outline-color:#f2c66d}.quest-copy{display:block;flex:1;min-width:0}.quest-portrait{width:61px;height:66px;object-fit:cover;align-self:flex-end;margin:-13px 0 -13px -5px}.cinema-label{display:block;font-size:10px;line-height:15px;letter-spacing:.6px;font-weight:800;color:#526d66;text-transform:uppercase}.quest-title{display:block;font-family:Nunito,Manrope,sans-serif;font-size:18px;line-height:1.2;margin:4px 0;font-weight:900}.quest-progress{display:block;font-size:10px;color:#8a7780}.quest-cost{margin-left:auto;display:flex;gap:2px;align-items:center;font-size:14px;font-weight:800;flex-shrink:0}.primary{min-height:49px;padding:12px 21px;color:#573a32;border:1px solid #ffe4a5;border-radius:16px;background:#f2c66d;box-shadow:inset 0 2px #fff0b8,0 4px #c18b42,0 6px 16px #0002;font-family:Nunito,sans-serif;font-weight:1000;font-size:17px;display:flex;align-items:center;justify-content:center;gap:12px;text-decoration:none}.primary:active:not(:disabled){box-shadow:inset 0 2px #fff0b8,0 1px #c18b42}.play-main{width:100%;margin-top:12px;min-height:57px;font-size:21px;border-radius:17px}.play-main svg{width:20px;fill:currentColor;stroke:none}.town-nav{display:flex;justify-content:space-around;margin-top:20px;color:#fff6e6}.town-nav button{background:transparent;color:inherit;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:60px;min-height:47px;position:relative}.town-nav svg{width:22px;height:22px;color:#f2dba9}.town-nav img{width:26px;height:24px;object-fit:contain}.town-nav span{font-size:10px;font-weight:600}.town-nav small{position:absolute;right:9px;top:-2px;background:#ed9b7d;border-radius:50%;color:#34263c;font-size:8px;padding:2px 4px}.preview-badge{position:absolute;bottom:6px;width:100%;text-align:center;font-size:7px;letter-spacing:1.5px;font-weight:700;color:#fff7c775;pointer-events:none;z-index:9}.game-shell.game{display:flex;flex-direction:column;padding:calc(16px + var(--safe-top)) 14px calc(25px + var(--safe-bottom));gap:12px;background:#27263d}.board-backdrop{position:absolute;inset:0;background:linear-gradient(#25243b85,#22213bf9 45%),url(/assets/town/theater-ruined.webp) center/cover;z-index:-2}.game-top{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;color:var(--cream);gap:8px;padding:0 4px}.game-top>div:nth-child(2){text-align:center}.game-top h2{font-size:24px;letter-spacing:-.6px;font-weight:900;line-height:1.4}.game-top .eyebrow{font-size:8px;color:#e8cda3;letter-spacing:1.6px}.moves{background:#f2c66d;color:#634235;border:2px solid #ffe1a2;border-radius:18px;min-width:61px;min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 3px #a8713f}.moves strong{font-family:Nunito;font-size:27px;line-height:1;font-weight:1000}.moves span{font-size:7px;font-weight:800;letter-spacing:1px;margin-top:4px}.objectives{flex-shrink:0;min-height:64px;background:#fff6e6;border-radius:17px;border:2px solid #d9c6ad;box-shadow:0 3px #16182b55;display:flex;align-items:center;justify-content:center;gap:19px;padding:6px 10px;margin:0 4px}.objective{display:flex;align-items:center;gap:3px}.objective img{height:43px;width:43px;object-fit:contain}.objective b{font-size:19px;font-weight:900;color:#44374d}.objective.done{opacity:.6}.objective.done b{color:#318878}.objective-label{border-left:1px solid #dccbbb;padding-left:13px;color:#817080;font-size:10px;line-height:1.5}.board-canvas{flex:1;min-height:0;position:relative;width:100%;overflow:hidden}.board-canvas canvas{max-width:100%;max-height:100%;margin-top:0!important}.board-caption{flex-shrink:0;min-height:29px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:10px;color:#e4d5c8;line-height:1.4;max-width:315px;margin:-4px auto 0}.game-bottom{flex-shrink:0;margin-top:-1px}.boosters{display:flex;justify-content:center;gap:21px;align-items:center}.boosters button{position:relative;width:67px;height:68px;border-radius:17px;background:#494559;border:1px solid #b5a39755;color:#fce4bd;display:flex;align-items:center;justify-content:center;padding-bottom:15px;box-shadow:0 3px #17182c}.boosters button>img{width:41px;height:41px;object-fit:contain}.boosters button>svg{width:28px;height:28px}.boosters button>b{position:absolute;right:-5px;top:-5px;background:#f2c66d;color:#483040;border-radius:10px;font-size:10px;min-width:20px;padding:3px;border:2px solid #3a344a}.boosters button>span:not(.five){position:absolute;bottom:7px;font-size:8px}.boosters .five{font-family:Nunito;font-size:30px;font-weight:1000}.hint-button{display:block;background:transparent;color:#d0c7c2;font-size:10px;min-height:28px;margin:5px auto -7px;padding:8px 16px}.scrim{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:22px 18px;background:#15152fc9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal{position:relative;width:100%;max-height:calc(100% - 24px);overflow:auto;background:#fff6e6;border-radius:27px;border:2px solid #fffdf0;padding:31px 24px 24px;box-shadow:0 9px #b6a49333,0 24px 70px #0005;text-align:center;scrollbar-width:thin}.modal h2{font-size:27px;line-height:1.1;color:#393146;letter-spacing:-.6px;font-weight:900;padding:5px 6px 12px}.modal-close{position:absolute;right:9px;top:9px;width:31px;height:31px;border:0;background:#e8dbc8;color:#766777}.modal-close svg{width:17px;height:17px}.modal>p{font-size:12px;color:#6e6173;margin:10px 0 15px}.modal .subtitle{font-size:11px;color:#98785a;margin-top:-4px}.wide{width:100%;margin-top:16px}.secondary{min-height:44px;padding:10px 16px;border:1px solid #c5bbae;border-radius:13px;color:#5c5266;background:#eee5d8;font-size:12px;font-weight:800}.text-button{background:transparent;color:#fff6e6;min-height:44px;font-size:11px;text-decoration:underline;text-underline-offset:4px;padding:8px}.text-button.dark{color:#85768a;margin-top:10px}.muted{color:#90818c!important;font-size:10px!important}.preview-objectives{display:flex;align-items:center;justify-content:center;gap:24px;padding:12px 0}.preview-objectives>div{display:flex;align-items:center;flex-direction:column}.preview-objectives img{width:64px;height:64px;object-fit:contain}.preview-objectives strong{font-size:24px;font-family:Nunito;font-weight:1000}.preview-objectives small{font-size:9px;color:#857783}.level-facts{display:flex;align-items:center;justify-content:center;gap:15px;font-size:9px;background:#eee3d4;padding:12px 8px;border-radius:12px}.repair-art{width:100%;height:180px;object-fit:cover;object-position:50% 55%;border-radius:16px;border:3px solid #e6d6bb}.choices{display:flex;gap:7px;margin:12px 0}.choices button{flex:1;border:2px solid #ded4c6;border-radius:12px;font-size:9px;color:#726176;background:#f6ecd9;min-height:72px;padding:5px}.choices i{display:block;width:29px;height:29px;margin:2px auto 5px;border-radius:50%;border:2px solid #fff}.choices .selected{border-color:#5eafa4;background:#e8f0dd}.win-stars{display:flex;align-items:center;justify-content:center;margin:14px 0 20px;gap:1px}.win-stars img{width:70px;height:70px;object-fit:contain;filter:drop-shadow(0 5px 4px #b6845833);animation:star-pop .6s backwards}.win-stars img:nth-child(2){width:90px;height:90px;animation-delay:.1s;transform:translateY(-10px)}.win-stars img:nth-child(3){animation-delay:.2s}.win-stars img.unearned{filter:grayscale(1);opacity:.3}.reward{display:flex;align-items:center;gap:7px;justify-content:center;color:#73503a}.reward b{font-size:26px;font-family:Nunito;font-weight:900}.reward span{font-size:11px;max-width:94px;text-align:left}.result-portrait{width:130px;height:130px;object-fit:contain}.settings{display:flex;flex-direction:column;gap:3px;margin:15px 0}.settings button{display:flex;align-items:center;justify-content:space-between;min-height:53px;background:none;border-bottom:1px solid #e8dece;color:#524958;font-size:13px;text-align:left}.toggle{width:41px;height:25px;border-radius:20px;background:#c5bdc0;position:relative;box-shadow:inset 0 1px 3px #0002}.toggle:after{content:"";width:19px;height:19px;position:absolute;left:3px;top:3px;border-radius:50%;background:#fff6e6;box-shadow:0 2px 3px #0002;transition:.2s}.toggle.on{background:#5eafa4}.toggle.on:after{left:19px}.help-list{text-align:left}.help-list p{font-size:12px;margin:15px 0;color:#776575}.help-list b{color:#443348}.journal-list{display:flex;flex-direction:column;gap:12px;text-align:left}.journal-list button{display:flex;gap:12px;padding:12px 0;background:none;border-bottom:1px solid #ddccbb;text-align:left;color:#433344}.journal-list img{width:58px;height:75px;object-fit:cover;border-radius:9px}.journal-list b{font-size:13px}.journal-list p{font-size:10px;margin:5px 0;color:#897889}.journal-list span{font-size:9px;color:#368d84}.level-map{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:15px -6px}.level-map button{aspect-ratio:1;background:#e4d9c8;border:2px solid #d3c1a7;border-radius:13px;color:#53475d;font-size:18px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-direction:column}.level-map small{font-size:6px;font-weight:600;margin-top:3px}.level-map .completed{background:#a6cec0;border-color:#78b5a8}.shop-status{padding:12px;background:#ede5d9;border:1px solid #d9c9b7;border-radius:13px;font-size:10px!important}.inventory-list p{display:flex;justify-content:space-between;font-size:12px;padding:12px;border-bottom:1px solid #e4d6c6}.product{display:flex;gap:10px;align-items:center;text-align:left;margin:18px 0}.product>img{width:56px;height:56px;object-fit:contain}.product b{font-size:12px}.product p{font-size:10px;color:#867987;margin:5px 0}.product .secondary{font-size:10px}.dialogue{position:absolute;inset:0;z-index:25;overflow:hidden}.dialogue-bg{position:absolute;inset:0;background-position:center;background-size:cover;animation:pan 15s ease-in-out infinite alternate}.dialogue-shade{position:absolute;inset:0;background:linear-gradient(#22213b60,transparent 25%,#22213b77 65%,#22213b)}.dialogue header{position:absolute;top:calc(23px + var(--safe-top));left:23px;right:16px;display:flex;align-items:center;justify-content:space-between;color:#fff6e6}.dialogue header>.eyebrow{max-width:210px;letter-spacing:1.3px;font-size:11px}.dialogue-character{position:absolute;bottom:185px;left:12px;right:12px;height:310px;display:flex;align-items:flex-end;justify-content:center;filter:drop-shadow(0 9px 10px #0004)}.dialogue-character img{width:310px;max-width:100%;height:auto;max-height:100%;object-fit:contain;animation:character-in .25s}.dialogue-card{position:absolute;bottom:calc(28px + var(--safe-bottom));left:19px;right:19px;min-height:178px;border:2px solid #fff7e8;border-radius:23px;background:#fff6e6;box-shadow:0 4px #b7a488;padding:29px 22px 17px}.speaker{position:absolute;top:-16px;left:20px;background:#5eafa4;color:#fff6e6;border:2px solid #b7dbcb;border-radius:11px;padding:7px 22px;font-family:Nunito;font-weight:1000;font-size:15px;box-shadow:0 3px #347e7566}.dialogue-card p{font-size:15px;font-weight:600;line-height:1.65;color:#534454;min-height:74px;animation:character-in .2s}.dialogue-card footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.dialogue-card footer>span{font-size:10px;color:#aa8f93}.dialogue-card .primary{min-height:40px;padding:8px 16px;font-size:13px;border-radius:12px}.dialogue-card .primary svg{width:13px}.restoration-fx{position:absolute;inset:0;z-index:26;pointer-events:none;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#ffe6ac44;animation:restore 1.6s;color:#fff6e6;text-shadow:0 3px 12px #352c35}.restoration-fx img{filter:drop-shadow(0 0 50px #ffe0a4);animation:star-pop .8s}.restoration-fx h2{font-size:23px;margin-top:13px}.spark{position:absolute;width:15px;height:15px;border-radius:50%;background:#fff4c2;box-shadow:0 0 45px 15px #ffe6ad;animation:float .9s infinite}.s1{left:20%;top:35%}.s2{right:20%;top:60%;animation-delay:.2s}.s3{left:40%;top:70%;animation-delay:.4s}.toast{position:absolute;z-index:40;bottom:145px;left:23px;right:23px;border-radius:15px;background:#fff6e6f2;color:#4d3c50;padding:14px 18px;text-align:center;font-size:12px;box-shadow:0 5px 20px #0004;pointer-events:none}.offline{position:absolute;top:3px;left:0;right:0;font-size:8px;text-align:center;background:#bc8154;color:#fff6e6;z-index:30;padding:3px}.error-banner{position:absolute;z-index:60;bottom:18px;left:15px;right:15px;background:#fff6e6;border:2px solid #dc807c;box-shadow:0 4px 30px #0006;border-radius:17px;padding:14px;display:flex;gap:10px;align-items:center}.error-banner p{font-size:10px;color:#96505c}.error-banner button{font-size:10px;min-height:44px;background:#eddbd0;border-radius:8px;padding:6px 10px;color:#6e3b50}.loading{position:absolute;z-index:70;inset:0;background:#22213bdd;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#fff6e6;gap:16px;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.loading img{width:65px;height:65px;object-fit:contain;animation:spin 3s linear infinite}.loading span{font-size:13px;font-family:Nunito}.reduced *{animation:none!important;transition:none!important}@keyframes pulse{50%{box-shadow:0 0 2px #ffefbd;opacity:.5}}@keyframes pan{to{transform:scale(1.07)}}@keyframes star-pop{0%{transform:scale(.1) rotate(-25deg);opacity:0}70%{transform:scale(1.1)}}@keyframes character-in{0%{transform:translateY(10px);opacity:.3}to{transform:translateY(0);opacity:1}}@keyframes restore{0%{background:#fff9d500;opacity:0}30%{background:#fff9d5aa;opacity:1}to{background:#fff9d500;opacity:0}}@keyframes float{to{transform:translateY(-90px);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}.game-shell.desktop-presentation{width:min(440px,calc(100% - 24px),max(320px,calc(56dvh - 14px)));height:min(860px,calc(100dvh - 24px));max-height:none;max-width:none;border:1px solid #fff2;border-radius:24px}@media(min-width:600px)and (hover:hover)and (pointer:fine){.game-shell:not(.mobile-presentation){width:min(440px,calc(100% - 24px),max(320px,calc(56dvh - 14px)));height:min(860px,calc(100dvh - 24px));max-height:none;max-width:none;border:1px solid #fff2;border-radius:24px}.preview-badge{font-size:8px}}@media(max-height:720px){.town-title{top:calc(75px + var(--safe-top))}.town-title h1{font-size:43px;margin:8px 0}.town-title h1 span{font-size:26px}.town-bottom{bottom:calc(24px + var(--safe-bottom));left:16px;right:16px}.quest{min-height:76px;padding:10px}.quest-title{font-size:16px}.quest-portrait{width:51px;height:58px;margin:-8px 0 -8px -3px}.play-main{min-height:49px;margin-top:10px;font-size:18px}.town-nav{margin-top:13px}.town-nav button{min-height:42px}.game-shell.game{gap:7px;padding-top:10px;padding-bottom:20px}.game-top h2{font-size:21px}.moves{min-height:47px;min-width:53px;border-radius:14px}.moves strong{font-size:22px}.game-top .round{width:39px;height:39px}.objectives{min-height:53px}.objective img{width:35px;height:35px}.boosters button{height:56px;width:60px}.boosters button>img{height:34px;width:34px}.board-caption{font-size:9px;min-height:25px}.dialogue-character{height:250px;bottom:195px}.dialogue-card p{font-size:13px}.dialogue-card{padding:25px 18px 13px}.modal{padding:26px 19px 20px}.modal h2{font-size:24px}.preview-objectives img{width:50px;height:50px}.win-stars img{width:56px;height:56px}.win-stars img:nth-child(2){width:73px;height:73px}}@media(max-width:340px){.town-top{left:12px;right:12px;gap:7px}.quest-title{font-size:15px}.quest-cost{font-size:12px}.quest-cost .star{width:21px}.town-title h1{font-size:44px}.town-title h1 span{font-size:27px}.game-shell.game{padding-left:7px;padding-right:7px}.objectives{gap:12px}.objective-label{font-size:8px;padding-left:9px}.objective b{font-size:16px}.game-top{padding:0 7px}.modal{padding:30px 16px 21px}.modal h2{font-size:24px}.level-map{gap:6px}.dialogue-card{left:13px;right:13px}.primary{font-size:15px}.dialogue-card p{font-size:13px}.town-bottom{left:13px;right:13px}}@media(max-height:640px){.game-shell.game{padding:4px 7px 16px;gap:4px}.game-top{height:44px}.game-top .round{width:44px;height:44px}.game-top h2{font-size:20px;line-height:1.25}.game-top .eyebrow{font-size:7px}.moves{min-height:43px;min-width:50px}.moves strong{font-size:21px}.moves span{font-size:6px}.objectives{min-height:40px;padding:2px 8px;border-radius:12px}.objective img{width:32px;height:32px}.objective-label{font-size:8px}.board-caption{display:none}.game-bottom{height:52px;margin:0;position:relative}.boosters{justify-content:flex-start;padding-left:14px;gap:18px}.boosters button{height:47px;width:56px;border-radius:13px}.boosters button>img{height:29px;width:29px}.boosters button>svg{width:23px;height:23px}.boosters .five{font-size:25px}.boosters button>span:not(.five){bottom:4px;font-size:7px}.hint-button{position:absolute;right:1px;top:0;min-height:46px;width:48px;margin:0;font-size:8px;padding:4px}.town-title{top:calc(76px + var(--safe-top))}.town-title h1{font-size:38px}.town-title h1 span{font-size:23px}.town-chapter h2{font-size:13px}.town-bottom{bottom:calc(20px + var(--safe-bottom))}.quest{min-height:70px}.town-nav{margin-top:9px}.quest-progress{font-size:9px}.quest-title{font-size:15px}}.town-top button.wallet{min-height:44px}.modal-close{width:44px;height:44px;top:5px;right:5px}.modal h2{padding:16px 20px 12px}.dialogue-card .primary,.town-nav button{min-height:44px}.game-top .round{width:44px;height:44px}.hint-button{min-height:44px}@media(max-height:640px){.board-caption{display:block;min-height:24px;flex-shrink:0;font-size:9px;line-height:1.2;padding:2px 5px}}.production-welcome{text-align:center}.production-open{display:flex;align-items:center;justify-content:center;min-height:48px;text-decoration:none}.production-legal{display:flex;justify-content:center;flex-wrap:wrap;gap:0 16px;margin-top:12px}.production-legal a{display:inline-flex;align-items:center;min-height:44px;color:#245c52;font-size:12px;text-underline-offset:3px}.game-shell.game{padding:calc(4px + max(var(--safe-top),env(safe-area-inset-top,0px))) max(2px,var(--safe-right, 0px),env(safe-area-inset-right,0px)) calc(10px + max(var(--safe-bottom),env(safe-area-inset-bottom,0px))) max(2px,var(--safe-left, 0px),env(safe-area-inset-left,0px));gap:4px}.game-shell.game .game-top{height:56px;min-height:56px;gap:6px;padding:0 6px}.game-shell.game .game-top .round{flex:0 0 44px;width:44px;height:44px}.game-shell.game .game-level-goals{flex:1;min-width:0;text-align:center}.game-shell.game .game-top h2{font-size:13px;font-weight:900;line-height:18px;letter-spacing:.15px;color:#fff1d7}.game-shell.game .moves{flex:0 0 54px;min-width:54px;min-height:48px;height:48px;border-radius:14px;box-shadow:0 2px #a8713f}.game-shell.game .moves strong{font-size:25px}.game-shell.game .moves--clock{flex-basis:64px;min-width:64px}.game-shell.game .moves--clock strong{font-size:23px;font-variant-numeric:tabular-nums}.game-shell.game .moves.is-frozen{background:#c5e9f2;color:#204c68;border-color:#a3d4e5;box-shadow:0 2px #52768c}.game-shell.game .boosters .freeze-button{background:#354d64;border-color:#82bed9}.game-shell.game .moves span{font-size:8px;margin-top:2px;letter-spacing:.7px}.game-shell.game .objectives{min-height:32px;height:32px;margin:0;padding:0;gap:clamp(5px,2vw,11px);border:0;border-radius:0;background:transparent;box-shadow:none}.game-shell.game .objective{gap:2px}.game-shell.game .objective img{width:29px;height:29px}.game-shell.game .objective b{font-size:18px;line-height:24px;color:#fff4de}.game-shell.game .objective b svg{width:20px;height:20px}.game-shell.game .objective.done{opacity:1}.game-shell.game .objective.done b{color:#95d9b6}.game-shell.game .board-canvas{flex:1 1 0;min-height:0;min-width:0;margin:0;overflow:hidden}.game-shell.game .board-canvas canvas{width:100%!important;height:100%!important;margin:0!important}.game-shell.game .board-caption{position:static;display:block;flex:0 0 30px;height:30px;min-height:30px;max-height:30px;overflow:hidden;max-width:100%;margin:0;padding:0 10px;font-size:10px;line-height:15px;color:#e9dfd3}.game-shell.game .game-bottom{position:static;display:flex;align-items:center;gap:8px;height:56px;min-height:56px;margin:0;padding:0 10px}.game-shell.game .boosters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex:1;min-width:0;gap:8px;padding:0}.game-shell.game .boosters button{width:100%;min-width:44px;height:52px;border-radius:14px;padding:0 0 14px}.game-shell.game .boosters button>img{width:32px;height:32px}.game-shell.game .boosters button>svg{width:25px;height:25px}.game-shell.game .boosters .five{font-size:27px}.game-shell.game .boosters button>b{right:0;top:-3px;min-width:19px;font-size:10px;padding:2px}.game-shell.game .boosters button>span:not(.five){bottom:4px;font-size:9px;line-height:12px}.game-shell.game .hint-button{position:static;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:0 0 66px;width:66px;min-height:52px;height:52px;margin:0;padding:4px 2px;font-size:9px;border-radius:14px;background:#2f2d43;border:1px solid #8d839966;color:#fff0d7}.game-shell.game .hint-button svg{width:22px;height:22px}.game-shell.game .preview-badge{bottom:calc(1px + max(var(--safe-bottom),env(safe-area-inset-bottom,0px)));font-size:6px}@media(max-height:740px){.game-shell.game .game-top{height:52px;min-height:52px}.game-shell.game .game-bottom{height:50px;min-height:50px;padding-inline:8px}.game-shell.game .boosters button,.game-shell.game .hint-button{height:48px;min-height:48px}.game-shell.game .board-caption{position:absolute;width:1px;height:1px;min-height:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}
