:root{color:#1d2524;background:#f3f7f1;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:linear-gradient(135deg,rgba(31,118,86,.12),transparent 36%),linear-gradient(315deg,rgba(210,87,70,.13),transparent 34%),#f3f7f1}button,input{font:inherit}a{color:inherit;text-decoration:none}.app-shell{width:min(1180px,calc(100vw - 32px));min-height:100vh;margin:0 auto;padding:22px 0 32px}.games-shell{width:min(1680px,calc(100vw - 32px))}.app-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:20px}.brand{display:inline-flex;align-items:center;gap:12px;min-width:0}.brand-mark{width:42px;height:42px;flex:0 0 auto;overflow:hidden;border:1px solid rgba(29,37,36,.22);border-radius:8px;background:#123c27;box-shadow:0 8px 18px #1a1e211f}.brand-mark img{display:block;width:100%;height:100%;object-fit:cover}.brand strong,.brand small{display:block}.brand strong{font-size:1.04rem}.brand small{color:#60706b;font-size:.8rem}.app-nav{grid-column:3;justify-self:end;display:inline-flex;align-items:center;gap:6px;min-width:0;padding:4px;border:1px solid rgba(29,37,36,.12);border-radius:8px;background:#ffffffad}.app-header>.nickname-button,.app-header>.nickname-form{grid-column:2;justify-self:end}.app-nav-link{display:inline-flex;align-items:center;min-height:34px;padding:7px 10px;border-radius:6px;color:#4f615d;font-size:.9rem;font-weight:800;white-space:nowrap}.app-nav-link.active{background:#1f7656;color:#fff}.app-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;margin:0 0 18px}.app-intro h1{margin:0 0 6px;font-size:clamp(1.45rem,3vw,2.15rem);line-height:1.05;letter-spacing:0}.app-intro p{max-width:720px;margin:0;color:#4f615d;font-size:clamp(.95rem,2vw,1.05rem);line-height:1.45}.browser-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end;margin-bottom:18px}.browser-intro h1{margin:0 0 6px;font-size:clamp(1.55rem,3vw,2.3rem);line-height:1.05;letter-spacing:0}.browser-intro p{max-width:680px;margin:0;color:#4f615d;line-height:1.45}.browser-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.browser-stats span{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 10px;border:1px solid rgba(29,37,36,.14);border-radius:8px;background:#ffffffb8;font-weight:800;white-space:nowrap}.intro-flow{display:inline-flex;align-items:center;gap:8px;color:#60706b}.intro-flow span{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 10px;border:1px solid rgba(29,37,36,.14);border-radius:8px;background:#ffffffb8;color:#1d2524;font-weight:800;white-space:nowrap}.play-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(280px,360px);gap:22px;align-items:start}.board-column{display:grid;gap:14px}.board-shell{width:min(100%,calc(100vh - 240px),760px);aspect-ratio:1}.status-banner{display:inline-flex;align-items:center;gap:10px;width:fit-content;max-width:100%;min-height:42px;padding:10px 14px;border:1px solid rgba(29,37,36,.12);border-radius:8px;background:#ffffffe6;box-shadow:0 12px 32px #1a1e2114;font-weight:700}.status-banner.check{border-color:#bf752859;color:#8a4e0f}.status-banner.checkmate,.status-banner.stalemate,.status-banner.draw{border-color:#9f2a2a47;color:#8c2e2e}.side-panel{display:grid;gap:14px}.browser-layout{display:grid;grid-template-columns:minmax(380px,520px) minmax(360px,720px) minmax(300px,420px);gap:20px;align-items:start}.branch-list-panel,.branch-board-panel,.branch-detail-panel{display:grid;gap:14px}.branch-list-panel{display:flex;flex-direction:column;align-self:start;max-height:min(920px,calc(100vh - 180px));min-height:420px;overflow:hidden;padding:12px;border:1px solid rgba(29,37,36,.12);border-radius:8px;background:#fffc}.branch-detail-panel{width:100%;min-width:0}.branch-board-panel{min-width:0}.branch-list-summary{margin:0;color:#60706b;font-size:.82rem;font-weight:800;text-align:right;white-space:nowrap}.branch-list-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:0 2px 10px;border-bottom:1px solid rgba(29,37,36,.08)}.branch-list-heading .card-kicker{margin:0}.branch-tree-toolbar{display:flex;gap:8px;flex-wrap:wrap}.tree-control-button{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:6px 9px;border:1px solid rgba(29,37,36,.14);border-radius:6px;background:#ffffffd6;color:#4f615d;cursor:pointer;font-size:.78rem;font-weight:850}.branch-list-scroll{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:4px 2px 2px;scrollbar-gutter:stable both-edges}.branch-list{position:relative;min-width:360px}.branch-row{display:grid;position:absolute;top:0;left:0;grid-template-columns:auto auto minmax(0,1fr) auto;gap:6px;align-items:center;width:100%;min-height:50px;padding:5px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:#1d2524;contain-intrinsic-size:50px;content-visibility:auto;cursor:pointer;text-align:left}.branch-row.active{border-color:#1f765680;background:#eef8f2;box-shadow:inset 3px 0 #1f7656}.branch-row:hover{background:#ffffffb8}.branch-row strong{min-width:0;overflow-wrap:anywhere}.branch-tree-gutter{display:inline-grid;grid-auto-flow:column;grid-auto-columns:16px;align-self:stretch;align-items:stretch;min-height:40px}.tree-depth-overflow{display:grid;place-items:center;align-self:center;width:24px;height:18px;border:1px solid rgba(29,37,36,.12);border-radius:6px;background:#f3f7f1;color:#60706b;font-size:.66rem;font-weight:850}.tree-line,.tree-junction{position:relative;display:block;min-height:100%}.tree-line.continues:before,.tree-junction:before,.tree-junction:after{position:absolute;content:"";background:#60706b61}.tree-line.continues:before{top:-8px;bottom:-8px;left:50%;width:1px}.tree-junction:before{top:-8px;bottom:-8px;left:50%;width:1px}.tree-junction.last:before{bottom:50%}.tree-junction:after{top:50%;left:50%;width:10px;height:1px}.tree-junction.has-children{background:radial-gradient(circle at center,#1f7656 0 3px,transparent 3.5px)}.tree-disclosure{display:grid;place-items:center;width:24px;height:24px;border:1px solid rgba(29,37,36,.12);border-radius:6px;background:#fff;color:#60706b;cursor:pointer}.tree-disclosure.leaf{border-color:transparent;background:transparent;cursor:default}.tree-disclosure:disabled{opacity:1}.branch-row-body{display:grid;gap:2px;min-width:0}.branch-row-title{display:flex;gap:8px;align-items:center;min-width:0}.branch-row-title strong{font-size:.98rem;line-height:1.15}.branch-row-meta{color:#60706b;font-size:.78rem;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.branch-state{display:inline-flex;align-items:center;min-height:20px;padding:2px 6px;border-radius:6px;background:#e5efe8;color:#1f7656;font-size:.68rem;font-weight:850;text-transform:uppercase;white-space:nowrap}.branch-state.check{background:#f7ead6;color:#8a4e0f}.branch-state.checkmate,.branch-state.stalemate,.branch-state.draw{background:#f5e2e0;color:#8c2e2e}.branch-count{display:inline-flex;justify-content:flex-end;align-items:center;gap:4px;min-width:58px;color:#60706b;font-size:.76rem;font-weight:850;white-space:nowrap}.branch-count.has-count{color:#1d2524}.branch-message{padding:10px 4px}.branch-preview .board-shell{width:min(100%,calc(100vh - 220px),720px)}.branch-load-more{margin-top:10px}.branch-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.branch-detail-wide{grid-column:1 / -1}.browser-empty{width:min(640px,100%)}.filter-row{display:flex;gap:8px;flex-wrap:wrap}.filter-button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 10px;border:1px solid rgba(29,37,36,.14);border-radius:8px;background:#fff;color:#4f615d;cursor:pointer;font-weight:800}.filter-button.active{border-color:#1f765680;background:#1f7656;color:#fff}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 7px;border-radius:6px;background:#e5efe8;color:#1f7656;font-size:.74rem;font-weight:850;text-transform:uppercase}.status-pill.check{background:#f7ead6;color:#8a4e0f}.status-pill.checkmate,.status-pill.stalemate,.status-pill.draw{background:#f5e2e0;color:#8c2e2e}.side-panel-card{padding:16px;border:1px solid rgba(29,37,36,.12);border-radius:8px;background:#fffffff0;box-shadow:0 14px 30px #1a1e2114}.side-panel-card.highlight{border-color:#1f76566b}.side-panel-card.quiet{background:#ffffffb8}.card-kicker,.eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 8px;color:#60706b;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.side-panel-card h2,.modal-panel h2{margin:0 0 14px;font-size:1.08rem;line-height:1.25}.muted,.privacy-note,.input-preview{color:#60706b;line-height:1.45}.muted{margin:0}.move-san{margin:0 0 4px;font-size:clamp(2rem,7vw,3.4rem);font-weight:850;line-height:1}.move-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 16px}.move-details div{min-width:0;padding:10px;border-radius:8px;background:#f3f7f1}.move-details dt{color:#60706b;font-size:.72rem;font-weight:800;text-transform:uppercase}.move-details dd{margin:2px 0 0;overflow-wrap:anywhere;font-weight:750}.button,.nickname-button,.icon-button,.promotion-option{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:0;border-radius:8px;cursor:pointer;font-weight:750}.button{padding:10px 14px}.button.primary{background:#1f7656;color:#fff}.button.secondary{border:1px solid rgba(29,37,36,.16);background:#fff;color:#1d2524}.button:hover,.nickname-button:hover,.icon-button:hover,.promotion-option:hover,.filter-button:hover,.tree-control-button:hover,.tree-disclosure:hover,.branch-row:hover{filter:brightness(.97)}.button:focus-visible,.nickname-button:focus-visible,.icon-button:focus-visible,.promotion-option:focus-visible,.filter-button:focus-visible,.tree-control-button:focus-visible,.tree-disclosure:focus-visible,.branch-row:focus-visible,input:focus-visible{outline:3px solid rgba(58,126,202,.45);outline-offset:2px}.button:disabled{cursor:not-allowed;opacity:.68}.button-row{display:flex;gap:10px}.button-row.wrap{flex-wrap:wrap}.share-refresh-button{margin-top:12px}.share-continue-button{margin-top:10px}.full-width{width:100%}.nickname-button{max-width:260px;padding:9px 12px;border:1px solid rgba(29,37,36,.15);background:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nickname-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.nickname-form input{width:min(190px,42vw)}.icon-button{width:38px;min-height:38px;border:1px solid rgba(29,37,36,.15);background:#fff}.inline-error,.form-error{color:#9f2a2a;font-weight:700}.inline-error{width:100%;text-align:right;font-size:.82rem}input{width:100%;min-height:42px;padding:10px 12px;border:1px solid rgba(29,37,36,.18);border-radius:8px;background:#fff;color:#1d2524}.field-label,.share-url-field span,.fallback-copy span{display:block;margin-bottom:6px;color:#60706b;font-size:.8rem;font-weight:800}.share-url-field,.fallback-copy{display:grid;gap:4px;margin-bottom:12px}.copy-block{display:contents}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:20px;background:#1d25247a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-panel{width:min(420px,100%);padding:22px;border:1px solid rgba(29,37,36,.12);border-radius:8px;background:#fff;box-shadow:0 22px 70px #0d131247}.modal-icon{display:grid;width:48px;height:48px;place-items:center;margin-bottom:12px;border-radius:8px;background:#e3f2eb;color:#1f7656}.promotion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.promotion-option{min-height:72px;border:1px solid rgba(29,37,36,.15);background:#f3f7f1;color:#1d2524}.bad-link-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:linear-gradient(135deg,rgba(31,118,86,.12),transparent 36%),linear-gradient(315deg,rgba(210,87,70,.13),transparent 34%),#f3f7f1}.bad-link-panel{width:min(520px,100%);padding:28px;border:1px solid rgba(29,37,36,.12);border-radius:8px;background:#fff;box-shadow:0 18px 44px #1a1e2121}.bad-link-panel h1{margin:0 0 10px;font-size:clamp(1.8rem,5vw,2.7rem);line-height:1.05}.bad-link-panel p{margin:0 0 18px;color:#60706b;line-height:1.5}@media(max-width:1180px){.browser-layout{grid-template-columns:minmax(340px,440px) minmax(0,1fr)}.branch-detail-panel{grid-column:2}}@media(max-width:860px){.app-shell{width:min(100vw - 20px,720px);padding-top:14px}.app-header{align-items:flex-start;grid-template-columns:minmax(0,1fr) auto}.app-nav{grid-column:1 / -1;justify-self:stretch;width:100%;overflow-x:auto}.app-header>.nickname-button,.app-header>.nickname-form{grid-column:2}.app-intro,.browser-intro{grid-template-columns:1fr;gap:12px}.browser-stats{justify-content:flex-start}.intro-flow{flex-wrap:wrap}.play-layout,.browser-layout{grid-template-columns:1fr}.branch-detail-panel{grid-column:auto}.side-panel{padding-bottom:18px}}@media(max-width:560px){.app-header{grid-template-columns:1fr}.app-nav,.app-header>.nickname-button,.app-header>.nickname-form{grid-column:1;justify-self:stretch}.app-intro h1{font-size:1.55rem}.intro-flow{display:grid;grid-template-columns:1fr;width:100%}.intro-flow>svg{display:none}.intro-flow span{justify-content:flex-start;width:100%}.browser-stats{display:grid;grid-template-columns:1fr}.browser-stats span{justify-content:flex-start}.branch-list-heading{display:grid;gap:6px}.branch-list-summary{text-align:left;white-space:normal}.branch-row{grid-template-columns:auto auto minmax(0,1fr)}.branch-list{min-width:0}.branch-tree-gutter{grid-auto-columns:10px}.branch-count{grid-column:3;justify-self:start}.nickname-button,.nickname-form,.nickname-form input{width:100%;max-width:none}.inline-error{text-align:left}.button-row{flex-direction:column}.move-details,.promotion-grid{grid-template-columns:1fr}}
