:root{--ink:#193b53;--muted:#536d80;--base:#eaf2f8;--glow:#fbfdff;--line:#bdd2e2;--panel:#f7fbff;--hover:#d4e8f6;--accent:#3695d0;--active:#1475b4;color-scheme:light;font-family:var(--font-montserrat),sans-serif;color:var(--ink);background:var(--base)}*{box-sizing:border-box}body{margin:0}main{height:100svh;min-height:600px;flex-direction:column;background:radial-gradient(ellipse at 50% 38%,var(--glow) 0,var(--base) 70%)}header,main{display:flex}header{justify-content:space-between;align-items:center;padding:28px 5vw;gap:16px}.brand{font-weight:700;font-size:23px;letter-spacing:-1px;color:inherit;text-decoration:none}.brand span{display:block;font-size:8px;letter-spacing:2.1px;margin-top:5px;font-weight:500}.badge{display:flex;align-items:center;gap:9px;font-size:12px;border:1px solid var(--line);border-radius:30px;padding:10px 15px}.badge i{width:6px;height:6px;border-radius:50%;background:var(--accent)}.viewport{flex:1 1;min-height:0;overscroll-behavior:contain}.viewport,.viewport canvas{touch-action:none}footer{display:flex;justify-content:space-between;align-items:flex-end;padding:12px 5vw 32px;gap:24px}h1{font:600 clamp(24px,3vw,40px)/1.1 var(--font-montserrat),sans-serif;letter-spacing:-1.5px;margin:10px 0}.intro p{font-size:13px;color:var(--muted)}.intro .eyebrow{font-size:9px;letter-spacing:2px}.buttons{display:flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:40px;margin-bottom:12px}button{font:inherit;font-size:12px;cursor:pointer;color:var(--ink);border:0;background:transparent;padding:12px 20px;border-radius:30px}button[aria-pressed=true]{background:var(--active);color:#fff}button:hover{background:var(--hover)}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.controls small{font-size:10px;color:var(--muted)}.loading{margin:auto;padding:30px;text-align:center}.loader{white-space:nowrap;font-size:13px;background:var(--panel);padding:15px;border-radius:20px}.touch-controls{display:none}.joystick{width:108px;height:108px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;touch-action:none;background:var(--panel)}.joystick span{width:40px;height:40px;border-radius:50%;background:var(--accent)}.touch-controls button{background:var(--hover);touch-action:none}@media(pointer:coarse){.touch-controls{display:flex;justify-content:space-between;align-items:center;padding:0 6vw 20px}.controls small{display:none}}@media(max-width:600px){main{min-height:650px}header{padding:20px 6vw}.badge{font-size:10px;padding:8px}.brand{font-size:19px}.brand span{font-size:6px}footer{padding:0 6vw 20px;align-items:flex-start;flex-direction:column;gap:8px}.intro p{font-size:11px}.intro .eyebrow{font-size:8px}.buttons{margin:0}button{padding:10px 22px}.viewport{min-height:260px}.controls small{display:block;margin-top:8px}}.viewport{position:relative}.loading-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}:root[data-theme=dark]{color-scheme:dark;--ink:#e4f2fc;--muted:#a5bed0;--base:#091724;--glow:#19394f;--line:#34556d;--panel:#142b3c;--hover:#24465e;--accent:#59b4ee;--active:#1475b4}.brand{display:flex;align-items:center;gap:14px}.brand img{display:block;width:68px;height:auto;border-radius:12px;background:white;padding:4px}.brand span{line-height:1.8;margin:0;color:var(--muted)}.header-actions{gap:16px}.header-actions,.theme-control{display:flex;align-items:center}.theme-control{gap:8px;font-size:11px;color:var(--muted)}.theme-control select{font:inherit;font-size:12px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:9px 12px;cursor:pointer}.theme-control select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.intro .eyebrow{color:var(--active)}:root[data-theme=dark] .intro .eyebrow{color:var(--accent)}@media(max-width:600px){.brand{gap:8px}.brand img{width:54px}.brand span{font-size:6px;letter-spacing:1px}.header-actions{flex-direction:column;align-items:flex-end;gap:8px}.theme-control{font-size:10px}.theme-control select{padding:6px 10px}}.character-speech{width:max-content;max-width:min(240px,70vw);padding:12px 16px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--ink);font-size:14px;line-height:1.5;text-align:center;box-shadow:0 6px 24px #0002;pointer-events:none;transform:translateY(-50%)}main{position:relative;isolation:isolate;overflow-x:clip}.world-wordmark{position:absolute;left:2.5%;width:95%;top:42%;transform:translateY(-50%);font-size:12.1vw;font-weight:900;line-height:1;letter-spacing:-.065em;white-space:nowrap;text-align:center;color:var(--accent);opacity:.075;pointer-events:none;z-index:-1}.touch-controls,footer,header{position:relative;z-index:1}.brand img{background:none;padding:0;border-radius:0;object-fit:contain}.brand .logo-dark,:root[data-theme=dark] .brand .logo-light{display:none}:root[data-theme=dark] .brand .logo-dark{display:block}.character-speech-overlay{position:absolute;visibility:hidden;transform:translate(-50%,-100%);pointer-events:none;z-index:2}.theme-control select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:48px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%233695d0' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px}@media(max-width:600px){.header-actions{flex-direction:row;align-items:center;gap:6px;flex-wrap:wrap}.theme-control select{padding-right:46px}.header-actions .badge{white-space:nowrap}}.background-atmosphere{--cloud-color:#fff;--bird-color:#607f99;position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-2}.background-atmosphere *{pointer-events:none}:root[data-theme=dark] .background-atmosphere{--cloud-color:#526d87;--bird-color:#9bb8d0}.sky-cloud{position:absolute;left:0;width:var(--cloud-width);color:var(--cloud-color);opacity:.5;filter:blur(2px);animation:cloud-drift linear infinite}.sky-bird svg,.sky-cloud svg{display:block;width:100%;height:auto;overflow:visible}.sky-bird{position:absolute;left:0;color:var(--bird-color);opacity:0;animation:bird-crossing linear infinite}.bird-wing{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;transform-origin:20px 16px;animation:bird-flap var(--flap-duration) ease-in-out infinite alternate}.bird-wing-right{animation-direction:alternate-reverse}@keyframes cloud-drift{0%{transform:translateX(calc(-1 * var(--cloud-width) - 20px))}to{transform:translateX(calc(100vw + 20px))}}@keyframes bird-crossing{0%,7%{opacity:0;transform:translate(-50px)}10%{opacity:.6}48%{opacity:.6}53%{opacity:0;transform:translate(calc(100vw + 50px),-24px)}54%,to{opacity:0;transform:translate(calc(100vw + 50px),-24px)}}@keyframes bird-flap{0%{transform:rotate(-10deg) scaleY(.65)}to{transform:rotate(10deg) scaleY(1)}}@media(max-width:767px){.sky-cloud:nth-child(n+4){display:none}.sky-cloud{width:calc(var(--cloud-width)*.65);opacity:.35}.sky-bird:last-child{display:none}.sky-bird{scale:.85}}@media(prefers-reduced-motion:reduce){.bird-wing,.sky-bird,.sky-cloud{animation:none}.sky-bird{display:none}.sky-cloud{left:8%;transform:none;opacity:.22}.sky-cloud:nth-child(2){left:64%}.sky-cloud:nth-child(n+3){display:none}}main{height:auto;min-height:100svh}.viewport{flex:1 0 320px;min-height:320px}.intro{max-width:650px;min-width:0}.intro h1{max-width:23ch;overflow-wrap:break-word}.intro p{line-height:1.65;max-width:64ch}.candy-promo a,.contact a{color:var(--accent);text-underline-offset:3px}.candy-promo a:focus-visible,.contact a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.controls{min-width:0;flex-shrink:0;max-width:420px}@media(max-width:600px){header{flex-wrap:wrap;gap:12px}.header-actions,header{justify-content:flex-start}.header-actions{align-items:center;flex:1 1;min-width:0;gap:8px}footer{align-items:stretch;padding-bottom:max(20px,env(safe-area-inset-bottom));gap:16px}.intro{max-width:100%}.intro h1{font-size:clamp(26px,7.5vw,36px);line-height:1.15}.intro p{font-size:12px}.controls{width:100%;max-width:none;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.buttons{justify-content:center;max-width:100%;flex-wrap:wrap}.controls small{display:block;text-align:center;line-height:1.6;margin-top:0}.touch-controls{justify-content:center;gap:32px;padding-left:max(6vw,env(safe-area-inset-left));padding-right:max(6vw,env(safe-area-inset-right));padding-bottom:max(20px,env(safe-area-inset-bottom))}.viewport{flex-basis:300px;min-height:300px}}.character-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:inherit;gap:8px;max-width:100%}.character-actions>span{font-size:.75rem}.character-action-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:6px;gap:6px;flex-basis:100%;max-width:360px}.character-action-options button{min-width:0;white-space:normal}.character-action-options small{display:block;font-size:.65rem;line-height:1.3}@media(max-width:700px){.character-actions{justify-content:center}.character-action-options{margin-inline:auto}}.character-action-options button:disabled{opacity:.55;cursor:default}.character-action-options{grid-auto-rows:44px;width:100%}.character-action-options button{height:44px;width:100%;padding:10px 12px;display:flex;align-items:center;justify-content:center;font-size:12px}.character-actions .action-help{flex-basis:100%;max-width:360px;line-height:1.5}.cancel-character-action{border:1px solid var(--accent)}.movement-area{position:relative;width:220px;max-width:100%;height:140px;min-width:108px;touch-action:none;display:grid;place-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.movement-hint{font-size:10px;color:var(--muted);text-align:center;pointer-events:none}.movement-area .joystick{position:absolute;transform:translate(-50%,-50%);pointer-events:none}.movement-area .joystick[hidden]{display:none}@media(max-width:767px){.world-wordmark{top:var(--mobile-wordmark-top,180px);z-index:0}.viewport{z-index:1}}@media(max-width:600px){.intro{text-align:center}.intro>:is(h1,p){margin-inline:auto}}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b1f344208eb4edfe-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/48e2044251ef3125-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/bf24a9759715e608-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/1f173e5e25f3efee-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/904be59b21bd51cb-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b1f344208eb4edfe-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/48e2044251ef3125-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/bf24a9759715e608-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/1f173e5e25f3efee-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/904be59b21bd51cb-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b1f344208eb4edfe-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/48e2044251ef3125-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/bf24a9759715e608-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/1f173e5e25f3efee-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/904be59b21bd51cb-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b1f344208eb4edfe-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/48e2044251ef3125-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/bf24a9759715e608-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/1f173e5e25f3efee-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/904be59b21bd51cb-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/b1f344208eb4edfe-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/48e2044251ef3125-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/bf24a9759715e608-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/1f173e5e25f3efee-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/904be59b21bd51cb-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Montserrat;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/b1f344208eb4edfe-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Montserrat;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/48e2044251ef3125-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/bf24a9759715e608-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Montserrat;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/1f173e5e25f3efee-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Montserrat;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/904be59b21bd51cb-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Montserrat Fallback;src:local("Arial");ascent-override:85.79%;descent-override:22.25%;line-gap-override:0.00%;size-adjust:112.83%}.__className_e5a462{font-family:Montserrat,Montserrat Fallback;font-style:normal}.__variable_e5a462{--font-montserrat:"Montserrat","Montserrat Fallback"}