@font-face {font-family:'Jersey 15';font-style:normal;font-weight:400;font-display:swap;size-adjust:125%;src:url(fonts/jersey-15-latin-400-normal.woff2) format('woff2');}
@font-face {font-family:'Jersey 15';font-style:normal;font-weight:400;font-display:swap;size-adjust:125%;src:url(fonts/jersey-15-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face {font-family:'Silkscreen';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/silkscreen-latin-400-normal.woff2) format('woff2');}

:root {
 --check:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2Utd2lkdGg9IjQiPjxwYXRoIGQ9Im00IDEzIDUgNUwyMCA2Ii8+PC9zdmc+");
 --night:#050907;--tray:#0c1914;--paper:#17231e;--moss:#293c30;
 --ink:#f0f0df;--muted:#afc0aa;--dim:#8a9a88;--digit:#fff6d6;
 --lit:#d2e09a;--lit-ink:#0f1d12;--lit-muted:#33492f;--bright:#eef3d6;--white:#f8f9ee;
 --amber:#f1b83a;--amber-ink:#22180a;--danger:#8a1f14;
 --gutter:20px;--bar:76px;--ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after {box-sizing:border-box;}
[hidden] {display:none !important;}
html {scroll-behavior:smooth;-webkit-text-size-adjust:100%;scrollbar-color:#4f7159 var(--night);}
body {margin:0;background:var(--night);color:var(--ink);font:400 20px/1.3 'Jersey 15',monospace;font-synthesis:none;-webkit-font-smoothing:none;overflow-x:clip;}
::selection {background:#315e37;color:var(--digit);}
img,video {display:block;max-width:100%;}
a {color:inherit;text-underline-offset:.2em;text-decoration-thickness:2px;}
:focus-visible {outline:4px solid var(--amber);outline-offset:3px;border-radius:6px;}
.ground-lit :focus-visible,.ground-bright :focus-visible,.foot :focus-visible,.legal-page :focus-visible {outline-color:#765007;}
h1,h2,h3,p,ul {margin:0;}
ul {padding:0;list-style:none;}
h1,h2,h3 {font-weight:400;line-height:1;text-wrap:balance;}
h1 {font-size:clamp(2.9rem,12.8vw,6rem);}
h2 {font-size:clamp(2.6rem,10.5vw,4.2rem);}
h2.big {font-size:clamp(3.1rem,13vw,5.6rem);}
h3 {font-size:2.2rem;}
.lead {font-size:1.3rem;line-height:1.3;max-width:32ch;}
.nowrap {white-space:nowrap;}
.wrap {width:100%;max-width:1160px;margin-inline:auto;padding-inline:var(--gutter);}
.ico {width:1.2em;height:1.2em;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.skip {position:absolute;left:12px;top:-80px;z-index:40;padding:12px 16px;border-radius:12px;background:var(--amber);color:var(--amber-ink);}
.skip:focus {top:12px;}

.ground-0 {background:var(--night);}
.ground-1 {background:var(--tray);}
.ground-2 {background:var(--paper);}
.ground-3 {background:var(--moss);}
.ground-lit {background:var(--lit);color:var(--lit-ink);}
.ground-bright {background:var(--bright);color:var(--lit-ink);}

/* The edge between two grounds is dithered, like the light on the board. */
.edge {height:48px;background:var(--from);position:relative;}
.edge::after {content:'';position:absolute;inset:0;background:var(--to);-webkit-mask:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBzaGFwZS1yZW5kZXJpbmc9ImNyaXNwRWRnZXMiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiLz48cmVjdCB4PSIyNCIgeT0iMCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjAiIHk9IjEyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMTIiIHk9IjEyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMjQiIHk9IjEyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMzYiIHk9IjEyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMTgiIHk9IjE4IiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iNDIiIHk9IjE4IiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMCIgeT0iMjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiLz48cmVjdCB4PSI2IiB5PSIyNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjEyIiB5PSIyNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjI0IiB5PSIyNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjMwIiB5PSIyNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjM2IiB5PSIyNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjYiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMTgiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMzAiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iNDIiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMCIgeT0iMzYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiLz48cmVjdCB4PSI2IiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjEyIiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjE4IiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjI0IiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjMwIiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjM2IiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjQyIiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjYiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMTIiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMTgiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMzAiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMzYiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iNDIiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PC9zdmc+") 0 0/48px 48px;mask:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDQ4IDQ4IiBzaGFwZS1yZW5kZXJpbmc9ImNyaXNwRWRnZXMiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiLz48cmVjdCB4PSIyNCIgeT0iMCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjAiIHk9IjEyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMTIiIHk9IjEyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMjQiIHk9IjEyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMzYiIHk9IjEyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMTgiIHk9IjE4IiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iNDIiIHk9IjE4IiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMCIgeT0iMjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiLz48cmVjdCB4PSI2IiB5PSIyNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjEyIiB5PSIyNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjI0IiB5PSIyNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjMwIiB5PSIyNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjM2IiB5PSIyNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjYiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMTgiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMzAiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iNDIiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMCIgeT0iMzYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiLz48cmVjdCB4PSI2IiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjEyIiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjE4IiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjI0IiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjMwIiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjM2IiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjQyIiB5PSIzNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjYiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMTIiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMTgiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMzAiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iMzYiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PHJlY3QgeD0iNDIiIHk9IjQyIiB3aWR0aD0iNiIgaGVpZ2h0PSI2Ii8+PC9zdmc+") 0 0/48px 48px;}

/* Buttons */
.btn {display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:60px;padding:10px 16px;border:0;border-radius:16px;font:inherit;font-size:clamp(1.2rem,5.6vw,1.45rem);line-height:1;white-space:nowrap;text-decoration:none;cursor:pointer;touch-action:manipulation;transition:transform 140ms var(--ease),filter 140ms var(--ease);}
.btn:hover {filter:brightness(1.08);}
.btn:active {transform:scale(.97);}
.btn-lit {background:var(--lit);color:var(--lit-ink);}
.btn-ink {background:var(--lit-ink);color:var(--digit);}
.btn-soft {background:#315e37;color:var(--digit);}
.btn[aria-disabled="true"] {cursor:not-allowed;background:#0f1d1224;color:var(--lit-muted);filter:none;transform:none;}
.btn.is-busy {cursor:progress;opacity:.7;}

/* Phone mock-up. The app starts below a status strip, so the camera covers nothing. */
.phone {aspect-ratio:390/858;padding:7px;border-radius:30px;background:linear-gradient(145deg,#39463e,#121a16 45%,#26312b);box-shadow:0 30px 60px #00000090,inset 0 0 0 1px #5b6a60;}
.screen {position:relative;height:100%;display:flex;flex-direction:column;overflow:hidden;border-radius:24px;background:var(--top);padding-top:16px;}
.screen::before {content:'';position:absolute;z-index:1;left:50%;top:4px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#000;}
.screen img {flex:1;min-height:0;width:100%;height:100%;object-fit:cover;object-position:top;}

/* Hero: level 1 of the game, playable. Light spreads tile by tile from the lamp. */
.hero {--share:0;position:relative;min-height:100svh;padding:14px var(--gutter) 20px;display:grid;gap:14px;align-content:start;background:var(--night);}
.hero::before {content:'';position:absolute;inset:0;background:radial-gradient(90% 55% at 50% 58%,#3f6a3a,transparent 72%);opacity:calc(var(--share) * .75);transition:opacity 300ms linear;pointer-events:none;}
.hero > * {position:relative;}
.brand {display:flex;align-items:center;gap:10px;}
.brand img {width:40px;height:40px;}
.flag {width:24px;height:auto;flex:none;aspect-ratio:16/11;filter:drop-shadow(0 1px 2px #00000055);}
.lang-hint {margin-left:auto;color:var(--lit);font-size:1rem;line-height:1.1;text-align:right;}
.lang-hint + .lang-menu {margin-left:8px;}
.lang-menu {position:relative;margin-left:auto;z-index:20;}
.lang-menu summary {display:flex;align-items:center;gap:8px;min-height:44px;padding:0 10px 0 12px;border-radius:12px;background:var(--paper);color:var(--ink);font-size:1.1rem;cursor:pointer;list-style:none;touch-action:manipulation;}
.lang-menu summary::-webkit-details-marker {display:none;}
.lang-menu summary .ico {width:18px;height:18px;transition:transform 140ms var(--ease);}
.lang-menu[open] summary .ico {transform:rotate(180deg);}
.lang-menu nav {position:absolute;right:0;top:calc(100% + 8px);display:grid;gap:2px;width:210px;padding:8px;border-radius:16px;background:var(--moss);box-shadow:0 18px 40px #000000a0;}
.lang-menu nav a {display:flex;align-items:center;gap:12px;min-height:44px;padding:0 10px;border-radius:10px;color:var(--ink);text-decoration:none;font-size:1.25rem;}
.lang-menu nav a:hover {background:#ffffff14;}
.lang-menu nav a[aria-current] {background:var(--lit);color:var(--lit-ink);}
.foot .langs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;}
.foot .langs a {gap:10px;text-decoration:none;font-size:1.2rem;}
.foot .langs a:hover {text-decoration:underline;}
.foot .langs a[aria-current] {color:var(--lit-muted);}
.wordmark {font:400 1.4rem/1 'Silkscreen',monospace;letter-spacing:-.02em;}
.dim {color:var(--dim);white-space:nowrap;transition:color 300ms linear;}
.solved .dim {color:var(--lit);}
.mini-wrap {display:grid;gap:10px;justify-items:center;}
.mini {width:min(100%,47svh);aspect-ratio:1;display:grid;grid-template-columns:repeat(5,1fr);gap:3px;padding:8px;border-radius:14px;background:var(--tray);touch-action:manipulation;}
.tile {position:relative;display:block;width:100%;aspect-ratio:1;padding:0;border:0;border-radius:2px;background:#1b2c24 center/100% 100% no-repeat;image-rendering:pixelated;}
button.tile {cursor:pointer;}
button.tile[disabled] {cursor:default;}
.t-plant {background-image:url(img/tile/plant.webp);}
.t-block {background-image:url(img/tile/block.webp);}
.t-two {background-image:url(img/tile/two.webp);}
.t-one {background-image:url(img/tile/one.webp);}
.t-plant::before,.t-plant::after {content:'';position:absolute;inset:0;background:center/100% 100% no-repeat;image-rendering:pixelated;opacity:0;}
.t-plant::before {background-image:url(img/tile/lit.webp);transition:opacity 120ms linear var(--d,0ms);}
.t-plant::after {background-image:url(img/tile/lamp.webp);transform:translateY(-6%);transition:opacity 80ms linear,transform 160ms var(--ease);}
.t-plant[data-lit="true"]::before {opacity:1;}
.t-plant[data-lamp="true"]::after {opacity:1;transform:none;}
.tile-warn {position:absolute;z-index:1;inset:0;border-radius:2px;box-shadow:inset 0 0 0 3px #d1361e;pointer-events:none;}
.tile-warn::after {content:'!';position:absolute;right:3px;top:3px;min-width:18px;padding:0 3px 2px;border-radius:3px;background:#b92c16;color:#fff;font-size:15px;line-height:18px;text-align:center;}
.t-plant:hover:not([disabled]):not([data-lamp="true"]) {filter:brightness(1.15);}
.tile[data-ok="true"]::after {content:'';position:absolute;right:6%;bottom:6%;width:22%;height:22%;background:var(--lit);-webkit-mask:var(--check) center/contain no-repeat;mask:var(--check) center/contain no-repeat;}
.mini-foot {width:min(100%,47svh);display:flex;gap:12px;align-items:flex-start;justify-content:space-between;}
#mini-hint {font-size:1.1rem;line-height:1.3;color:var(--muted);min-height:2.6em;}
.solved #mini-hint {color:var(--lit);}
.mini-reset {flex:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:0;border-radius:12px;background:var(--moss);color:var(--ink);font:inherit;font-size:1.1rem;cursor:pointer;}
.hero .lead {color:var(--muted);}
.hero-action {display:grid;gap:8px;width:100%;}
.hero-action .btn {width:100%;}
.solved .hero-action .btn {box-shadow:0 0 0 4px #d2e09a55;}
.note {color:var(--muted);font-size:1.1rem;}

/* Stage: scrolling sets the lamps. Without pinning it reads as a plain list. */
.stage {padding:32px var(--gutter) 40px;position:relative;}
.captions {display:grid;gap:24px;}
.caption h2 {margin-bottom:8px;}
.caption p {max-width:34ch;font-size:1.25rem;line-height:1.3;color:var(--muted);}
.lamps {display:none;gap:4px;}
.lamps i {width:18px;height:18px;background:#20352e;}
.lamps i.on {background:var(--lit);}
.stage-phone {margin-top:28px;display:flex;justify-content:center;}
.stage-phone .phone {width:min(78vw,340px);}
.pin-on .stage {height:520svh;padding:0;background:var(--ground,var(--tray));overflow:clip;}
.pin-on .edge-fallback {display:none;}
.pin-on .pin {position:sticky;top:0;height:100svh;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;padding:24px var(--gutter) calc(var(--bar) + 16px);overflow:hidden;}
.pin-on .captions {position:relative;grid-template-columns:minmax(0,1fr);gap:12px;}
.pin-on .caption {grid-area:1/1;opacity:0;transition:opacity 120ms linear;}
.pin-on .caption.on {opacity:1;}
.pin-on .lamps {display:flex;}
.pin-on .stage-phone {position:relative;margin:0;min-height:0;align-items:flex-start;}
.pin-on .stage-phone::before {content:'';position:absolute;left:50%;top:50%;width:320%;aspect-ratio:1;max-width:1500px;transform:translate(-50%,-50%);background:radial-gradient(closest-side,#7f9c5c,transparent);opacity:var(--glow,0);transition:opacity 200ms linear;pointer-events:none;}
.pin-on .stage-phone .phone {position:relative;height:100%;width:auto;max-width:100%;}
.pin-on .stage-phone .screen {filter:brightness(var(--bright-img,.62));transition:filter 200ms linear;}

/* Worlds */
.worlds {padding:48px 0 72px;overflow:hidden;}
.worlds .lead {margin-top:14px;color:var(--muted);}
.world-list {margin-top:28px;display:grid;gap:2px;}
.world-list li {display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;padding:9px 0;font-size:1.4rem;line-height:1;}
.world-list i {width:18px;height:18px;flex:none;background:var(--s);box-shadow:inset -4px -4px 0 #00000040;}
.world-list span {margin-left:auto;color:var(--muted);font-size:1.1rem;white-space:nowrap;}
.fan {position:relative;height:clamp(420px,120vw,620px);margin-top:48px;}
.fan .phone {position:absolute;left:50%;top:0;width:min(54vw,270px);margin-left:calc(min(54vw,270px) / -2);}
.fan .phone:nth-child(1) {transform:translate(-56%,7%) rotate(-8deg);}
.fan .phone:nth-child(3) {transform:translate(56%,7%) rotate(8deg);}
.fan .phone:nth-child(2) {z-index:1;}

/* Shop */
.shop {padding:48px 0 64px;overflow:hidden;}
.shop .lead {margin-top:14px;color:#d5e0c8;}
.gear {margin-top:24px;display:grid;gap:14px;}
.gear li {display:flex;gap:12px;font-size:1.2rem;line-height:1.3;max-width:40ch;}
.gear .ico {width:28px;height:28px;color:var(--lit);}
.gear strong {font-weight:400;color:var(--digit);}
.gear div {color:#d5e0c8;}
.shop-phones {display:flex;justify-content:center;margin-top:40px;}
.shop-phones .phone {width:min(52vw,270px);}
.shop-phones .phone:first-child {transform:rotate(-4deg) translateX(6%);z-index:1;}
.shop-phones .phone:last-child {transform:rotate(5deg) translate(-6%,8%);}
.trailer {margin-top:96px;display:grid;gap:20px;justify-items:center;text-align:center;}
.trailer-player {position:relative;width:min(78vw,340px);}
.trailer video {width:100%;height:auto;aspect-ratio:9/16;border-radius:24px;background:var(--tray);box-shadow:0 30px 60px #00000070;}
.play {position:absolute;left:50%;bottom:24px;transform:translateX(-50%);background:var(--paper);color:var(--digit);}
.play:active {transform:translateX(-50%) scale(.97);}

/* Offers: the room is lit now. */
.offers {padding:48px 0 64px;}
.offer {padding-top:40px;display:grid;gap:10px;justify-items:start;align-content:start;position:relative;}
.offer > p:not(.offer-price):not(.tag):not(.dl-others) {max-width:32ch;font-size:1.3rem;line-height:1.3;color:var(--lit-muted);}
.offer .btn {margin-top:8px;width:100%;}
.dl-others {display:flex;flex-wrap:wrap;gap:0 18px;font-size:1.1rem;}
.dl-others a {display:inline-flex;align-items:center;min-height:44px;color:var(--lit-ink);}
.offer-price {font-size:4.4rem;line-height:.9;}
.tag {font-size:clamp(4.4rem,18vw,6rem);line-height:.9;padding:.14em .24em .2em;border-radius:20px;background:var(--amber);color:var(--amber-ink);transform:rotate(-3deg);box-shadow:0 12px 24px #3a2a0040;}
.platforms {margin-top:48px;display:grid;gap:14px;}
.platforms li {display:flex;gap:12px;max-width:42ch;font-size:1.2rem;line-height:1.3;color:var(--lit-muted);}
.platforms strong {font-weight:400;color:var(--lit-ink);}
.platforms .ico {width:28px;height:28px;color:var(--lit-ink);}

.buy {margin:8px 0 0;width:100%;display:grid;gap:10px;}
.consent {display:flex;gap:12px;align-items:flex-start;min-height:44px;font-size:1.15rem;line-height:1.3;cursor:pointer;color:var(--lit-ink);}
.consent input {width:24px;min-height:0;height:24px;flex:none;margin:2px 0 0;padding:0;accent-color:#315e37;}
.buy .btn {margin-top:0;}
.btn[disabled]:not(.is-busy) {cursor:not-allowed;background:#0f1d1224;color:var(--lit-muted);opacity:1;}
.fine {font-size:1.05rem;color:var(--lit-muted);}

/* Contact */
.contact {padding:64px 0 72px;}
.contact .lead {margin-top:16px;color:var(--lit-muted);}
form {margin-top:32px;display:grid;gap:18px;}
.field {display:grid;gap:6px;}
label {font-size:1.2rem;line-height:1.3;}
input,textarea {width:100%;min-height:56px;padding:12px 14px;border:0;border-radius:12px;background:var(--paper);color:var(--digit);font:inherit;font-size:1.3rem;caret-color:var(--lit);transition:background 140ms var(--ease);}
textarea {resize:none;line-height:1.3;display:block;}
input:focus,textarea:focus {outline:4px solid #765007;outline-offset:2px;}
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus {-webkit-text-fill-color:var(--digit);caret-color:var(--lit);box-shadow:inset 0 0 0 100px var(--paper);transition:background-color 9999s;}
[aria-invalid="true"] {background:#5a1a12;}
.err {color:var(--danger);font-size:1.15rem;line-height:1.3;}
.trap {position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.privacy {font-size:1.05rem;line-height:1.3;color:var(--lit-muted);max-width:52ch;}
form .btn {width:100%;}
.status {min-height:1.3em;font-size:1.3rem;line-height:1.3;}
.status.bad {color:var(--danger);}

/* Footer and legal pages */
.foot {background:var(--white);color:var(--lit-muted);padding:32px 0 calc(40px + env(safe-area-inset-bottom,0px));}
.foot .wrap {display:grid;gap:16px;}
.foot p {max-width:52ch;font-size:1.05rem;}
.foot nav {display:flex;flex-wrap:wrap;gap:6px 22px;}
.foot a {display:inline-flex;align-items:center;min-height:44px;color:var(--lit-ink);}
.legal-page {background:var(--white);color:var(--lit-ink);}
.legal-page main {max-width:44rem;margin-inline:auto;padding:24px var(--gutter) 64px;}
.legal-page h1 {font-size:clamp(3rem,12vw,4.6rem);margin:24px 0 8px;}
.legal-page h2 {font-size:2rem;margin:36px 0 8px;}
.legal-page p,.legal-page li {color:var(--lit-muted);font-size:1.2rem;line-height:1.3;max-width:62ch;}
.legal-page p + p {margin-top:10px;}
.legal-page ul {list-style:square;padding-left:1.2em;}
.legal-page .brand {color:var(--lit-ink);text-decoration:none;}

/* Sticky action */
.bar {position:fixed;z-index:30;left:0;right:0;bottom:0;display:flex;align-items:center;gap:14px;padding:8px var(--gutter) calc(8px + env(safe-area-inset-bottom,0px));background:#050907eb;}
.bar[hidden] {display:none;}
.bar .btn {flex:1;min-width:0;min-height:56px;}
.bar-price {flex:none;text-align:right;line-height:1;font-size:1.05rem;color:var(--muted);text-decoration:none;}
.bar-price strong {font-weight:400;font-size:1.5rem;color:var(--amber);}

@media (min-width:900px) {
 :root {--gutter:40px;}
 body {font-size:22px;}
 .bar {display:none;}
 .hero {min-height:100svh;padding:24px max(var(--gutter),calc((100vw - 1160px) / 2)) 32px;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr auto;gap:0 64px;}
 .brand {grid-column:1/-1;grid-row:1;}
 .hero h1 {grid-column:1;grid-row:2;align-self:center;font-size:6rem;max-width:12ch;}
 .mini-wrap {grid-column:2;grid-row:2/4;align-self:center;}
 .mini,.mini-foot {width:min(560px,74svh);}
 .hero-action {grid-column:1;grid-row:3;justify-items:start;width:auto;}
 .hero-action .btn {width:auto;min-width:340px;}
 .pin-on .pin {grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) auto;align-items:center;max-width:1160px;margin-inline:auto;padding:32px var(--gutter);gap:64px;}
 .pin-on .stage-phone {height:100%;}
 .caption p {font-size:1.45rem;}
 .caption h2 {font-size:5rem;}
 .worlds-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;}
 .fan {margin-top:0;height:640px;}
 .shop-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center;}
 .shop-phones {margin-top:0;}
 .offers .wrap {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 64px;}
 .offers h2,.platforms {grid-column:1/-1;}
 .offer .btn {width:auto;min-width:300px;}
 .foot .langs {display:flex;flex-wrap:wrap;gap:4px 22px;}
 .platforms {grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;}
 .trailer-player.is-wide {width:min(100%,960px);}
 .trailer-player.is-wide video {aspect-ratio:16/9;}
 .contact-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start;}
 form {margin-top:0;}
 form .btn {width:auto;min-width:300px;}
}
@media (prefers-reduced-motion:reduce) {
 html {scroll-behavior:auto;}
 *,*::before,*::after {transition:none !important;}
}
