@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{color-scheme:light;--ink:#182d2a;--muted:#60706c;--green:#244e44;--paper:#f5f6f2;--line:#dce2dc;--gold:#dfb877;--accent:#b96750;font-family:'DM Sans',system-ui,sans-serif;font-size:17px;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:3px solid #df972d;outline-offset:4px}button{transition:background .16s,color .16s,transform .16s}button:active:not(:disabled){transform:translateY(1px)}.shell{max-width:1440px;margin:auto;padding:30px 42px 24px}header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:26px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px}.brand-icon{width:42px;height:42px;border-radius:11px;background:var(--ink);display:grid;place-items:center;color:var(--gold);font-family:Georgia;font-size:27px}.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}h1{font-family:'Libre Caslon Display',Georgia,serif;font-size:2rem;letter-spacing:-.025em;line-height:1;margin:4px 0 0;font-weight:400}.mode-tabs{display:flex;background:#e6eae4;border-radius:9px;padding:5px;gap:3px}.mode-tabs button{border:0;background:transparent;padding:10px 19px;border-radius:6px;font-size:.9rem;color:var(--muted)}.mode-tabs button.active{background:var(--ink);color:white;box-shadow:0 2px 5px #122d2920}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 316px;gap:34px;padding-top:24px}.board-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.person{display:flex;gap:10px;align-items:center}.disc{width:25px;height:25px;border-radius:50%;display:inline-block;background:#f4e9d5;border:2px solid #c2b198;box-shadow:inset 0 0 0 3px #e5d9bf}.disc.dark{background:#203233;border:2px solid #101f22;box-shadow:inset 0 0 0 3px #3d5050}.person strong{font-size:1rem;font-weight:600}.person small{font-size:.78rem;color:var(--muted);display:block;margin-top:2px}.pipcount{font-size:.85rem;color:var(--muted)}.pipcount b{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink);margin-right:4px}.board-wrap{filter:drop-shadow(0 12px 14px #28302a17)}.board{width:100%;height:auto;display:block;touch-action:manipulation}.point-target{cursor:pointer}.point-target.disabled{cursor:default}.point-target:focus{outline:none}.point-target:focus-visible .hitarea{stroke:#fff;stroke-width:3}.below-board{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:18px}.turn-status{display:flex;align-items:center;gap:12px;padding:21px 0 14px;min-height:78px}.turn-status h2{font-size:1.05rem;margin:0 0 4px;font-weight:600}.turn-status p{margin:0;color:var(--muted);font-size:.85rem}.controls{display:flex;gap:9px;flex-wrap:wrap}.btn{border:1px solid #cbd4cb;background:transparent;border-radius:8px;min-height:46px;padding:11px 17px;font-size:.88rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--ink)}.btn:hover:not(:disabled){background:#e7ece5}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.primary:hover:not(:disabled){background:#163c33}.btn.light{background:white}.btn.gold{background:var(--gold);border-color:var(--gold);color:#26372c}.btn.text{border-color:transparent;font-weight:500;color:var(--muted)}.btn.full{width:100%}.coach{align-self:start;min-width:0;padding-top:2px}.coach-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.coach-title{display:flex;align-items:center;gap:10px}.coach h2{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400;font-size:1.85rem;margin:0}.coach-symbol{color:var(--green);width:29px;height:29px}.pill{font-size:.72rem;border:1px solid #bdcec0;color:#426951;padding:5px 8px;border-radius:20px;white-space:nowrap}.coach-card{border:1px solid #d7dfd5;border-radius:12px;background:#fff;padding:23px;min-height:242px}.coach-card.review{border-color:#c6a362;background:#fffcf4}.coach-card h3{font-size:1.17rem;line-height:1.3;letter-spacing:-.02em;margin:13px 0}.coach-card p{font-size:.9rem;line-height:1.65;margin:10px 0;color:#5e6e65}.coach-card .eyebrow{font-size:.7rem}.coach-card .large-mark{font-family:'Libre Caslon Display',Georgia,serif;font-size:3.5rem;line-height:1;color:#8b9b7c}.coach-card .btn{margin-top:10px}.move-choice{background:#edf2eb;border-radius:7px;padding:13px 15px;margin:17px 0}.move-choice small{display:block;color:#657461;font-size:.75rem;margin-bottom:5px}.move-choice strong{font-size:1.08rem;word-spacing:4px}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-variant-numeric:tabular-nums}.comparison div{border-top:1px solid #e0dbc9;padding-top:12px}.comparison span{display:block;font-size:.73rem;color:var(--muted);margin-bottom:4px}.comparison b{font-size:1.1rem;font-weight:500}.coach-note{font-size:.78rem!important;line-height:1.5!important;color:#77816e!important}.settings{padding:22px 0;border-bottom:1px solid var(--line)}.settings label{font-size:.83rem;font-weight:600;display:block;margin-bottom:10px}.settings select{width:100%;border:1px solid #d2dbd1;border-radius:7px;background:#fff;padding:11px 10px;color:#374c43;font-size:.83rem}.settings p{font-size:.78rem;color:var(--muted);line-height:1.55;margin:10px 0 0}.last-play{padding:22px 0}.last-play p{font-size:.9rem;color:var(--ink);line-height:1.7;margin:9px 0 0}.last-play small{font-size:.8rem;color:var(--muted)}.footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-top:26px;gap:20px;font-size:.74rem;color:var(--muted)}a{color:inherit;text-underline-offset:3px}.footer button{font:inherit;border:0;background:none;padding:0;text-decoration:underline;color:inherit;cursor:pointer}.helpbox{border:0;border-radius:14px;background:#fafbf7;color:var(--ink);padding:30px;max-width:570px;width:calc(100% - 32px);box-shadow:0 25px 90px #0005}.helpbox::backdrop{background:#0a1a18a6}.helpbox h2{font-family:'Libre Caslon Display',Georgia,serif;font-size:2.2rem;font-weight:400;margin:0 0 20px}.helpbox p,.helpbox li{font-size:.94rem;line-height:1.6}.helpbox li{margin-bottom:12px}.helpbox .btn{margin-top:12px}.engine-state{font-size:.73rem;color:var(--muted)}.mobile-hint{display:none}.error{color:#963d30!important}.dice-pip{fill:#293b32}.dice-label{font-family:'DM Sans',sans-serif;fill:#e6d9bd;font-size:13px;letter-spacing:1px}.annotation{font-size:15px;font-family:'DM Sans',sans-serif;fill:#faecd0}.live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1500px){.shell{padding-top:42px}.workspace{padding-top:30px;gap:42px}}
@media(max-width:1050px){.shell{padding:22px}.workspace{grid-template-columns:minmax(0,1fr) 275px;gap:22px}.coach-card{padding:18px}.btn{padding:10px 13px}.mode-tabs button{padding:9px 13px}h1{font-size:1.8rem}}
@media(max-width:800px){.shell{padding:20px}.workspace{grid-template-columns:1fr;gap:28px;max-width:740px;margin:auto}.coach{display:grid;grid-template-columns:1.2fr 1fr;gap:0 23px}.coach-head{grid-column:1/-1}.coach-card{grid-column:1;grid-row:2/4;min-height:0}.settings{grid-column:2;padding-top:4px}.last-play{grid-column:2}.board-wrap{margin:0 -5px}.footer{margin-top:24px}.board-heading{margin-bottom:9px}.turn-status{padding-top:16px}header{padding-bottom:20px}}
@media(max-width:530px){.shell{padding:15px 12px}.brand-icon{display:none}header{align-items:flex-start;gap:9px}.eyebrow{font-size:.65rem}h1{font-size:1.5rem}.mode-tabs{padding:3px}.mode-tabs button{font-size:.76rem;padding:8px 10px}.workspace{padding-top:18px}.coach{display:block}.coach-card{min-height:0}.board-heading .person strong{font-size:.9rem}.person small{font-size:.72rem}.pipcount{font-size:.75rem}.below-board{margin-top:10px}.controls{gap:7px}.controls .btn{flex:1;font-size:.82rem;padding:10px 9px}.coach-head{margin-top:0}.footer{align-items:flex-start;line-height:1.6}.footer>span:first-child{max-width:58%}.last-play{padding-bottom:0}.settings{padding:20px 0}.turn-status h2{font-size:.97rem}.turn-status p{font-size:.8rem}.board-wrap{margin:0 -7px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.touch-moves{display:none}
@media(max-width:530px){header{display:block}.brand{margin-bottom:15px}h1{font-size:1.8rem;line-height:1.1}.mode-tabs{width:100%}.mode-tabs button{flex:1;min-height:42px;font-size:.9rem}.controls{display:grid;grid-template-columns:1fr 1fr}.controls .btn{min-height:48px;font-size:.92rem}.touch-moves{display:block;padding:17px 0 0}.touch-moves>span{display:block;font-size:.9rem;font-weight:600;margin-bottom:9px}.touch-moves>div{display:flex;gap:8px;flex-wrap:wrap}.touch-moves .btn{min-width:49px;min-height:48px;font-size:1.05rem}.point-target>text{font-size:24px}.dice-label{font-size:17px;letter-spacing:0}.person small{font-size:.76rem}.coach-card p{font-size:.96rem}.coach-card .btn{min-height:48px;font-size:.95rem}}
.header-actions{display:flex;align-items:center;gap:12px}.settings-button{border:0;font-weight:500}.match-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:0 0 15px;margin-bottom:19px;font-size:.83rem}.match-strip strong{font-size:.9rem;font-weight:600}.match-strip strong span{padding:0 10px;color:#8c9a8e}.crawford{color:#8b5929;font-weight:600}.board-wrap{perspective:1100px;transition:transform .4s}.board{filter:drop-shadow(0 5px 1px #382819);border-radius:17px}.cube-indicator{display:flex;align-items:center;gap:9px;font-size:.75rem;color:var(--muted)}.cube-indicator b{display:grid;place-items:center;border:1px solid #bea579;border-radius:7px;background:#f5e5c5;color:#493c25;width:38px;height:38px;font-size:1.05rem;box-shadow:0 2px 2px #2f241d20}.cube-indicator span{max-width:70px}.below-board>.pipcount{margin-left:auto}.save-state{font-size:.73rem;color:var(--muted);margin-top:14px}.controls.locked{opacity:.65}.dice-history{padding-top:16px;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}.dice-history summary{cursor:pointer;padding:7px 0}.dice-history p{line-height:1.9}.setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.setting-grid label{font-size:.86rem;font-weight:600}.setting-grid select{display:block;width:100%;margin-top:9px;border:1px solid var(--line);padding:12px 8px;border-radius:7px;color:var(--ink);background:white;font-size:.87rem;min-height:46px}.check{display:flex;align-items:center;gap:10px;font-size:.91rem;margin-top:18px}.check input{width:21px;height:21px;accent-color:var(--green)}.dialog-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dialog-title h2{margin:0}.dialog-title .btn{margin:0}.helpbox hr{border:0;border-top:1px solid var(--line);margin:26px 0}.helpbox{max-height:90dvh;overflow:auto}.import-label{cursor:pointer;margin-top:12px}.preview-label{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);text-align:center;border-radius:7px;background:#fff9dd;color:#35483b;padding:9px 13px;font-size:.8rem;box-shadow:0 2px 12px #0003;min-width:260px}.cube-equities{display:grid;gap:7px;font-size:.83rem;padding:14px;background:#f0f3eb;border-radius:7px}.cube-equities span{display:flex;justify-content:space-between}.cube-equities b{font-weight:600;font-variant-numeric:tabular-nums}.simulation-result{font-variant-numeric:tabular-nums}.coach-card .btn:disabled{pointer-events:none}.board>g:has(.dice-pip){transform-box:fill-box;transform-origin:center}.rolling .board>g:has(.dice-pip){animation:dice-tumble .76s cubic-bezier(.15,.6,.45,1) both}.rolling .board>g:has(.dice-pip):nth-last-of-type(2){animation-name:dice-tumble-two}@keyframes dice-tumble{0%{transform:translate(-80px,-62px) rotate(-290deg) scale(.8)}35%{transform:translate(-18px,9px) rotate(-120deg) scale(1.1)}65%{transform:translate(9px,-8px) rotate(20deg)}82%{transform:translate(-3px,2px) rotate(-5deg)}100%{transform:none}}@keyframes dice-tumble-two{0%{transform:translate(-110px,44px) rotate(340deg) scale(.8)}35%{transform:translate(-30px,-15px) rotate(135deg) scale(1.1)}65%{transform:translate(10px,7px) rotate(-24deg)}82%{transform:translate(-3px,-2px) rotate(7deg)}100%{transform:none}}
@media(min-width:801px){.board-wrap.angled .board{transform:perspective(1400px) rotateX(12deg);transform-origin:center bottom}.workspace{grid-template-columns:minmax(0,1fr) 320px}.shell{max-width:1400px}.board-wrap{max-width:min(100%,calc((100dvh - 355px)*1.29));margin-inline:auto}.board-heading,.below-board{max-width:min(100%,calc((100dvh - 355px)*1.29));margin-inline:auto}.board-wrap{min-width:420px}.board-heading,.below-board{min-width:420px}}
@media(max-width:1050px) and (min-width:801px){.workspace{grid-template-columns:minmax(0,1fr) 280px}.header-actions{gap:5px}.settings-button{font-size:.8rem;padding-inline:8px}}
@media(max-width:800px){.header-actions{flex-wrap:wrap;justify-content:flex-end}.coach{display:block}.coach-card{min-height:0}.last-play{padding:20px 0}.match-strip{font-size:.8rem}.board-wrap{margin:0 -5px}.below-board{flex-wrap:wrap}.board-heading{max-width:none}}
@media(max-width:530px){.header-actions{gap:6px;flex-wrap:nowrap}.header-actions .mode-tabs{width:auto;flex:1}.header-actions .mode-tabs button{font-size:.86rem;padding-inline:12px}.settings-button{font-size:.79rem;padding:8px;min-height:44px;background:#e9ede6;border-radius:7px;max-width:80px;line-height:1.3}.match-strip{flex-wrap:wrap;gap:7px;padding-bottom:12px;margin-bottom:14px}.match-strip strong{font-size:.8rem}.match-strip strong span{padding:0 3px}.cube-indicator{gap:6px;font-size:.68rem}.cube-indicator span{max-width:54px}.cube-indicator b{width:31px;height:31px;font-size:.95rem}.below-board{gap:9px}.below-board .person small{font-size:.7rem}.below-board .person strong{font-size:.88rem}.below-board .disc{width:21px;height:21px}.below-board .pipcount{font-size:.73rem}.person{gap:7px}.helpbox{padding:22px}.setting-grid{gap:15px 10px}.setting-grid select{font-size:.8rem}.save-state{font-size:.7rem}.coach-card p{font-size:.95rem}.point-target>text{font-size:25px}.preview-label{font-size:.72rem;bottom:16px;min-width:250px}.touch-moves button{touch-action:manipulation}}

.startup-notice{padding:22px;margin:0 0 25px;background:#edf1e8;border:1px solid #c6cfbd;border-radius:12px}.startup-notice h2{margin:0 0 10px;font-size:1.3rem}.startup-notice p{line-height:1.6}.startup-notice form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.startup-notice label{width:100%;font-weight:600}.startup-notice input{min-width:0;flex:1;padding:14px;font:inherit;border:1px solid #9daa98;border-radius:7px}.startup-notice .btn{min-height:48px}
.account-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);background:#edf1e8;padding:15px 18px;border-radius:12px;margin-bottom:24px}.account-bar strong{display:block;font-size:.95rem}.account-bar span{display:block;margin-top:5px;font-size:.83rem;line-height:1.5;color:var(--muted)}.account-actions{display:flex;gap:9px;flex-shrink:0}.account-actions .btn{font-size:.85rem;min-height:44px;white-space:nowrap}.account-dialog{width:min(460px,calc(100vw - 32px));box-sizing:border-box}.account-form{display:grid;gap:17px}.account-form label{display:grid;gap:8px;font-size:.95rem;font-weight:600}.account-form input:not([type=checkbox]){width:100%;box-sizing:border-box;min-height:48px;padding:12px;border:1px solid #9dab9d;border-radius:7px;font:inherit;background:white;color:var(--ink)}.account-form .check{display:flex;font-weight:400;line-height:1.5;margin:0}.account-form .coach-note{margin:0}.account-message:empty{display:none}.account-message{padding:12px;background:#edf1e8;border-radius:7px;line-height:1.5}.account-links{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:14px}.account-dialog .btn{min-height:46px}.account-dialog .dialog-title{align-items:flex-start}.account-dialog h2{font-size:1.6rem}@media(max-width:650px){.account-bar{align-items:flex-start;flex-direction:column;padding:14px}.account-actions{width:100%}.account-actions .btn{flex:1}.account-bar span{font-size:.8rem}.account-dialog{padding:22px}.account-dialog h2{font-size:1.4rem}}
