@font-face{font-family:Archivo;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b06b356f834173cc-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:Archivo;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/23d669af23d19c95-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Archivo;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1a4aa50920b5315c-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:Archivo;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b06b356f834173cc-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:Archivo;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/23d669af23d19c95-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Archivo;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1a4aa50920b5315c-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:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b06b356f834173cc-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:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/23d669af23d19c95-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Archivo;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1a4aa50920b5315c-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:Archivo Fallback;src:local("Arial");ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.00%;size-adjust:98.70%}.__className_385830{font-family:Archivo,Archivo Fallback;font-style:normal}.__variable_385830{--font-archivo:"Archivo","Archivo Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-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:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-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:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_6d24ac{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_6d24ac{--font-jetbrains-mono:"JetBrains Mono","JetBrains Mono Fallback"}

/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:var(--font-archivo),"Helvetica Neue",Helvetica,Arial,sans-serif;--font-mono:var(--font-jetbrains-mono),ui-monospace,SFMono-Regular,Menlo,monospace;--spacing:.25rem;--font-weight-light:300;--font-weight-medium:500;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-base:var(--game-base);--color-panel:var(--game-panel);--color-cell:var(--game-cell);--color-cell-2048:var(--game-cell-2048);--color-ink:var(--game-ink);--color-ink-2:var(--game-ink-2);--color-title:var(--game-title);--color-hover:var(--game-hover);--color-status:var(--game-status);--color-muted:var(--game-muted);--color-muted-2:var(--game-muted-2);--color-faint:var(--game-faint);--color-faint-2:var(--game-faint-2);--color-sq-light:var(--game-sq-light);--color-sq-dark:var(--game-sq-dark);--color-hair:var(--game-hair);--color-hair-2:var(--game-hair-2);--color-hair-3:var(--game-hair-3);--color-hair-strong:var(--game-hair-strong);--color-accent:var(--accent);--color-accent-fg:var(--game-accent-fg);--color-t2:var(--game-t2);--color-t2-fg:var(--game-t2-fg);--color-t4:var(--game-t4);--color-t4-fg:var(--game-t4-fg);--color-t8:var(--game-t8);--color-t8-fg:var(--game-t8-fg);--color-t16:var(--game-t16);--color-t16-fg:var(--game-t16-fg);--color-t32:var(--game-t32);--color-t32-fg:var(--game-t32-fg);--color-t64:var(--game-t64);--color-t64-fg:var(--game-t64-fg);--color-t128:var(--game-t128);--color-t128-fg:var(--game-t128-fg);--color-t256:var(--game-t256);--color-t256-fg:var(--game-t256-fg);--color-t512:var(--game-t512);--color-t512-fg:var(--game-t512-fg);--color-t1024:var(--game-t1024);--color-t1024-fg:var(--game-t1024-fg);--color-t2048:var(--game-t2048);--color-t2048-fg:var(--game-t2048-fg)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:17px;line-height:1.55;transition:background-color .45s,color .45s}body.menu-open{overflow:hidden}::selection{background:var(--ink);color:var(--paper)}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline-offset:4px;border-radius:2px;outline:1.5px dashed}}@layer components{.bg-grid{z-index:0;opacity:var(--grid-alpha);background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-size:88px 88px;transition:opacity .45s;inset:0}.bg-grid,.topbar{pointer-events:none;position:fixed}.topbar{z-index:40;padding:26px var(--pad);mix-blend-mode:difference;color:#fafafa;will-change:transform;backface-visibility:hidden;justify-content:space-between;align-items:center;display:flex;top:0;left:0;right:0;transform:translateZ(0)}.topbar>*{pointer-events:auto}body.menu-open .topbar{mix-blend-mode:normal;color:var(--menu-fg);transition:color .45s}.logo{transition:transform 1.1s var(--ease);cursor:pointer;font-size:22px;line-height:1;display:inline-block}.logo.is-spun{transform:rotate(180deg)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@media (prefers-reduced-motion:no-preference){body.menu-open .logo{animation:logo-spin 9s linear infinite}}.trigger{appearance:none;color:inherit;font-family:var(--font-sans);letter-spacing:-.01em;cursor:pointer;background:0 0;border:0;padding:2px 0;font-size:17px;font-weight:500;position:relative}.trigger-mask{height:1.3em;display:block;overflow:hidden}.trigger-track{transition:transform .55s var(--ease);display:block}.t-word{height:1.3em;line-height:1.3em;display:block}body.menu-open .trigger-track{transform:translateY(-1.3em)}.trigger:after{content:"";transform-origin:0;height:1px;transition:transform .4s var(--ease);background:currentColor;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.trigger:hover:after{transform:scaleX(1)}main{z-index:1;position:relative}.wrap{max-width:1280px;padding:0 var(--pad);margin:0 auto}.mono{font-family:var(--font-mono);letter-spacing:.04em;color:var(--dim);font-size:13px}.section{border-top:1px solid var(--faint);padding-block:clamp(72px,11vh,130px)}.section-head{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:clamp(40px,6vh,72px);display:flex}.section-title{letter-spacing:-.035em;font-size:clamp(28px,3.4vw,44px);font-weight:500;line-height:1}.hero{flex-direction:column;justify-content:center;min-height:100svh;padding-top:96px;display:flex}.hero-layout{flex:1;grid-template-columns:1fr minmax(320px,534px);align-items:center;gap:clamp(32px,5vw,72px);padding-bottom:clamp(28px,5vh,56px);display:grid}.hero-copy{min-width:0}.hero-games{justify-content:flex-end;justify-self:end;width:100%;max-width:534px;display:flex}.hero-label{margin-bottom:clamp(20px,3vh,36px)}.hero h1{letter-spacing:-.05em;font-size:clamp(56px,11.5vw,168px);font-weight:500;line-height:.96}.hero-sub{max-width:460px;color:var(--soft);text-wrap:pretty;margin-top:clamp(28px,4vh,48px);font-size:clamp(17px,1.4vw,20px);line-height:1.5}.hero-foot{justify-content:space-between;align-items:flex-end;margin-top:auto;margin-bottom:clamp(12px,2vh,24px);padding-bottom:clamp(28px,4vh,40px);display:flex}.game-reveal{opacity:0}@media (prefers-reduced-motion:no-preference){.game-reveal.is-in{animation:game-fade-in 1.15s forwards}}@media (prefers-reduced-motion:reduce){.game-reveal{opacity:1}}@keyframes game-fade-in{0%{opacity:0}to{opacity:1}}.game-host{border:1px solid var(--faint);padding:clamp(16px,2.5vw,22px)}.game-selector{flex-wrap:wrap;gap:6px 14px;margin-bottom:18px;display:flex}.game-selector-tab{appearance:none;font-family:var(--font-mono);letter-spacing:.04em;color:var(--dim);cursor:pointer;background:0 0;border:0;padding:0 0 2px;font-size:11px;transition:color .3s;position:relative}.game-selector-tab[aria-selected=true]{color:var(--ink)}.game-selector-tab:after{content:"";transform-origin:0;height:1px;transition:transform .35s var(--ease);background:currentColor;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.game-selector-tab:hover:after,.game-selector-tab[aria-selected=true]:after{transform:scaleX(1)}.game-panel{flex-direction:column;min-height:200px;display:flex}.game-placeholder{text-align:center;justify-content:center;align-items:center;gap:8px}.game-placeholder-label{letter-spacing:.06em;color:var(--dim);font-size:12px}.game-placeholder-copy{color:var(--soft);font-size:15px}.ttt-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.ttt-reset,.ttt-status{letter-spacing:.04em;color:var(--dim);font-size:11px}.ttt-reset{appearance:none;font-family:var(--font-mono);cursor:pointer;background:0 0;border:0;padding:0;transition:color .3s}.ttt-reset:hover{color:var(--ink)}.ttt-controls{letter-spacing:.04em;align-items:baseline;gap:14px;margin-bottom:16px;font-size:11px;display:flex}.ttt-controls-label,.ttt-toggle{color:var(--dim)}.ttt-toggle{appearance:none;font-family:var(--font-mono);letter-spacing:.04em;cursor:pointer;background:0 0;border:0;padding:0 0 2px;font-size:11px;transition:color .3s;position:relative}.ttt-toggle[aria-pressed=true]{color:var(--ink)}.ttt-toggle:after{content:"";transform-origin:0;height:1px;transition:transform .35s var(--ease);background:currentColor;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.ttt-toggle:hover:after,.ttt-toggle[aria-pressed=true]:after{transform:scaleX(1)}.ttt-grid{background:var(--faint);border:1px solid var(--faint);flex:1;grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.ttt-cell{appearance:none;background:var(--paper);aspect-ratio:1;font-family:var(--font-sans);color:var(--ink);cursor:pointer;border:0;place-items:center;font-size:clamp(22px,4vw,28px);font-weight:500;transition:background-color .25s,color .25s;display:grid}.ttt-cell:hover:not(:disabled){background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.ttt-cell:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 4%,var(--paper))}}.ttt-cell:disabled{cursor:default}.ttt-cell:focus-visible{outline-offset:-4px;outline:1.5px dashed}.wurdle{gap:14px}.wurdle-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.wurdle-reset,.wurdle-status{letter-spacing:.04em;color:var(--dim);font-size:11px}.wurdle-reset{appearance:none;font-family:var(--font-mono);cursor:pointer;background:0 0;border:0;padding:0;transition:color .3s}.wurdle-reset:hover{color:var(--ink)}.wurdle-board{justify-content:center;gap:5px;display:grid}.wurdle-board.is-shaking{animation:wurdle-shake .4s}.wurdle-row{justify-content:center;gap:5px;display:flex}.wurdle-tile{aspect-ratio:1;border:1px solid var(--faint);width:clamp(34px,7.5vw,46px);font-family:var(--font-sans);text-transform:uppercase;color:var(--ink);place-items:center;font-size:clamp(16px,3.4vw,22px);font-weight:600;transition:border-color .18s,transform .12s;display:grid}.wurdle-tile.is-filled{border-color:var(--ink)}@supports (color:color-mix(in lab,red,red)){.wurdle-tile.is-filled{border-color:color-mix(in srgb,var(--ink) 35%,transparent)}}.wurdle-tile.is-filled{transform:scale(1.02)}.wurdle-tile.is-correct{color:#fff;background:#4c8a4a;border-color:#4c8a4a}.wurdle-tile.is-present{color:#fff;background:#c2a23a;border-color:#c2a23a}.wurdle-tile.is-absent{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.wurdle-tile.is-absent{background:color-mix(in srgb,var(--ink) 22%,var(--paper))}}.wurdle-tile.is-absent{border-color:var(--ink)}@supports (color:color-mix(in lab,red,red)){.wurdle-tile.is-absent{border-color:color-mix(in srgb,var(--ink) 22%,var(--paper))}}.wurdle-tile.is-absent{color:var(--paper)}.wurdle-message{text-align:center;letter-spacing:.06em;min-height:16px;color:var(--soft);font-size:11px}.wurdle-keyboard{flex-direction:column;gap:5px;display:flex}.wurdle-key-row{justify-content:center;gap:4px;display:flex}.wurdle-key{appearance:none;border:1px solid var(--faint);background:var(--ink);flex:auto;min-width:0;max-width:34px;height:40px}@supports (color:color-mix(in lab,red,red)){.wurdle-key{background:color-mix(in srgb,var(--ink) 5%,var(--paper))}}.wurdle-key{font-family:var(--font-mono);text-transform:uppercase;color:var(--ink);cursor:pointer;font-size:12px;transition:background-color .2s,color .2s}.wurdle-key.is-action{flex:1.5 auto;max-width:52px;font-size:10px}.wurdle-key:hover{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.wurdle-key:hover{background:color-mix(in srgb,var(--ink) 12%,var(--paper))}}.wurdle-key.is-correct{color:#fff;background:#4c8a4a;border-color:#4c8a4a}.wurdle-key.is-present{color:#fff;background:#c2a23a;border-color:#c2a23a}.wurdle-key.is-absent{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.wurdle-key.is-absent{background:color-mix(in srgb,var(--ink) 22%,var(--paper))}}.wurdle-key.is-absent{border-color:var(--ink)}@supports (color:color-mix(in lab,red,red)){.wurdle-key.is-absent{border-color:color-mix(in srgb,var(--ink) 22%,var(--paper))}}.wurdle-key.is-absent{color:var(--dim)}@keyframes wurdle-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes tile-new{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes tile-merge{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1)}}.animate-tile-new{animation:tile-new .15s cubic-bezier(.16,1,.3,1)}.animate-tile-merge{animation:tile-merge .15s cubic-bezier(.16,1,.3,1)}.ttt-cell[data-mark=o]{color:var(--soft)}.ttt-cell[data-winning=true]{background:var(--ink);color:var(--paper)}.ttt-grid[data-disabled=true] .ttt-cell:not([data-mark]){cursor:default}.ttt-scores{letter-spacing:.04em;color:var(--dim);gap:22px;margin-top:16px;font-size:11px;display:flex}.ttt-score{align-items:baseline;gap:6px;display:flex}.ttt-score dd{color:var(--ink);font-variant-numeric:tabular-nums}.chess-board{border:1px solid var(--faint);background:var(--faint);flex:1;grid-template-rows:repeat(8,1fr);display:grid}.chess-rank{grid-template-columns:repeat(8,1fr);display:grid}.chess-square{appearance:none;aspect-ratio:1;cursor:pointer;color:var(--ink);border:0;place-items:center;margin:0;padding:0;transition:background-color .2s;display:grid;position:relative}.chess-square[data-shade=light]{background:var(--paper)}.chess-square[data-shade=dark]{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.chess-square[data-shade=dark]{background:color-mix(in srgb,var(--ink) 8%,var(--paper))}}.chess-board[data-disabled=true] .chess-square,.chess-square:disabled{cursor:default}.chess-square:focus-visible{outline-offset:-3px;z-index:2;outline:1.5px dashed}.chess-square[data-last=true]{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.chess-square[data-last=true]{background:color-mix(in srgb,var(--ink) 14%,var(--paper))}}.chess-square[data-selected=true]{background:var(--ink)}.chess-square[data-selected=true] .chess-piece{color:var(--paper)}.chess-square[data-check=true]{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.chess-square[data-check=true]{background:color-mix(in srgb,var(--ink) 22%,var(--paper))}}.chess-piece{color:var(--ink);-webkit-user-select:none;user-select:none;font-size:clamp(18px,4.4vw,26px);line-height:1;transition:color .2s}.chess-piece[data-color=b]{color:var(--soft)}.chess-square[data-target=true]:after{content:"";background:var(--dim);border-radius:50%;width:26%;height:26%;position:absolute}.chess-square[data-capture=true]:after{content:"";border:2px solid var(--dim);border-radius:50%;position:absolute;inset:12%}@media (hover:hover){.chess-square:not(:disabled):hover{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.chess-square:not(:disabled):hover{background:color-mix(in srgb,var(--ink) 16%,var(--paper))}}.chess-square[data-selected=true]:hover{background:var(--ink)}}.chess-controls{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:14px;margin-top:16px;display:flex}.chess-levels{gap:12px;display:flex}.chess-level{appearance:none;font-family:var(--font-mono);letter-spacing:.04em;color:var(--dim);cursor:pointer;background:0 0;border:0;padding:0 0 2px;font-size:11px;transition:color .3s;position:relative}.chess-level[aria-pressed=true]{color:var(--ink)}.chess-level:after{content:"";transform-origin:0;height:1px;transition:transform .35s var(--ease);background:currentColor;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.chess-level:hover:after,.chess-level[aria-pressed=true]:after{transform:scaleX(1)}.chess-scores{gap:16px;margin-top:0}@media (prefers-reduced-motion:reduce){.chess-level,.chess-level:after,.chess-piece,.chess-square{transition:none}}@media (max-width:1080px){.hero-layout{grid-template-columns:1fr}.hero-games{justify-content:flex-start;justify-self:stretch;max-width:534px;margin-top:clamp(24px,4vh,40px)}}@media (prefers-reduced-motion:reduce){.game-selector-tab,.game-selector-tab:after,.ttt-cell,.ttt-reset,.ttt-toggle,.ttt-toggle:after,.wurdle-key,.wurdle-tile{transition:none}.wurdle-board.is-shaking{animation:none}}.mask{overflow:hidden}.mask,.mask>.mask-in{display:block}@media (prefers-reduced-motion:no-preference){body:not(.is-loaded) .mask>.mask-in{transform:translateY(112%)}.mask>.mask-in{transition:transform .9s var(--ease);transition-delay:calc(var(--d,0) * 90ms)}}.fade-up{opacity:0;transform:translateY(28px)}@media (prefers-reduced-motion:no-preference){.fade-up.is-in{opacity:1;transition:opacity .8s ease,transform .8s var(--ease);transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.fade-up{opacity:1;transform:none}}.project{border-top:1px solid var(--faint);grid-template-columns:130px 1fr minmax(220px,320px);align-items:start;gap:clamp(24px,4vw,64px);padding:clamp(36px,5vh,56px) 0;display:grid}.project:first-of-type{border-top:0;padding-top:0}.project h3{letter-spacing:-.035em;margin-bottom:18px;font-size:clamp(26px,3vw,40px);font-weight:500;line-height:1.05}.project ul{gap:8px;max-width:560px;list-style:none;display:grid}.project li{color:var(--soft);text-wrap:pretty;padding-left:18px;font-size:15.5px;line-height:1.55;position:relative}.project li:before{content:"✲";color:var(--dim);font-size:9px;line-height:2.6;position:absolute;top:0;left:0}.project a{border-bottom:1px solid var(--faint);transition:border-color .25s}.project a:hover{border-color:var(--ink)}.project-thumb-link{cursor:pointer;border-bottom-color:var(--faint);border-radius:12px;text-decoration:none;display:block;overflow:hidden}.project a.project-thumb-link:hover{border-color:var(--faint)}.project-thumb{aspect-ratio:16/10;object-fit:cover;filter:grayscale()contrast(1.02);width:100%;transition:filter .5s ease,transform .7s var(--ease);border-radius:12px;display:block}.project-thumb-link:hover .project-thumb,.project:hover .project-thumb{filter:grayscale(0);transform:translateY(-4px)}.project-thumb-link:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:12px}.xp{border-top:1px solid var(--faint);grid-template-columns:130px 1fr;gap:clamp(24px,4vw,64px);padding:clamp(32px,4.5vh,48px) 0;display:grid}.xp:first-of-type{border-top:0;padding-top:0}.xp h3{letter-spacing:-.03em;margin-bottom:14px;font-size:clamp(22px,2.4vw,32px);font-weight:500}.xp ul{gap:7px;max-width:640px;list-style:none;display:grid}.xp li{color:var(--soft);text-wrap:pretty;padding-left:18px;font-size:15.5px;line-height:1.55;position:relative}.xp li:before{content:"-";color:var(--dim);position:absolute;left:0}.xp a{border-bottom:1px solid var(--faint);transition:border-color .25s}.xp a:hover{border-color:var(--ink)}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(32px,5vw,96px);display:grid}.about-copy{letter-spacing:-.02em;text-wrap:pretty;font-size:clamp(22px,2.2vw,30px);font-weight:400;line-height:1.35}.about-copy strong{font-weight:600}.about-meta{gap:28px;display:grid}.about-meta h4{font-family:var(--font-mono);letter-spacing:.04em;color:var(--dim);margin-bottom:8px;font-size:13px;font-weight:500}.about-meta p{color:var(--soft);font-size:15.5px}.about-meta a{border-bottom:1px solid var(--faint);transition:border-color .25s}.about-meta a:hover{border-color:var(--ink)}.media-list{list-style:none}.media-row{border-top:1px solid var(--faint);letter-spacing:-.015em;grid-template-columns:44px 1fr auto;align-items:baseline;gap:20px;padding:18px 0;font-size:clamp(17px,1.6vw,21px);transition:opacity .25s;display:grid}.media-list:hover .media-row{opacity:.4}.media-list .media-row:hover{opacity:1}.media-row .arrow{font-family:var(--font-mono);color:var(--dim);transition:transform .35s var(--ease);font-size:14px;display:inline-block}.media-row:hover .arrow{transform:translate(3px,-3px)}.contact{border-top:1px solid var(--faint);padding-block:clamp(80px,14vh,160px) 0}.contact h2{letter-spacing:-.05em;font-size:clamp(48px,9vw,130px);font-weight:500;line-height:1}.contact-email{letter-spacing:-.02em;border-bottom:1px solid var(--faint);margin-top:clamp(24px,4vh,40px);font-size:clamp(18px,2vw,26px);transition:border-color .25s;display:inline-block}.contact-email:hover{border-color:var(--ink)}.foot{border-top:1px solid var(--faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:clamp(56px,9vh,110px);padding:24px 0 28px;display:flex}.foot-links{gap:22px;list-style:none;display:flex}.foot-links a{font-family:var(--font-mono);letter-spacing:.04em;color:var(--soft);font-size:13px;transition:color .25s}.foot-links a:hover{color:var(--ink)}.overlay{z-index:30;background:var(--menu-bg);color:var(--menu-fg);clip-path:inset(0 0 100%);visibility:hidden;flex-direction:column;transition:background-color .45s,color .45s;display:flex;position:fixed;inset:0}@media (prefers-reduced-motion:no-preference){.overlay{transition:clip-path .75s var(--ease),background-color .45s ease,color .45s ease}}.overlay.is-open{clip-path:inset(0 0 0);visibility:visible}.overlay.is-closing{clip-path:inset(100% 0 0);visibility:visible}@media (prefers-reduced-motion:no-preference){.overlay.is-closing{transition:clip-path .6s var(--ease) .22s}}@media (prefers-reduced-motion:reduce){.overlay{clip-path:none;opacity:0;transition:opacity .35s,visibility .35s}.overlay.is-open{opacity:1}.overlay.is-closing{opacity:0}}.overlay:before{content:"";pointer-events:none;opacity:var(--grid-alpha);background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-size:88px 88px;position:absolute;inset:0}.overlay ::selection{background:var(--menu-fg);color:var(--menu-bg)}.rv-mask{overflow:hidden}.rv,.rv-mask{display:block}.rv{transform:translateY(112%)}@media (prefers-reduced-motion:no-preference){.rv{transition:transform .65s var(--ease)}.overlay.is-open .rv{transition-delay:calc(.42s + var(--d,0) * 75ms);transform:translateY(0)}.overlay.is-closing .rv{transition-duration:.35s;transition-delay:calc(var(--dr,0) * 35ms);transform:translateY(112%)!important}}@media (prefers-reduced-motion:reduce){.rv{transform:none}}.ov-views{flex:1;display:grid;position:relative}.ov-view{padding:96px var(--pad) 32px;grid-area:1/1;justify-content:center}.ov-nav,.ov-view{flex-direction:column;align-items:center;display:flex}.ov-nav{gap:clamp(8px,2.4vh,26px);list-style:none}.ov-nav .rv-mask{margin-inline:-1.75rem;padding-inline:1.75rem}.ov-link{appearance:none;color:inherit;cursor:pointer;font-family:var(--font-sans);letter-spacing:-.045em;background:0 0;border:0;padding:0 .2em;font-size:clamp(44px,8.5vw,104px);font-weight:500;line-height:1.04;transition:opacity .35s}.ov-nav:hover .ov-link:not(:hover){opacity:.35}.roll{--roll-pad:.08em;vertical-align:top;padding-inline:var(--roll-pad);margin-inline:calc(-1 * var(--roll-pad));display:inline-block;position:relative;overflow:hidden}.roll-a,.roll-b{display:block}.roll-b{left:var(--roll-pad);position:absolute;top:100%}@media (prefers-reduced-motion:no-preference){.roll-a,.roll-b{transition:transform .5s var(--ease)}.ov-link:focus-visible .roll-a,.ov-link:focus-visible .roll-b,.ov-link:hover .roll-a,.ov-link:hover .roll-b{transform:translateY(-100%)}}.ov-view-nav,.ov-view-works{pointer-events:none;visibility:visible;transition:visibility linear}.overlay[data-view=nav] .ov-view-works,.overlay[data-view=works] .ov-view-nav{visibility:hidden;transition-delay:.5s}.overlay[data-view=nav] .ov-view-nav,.overlay[data-view=works] .ov-view-works{pointer-events:auto}@media (prefers-reduced-motion:no-preference){.overlay.is-open[data-view=works] .ov-view-nav .rv{transition-duration:.4s;transition-delay:calc(var(--d,0) * 35ms);transform:translateY(-112%)}}@media (prefers-reduced-motion:reduce){.overlay[data-view=nav] .ov-view-works,.overlay[data-view=works] .ov-view-nav{visibility:hidden}}.ov-view-works .rv{transition-delay:0s}@media (prefers-reduced-motion:no-preference){.overlay.is-open[data-view=nav] .ov-view-works .rv{transition-duration:.4s;transition-delay:calc(var(--d,0) * 30ms);transform:translateY(112%)}.overlay.is-open[data-view=works] .ov-view-works .rv{transition-delay:calc(.22s + var(--d,0) * 55ms);transform:translateY(0)}}.works-back{appearance:none;color:var(--soft);cursor:pointer;font-family:var(--font-mono);letter-spacing:.04em;background:0 0;border:0;margin-bottom:clamp(20px,4vh,44px);padding:4px 0;font-size:13px;transition:color .25s}.works-back:hover{color:var(--menu-fg)}.works-list{flex-direction:column;align-items:center;gap:clamp(2px,1vh,10px);list-style:none;display:flex}.works-list .rv{position:relative}.works-list .rv:focus-within,.works-list .rv:hover{z-index:3}.work-item{appearance:none;cursor:pointer;font-family:var(--font-sans);letter-spacing:-.04em;color:var(--menu-fg);background:0 0;border:0;align-items:center;gap:20px;padding:.04em .3em;font-size:clamp(30px,5.4vw,62px);font-weight:500;line-height:1.18;transition:color .25s;display:flex}.works-list:hover .work-item:not(:hover):not(:focus-visible){color:var(--menu-fg)}@supports (color:color-mix(in lab,red,red)){.works-list:hover .work-item:not(:hover):not(:focus-visible){color:color-mix(in srgb,var(--menu-fg) 38%,transparent)}}.wi-title{transition:transform .25s var(--ease);transform-origin:50%;display:inline-block}.work-item:focus-visible .wi-title,.work-item:hover .wi-title{transform:scale(1.06)}@media (prefers-reduced-motion:reduce){.work-item:focus-visible .wi-title,.work-item:hover .wi-title{transform:none}}.wi-thumb{display:none}@media (hover:none){.wi-thumb{aspect-ratio:16/10;object-fit:cover;cursor:pointer;border-radius:8px;flex:none;width:84px;display:block}.work-item{color:var(--menu-fg)}@supports (color:color-mix(in lab,red,red)){.work-item{color:color-mix(in srgb,var(--menu-fg) 80%,transparent)}}.work-item{text-align:left}.preview{display:none!important}}.ov-foot{padding:0 var(--pad) 28px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex;position:relative}.ov-foot a{font-family:var(--font-mono);letter-spacing:.04em;color:var(--soft);font-size:13px;transition:color .25s}.ov-foot a:hover{color:var(--menu-fg)}.ov-socials{gap:22px;list-style:none;display:flex}.preview{z-index:2;pointer-events:none;width:270px;height:150px;color:inherit;border:1px solid var(--accent,var(--menu-fg));border-radius:12px;text-decoration:none;position:fixed;top:0;left:0}@supports (color:color-mix(in lab,red,red)){.preview{border:1px solid color-mix(in oklch,var(--accent,var(--menu-fg)) 55%,transparent)}}.preview{visibility:hidden;will-change:transform;background:#000;transition:border-color .3s;overflow:hidden}.preview-active{pointer-events:auto;cursor:pointer}.preview img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.pf-lamp{z-index:32;pointer-events:none;transform-origin:top;width:104px;height:168px;margin-left:-52px;transition:translate .3s cubic-bezier(.6,0,.85,.25);position:fixed;top:0;left:50%;translate:0 -120%;scale:.88}.pf-lamp.is-down{transition:translate 1.1s var(--ease);translate:0}.pf-lamp .pf-lamp-btn{pointer-events:none}.pf-lamp.is-down .pf-lamp-btn{pointer-events:auto}.pf-lamp-swing{transform-origin:52px 0;position:absolute;inset:0}.pf-lamp-svg{display:block;overflow:visible}.pf-lamp-halo{pointer-events:none;opacity:0;background:radial-gradient(circle,#fce8c652 0,#0000 64%);border-radius:50%;width:132px;height:132px;margin:-66px;transition:opacity .45s,transform .45s;position:absolute;top:116px;left:50%;transform:scale(.86)}html[data-theme=light] .pf-lamp-halo{opacity:1;transform:scale(1)}.pf-lamp-pool{z-index:31;pointer-events:none;opacity:0;background:radial-gradient(at top,#fce8c61a 0,#0000 58%);width:60vmax;height:46vmax;margin-left:-30vmax;transition:opacity .5s;position:fixed;top:0;left:50%}html[data-theme=light] body.lamp-down .pf-lamp-pool{opacity:1}.pf-lamp-wire{stroke:var(--soft);stroke-width:1.5px;transition:stroke .45s}.pf-lamp-cap{fill:var(--soft);transition:fill .45s}.pf-lamp-cap-ridge{stroke:var(--paper);stroke-width:1px;opacity:.5}.pf-lamp-glass-off{fill:var(--faint);stroke:var(--soft);stroke-width:1.25px;transition:fill .45s,stroke .45s}.pf-lamp-filament{fill:none;stroke:var(--dim);stroke-width:1.4px;stroke-linecap:round;transition:stroke .45s}.pf-lamp-lit{transition:opacity .45s}.pf-lamp-glass-lit{stroke:#aa8c5566;stroke-width:1px}.pf-lamp-filament-glow{fill:none;stroke:#e4b26980;stroke-width:3.4px;stroke-linecap:round}.pf-lamp-filament-lit{fill:none;stroke:#c79350;stroke-width:1.5px;stroke-linecap:round}.pf-lamp-cord-group{will-change:transform}.pf-lamp-cord,.pf-lamp-cord-arm{stroke:var(--soft);stroke-width:1.4px;transition:stroke .45s}.pf-lamp-cord{stroke-dasharray:3 2}.pf-lamp-bead,.pf-lamp-knob{fill:var(--soft);transition:fill .45s}.pf-lamp-btn{appearance:none;cursor:grab;pointer-events:auto;touch-action:none;background:0 0;border:0;border-radius:12px;width:46px;height:50px;margin:0;position:absolute;top:110px;left:48px}.pf-lamp-btn:active{cursor:grabbing}.pf-lamp-btn:focus-visible{outline:1.5px dashed var(--ink);outline-offset:3px}@media (prefers-reduced-motion:reduce){.pf-lamp-halo,.pf-lamp-lit,.pf-lamp-pool{transition:opacity .15s}.pf-lamp,.pf-lamp.is-down{transition:translate .25s}}@media (max-width:600px){.pf-lamp{scale:.72}}@media (max-width:880px){.project{grid-template-columns:1fr;gap:18px}.project-thumb-link{order:-1;max-width:420px}.xp{gap:10px}.about-grid,.xp{grid-template-columns:1fr}}}@layer utilities{.\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.inset-\[14\%\]{inset:14%}.top-0{top:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.\!mt-0{margin-top:calc(var(--spacing) * 0)!important}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-\[10px\]{margin-top:10px}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.aspect-\[16\/9\]{aspect-ratio:16/9}.aspect-square{aspect-ratio:1}.h-9{height:calc(var(--spacing) * 9)}.h-\[18px\]{height:18px}.h-\[22\%\]{height:22%}.h-\[80\%\]{height:80%}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.w-\[18px\]{width:18px}.w-\[22\%\]{width:22%}.w-\[80\%\]{width:80%}.w-full{width:100%}.max-w-\[30px\]{max-width:30px}.max-w-\[52px\]{max-width:52px}.max-w-\[340px\]{max-width:340px}.max-w-\[534px\]{max-width:534px}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-\[1\.5_1_0\%\]{flex:1.5}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.grid-rows-8{grid-template-rows:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\[5px\]{gap:5px}.gap-\[6px\]{gap:6px}.gap-\[7px\]{gap:7px}.gap-px{gap:1px}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[5px\]{border-radius:5px}.rounded-full{border-radius:3.40282e+38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-hair{border-color:var(--color-hair)}.border-hair-2{border-color:var(--color-hair-2)}.border-hair-3{border-color:var(--color-hair-3)}.border-transparent{border-color:#0000}.bg-\[\#2a2f3a\]{background-color:#2a2f3a}.bg-\[\#5cb88a\]{background-color:#5cb88a}.bg-\[\#d4a843\]{background-color:#d4a843}.bg-accent{background-color:var(--color-accent)}.bg-base{background-color:var(--color-base)}.bg-cell{background-color:var(--color-cell)}.bg-cell-2048{background-color:var(--color-cell-2048)}.bg-hair{background-color:var(--color-hair)}.bg-hair-strong{background-color:var(--color-hair-strong)}.bg-panel{background-color:var(--color-panel)}.bg-sq-dark,.bg-sq-dark\/80{background-color:var(--color-sq-dark)}@supports (color:color-mix(in lab,red,red)){.bg-sq-dark\/80{background-color:color-mix(in oklab,var(--color-sq-dark) 80%,transparent)}}.bg-sq-light,.bg-sq-light\/80{background-color:var(--color-sq-light)}@supports (color:color-mix(in lab,red,red)){.bg-sq-light\/80{background-color:color-mix(in oklab,var(--color-sq-light) 80%,transparent)}}.bg-t2{background-color:var(--color-t2)}.bg-t4{background-color:var(--color-t4)}.bg-t8{background-color:var(--color-t8)}.bg-t16{background-color:var(--color-t16)}.bg-t32{background-color:var(--color-t32)}.bg-t64{background-color:var(--color-t64)}.bg-t128{background-color:var(--color-t128)}.bg-t256{background-color:var(--color-t256)}.bg-t512{background-color:var(--color-t512)}.bg-t1024{background-color:var(--color-t1024)}.bg-t2048{background-color:var(--color-t2048)}.p-\[6px\]{padding:6px}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-5{padding-inline:calc(var(--spacing) * 5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.pt-\[16px\]{padding-top:16px}.pb-\[14px\]{padding-bottom:14px}.font-mono{font-family:var(--font-mono)}.text-\[8\.5cqw\]{font-size:8.5cqw}.text-\[9px\]{font-size:9px}.text-\[10cqw\]{font-size:10cqw}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12cqw\]{font-size:12cqw}.text-\[12px\]{font-size:12px}.text-\[13cqw\]{font-size:13cqw}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-\[18px\]{--tw-leading:18px;line-height:18px}.leading-none{--tw-leading:1;line-height:1}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\[0\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.06em\]{--tw-tracking:.06em;letter-spacing:.06em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.text-\[\#0d1117\]{color:#0d1117}.text-\[\#c9d1d9\]{color:#c9d1d9}.text-accent{color:var(--color-accent)}.text-accent-fg{color:var(--color-accent-fg)}.text-faint{color:var(--color-faint)}.text-faint-2{color:var(--color-faint-2)}.text-ink{color:var(--color-ink)}.text-ink-2{color:var(--color-ink-2)}.text-muted{color:var(--color-muted)}.text-muted-2{color:var(--color-muted-2)}.text-status{color:var(--color-status)}.text-t2-fg{color:var(--color-t2-fg)}.text-t4-fg{color:var(--color-t4-fg)}.text-t8-fg{color:var(--color-t8-fg)}.text-t16-fg{color:var(--color-t16-fg)}.text-t32-fg{color:var(--color-t32-fg)}.text-t64-fg{color:var(--color-t64-fg)}.text-t128-fg{color:var(--color-t128-fg)}.text-t256-fg{color:var(--color-t256-fg)}.text-t512-fg{color:var(--color-t512-fg)}.text-t1024-fg{color:var(--color-t1024-fg)}.text-t2048-fg{color:var(--color-t2048-fg)}.text-title{color:var(--color-title)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.ring-1,.ring-\[2\.5px\]{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\[2\.5px\]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2.5px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.ring-hair-2{--tw-ring-color:var(--color-hair-2)}.ring-hair-strong{--tw-ring-color:var(--color-hair-strong)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\,border-color\,color\]{transition-property:background-color,border-color,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background-color\]{transition-property:background-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[border-color\,color\]{transition-property:border-color,color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-\[450ms\]{--tw-duration:.45s;transition-duration:.45s}.ease-\[cubic-bezier\(0\.16\,1\,0\.3\,1\)\]{--tw-ease:cubic-bezier(.16,1,.3,1);transition-timing-function:cubic-bezier(.16,1,.3,1)}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.hover\:border-hair-strong:hover{border-color:var(--color-hair-strong)}.hover\:text-hover:hover{color:var(--color-hover)}.hover\:text-muted:hover{color:var(--color-muted)}.hover\:text-muted-2:hover{color:var(--color-muted-2)}}.disabled\:cursor-default:disabled{cursor:default}.disabled\:opacity-60:disabled{opacity:.6}}:root{--accent:#5f9c8a;--ink:#0a0a0a;--paper:#fafafa;--dim:#0a0a0a73;--soft:#0a0a0a99;--faint:#0a0a0a1f;--line:#0a0a0a0d;--menu-bg:var(--paper);--menu-fg:var(--ink);--grid-alpha:.5;--ease:cubic-bezier(.16,1,.3,1);--pad:clamp(20px,4vw,56px);color-scheme:light;--game-base:#f3f3f3;--game-panel:#fffffff0;--game-cell:#ececec;--game-cell-2048:#fafafa;--game-ink:#0a0a0a;--game-ink-2:#141414;--game-title:#2a2a2a;--game-hover:#55555c;--game-status:#6a6a71;--game-muted:#75757c;--game-muted-2:#86868d;--game-faint:#9a9aa1;--game-faint-2:#b0b0b6;--game-wd-present-bg:#c9bc8a;--game-wd-present-fg:#3a3524;--game-wd-absent-bg:#d6d6d8;--game-wd-absent-fg:#6e6e74;--game-sq-light:#efefef;--game-sq-dark:#dedee2;--game-hair:#0a0a0a14;--game-hair-2:#0a0a0a1a;--game-hair-3:#0a0a0a1f;--game-hair-strong:#0a0a0a33;--game-accent-fg:#0b0b0c;--game-piece-muted:#6a6a70;--game-piece-white-fill:#f7f7f5;--game-piece-white-line:#1b1b1e;--game-piece-black-fill:#26262b;--game-piece-black-line:#050507;--game-t2:#e6e9ee;--game-t2-fg:#2b3a35;--game-t4:#d9e0ea;--game-t4-fg:#2b3a35;--game-t8:#c6d6e0;--game-t8-fg:#233634;--game-t16:#aecdd6;--game-t16-fg:#1f3531;--game-t32:#9bc8c8;--game-t32-fg:#163029;--game-t64:#84beb1;--game-t64-fg:#123026;--game-t128:#6cb59a;--game-t128-fg:#0e2c20;--game-t256:#57a585;--game-t256-fg:#08251a;--game-t512:#468f6f;--game-t512-fg:#f1f6f2;--game-t1024:#387a5c;--game-t1024-fg:#f1f6f2;--game-t2048:#2c684c;--game-t2048-fg:#f4fbf6}html[data-theme=dark]{--ink:#ededed;--paper:#0d0d11;--dim:#ededed6b;--soft:#ededed99;--faint:#ededed21;--line:#ededed0e;color-scheme:dark;--game-base:#08080a;--game-panel:#0e0e10eb;--game-cell:#0c0c0e;--game-cell-2048:#0c0c0e;--game-ink:#f0f0f0;--game-ink-2:#e8e8e8;--game-title:#cfcfcf;--game-hover:#9a9aa1;--game-status:#6a6a71;--game-muted:#5c5c63;--game-muted-2:#4f4f56;--game-faint:#44444a;--game-faint-2:#38383d;--game-wd-present-bg:#4d4630;--game-wd-present-fg:#efe4c7;--game-wd-absent-bg:#171719;--game-wd-absent-fg:#76767c;--game-sq-light:#202024;--game-sq-dark:#16161a;--game-hair:#ffffff12;--game-hair-2:#ffffff14;--game-hair-3:#ffffff1a;--game-hair-strong:#ffffff2e;--game-accent-fg:#0b0b0c;--game-piece-muted:#8a8a90;--game-piece-white-fill:#ededed;--game-piece-white-line:#090909;--game-piece-black-fill:#050507;--game-piece-black-line:#b9b9bf;--game-t2:#1c2026;--game-t2-fg:#d7e3dd;--game-t4:#232a35;--game-t4-fg:#d7e3dd;--game-t8:#2a3744;--game-t8-fg:#dbe7e2;--game-t16:#324a55;--game-t16-fg:#dde9e4;--game-t32:#3a5d62;--game-t32-fg:#e0ece6;--game-t64:#42726a;--game-t64-fg:#e3efe9;--game-t128:#4c8a76;--game-t128-fg:#e6f2ec;--game-t256:#589f86;--game-t256-fg:#06140e;--game-t512:#6bb597;--game-t512-fg:#06140e;--game-t1024:#80c8a8;--game-t1024-fg:#07170f;--game-t2048:#97dbba;--game-t2048-fg:#07170f}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}