@import "https://fonts.googleapis.com/css2?family=Chivo+Mono:wght@400;600&family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Manrope:wght@500;700;800&display=swap";:root{--ink-950:#f8f1e6;--ink-900:#efe4d0;--ink-800:#cabba4;--sand-200:#2c2522;--sand-100:#eae0d0;--mist-300:#4a403a;--mist-500:#95856b;--green-500:#2e5a44;--green-400:#417b5f;--rust-500:#8c4b30;--rust-400:#a85f43;--ochre-400:#cf9f42;--border:#ffffff1f;--shadow:0 16px 40px #110e0c52;--shadow-soft:0 8px 20px #110e0c2e;--sans:"Manrope", sans-serif;--display:"Fraunces", serif;--mono:"Chivo Mono", monospace;color:#fcfaf7;font:500 16px/1.45 var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#3d342e}*{box-sizing:border-box}html{min-height:100%}body{min-height:100vh;margin:0}body,button,input,select{font:inherit}button,input,select{border:0}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #2e5a4459}#root{min-height:100vh}h1,h2,h3,h4,p,dl,dd,dt{margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{min-height:100vh;padding:20px 14px 28px;position:relative;overflow:hidden}.app-shell__grain{opacity:.35;pointer-events:none;background:0 0;position:fixed;inset:0}.topbar{z-index:1;justify-content:space-between;align-items:center;gap:16px;max-width:1120px;margin:0 auto 18px;display:flex;position:relative}.topbar h1{font:700 clamp(2rem, 3vw, 3rem) / .95 var(--display);letter-spacing:-.06em}.topbar__eyebrow{font:600 .72rem/1 var(--mono);text-transform:uppercase;letter-spacing:.18em;color:var(--mist-500)}.topbar__action{min-height:44px;padding:0 14px}main{z-index:1;position:relative}.app-shell--game{flex-direction:column;height:100svh;padding:0;display:flex;overflow:hidden}.app-shell--game main{flex:1;min-height:0;overflow:hidden}.app-stage{max-width:1120px;margin:0 auto}.app-stage--centered{align-items:center;min-height:calc(100vh - 128px);display:grid}.panel-card{width:min(100%,920px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#4a403af0;border:1px solid #ffffff1f;border-radius:24px;margin:0 auto;overflow:hidden}.panel-card__body{padding:18px}.start-actions{gap:10px;display:grid}.button-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.primary-action,.secondary-action,.ghost-action,.icon-action,.options-button{border-radius:14px;min-height:52px}.primary-action:hover,.secondary-action:hover,.ghost-action:hover,.icon-action:hover,.options-button:hover{filter:brightness(.92)}.primary-action{background:var(--green-500);color:#fff;box-shadow:var(--shadow-soft);font-weight:800}.primary-action--warn{background:var(--rust-500);color:#fff;box-shadow:var(--shadow-soft);font-weight:800}.primary-action:disabled,.secondary-action:disabled{cursor:not-allowed;opacity:.45;transform:none}.primary-action--full,.secondary-action--full{width:100%}.secondary-action,.options-button{color:var(--ink-950);background:#ffffff14;border:1px solid #ffffff1f}.secondary-action--compact{min-height:42px;padding:0 12px}.secondary-action--warn,.icon-action--warn{color:var(--rust-400,#a85f43);font-weight:600}.ghost-action{min-height:auto;color:var(--sand-100);background:#ffffff14;padding:.5rem .8rem}.rule-summary div{background:#ffffff0d;border:1px solid #ffffff14;border-radius:16px;padding:14px}.rule-summary dt,.section-heading span,.empty-state,.lineup-card__index{color:var(--mist-500);font:600 .77rem/1.25 var(--mono);text-transform:uppercase;letter-spacing:.08em;display:block}.rule-summary{gap:10px;margin-top:12px;display:grid}.rule-summary dd{color:var(--ink-900);margin-top:6px;font-weight:800}.rule-summary select{width:100%;min-height:40px;color:var(--ink-950);font:800 .95rem/1.2 var(--sans);background:#ffffff14;border:1px solid #ffffff1f;border-radius:10px;margin-top:6px;padding:0 10px}.rule-summary select option{background:var(--sand-200);color:var(--ink-950)}.setup-footer,.section-heading,.scoreboard-panel__header,.lineup-card,.bench-card,.bench-card__actions,.lineup-card__actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.setup-section{margin-top:0}.section-heading{align-items:baseline;margin-bottom:10px}.section-heading h3{font:700 1.45rem/1.04 var(--display);letter-spacing:-.03em}.bench-list,.choice-stack{gap:10px;display:grid}.lineup-list{flex-direction:column;display:flex}.lineup-list>*+*{margin-top:10px}.lineup-card,.bench-card{background:#ffffff0d;border:1px solid #ffffff14;border-radius:18px;justify-content:space-between;align-items:center;gap:10px;padding:14px;transition:box-shadow .2s,background-color .2s;display:flex}.draggable-player{-webkit-user-select:none;user-select:none;touch-action:none;cursor:grab}.draggable-player--dragging{cursor:grabbing}.draggable-player:hover:not(:has(.icon-action:hover)){background:#ffffff1a;box-shadow:0 4px 12px #110e0c26}.draggable-player--dragging{opacity:.8;border-style:dashed;border-color:var(--green-400,#417b5f);background:#fffffff2;box-shadow:0 8px 24px #342c2826!important}.lineup-card h4,.bench-card h4,.score-tile__name{font:800 1.1rem/1.1 var(--sans)}.icon-action{min-width:42px;min-height:42px;color:var(--ink-900);background:#ffffff1f;border:1px solid #ffffff14;justify-content:center;align-items:center;padding:0;display:inline-flex}.player-form{align-items:center;gap:12px;display:flex}.player-form input{flex:1}.player-form button{flex-shrink:0;min-width:90px}.correction-form{gap:12px;display:grid}.player-form input,.correction-form input,.correction-form select{width:100%;min-height:52px;color:var(--ink-950);background:#ffffff14;border:1px solid #ffffff1f;border-radius:14px;padding:0 14px}.correction-form select option{background:var(--sand-200);color:var(--ink-950)}.bench-card p,.empty-state,.turn-banner span{font-size:.92rem}.setup-section+.setup-section{margin-top:24px}.setup-footer{flex-direction:column;align-items:stretch;gap:16px;margin-top:28px;display:flex}.setup-footer .empty-state{text-align:center;color:var(--mist-500)}.game-shell{flex-direction:column;gap:8px;max-width:1120px;height:100%;margin:0 auto;padding:8px 14px;display:flex}.scoreboard-panel,.throw-panel{box-shadow:var(--shadow);background:#4a403aeb;border:1px solid #ffffff1f;border-radius:24px;padding:14px}.scoreboard-panel{flex:none}.throw-panel{flex-direction:column;flex:1;min-height:0;display:flex}.scoreboard-grid,.throw-grid,.choice-row{gap:8px;display:grid}.scoreboard-grid{flex-direction:column;gap:8px;margin-top:16px;display:flex}.scoreboard-row{gap:8px;display:grid}.score-tile{min-height:52px;color:var(--sand-100);background:#221d1bf5;border:1px solid #ffffff1f;border-radius:14px;gap:4px;padding:10px;display:grid}.score-tile--active{background:var(--rust-500)}.score-tile--winner{background:var(--ochre-400);color:var(--ink-950)}.score-tile--out{background:#221d1beb}.score-tile__score{font:700 clamp(2.4rem, 8.2vw, 4rem) / .85 var(--display)}.score-tile__name{text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:.95rem;overflow:hidden}.score-tile__score--out{color:#b8afa6;text-decoration:line-through;text-decoration-thickness:2px}.score-tile__score-row{justify-content:space-between;align-items:flex-end;gap:10px;display:flex}.miss-column{align-content:end;gap:1px;min-width:16px;display:grid}.miss-column__mark{width:100%;font:700 .72rem/.95 var(--mono);text-align:center;color:#0000}.miss-column__mark--active{color:#f8f1e6e6}.miss-column__mark--out{color:#e34b63}.turn-banner{background:var(--rust-500);color:#fff;text-align:left;border:none;border-radius:20px;flex-direction:column;flex:1;justify-content:center;padding:14px 18px;display:flex;position:relative}.turn-banner--arm{background:var(--green-500);cursor:pointer;animation:1.8s ease-in-out infinite bannerPulse;box-shadow:0 4px 14px #2e5a4459}.turn-banner--arm:hover{filter:brightness(1.15)}@keyframes bannerPulse{0%,to{opacity:1}50%{opacity:.92}}.turn-banner p{font:600 .82rem/1 var(--mono);text-transform:uppercase;letter-spacing:.16em;margin:0;position:absolute;top:14px;left:18px}.turn-banner h2{font:700 clamp(1.75rem, 7.5vw, 2.85rem)/1.04 var(--display);letter-spacing:-.03em;word-break:break-word;margin:10px 0 0}.turn-banner span{font-size:.92rem;position:absolute;bottom:14px;left:18px}.throw-grid{flex:1;grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-height:0;display:grid}.throw-grid--has-banner{grid-template-rows:repeat(5,minmax(0,1fr))}.throw-grid--has-banner .turn-banner{grid-column:span 2}.throw-button{height:100%;min-height:0;color:var(--sand-100);font:700 clamp(2.4rem, 8.2vw, 4rem) / .85 var(--display);background:#221d1bf5;border:1px solid #ffffff14;border-radius:18px}.throw-button:hover{filter:brightness(1.15)}.throw-button--armed{background:var(--green-500);color:#fff;border-color:#ffffff40;box-shadow:0 0 10px #2e5a4473}.throw-button--armed:hover{filter:brightness(1.15)}.throw-button--miss{color:var(--ink-900);background:#ffffffb3}.throw-button--zero{width:100%}.confirm-exit-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.confirm-exit-row span{font:600 .82rem/1 var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--mist-500)}.finish-panel{gap:18px;display:grid}.finish-panel__header{gap:6px;display:grid}.finish-panel__header h2{font:700 clamp(1.9rem, 8vw, 2.8rem) / .95 var(--display);letter-spacing:-.05em}.finish-panel__header span{color:var(--mist-500);font-size:.95rem}.finish-results{gap:8px;display:grid}.finish-result-row{background:#ffffffad;border:1px solid #342c2814;border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.finish-result-row__place,.finish-result-row__score{font:800 .98rem/1 var(--mono)}.finish-result-row__name{color:var(--ink-900);font-weight:800}.reopen-results-action{margin-top:12px}.overlay{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#16131173;align-items:center;padding:16px 14px;display:grid;position:fixed;inset:0}.settings-group+.settings-group{margin-top:18px}.settings-group__label,.correction-form span{color:var(--ink-900);margin-bottom:10px;font-weight:800;display:block}.choice-row{grid-template-columns:repeat(3,minmax(0,1fr))}.choice-chip{text-align:center;background:#ffffffb8;border:1px solid #342c281f;border-radius:14px;place-items:center;gap:8px;min-height:56px;padding:10px 12px;font-weight:800;display:grid}.choice-chip--wide{justify-items:start}.choice-chip input{accent-color:var(--blue-500)}.correction-form label{display:grid}.rules-modal-container{gap:16px;max-height:calc(100vh - 80px);display:grid}.rules-modal-header{border-bottom:1px solid #342c2814;padding-bottom:12px}.rules-modal-header h2{font:700 2rem/1 var(--display);color:var(--ink-950);margin:0}.rules-modal-content_scrollable{scrollbar-width:none;-ms-overflow-style:none;max-height:calc(100vh - 240px);padding-right:0;overflow-y:auto}.rules-modal-content_scrollable::-webkit-scrollbar{width:0;height:0;display:none}.rules-modal-grid-two-column{flex-direction:column;gap:16px;display:flex}.rules-modal-column-left,.rules-modal-column-right{gap:14px;display:grid}.rules-sub-section{background:#ffffff0d;border:1px solid #ffffff14;border-radius:16px;padding:14px}.rules-sub-title{color:var(--ink-900);margin:0 0 8px;font-size:1.1rem;font-weight:800}.rules-list{gap:8px;margin:0;padding-left:20px;display:grid}.rules-list li{color:var(--ink-800);font-size:.95rem;line-height:1.4}.formation-diagram-wrapper{background:#ffffff0d;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;padding:16px;display:flex;position:relative}.diagram-caption{font:600 .72rem var(--mono);color:var(--mist-500);letter-spacing:.08em;margin-bottom:8px}.formation-diagram-inline{background:#ffffff0d;border:1px solid #ffffff14;border-radius:12px;justify-content:center;margin:10px 0 6px;padding:8px;display:flex}.pin-formation-svg{max-width:100%}.pin-circle{stroke-width:2px}@media (width>=760px){.rules-modal-grid-two-column{flex-direction:row}.rules-modal-column-left,.rules-modal-column-right{flex:1;min-width:0}.formation-diagram-wrapper{height:100%}.app-shell{padding:28px 24px 40px}.panel-card__body{padding:24px}.player-form{align-items:center;gap:12px;display:flex}.setup-footer{flex-direction:row-reverse;justify-content:space-between;align-items:center;gap:20px}.setup-footer .empty-state{text-align:right}.game-shell{grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr);align-items:start;height:auto;padding:0;display:grid}.throw-panel{min-height:520px}}
