:root{color-scheme:light;--ink:#172235;--muted:#627087;--surface:#ffffff;--surface-soft:#f4f7fb;--surface-warm:#fffaf2;--line:#dbe3ee;--line-strong:#bfcbd9;--navy:#101b2d;--navy-soft:#1d2d46;--blue:#2467d4;--blue-dark:#154b9e;--blue-pale:#dceaff;--red:#d8464f;--red-dark:#9f2732;--red-pale:#ffe1e3;--gold:#d58d12;--green:#157a55;--shadow:0 20px 55px rgba(20,34,54,0.12);--shadow-soft:0 8px 24px rgba(20,34,54,0.09);--radius-xl:28px;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;}*{box-sizing:border-box;}html{scroll-behavior:smooth;}body{margin:0;min-width:320px;color:var(--ink);background:radial-gradient(circle at 15% 0%,rgba(36,103,212,0.12),transparent 32rem),radial-gradient(circle at 95% 15%,rgba(216,70,79,0.09),transparent 30rem),#eef3f9;}button,input,select{font:inherit;}button,select,input[type="range"],input[type="radio"],input[type="checkbox"]{accent-color:var(--blue);}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid rgba(36,103,212,0.35);outline-offset:3px;}a{color:var(--blue-dark);}.skip-link{position:fixed;z-index:1000;top:12px;left:12px;transform:translateY(-160%);padding:10px 14px;color:white;background:var(--navy);border-radius:8px;}.skip-link:focus{transform:translateY(0);}.site-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:1460px;margin:0 auto;padding:44px clamp(18px,4vw,56px) 26px;}.eyebrow{margin:0 0 7px;color:var(--blue-dark);font-size:0.78rem;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;}.site-header h1{margin:0;font-size:clamp(2.6rem,7vw,5.3rem);line-height:0.92;letter-spacing:-0.065em;}.header-copy{max-width:760px;margin:18px 0 0;color:var(--muted);font-size:clamp(1rem,2vw,1.2rem);line-height:1.6;}.header-link{flex:0 0 auto;padding:11px 16px;color:white;background:var(--navy);border-radius:999px;text-decoration:none;font-weight:750;box-shadow:var(--shadow-soft);}main{max-width:1460px;margin:0 auto;padding:0 clamp(18px,4vw,56px) 72px;}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,390px);gap:24px;align-items:start;}.game-card,.control-card,.rules-section,.formalization-section{background:rgba(255,255,255,0.96);border:1px solid rgba(191,203,217,0.72);box-shadow:var(--shadow);}.game-card{overflow:hidden;border-radius:var(--radius-xl);}.control-card{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto;border-radius:var(--radius-xl);scrollbar-width:thin;}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:18px 20px;background:var(--navy);}.button,.icon-button{border:1px solid var(--line-strong);color:var(--ink);background:white;cursor:pointer;transition:transform 120ms ease,box-shadow 120ms ease,border-color 120ms ease,background 120ms ease;}.button:hover:not(:disabled),.icon-button:hover:not(:disabled){transform:translateY(-1px);border-color:#8fa2b8;box-shadow:0 5px 14px rgba(16,27,45,0.14);}.button:active:not(:disabled),.icon-button:active:not(:disabled){transform:translateY(0);}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:0.48;}.button{min-height:42px;padding:9px 16px;border-radius:11px;font-weight:750;}.button-primary{color:white;background:var(--blue);border-color:var(--blue);}.icon-button{width:34px;height:34px;padding:0;border-radius:9px;font-size:1.25rem;line-height:1;}.checker-stepper{display:flex;align-items:center;gap:8px;min-height:42px;padding:4px 7px 4px 12px;color:white;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.17);border-radius:12px;font-weight:700;}.checker-stepper output{min-width:1.5em;text-align:center;font-size:1.06rem;}.score-strip{display:grid;grid-template-columns:minmax(100px,0.7fr) minmax(100px,0.7fr) minmax(220px,2fr);border-bottom:1px solid var(--line);background:var(--surface-soft);}.score-strip>div{min-width:0;padding:14px 18px;border-right:1px solid var(--line);}.score-strip>div:last-child{border-right:0;}.score-label{display:block;margin-bottom:2px;color:var(--muted);font-size:0.72rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;}.score-strip strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.play-area{display:grid;grid-template-columns:106px minmax(340px,760px) 106px;justify-content:center;align-items:center;gap:clamp(12px,2vw,24px);padding:clamp(20px,3.3vw,40px);}.bin-panel{display:flex;flex-direction:column;align-items:center;align-self:stretch;justify-content:center;gap:12px;min-width:0;padding:18px 10px;border-radius:var(--radius-lg);border:1px solid var(--line);}.blue-bin-panel{background:linear-gradient(180deg,#f4f8ff,#e9f1ff);}.red-bin-panel{background:linear-gradient(180deg,#fff7f7,#ffecee);}.bin-heading{display:flex;flex-direction:column;align-items:center;gap:7px;}.bin-heading h2{margin:0;text-align:center;font-size:0.82rem;}.mini-piece{width:18px;height:18px;border-radius:50%;box-shadow:inset 0 0 0 2px rgba(255,255,255,0.48),0 2px 5px rgba(18,30,48,0.2);}.blue-piece{background:var(--blue);}.red-piece{background:var(--red);}.bin-piece{position:relative;width:66px;height:66px;padding:0;border:0;border-radius:50%;cursor:grab;box-shadow:inset 0 0 0 5px rgba(255,255,255,0.35),0 10px 18px rgba(21,33,52,0.2);transition:transform 120ms ease,opacity 120ms ease,filter 120ms ease;}.bin-piece span{position:absolute;inset:17%;border:2px solid rgba(255,255,255,0.5);border-radius:50%;}.bin-piece.blue{background:radial-gradient(circle at 33% 28%,#7eacff,var(--blue) 45%,var(--blue-dark));}.bin-piece.red{background:radial-gradient(circle at 33% 28%,#ff9aa0,var(--red) 45%,var(--red-dark));}.bin-piece:hover:not(:disabled){transform:translateY(-2px) scale(1.03);}.bin-piece:active:not(:disabled){cursor:grabbing;transform:scale(0.97);}.bin-piece:disabled{cursor:not-allowed;opacity:0.28;filter:grayscale(0.4);}.bin-count{min-width:44px;padding:5px 9px;text-align:center;color:white;background:var(--navy);border-radius:999px;font-weight:850;}.board-column{width:100%;min-width:0;}.coordinate-row{display:grid;grid-template-columns:24px repeat(8,1fr);gap:0;padding-right:1px;color:var(--muted);font-size:0.7rem;font-weight:800;text-align:center;}.coordinate-row span{padding-bottom:5px;}.board-with-coordinates{display:grid;grid-template-columns:24px minmax(0,1fr);}.coordinate-column{display:grid;grid-template-rows:repeat(8,1fr);align-items:center;color:var(--muted);font-size:0.7rem;font-weight:800;text-align:center;}.board{position:relative;display:grid;grid-template-columns:repeat(8,1fr);width:100%;aspect-ratio:1;overflow:hidden;background:#dce5ef;border:3px solid var(--navy);border-radius:16px;box-shadow:0 12px 28px rgba(17,29,47,0.18);}.board-cell{position:relative;display:grid;place-items:center;min-width:0;padding:5%;border:0;border-right:1px solid rgba(16,27,45,0.28);border-bottom:1px solid rgba(16,27,45,0.28);background:rgba(255,255,255,0.78);cursor:pointer;isolation:isolate;}.board-cell:nth-child(8n){border-right:0;}.board-cell:nth-last-child(-n + 8){border-bottom:0;}.board-cell:nth-child(16n + 1),.board-cell:nth-child(16n + 3),.board-cell:nth-child(16n + 5),.board-cell:nth-child(16n + 7),.board-cell:nth-child(16n + 10),.board-cell:nth-child(16n + 12),.board-cell:nth-child(16n + 14),.board-cell:nth-child(16n + 16){background:rgba(232,238,246,0.96);}.board-cell::before{content:"";position:absolute;inset:10%;z-index:-1;border-radius:12px;opacity:0;transform:scale(0.7);transition:opacity 130ms ease,transform 130ms ease;}.board-cell.legal-target::before{opacity:1;transform:scale(1);background:rgba(21,122,85,0.2);box-shadow:inset 0 0 0 2px rgba(21,122,85,0.55);}.board-cell.movable-source::before{opacity:1;transform:scale(1);background:rgba(213,141,18,0.16);box-shadow:inset 0 0 0 2px rgba(213,141,18,0.48);}.board-cell.selected::before{opacity:1;transform:scale(1);background:rgba(213,141,18,0.25);box-shadow:inset 0 0 0 3px var(--gold);}.board-cell.last-target{box-shadow:inset 0 0 0 4px rgba(36,103,212,0.58);}.board-cell.push-source{animation:pulse-source 520ms ease;}.board-cell.push-target{animation:pulse-target 620ms ease;}@keyframes pulse-source{0%,100%{filter:none;}50%{filter:brightness(0.8);}}@keyframes pulse-target{0%{box-shadow:inset 0 0 0 0 rgba(21,122,85,0);}50%{box-shadow:inset 0 0 0 5px rgba(21,122,85,0.55);}100%{box-shadow:inset 0 0 0 0 rgba(21,122,85,0);}}.checker{position:relative;display:grid;place-items:center;width:82%;aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 0 clamp(2px,0.5vw,5px) rgba(255,255,255,0.36),0 8px 13px rgba(15,27,44,0.26);transition:transform 140ms ease;user-select:none;}.board-cell:hover .checker{transform:scale(1.035);}.checker.blue{background:radial-gradient(circle at 32% 26%,#86b4ff,var(--blue) 47%,var(--blue-dark) 100%);}.checker.red{background:radial-gradient(circle at 32% 26%,#ff9ba1,var(--red) 47%,var(--red-dark) 100%);}.turn-label{display:grid;place-items:center;width:52%;aspect-ratio:1;color:white;background:rgba(11,22,38,0.4);border:1px solid rgba(255,255,255,0.5);border-radius:50%;font-size:clamp(0.55rem,1.2vw,0.9rem);font-weight:900;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,0.3);}.interaction-hint{min-height:1.5em;margin:12px 0 0 24px;color:var(--muted);font-size:0.86rem;line-height:1.5;}.move-history{padding:0 24px 24px;}.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}.section-heading-row h2{margin:0;font-size:1rem;}.search-stats{color:var(--muted);font-size:0.78rem;}.history-list{display:flex;flex-wrap:wrap;gap:8px;min-height:40px;margin:10px 0 0;padding:12px;list-style-position:inside;background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--muted);font-size:0.82rem;}.history-list li{padding:5px 8px;background:white;border:1px solid var(--line);border-radius:8px;}.history-empty{list-style:none;background:transparent !important;border:0 !important;}.control-section{padding:20px;border-bottom:1px solid var(--line);}.control-section:last-child{border-bottom:0;}.control-section h2,.control-section legend{margin:0 0 12px;font-size:1rem;font-weight:850;}.control-section legend{padding:0;}fieldset.control-section{margin:0;border:0;border-bottom:1px solid var(--line);}.control-note{margin:10px 0 0;color:var(--muted);font-size:0.79rem;line-height:1.5;}.warning-note{padding:10px 11px;color:#70470a;background:#fff6df;border:1px solid #efd7a3;border-radius:10px;}.button-row{display:flex;flex-wrap:wrap;gap:8px;}.preset-button{flex:1 1 120px;}.choice-card{display:flex;align-items:flex-start;gap:10px;margin-top:8px;padding:12px;cursor:pointer;border:1px solid var(--line);border-radius:12px;}.choice-card:has(input:checked){background:var(--blue-pale);border-color:rgba(36,103,212,0.45);}.choice-card input{margin-top:4px;}.choice-card span{display:grid;gap:2px;}.choice-card small{color:var(--muted);line-height:1.35;}.nested-options{display:grid;gap:12px;margin-top:14px;padding:14px;background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;}.nested-options label{display:grid;gap:6px;color:var(--muted);font-size:0.82rem;font-weight:750;}select{width:100%;min-height:40px;padding:8px 10px;color:var(--ink);background:white;border:1px solid var(--line-strong);border-radius:9px;}input[type="range"]{width:100%;}.compact-options{display:grid;gap:8px;}.switch-row{display:flex !important;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;}.switch-row input[type="checkbox"]{width:42px;height:22px;appearance:none;position:relative;flex:0 0 auto;margin:0;background:#b9c4d1;border-radius:999px;transition:background 120ms ease;}.switch-row input[type="checkbox"]::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;background:white;border-radius:50%;box-shadow:0 1px 4px rgba(16,27,45,0.28);transition:transform 120ms ease;}.switch-row input[type="checkbox"]:checked{background:var(--blue);}.switch-row input[type="checkbox"]:checked::after{transform:translateX(20px);}.badge{padding:4px 8px;color:var(--blue-dark);background:var(--blue-pale);border-radius:999px;font-size:0.72rem;font-weight:850;}details{padding:10px 0;border-bottom:1px solid var(--line);}details:last-child{border-bottom:0;}summary{cursor:pointer;font-size:0.86rem;font-weight:800;}.radio-stack,.switch-stack{display:grid;gap:8px;margin-top:10px;padding-left:4px;}.radio-stack label{display:flex;align-items:center;gap:8px;color:var(--muted);cursor:pointer;font-size:0.82rem;}.proof-card{background:var(--surface-warm);}.proof-heading{display:flex;align-items:center;gap:9px;}.proof-heading h2{margin:0;}.proof-dot{width:11px;height:11px;flex:0 0 auto;border-radius:50%;}.proof-dot.milestone{background:var(--gold);box-shadow:0 0 0 5px rgba(213,141,18,0.14);}.proof-card p{margin:10px 0;color:var(--muted);font-size:0.82rem;line-height:1.45;}.proof-card a{font-size:0.82rem;font-weight:800;}.rules-section,.formalization-section{margin-top:28px;padding:clamp(24px,4vw,48px);border-radius:var(--radius-xl);}.rules-section>h2,.formalization-section>h2{max-width:850px;margin:0 0 24px;font-size:clamp(1.8rem,4vw,3.1rem);letter-spacing:-0.045em;}.rules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}.rules-grid article{padding:18px;background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius-md);}.rules-grid h3,.proof-steps h3{margin:0 0 7px;font-size:1rem;}.rules-grid p,.proof-steps p{margin:0;color:var(--muted);font-size:0.88rem;line-height:1.58;}.proof-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}.proof-steps article{display:grid;grid-template-columns:42px 1fr;gap:13px;padding:18px;background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius-md);}.proof-steps article>span{display:grid;place-items:center;width:38px;height:38px;color:white;background:var(--navy);border-radius:12px;font-weight:900;}footer{max-width:1460px;margin:0 auto;padding:0 clamp(18px,4vw,56px) 42px;color:var(--muted);font-size:0.82rem;}[hidden]{display:none !important;}@media (max-width:1140px){.game-layout{grid-template-columns:1fr;}.control-card{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;overflow:visible;}.control-section,fieldset.control-section{border-right:1px solid var(--line);}.proof-card{grid-column:1 / -1;}}@media (max-width:820px){.site-header{align-items:flex-start;flex-direction:column;}.play-area{grid-template-columns:1fr 1fr;}.board-column{grid-column:1 / -1;grid-row:1;}.bin-panel{min-height:130px;flex-direction:row;justify-content:space-between;}.bin-heading{flex-direction:row;}.bin-piece{width:52px;height:52px;}.rules-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}@media (max-width:640px){.site-header{padding-top:28px;}main{padding-inline:10px;}.game-card,.control-card,.rules-section,.formalization-section{border-radius:20px;}.toolbar{padding:14px;}.toolbar .button{flex:1 1 auto;}.checker-stepper{order:3;width:100%;justify-content:center;}.score-strip{grid-template-columns:1fr 1fr;}.status-cell{grid-column:1 / -1;border-top:1px solid var(--line);}.play-area{gap:10px;padding:16px 10px 24px;}.board{border-width:2px;border-radius:10px;}.coordinate-row{grid-template-columns:20px repeat(8,1fr);}.board-with-coordinates{grid-template-columns:20px 1fr;}.interaction-hint{margin-left:20px;}.control-card{grid-template-columns:1fr;}.control-section,fieldset.control-section{border-right:0;}.rules-grid,.proof-steps{grid-template-columns:1fr;}.rules-section,.formalization-section{padding:24px 18px;}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto !important;animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}}