/*! tailwindcss v4.3.5 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-pixel:"Press Start 2P", ui-monospace, monospace;--font-retro:"VT323", ui-monospace, monospace;--color-void:#0b0b0b;--color-panel:#141414;--color-line:#2c2c2c;--color-dim:#5c5c5c;--color-mute:#8f8f8f;--color-chalk:#e9e9e9;--color-paper:#f2f2f2;--color-sq-light:#a9a9a9;--color-sq-dark:#6f6f6f}}@layer base{*,:after,:before,::backdrop{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}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{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:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-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{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html,body,#root{min-height:100%}body{background:var(--color-void);color:var(--color-chalk);font-family:var(--font-retro);-webkit-font-smoothing:none;-moz-osx-font-smoothing:unset;font-smooth:never;-webkit-tap-highlight-color:transparent;margin:0;font-size:20px;line-height:1.25}::selection{background:var(--color-paper);color:var(--color-void)}svg{image-rendering:pixelated}}@layer components{.pixel-frame,.pixel-btn,.pixel-input{--frame:var(--color-chalk);--w:4px;box-shadow:0 calc(var(--w) * -1) 0 0 var(--frame), 0 var(--w) 0 0 var(--frame), calc(var(--w) * -1) 0 0 0 var(--frame), var(--w) 0 0 0 var(--frame)}.pixel-btn{cursor:pointer;padding-inline:calc(var(--spacing) * 5);padding-block:calc(var(--spacing) * 3);font-family:var(--font-pixel);--tw-leading:1;--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);text-transform:uppercase;-webkit-user-select:none;user-select:none;font-size:11px;line-height:1;position:relative}@media (width>=40rem){.pixel-btn{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}.pixel-btn{--frame:var(--color-paper);background:var(--color-paper);color:var(--color-void);transition:none}.pixel-btn:hover:not(:disabled){--frame:#cfcfcf;background:#cfcfcf}.pixel-btn:active:not(:disabled){transform:translateY(2px)}.pixel-btn:disabled{--frame:var(--color-line);background:var(--color-line);color:var(--color-dim);cursor:not-allowed}.pixel-btn-ghost{--frame:var(--color-line);background:var(--color-void);color:var(--color-chalk)}.pixel-btn-ghost:hover:not(:disabled){--frame:var(--color-mute);background:var(--color-panel)}.pixel-btn:focus-visible,.pixel-input:focus-visible,.square:focus-visible{outline:2px dashed var(--color-paper);outline-offset:6px}.pixel-input{width:100%;padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3);font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height));--frame:var(--color-line);background:var(--color-void);color:var(--color-paper);caret-color:var(--color-paper);border-radius:0}.pixel-input:focus{--frame:var(--color-mute)}.pixel-input::placeholder{color:var(--color-dim)}.pixel-input:focus-visible{outline:none}.board{aspect-ratio:1;width:min(92vw,100svh - 280px,560px);min-width:256px}.square{cursor:default;touch-action:manipulation;border:0;place-items:center;padding:0;display:grid;position:relative}.square[data-interactive=true]{cursor:pointer}.square[data-last=true]:before{content:"";background:#ffffff29;position:absolute;inset:0}.square[data-selected=true]:before{content:"";box-shadow:inset 0 0 0 3px var(--color-paper);background:#ffffff59;position:absolute;inset:0}.square[data-check=true]:before{content:"";background-image:conic-gradient(#0b0b0b 25%, transparent 0 50%, #0b0b0b 0 75%, transparent 0);opacity:.55;background-size:6px 6px;animation:1s step-end infinite blink;position:absolute;inset:0}.move-dot{opacity:.45;background:#0b0b0b;width:22%;height:22%;position:absolute}.capture-mark{--c:#0b0b0b99;--s:26%;--t:10%;background:linear-gradient(var(--c), var(--c)) top left / var(--s) var(--t), linear-gradient(var(--c), var(--c)) top left / var(--t) var(--s), linear-gradient(var(--c), var(--c)) top right / var(--s) var(--t), linear-gradient(var(--c), var(--c)) top right / var(--t) var(--s), linear-gradient(var(--c), var(--c)) bottom left / var(--s) var(--t), linear-gradient(var(--c), var(--c)) bottom left / var(--t) var(--s), linear-gradient(var(--c), var(--c)) bottom right / var(--s) var(--t), linear-gradient(var(--c), var(--c)) bottom right / var(--t) var(--s);background-repeat:no-repeat;position:absolute;inset:0}.piece{pointer-events:none;width:92%;height:92%;position:relative}.piece-land{animation:.16s steps(2,end) both land}.coord{font-family:var(--font-retro);pointer-events:none;font-size:clamp(10px,2.2vw,15px);line-height:1;position:absolute}}@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.top-\[3\%\]{top:3%}.right-\[6\%\]{right:6%}.bottom-\[2\%\]{bottom:2%}.left-\[5\%\]{left:5%}.mt-1{margin-top:var(--spacing)}.mt-14{margin-top:calc(var(--spacing) * 14)}.mt-auto{margin-top:auto}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-3{margin-left:calc(var(--spacing) * 3)}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-28{width:calc(var(--spacing) * 28);height:calc(var(--spacing) * 28)}.size-36{width:calc(var(--spacing) * 36);height:calc(var(--spacing) * 36)}.size-\[85\%\]{width:85%;height:85%}.size-\[88\%\]{width:88%;height:88%}.size-\[90\%\]{width:90%;height:90%}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-svh{min-height:100svh}.w-full{width:100%}.max-w-\[560px\]{max-width:560px}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-rows-8{grid-template-rows:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.place-items-center{place-items:center}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-9{gap:calc(var(--spacing) * 9)}.gap-10{gap:calc(var(--spacing) * 10)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-line{border-color:var(--color-line)}.bg-panel{background-color:var(--color-panel)}.bg-paper{background-color:var(--color-paper)}.bg-sq-dark{background-color:var(--color-sq-dark)}.bg-sq-light{background-color:var(--color-sq-light)}.p-0{padding:0}.p-1{padding:var(--spacing)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.font-pixel{font-family:var(--font-pixel)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-\[8px\]{font-size:8px}.text-\[10px\]{font-size:10px}.text-\[17px\]{font-size:17px}.text-\[22px\]{font-size:22px}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.text-chalk{color:var(--color-chalk)}.text-dim{color:var(--color-dim)}.text-mute{color:var(--color-mute)}.text-paper{color:var(--color-paper)}.text-sq-dark{color:var(--color-sq-dark)}.text-sq-light{color:var(--color-sq-light)}.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, )}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.select-none{-webkit-user-select:none;user-select:none}@media (width>=40rem){.sm\:mb-6{margin-bottom:calc(var(--spacing) * 6)}.sm\:size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.sm\:size-32{width:calc(var(--spacing) * 32);height:calc(var(--spacing) * 32)}.sm\:size-40{width:calc(var(--spacing) * 40);height:calc(var(--spacing) * 40)}.sm\:size-\[72px\]{width:72px;height:72px}.sm\:pt-8{padding-top:calc(var(--spacing) * 8)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.sm\:text-\[10px\]{font-size:10px}.sm\:text-\[22px\]{font-size:22px}.sm\:text-\[30px\]{font-size:30px}}.cursor-blink{animation:1.06s step-end infinite blink}.screen-in{animation:.28s steps(4,end) both screen-in}.dots:after{content:"";text-align:left;width:3ch;animation:1.2s step-end infinite dots;display:inline-block}.bob{animation:1.2s step-end infinite bob}}@keyframes blink{50%{opacity:0}}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}}@keyframes land{0%{transform:translateY(-8%)}}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}@keyframes bob{50%{transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:0s!important;animation-iteration-count:1!important}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{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-outline-style{syntax:"*";inherits:false;initial-value:solid}
