:root{--abyss: #0a0704;--ruin: #1a1008;--bark: #2a1a0e;--sand: #c59b5a;--amber: #e0a33c;--parchment: #f2dca3;--gold: #f9d25a;--rust: #a94623;--jungle: #3e6b2e;--blood: #c03a28;--font-display: "Cinzel", "Georgia", "Times New Roman", serif;--font-body: "Outfit", -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--font-data: "Outfit", ui-monospace, "SF Mono", Menlo, monospace;color-scheme:dark;font-family:var(--font-body);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{width:100%;height:100%;margin:0;padding:0;overflow:hidden;overscroll-behavior:none}html,body{background:var(--abyss);color:var(--parchment);touch-action:none;-webkit-user-select:none;user-select:none}#app{position:relative;max-width:620px;margin:0 auto;background:#0a0806;isolation:isolate;overflow:hidden}#game{display:block;width:100%;height:100%;position:relative;z-index:1;touch-action:none}.letterbox{position:absolute;z-index:6;left:0;right:0;background:linear-gradient(180deg,#000,#050302 60%,#050302e0);pointer-events:none}.letterbox.top{top:0;height:max(18px,env(safe-area-inset-top))}.letterbox.bottom{bottom:0;height:max(18px,env(safe-area-inset-bottom))}.vignette{position:absolute;z-index:5;inset:0;pointer-events:none;background:radial-gradient(ellipse 80% 60% at 50% 55%,#0000 48%,#0000008c 80%,#000000d1),linear-gradient(90deg,#0a0602a6,#0000 14% 86%,#0a0602a6),linear-gradient(180deg,#0a060280,#0000 22% 78%,#0a06028c);mix-blend-mode:multiply}.grain{position:absolute;z-index:8;inset:-50%;pointer-events:none;opacity:.16;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch' seed='7'/><feColorMatrix values='0 0 0 0 0.95  0 0 0 0 0.7  0 0 0 0 0.25  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-size:220px 220px;animation:grain-shift .9s steps(3,end) infinite}@keyframes grain-shift{0%{transform:translateZ(0)}33%{transform:translate3d(-40px,18px,0)}66%{transform:translate3d(28px,-24px,0)}to{transform:translate3d(-18px,22px,0)}}.hud{position:absolute;z-index:7;top:max(10px,env(safe-area-inset-top));left:0;right:0;padding:22px 10px 0;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:6px;pointer-events:none}.dial{position:relative;padding:7px 11px 9px;color:var(--parchment);text-align:center;isolation:isolate;opacity:0;transform:translateY(-8px);animation:dial-in .7s cubic-bezier(.2,.9,.2,1) forwards}.score-dial{animation-delay:.1s}.distance-dial{animation-delay:.22s}.relics-dial{animation-delay:.34s;text-align:right}.score-dial{text-align:left}@keyframes dial-in{0%{opacity:0;transform:translateY(-10px);filter:blur(4px)}60%{filter:blur(0)}to{opacity:1;transform:translateY(0)}}.dial-frame{position:absolute;z-index:-1;inset:0;border:1px solid rgba(224,163,60,.3);background:linear-gradient(180deg,#1a1008d1,#0a0704eb),repeating-linear-gradient(135deg,rgba(224,163,60,.035) 0 2px,transparent 2px 6px);clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 8px,100% calc(100% - 10px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 10px),0 8px);box-shadow:inset 0 1px #f9d25a2e,inset 0 -1px #0009,0 8px 22px #00000073}.dial-frame:before,.dial-frame:after{content:"";position:absolute;width:6px;height:6px;background:var(--amber);opacity:.45;box-shadow:0 0 6px #e0a33c66}.dial-frame:before{top:2px;left:2px}.dial-frame:after{bottom:2px;right:2px}.dial-eyebrow{display:block;font-family:var(--font-display);font-size:9.5px;font-weight:700;letter-spacing:.28em;color:#f2dca39e;text-transform:uppercase;line-height:1;margin-bottom:5px}.dial-value{display:block;font-family:var(--font-data);font-weight:800;font-variant-numeric:tabular-nums;font-size:clamp(20px,5.4vw,26px);letter-spacing:.01em;line-height:1;color:#fff0c8;text-shadow:0 0 14px rgba(249,210,90,.18),0 1px 0 rgba(0,0,0,.5);transition:transform .16s cubic-bezier(.2,.9,.2,1),color .16s ease}.dial-value.bump{transform:scale(1.18) translateY(-1px);color:var(--gold)}.distance-dial .dial-value{color:#f4ead5}.relics-dial .dial-value{color:var(--gold);text-shadow:0 0 18px rgba(249,210,90,.45),0 1px 0 rgba(0,0,0,.4)}.dial-marker{position:absolute;left:50%;top:1px;transform:translate(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(224,163,60,.55);filter:drop-shadow(0 0 3px rgba(224,163,60,.4))}.overlay{position:absolute;z-index:10;inset:0;padding:22px 14px calc(32px + env(safe-area-inset-bottom));display:grid;place-items:center start;background:radial-gradient(ellipse 90% 70% at 50% 35%,#1a120a8c,#060402e6 75%,#030201),linear-gradient(180deg,#0a0602eb,#060402fa);transition:opacity .38s ease,visibility .38s ease;overflow-y:auto}.overlay.hidden{visibility:hidden;opacity:0;pointer-events:none}.stage-inner{width:100%;max-width:460px;margin:0 auto;display:grid;gap:18px}.hero-block{position:relative;text-align:center;padding:6px 6px 0;opacity:0;animation:hero-in 1s cubic-bezier(.2,.9,.2,1) .05s forwards}@keyframes hero-in{0%{opacity:0;transform:translateY(12px) scale(.98);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}.chop-mark{display:inline-block;padding:4px 12px;border:1px solid rgba(224,163,60,.4);border-radius:2px;background:#2a1a0e8c;margin-bottom:10px;clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}.chop-mark span{font-family:var(--font-display);font-size:9.5px;font-weight:700;letter-spacing:.36em;color:#f2dca3bf;text-transform:uppercase}.eyebrow{margin:0 0 4px;font-family:var(--font-display);font-size:11px;font-weight:500;letter-spacing:.5em;color:#f2dca38c;text-transform:uppercase}.carved-title,.carved-sub{position:relative;margin:0;line-height:.9;letter-spacing:.02em;font-family:var(--font-display);text-transform:uppercase;font-weight:900;text-align:center}.carved-title{font-size:clamp(58px,17vw,96px);margin-top:-4px;height:clamp(58px,17vw,96px)}.carved-sub{font-size:clamp(42px,12vw,68px);margin-top:-6px;height:clamp(42px,12vw,68px)}.carved-fill{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(180deg,#ffe69c,#e0a33c 42%,#a96d1d 72%,#6b4313);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-fill-color:transparent;filter:drop-shadow(0 2px 0 rgba(0,0,0,.7)) drop-shadow(0 6px 18px rgba(0,0,0,.55)) drop-shadow(0 0 32px rgba(224,163,60,.22));z-index:2;animation:fill-in 1.1s cubic-bezier(.2,.9,.2,1) .3s both}.carved-stroke{position:absolute;inset:0;display:grid;place-items:center;color:transparent;-webkit-text-stroke:2px rgba(224,163,60,.55);z-index:1;mix-blend-mode:screen;transform:translate(2px,3px);opacity:.85}.carved-stroke.bottom{transform:translate(-1.5px,-1.5px)}@keyframes fill-in{0%{filter:brightness(.2) blur(5px) drop-shadow(0 0 0 rgba(0,0,0,0))}55%{filter:brightness(1.3) blur(0)}to{filter:drop-shadow(0 2px 0 rgba(0,0,0,.7)) drop-shadow(0 6px 18px rgba(0,0,0,.55)) drop-shadow(0 0 32px rgba(224,163,60,.22))}}.stamp{position:absolute;right:14px;top:56%;width:92px;height:92px;transform:rotate(-14deg);opacity:0;animation:stamp-drop .85s cubic-bezier(.2,1.5,.3,1) .85s forwards,stamp-sway 4.2s ease-in-out 1.7s infinite}@keyframes stamp-drop{0%{opacity:0;transform:rotate(-32deg) scale(1.8);filter:blur(8px)}60%{opacity:1;filter:blur(0)}to{opacity:1;transform:rotate(-14deg) scale(1);filter:drop-shadow(0 8px 16px rgba(169,70,35,.45))}}@keyframes stamp-sway{0%,to{transform:rotate(-14deg)}50%{transform:rotate(-10deg)}}.stamp-ring{position:absolute;inset:0;border:2px solid rgba(224,163,60,.7);border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(169,70,35,.22) 0%,rgba(169,70,35,.05) 60%,transparent 75%);box-shadow:inset 0 0 12px #e0a33c40,0 0 18px #a9462340;display:grid;place-items:center;overflow:hidden}.stamp-ring span{position:absolute;font-family:var(--font-display);font-size:8px;font-weight:700;letter-spacing:.25em;color:#f2dca3b3;text-transform:uppercase}.stamp-ring span:nth-child(1){top:11px}.stamp-ring span:nth-child(2){top:11px;left:62px}.stamp-ring span:nth-child(3){top:11px;right:18px}.stamp-ring span:nth-child(4){bottom:11px;left:38px}.stamp-ring span:nth-child(5){bottom:11px;right:10px}.stamp-ring span:nth-child(6){bottom:11px;left:8px}.stamp-ring span:nth-child(7){bottom:11px}.stamp-seal{position:relative;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e0a33c,#a94623 45%,#5f240f);display:grid;place-items:center;font-size:22px;color:#ffe9b6;text-shadow:0 1px 0 rgba(0,0,0,.4);box-shadow:inset 0 1px #ffe69c80,inset 0 -3px 8px #00000073,0 2px #00000080}.brief-card{position:relative;padding:16px 16px 15px;background:linear-gradient(180deg,#2a1c10b3,#1a1008e6);border:1px solid rgba(224,163,60,.28);clip-path:polygon(0 10px,10px 0,calc(100% - 18px) 0,100% 18px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px));box-shadow:inset 0 1px #f9d25a24,inset 0 -1px #0009,0 16px 38px #0000008c;opacity:0;transform:translateY(10px);animation:card-in .7s cubic-bezier(.2,.9,.2,1) .55s forwards}.brief-card:before{content:"";position:absolute;inset:3px;border:1px solid rgba(224,163,60,.1);clip-path:inherit;pointer-events:none}@keyframes card-in{0%{opacity:0;transform:translateY(14px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}.brief-head{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--font-display);font-size:10px;letter-spacing:.22em;color:#f2dca394;text-transform:uppercase;font-weight:600;margin-bottom:9px}.brief-text{margin:0;font-family:var(--font-body);font-size:14px;line-height:1.55;font-weight:400;color:#f2dca3e0}.brief-text em{font-style:italic;color:var(--amber);font-weight:600;letter-spacing:.02em;text-shadow:0 0 10px rgba(224,163,60,.3)}.brief-divider{height:1px;margin:12px 0 11px;background:linear-gradient(90deg,transparent 0%,rgba(224,163,60,.45) 20%,rgba(224,163,60,.55) 50%,rgba(224,163,60,.45) 80%,transparent 100%);position:relative}.brief-divider:before,.brief-divider:after{content:"";position:absolute;top:-2px;width:5px;height:5px;background:var(--amber);opacity:.7;transform:rotate(45deg)}.brief-divider:before{left:0}.brief-divider:after{right:0}.control-legend{list-style:none;padding:0;margin:0;display:grid;gap:8px}.control-legend li{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:10px;padding:6px 0;border-top:1px dashed rgba(224,163,60,.12)}.control-legend li:first-child{border-top:none;padding-top:2px}.leg-arrow{font-family:var(--font-display);font-weight:900;font-size:16px;color:var(--amber);letter-spacing:.05em;text-align:center;text-shadow:0 0 10px rgba(224,163,60,.3)}.leg-label{font-family:var(--font-body);font-weight:500;font-size:13px;letter-spacing:.02em;color:#f2dca3eb}.leg-key{display:inline-flex;gap:4px}kbd{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;background:linear-gradient(180deg,#52381ce6,#2a1a0ef2);border:1px solid rgba(224,163,60,.35);border-radius:4px;font-family:var(--font-data);font-size:11px;font-weight:700;color:#fff3cc;box-shadow:inset 0 1px #f9d25a38,0 2px #00000080;letter-spacing:0}.touch-hint{margin:10px 0 0;padding:7px 10px;background:#e0a33c12;border-left:2px solid rgba(224,163,60,.45);font-family:var(--font-body);font-size:11.5px;font-weight:400;letter-spacing:.03em;color:#f2dca3c7}.stone-button{position:relative;appearance:none;border:none;background:transparent;padding:0;margin:2px auto 0;display:block;cursor:pointer;color:inherit;isolation:isolate;width:100%;max-width:340px;opacity:0;transform:translateY(6px);animation:btn-in .7s cubic-bezier(.2,.9,.2,1) .8s forwards}@keyframes btn-in{0%{opacity:0;transform:translateY(10px);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}.btn-edge{position:absolute;z-index:-1;inset:-3px;background:linear-gradient(180deg,#6b4316,#3b230b);clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px);box-shadow:0 10px 24px #000000a6}.btn-face{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:16px 22px;background:linear-gradient(180deg,#e3b558,#d4962d 38%,#a46714);clip-path:polygon(11px 0,calc(100% - 11px) 0,100% 11px,100% calc(100% - 11px),calc(100% - 11px) 100%,11px 100%,0 calc(100% - 11px),0 11px);box-shadow:inset 0 1px #fff0b4b3,inset 0 -3px 10px #5a320a99,inset 0 0 0 1px #ffe69c33;transition:transform .11s ease,filter .18s ease}.stone-button:hover .btn-face{filter:brightness(1.08) saturate(1.08)}.stone-button:active .btn-face{transform:translateY(3px);filter:brightness(.92);box-shadow:inset 0 1px #fff0b466,inset 0 -2px 6px #5a320a99}.btn-carve{justify-self:center;padding-left:26px;font-family:var(--font-display);font-size:clamp(15px,4.2vw,19px);font-weight:900;letter-spacing:.22em;color:#3a2106;text-transform:uppercase;text-shadow:0 1px 0 rgba(255,235,170,.55),0 -1px 0 rgba(0,0,0,.18)}.btn-rune{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;font-style:normal;font-size:14px;color:#3a2106;background:radial-gradient(circle at 35% 30%,#fff0b480,#e0a33c00 60%),linear-gradient(180deg,#5a320a66,#5a320a1a);border:1px solid rgba(90,50,10,.3);box-shadow:inset 0 1px #ffebaa80,0 0 12px #e0a33c40}.result-inner{gap:14px}.debrief-banner{text-align:center;padding:16px 6px 10px;opacity:0;transform:translateY(14px);animation:debrief-in .7s cubic-bezier(.2,.9,.2,1) .05s forwards;position:relative}.debrief-banner:after{content:"";position:absolute;bottom:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(169,70,35,.5),transparent)}@keyframes debrief-in{0%{opacity:0;transform:translateY(14px);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}.deb-tag{margin:0 0 4px;font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.5em;color:#f2dca38c;text-transform:uppercase}.deb-title{margin:0;font-family:var(--font-display);font-size:clamp(26px,8vw,38px);font-weight:900;letter-spacing:.06em;line-height:1;text-transform:uppercase;background:linear-gradient(180deg,#f9d25a,#d4691f 55%,#722a11);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-fill-color:transparent;filter:drop-shadow(0 2px 0 rgba(0,0,0,.6)) drop-shadow(0 0 18px rgba(224,100,50,.2))}.deb-sub{margin:6px 0 0;font-family:var(--font-body);font-size:13px;font-weight:400;color:#f2dca3b8;font-style:italic}.log-sheet{position:relative;padding:18px 18px 20px;background:linear-gradient(180deg,#f2dca30f,#2a1a0ed9);border:1px solid rgba(224,163,60,.26);clip-path:polygon(0 12px,12px 0,calc(100% - 16px) 0,100% 16px,100% calc(100% - 14px),calc(100% - 14px) 100%,16px 100%,0 calc(100% - 16px));box-shadow:inset 0 1px #f9d25a1f,0 16px 36px #0000008c;display:grid;gap:10px;opacity:0;transform:translateY(12px);animation:card-in .7s cubic-bezier(.2,.9,.2,1) .25s forwards}.log-row,.log-col{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:10px}.log-label{font-family:var(--font-display);font-size:10.5px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:#f2dca399}.log-value{font-family:var(--font-data);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.01em;color:#fff2cd;text-shadow:0 1px 0 rgba(0,0,0,.5)}.log-row--tier{padding:6px 10px;border:1px solid rgba(224,163,60,.22);background:linear-gradient(90deg,#e0a33c14,#e0a33c05 60%)}.log-value--score{font-size:clamp(28px,8.8vw,40px);color:#fff3b8;background:linear-gradient(180deg,#ffe69c,#e0a33c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 2px 0 rgba(0,0,0,.5);filter:drop-shadow(0 0 22px rgba(224,163,60,.3))}.log-ribbon{height:2px;background:repeating-linear-gradient(90deg,#e0a33c73 0 8px,#e0a33c14 8px 14px);margin:2px 0}.log-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;padding:2px 2px 4px}.log-col{grid-template-columns:none;display:flex;flex-direction:column;gap:4px;align-items:flex-start}.log-col .log-value{font-size:clamp(20px,6.2vw,26px)}.log-value--gold{color:var(--gold);filter:drop-shadow(0 0 14px rgba(249,210,90,.35))}.log-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(224,163,60,.25),transparent)}.log-value--parchment{font-size:clamp(20px,6.2vw,26px);color:#f0dfa8}.log-seal{position:absolute;right:-6px;bottom:-6px;width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e0a33c,#7e3413 55%,#3d1606);display:grid;place-items:center;transform:rotate(-10deg);box-shadow:inset 0 1px #ffe69c59,0 6px 14px #0000008c,0 0 22px #a9462359;border:1px solid rgba(224,163,60,.45)}.log-seal span{font-family:var(--font-display);font-size:8.5px;font-weight:900;letter-spacing:.22em;color:#ffe8b0;text-transform:uppercase;text-shadow:0 1px 0 rgba(0,0,0,.45)}.tut-fade{position:absolute;z-index:7;left:50%;bottom:max(22px,calc(env(safe-area-inset-bottom) + 14px));transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 10px;background:linear-gradient(180deg,#2a1a0ed9,#0a0704eb);border:1px solid rgba(224,163,60,.3);clip-path:polygon(10px 0,100% 0,100% calc(100% - 8px),calc(100% - 10px) 100%,0 100%,0 8px);color:#f2dca3eb;font-family:var(--font-display);font-size:10.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;white-space:nowrap;pointer-events:none;box-shadow:0 10px 24px #0000008c;transition:opacity .26s ease,transform .26s ease}.tut-fade.fade{opacity:0;transform:translate(-50%) translateY(6px);pointer-events:none}.tut-orb{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3b8 0%,var(--gold) 40%,#a94623 100%);box-shadow:0 0 10px #f9d25aa6,0 0 22px #e0a33c66;animation:orb-pulse 1.6s ease-in-out infinite}@keyframes orb-pulse{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.25);filter:brightness(1.35)}}.landscape-warning{display:none}@media(orientation:landscape)and (max-height:540px){.landscape-warning{position:absolute;z-index:40;inset:0;display:grid;place-items:center;gap:12px;padding:24px;color:#f2dca3;background:radial-gradient(ellipse at 50% 50%,#1a1008eb,#030201 80%);text-align:center}.landscape-warning .warn-rune{font-size:38px;color:var(--amber);filter:drop-shadow(0 0 14px rgba(224,163,60,.4));animation:orb-pulse 1.6s ease-in-out infinite}.landscape-warning span:last-child{font-family:var(--font-display);font-size:14px;font-weight:700;letter-spacing:.3em;text-transform:uppercase}}@media(prefers-reduced-motion:reduce){.grain,.tut-orb{animation:none}.stamp{animation:none;opacity:1;transform:rotate(-14deg)}.carved-fill,.dial,.hero-block,.brief-card,.stone-button,.debrief-banner,.log-sheet{animation:none;opacity:1;transform:none;filter:none}.stone-button .btn-face,.tut-fade,.overlay{transition:none}}
