/*! tailwindcss v4.3.3 | 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)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--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}}}@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;--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)}}@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}}@layer components;@layer utilities{.visible{visibility:visible}.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.grid{display:grid}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.blur{--tw-blur:blur(8px);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,)}.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))}}:root{--bg:#21160f;--panel:#332117;--panel-deep:#291a11;--light-sq:#d6b77a;--dark-sq:#6c4226;--cream:#f1e2bd;--ink:#21160f;--red:#8b2e21;--red-bright:#c83c28;--brass:#b88a44;--brass-bright:#d4a85c;--wood:#4a2e1c;--wood-dark:#2a1b12;--font-display:"Cinzel", "Georgia", serif;--font-body:"Libre Baskerville", Georgia, "Times New Roman", serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg);color:var(--cream);-webkit-font-smoothing:antialiased;background-image:radial-gradient(at 50% -10%,#b88a4424,#0000 55%),radial-gradient(at 50% 110%,#0000008c,#0000 65%);min-height:100dvh}body:after{content:"";z-index:9999;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.app-shell{flex-direction:column;gap:18px;max-width:1220px;min-height:100dvh;margin:0 auto;padding:22px 20px 44px;display:flex}.app-header{text-align:center;padding:4px 0 2px}.app-title__kicker{font-family:var(--font-display);letter-spacing:.52em;text-indent:.52em;text-transform:uppercase;color:var(--brass);font-size:.68rem;font-weight:700}.app-title__main{font-family:var(--font-display);letter-spacing:.2em;text-indent:.2em;color:var(--cream);text-shadow:0 1px 0 #ffffff0f, 0 2px 0 var(--ink), 0 4px 12px #0000008c;margin:5px 0 0;font-size:clamp(1.85rem,5.5vw,3.1rem);font-weight:900}.game-layout{grid-template-columns:minmax(0,1fr) 344px;justify-content:center;align-items:start;gap:30px;display:grid}.board-column{justify-content:center;align-items:flex-start;min-width:0;display:flex}.side-panel{flex-direction:column;gap:18px;min-width:0;display:flex}.board-frame{border:1px solid var(--brass);background:linear-gradient(155deg,#55341f 0%,#3a2314 45%,#24150d 100%);border-radius:5px;grid-template-rows:minmax(0,1fr) 1.35rem;grid-template-columns:1.35rem minmax(0,1fr);width:min(100%,100dvh - 190px,700px);padding:12px;display:grid;box-shadow:inset 0 0 0 3px #140c07d9,inset 0 0 0 4px #b88a4466,inset 0 2px 6px #ffffff0f,0 16px 38px #0009}.board-ranks,.board-files{color:#f1e2bd99;font-family:var(--font-display);-webkit-user-select:none;user-select:none;font-size:.72rem;font-weight:700;display:grid}.board-ranks{grid-area:1/1;grid-template-rows:repeat(8,1fr);place-items:center;padding-right:2px}.board-files{grid-area:2/2;grid-template-columns:repeat(8,1fr);place-items:center;padding-top:2px}.board-grid{aspect-ratio:1;background-color:var(--dark-sq);border:1px solid #140c07f2;outline:none;grid-area:1/2;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);display:grid;box-shadow:inset 0 0 20px #00000080}.board-grid:focus-visible{box-shadow:inset 0 0 0 3px var(--brass-bright), inset 0 0 20px #00000080}.sq{cursor:default;-webkit-tap-highlight-color:transparent;touch-action:manipulation;justify-content:center;align-items:center;display:flex;position:relative}.sq--light{background-color:var(--light-sq);background-image:linear-gradient(135deg,#ffffff1f,#fff0 48%,#0000000d)}.sq--dark{background-color:var(--dark-sq);background-image:linear-gradient(135deg,#ffffff12,#fff0 48%,#00000029)}.sq--legal,.sq--capture,.sq--clickable{cursor:pointer}.sq-overlay{pointer-events:none;position:absolute;inset:0}.sq-overlay--last{z-index:1;background:#ffe2963d}.sq-overlay--selected{z-index:1;background:#b88a4480;box-shadow:inset 0 0 0 3px #21160fad}.sq-overlay--check{z-index:1;animation:1.15s ease-in-out infinite check-pulse}.sq-overlay--cursor{z-index:4;box-shadow:inset 0 0 0 3px var(--cream);border-radius:0}@keyframes check-pulse{0%,to{background:#8b2e212e;box-shadow:inset 0 0 0 2px #c83c2859}50%{background:#c83c2873;box-shadow:inset 0 0 0 3px #ff8264d9,0 0 16px #c83c288c}}.piece{z-index:2;object-fit:contain;-webkit-user-select:none;user-select:none;width:88%;height:88%;transition:transform .14s,filter .14s;position:relative}.piece--w{filter:sepia(.14)saturate(.85)brightness(1.02)drop-shadow(0 2px 1.5px #0000008c)}.piece--b{filter:sepia(.32)saturate(.9)brightness(.92)drop-shadow(0 2px 1.5px #0009)}.sq--clickable:hover .piece,.sq--clickable:hover .piece--w,.sq--clickable:hover .piece--b{filter:sepia(.2)saturate(.9)brightness(1.05)drop-shadow(0 5px 6px #00000080);transform:translateY(-2px)scale(1.02)}.sq__dot{z-index:2;background:#21160f80;border-radius:50%;width:30%;height:30%;position:relative;box-shadow:0 0 0 2px #f1e2bd59,inset 0 0 6px #0000004d}.sq__ring{z-index:3;pointer-events:none;border:3px solid #c83c28d9;border-radius:50%;position:absolute;inset:4%;box-shadow:0 0 10px #c83c2873}.panel-heading{font-family:var(--font-display);letter-spacing:.28em;color:var(--brass);text-transform:uppercase;margin:0 0 10px;font-size:.78rem;font-weight:700}.status-panel,.captured-panel,.history-panel,.controls-panel{background:var(--panel);border:1px solid #b88a4466;border-radius:4px;padding:16px 18px;box-shadow:inset 0 0 0 1px #0006,0 8px 20px #00000059}.status-panel{text-align:center}.status-turn{justify-content:center;align-items:center;gap:10px;display:flex}.turn-dot{border:1px solid #00000080;border-radius:50%;width:13px;height:13px;box-shadow:inset 0 1px 2px #fff6}.turn-dot--w{background:#f1e2bd}.turn-dot--b{background:#1c120c}.status-turn__text{font-family:var(--font-display);letter-spacing:.14em;font-size:1.02rem;font-weight:700}.status-alert{font-family:var(--font-display);letter-spacing:.16em;margin-top:10px}.status-alert--check{color:#f2a08e;font-size:1.05rem;font-weight:900;animation:1s ease-in-out infinite blink-soft}.status-alert--result{flex-direction:column;gap:3px;display:flex}.status-alert__title{color:var(--brass-bright);font-size:1.25rem;font-weight:900}.status-alert__subtitle{color:var(--cream);font-size:.9rem;font-weight:700}@keyframes blink-soft{0%,to{opacity:1}50%{opacity:.45}}.captured-row{align-items:center;gap:10px;min-height:30px;display:flex}.captured-row+.captured-row{margin-top:4px}.captured-side{font-family:var(--font-display);letter-spacing:.1em;color:#f1e2bdcc;text-transform:uppercase;width:52px;font-size:.72rem;font-weight:700}.captured-icons{flex-wrap:wrap;flex:1;align-items:center;gap:1px;display:flex}.captured-icon{object-fit:contain;width:22px;height:22px}.captured-adv{font-family:var(--font-display);color:var(--brass-bright);font-size:.85rem;font-weight:700}.move-history{scrollbar-width:thin;scrollbar-color:#b88a4480 transparent;flex-direction:column;gap:3px;max-height:240px;padding-right:6px;display:flex;overflow-y:auto}.move-history__empty{color:#f1e2bd73;font-size:.88rem;font-style:italic}.history-row{font-family:var(--font-body);color:var(--cream);border-radius:3px;grid-template-columns:2.2rem 1fr 1fr;gap:8px;padding:3px 8px;font-size:.95rem;display:grid}.history-row:nth-child(odd){background:#0000002e}.history-num{color:#f1e2bd80;font-variant-numeric:tabular-nums}.history-san{font-variant-numeric:tabular-nums}.history-san--latest{color:var(--brass-bright);text-shadow:0 0 8px #d4a85c59;font-weight:700}.controls-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.ctl-btn{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--cream);border:1px solid var(--brass);cursor:pointer;background:linear-gradient(#42301f,#2c1c12);border-radius:2px;min-height:42px;padding:11px 12px;font-size:.74rem;font-weight:700;transition:background .14s,box-shadow .14s,color .14s}.ctl-btn:hover{background:linear-gradient(#51391f,#372414);box-shadow:0 0 0 1px #d4a85c80,0 4px 10px #0006}.ctl-btn:focus-visible{outline:2px solid var(--brass-bright);outline-offset:2px}.ctl-btn--primary{color:var(--ink);border-color:var(--brass-bright);background:linear-gradient(#dcb069,#b88a44)}.ctl-btn--primary:hover{background:linear-gradient(#e8c07c,#c99a54)}.tagline{text-align:center;font-family:var(--font-display);letter-spacing:.3em;text-indent:.3em;color:#f1e2bd66;text-transform:uppercase;padding-top:2px;font-size:.7rem}.mode-panel{background:var(--panel);border:1px solid #b88a4466;border-radius:4px;padding:16px 18px;box-shadow:inset 0 0 0 1px #0006,0 8px 20px #00000059}.seg-group{gap:8px;display:flex}.seg-group+.seg-group{margin-top:8px}.seg{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--cream);cursor:pointer;background:linear-gradient(#42301f,#2c1c12);border:1px solid #b88a4499;border-radius:2px;flex:1;min-height:38px;padding:9px 8px;font-size:.72rem;font-weight:700;transition:background .14s,box-shadow .14s,color .14s}.seg:hover{background:linear-gradient(#51391f,#372414)}.seg:focus-visible{outline:2px solid var(--brass-bright);outline-offset:2px}.seg--active,.seg--active:hover{color:var(--ink);border-color:var(--brass-bright);background:linear-gradient(#dcb069,#b88a44);box-shadow:0 0 0 1px #d4a85c80}.status-turn__text--thinking{animation:1.2s ease-in-out infinite blink-soft}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background:#0a0603b8;justify-content:center;align-items:center;padding:20px;animation:.18s overlay-in;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--brass);text-align:center;background:linear-gradient(170deg,#3d2919,#24150d);border-radius:5px;width:100%;max-width:460px;padding:34px 40px;animation:.22s modal-in;box-shadow:inset 0 0 0 3px #140c07d9,inset 0 0 0 4px #b88a4459,0 24px 60px #000000b3}.modal-flourish{border-top:1px solid var(--brass);border-bottom:1px solid var(--brass);width:120px;height:8px;margin:0 auto 18px;position:relative}.modal-flourish:after{content:"";background:var(--brass);border:1px solid var(--ink);width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.modal-title{font-family:var(--font-display);letter-spacing:.18em;text-indent:.18em;color:var(--brass-bright);text-shadow:0 2px 0 var(--ink), 0 4px 14px #00000080;margin:0 0 8px;font-size:2rem;font-weight:900}.modal-subtitle{font-family:var(--font-display);letter-spacing:.2em;text-indent:.2em;color:var(--cream);margin:0 0 26px;font-size:1.05rem;font-weight:700}.modal-actions{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.promotion-choices{justify-content:center;gap:12px;margin-bottom:22px;display:flex}.promotion-choice{border:1px solid var(--brass);cursor:pointer;background:#00000040;border-radius:3px;justify-content:center;align-items:center;width:72px;height:72px;padding:6px;transition:background .14s,transform .14s;display:flex}.promotion-choice:hover{background:#b88a4440;transform:translateY(-2px)}.promotion-choice:focus-visible{outline:2px solid var(--brass-bright);outline-offset:2px}.promotion-choice img{object-fit:contain;width:100%;height:100%}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=900px){.game-layout{grid-template-columns:1fr;gap:20px}.board-column{order:0}.side-panel{order:1}.board-frame{width:min(100%,88vw,600px)}.move-history{max-height:200px}}@media (width<=420px){.app-shell{padding:14px 10px 30px}.board-frame{width:100%;padding:7px}.side-panel{gap:14px}.ctl-btn{padding:11px 8px;font-size:.68rem}}@media (prefers-reduced-motion:reduce){.piece,.ctl-btn,.sq-overlay--check,.status-alert--check,.modal-overlay,.modal{transition:none!important;animation:none!important}}@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-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}
