:root,[data-theme=dark]{color-scheme:dark;--bg: #121418;--panel: #1a1d24;--line: #2a3140;--text: #e8eaef;--muted: #9aa3b2;--accent: #4c8bf5;--danger: #e05858;--ok: #5dd39e;--arena-amber: #c9a227;--arena-heat: #e85d4c;font-family:Segoe UI,system-ui,sans-serif;line-height:1.45}[data-theme=light]{color-scheme:light;--bg: #eceae8;--panel: #f7f5f3;--line: #ddd9d4;--text: #2c2a28;--muted: #7a7670;--accent: #5c7eb3;--danger: #b84a4a;--ok: #2e7d5a;--arena-amber: #a16207;--arena-heat: #c2410c;font-family:Segoe UI,system-ui,sans-serif;line-height:1.45}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}a{color:var(--accent)}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}button{font:inherit;cursor:pointer;border:none;border-radius:8px;padding:.55rem 1rem;background:var(--line);color:var(--text)}button:hover{filter:brightness(1.08)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:#fff}@media(prefers-reduced-motion:reduce){button:hover{filter:none!important}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem}.panel h1{margin:0 0 .35rem;font-size:1.35rem;font-weight:650}.panel .muted{margin:0 0 1rem;color:var(--muted);font-size:.98rem}@media(max-width:720px){.panel{padding:.85rem .75rem;border-radius:10px}.panel h1{font-size:1.22rem}}.muted{color:var(--muted)}.small{font-size:.88rem}:root,[data-theme=dark]{--board: #c19a6b;--board-line: #3d2f22;--black-stone: #0e0f12;--white-stone: #f4f2ee;--profile-card-bg: rgba(22, 26, 34, .45);--profile-err-bg: rgba(224, 88, 88, .1);--profile-err-border: rgba(224, 88, 88, .45);--profile-err-text: #f0a8a8;--profile-warn-bg: rgba(234, 179, 8, .1);--profile-warn-border: rgba(234, 179, 8, .4);--profile-warn-text: #fde68a}[data-theme=light]{--board: #c4a574;--board-line: #5c4838;--black-stone: #2e2c2a;--white-stone: #fdfcfa;--profile-card-bg: rgba(255, 253, 250, .82);--profile-err-bg: rgba(184, 74, 74, .07);--profile-err-border: rgba(184, 74, 74, .28);--profile-err-text: #8a3d3d;--profile-warn-bg: rgba(168, 132, 72, .09);--profile-warn-border: rgba(168, 132, 72, .28);--profile-warn-text: #6b5a38}.file-choose{display:inline-flex;flex-direction:column;align-items:stretch;max-width:100%}.file-choose--full{width:100%}.file-choose--full .file-choose-button{width:100%;justify-content:center;text-align:center}.file-choose-input,.profile-avatar-file{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.file-choose-button{font:inherit;cursor:pointer;border:none;border-radius:8px;padding:.55rem 1rem;background:var(--line);color:var(--text)}.file-choose-button:hover:not(:disabled){filter:brightness(1.08)}.file-choose-button:disabled{opacity:.45;cursor:not-allowed}.file-choose-button.primary{background:var(--accent);color:#fff}.file-choose-button.primary:hover:not(:disabled){filter:brightness(1.08)}.file-choose-button.profile-avatar-browse{width:100%;max-width:6.5rem;font-size:.78rem;padding:.38rem .5rem}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=url],input[type=tel],input:not([type]),textarea,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem;line-height:1.35;transition:border-color .12s ease,box-shadow .12s ease}textarea{resize:vertical;min-height:4.5rem}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}input[type=text]:hover:not(:disabled),input[type=email]:hover:not(:disabled),input[type=password]:hover:not(:disabled),input[type=number]:hover:not(:disabled),input[type=search]:hover:not(:disabled),input[type=url]:hover:not(:disabled),input[type=tel]:hover:not(:disabled),input:not([type]):hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--muted)}input[type=text]:focus-visible,input[type=email]:focus-visible,input[type=password]:focus-visible,input[type=number]:focus-visible,input[type=search]:focus-visible,input[type=url]:focus-visible,input[type=tel]:focus-visible,input:not([type]):focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}input:disabled,textarea:disabled,select:disabled{opacity:.55;cursor:not-allowed;background:color-mix(in srgb,var(--bg) 80%,var(--line))}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:2rem;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='%239aa3b2' d='M2.2 4.4h7.6L6 9z'/></svg>");background-repeat:no-repeat;background-position:right .65rem center;background-size:12px 12px}[data-theme=light] select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='%237a7670' d='M2.2 4.4h7.6L6 9z'/></svg>")}select option{background:var(--panel);color:var(--text)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=date],input[type=time],input[type=datetime-local]{color-scheme:inherit}[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator,[data-theme=dark] input[type=time]::-webkit-calendar-picker-indicator,[data-theme=dark] input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.85)}.app-shell{max-width:1100px;margin:0 auto;padding:2rem 1.25rem 1.5rem;display:grid;gap:1.25rem}@media(min-width:840px){.app-shell.playing{grid-template-columns:1fr 220px;align-items:start}}.pricing-page{max-width:32rem;margin:1rem auto 2rem}.pricing-lead{font-size:1.05rem;margin:.25rem 0 .75rem}.pricing-lead--subscribed{color:var(--color-success-text, #8fd4a6);font-weight:600}.pricing-already-body{margin:.5rem 0 0;line-height:1.45;color:var(--muted-foreground, rgba(255, 255, 255, .78))}.pricing-list{margin:.5rem 0 1rem;padding-left:1.25rem}.pricing-list li{margin:.25rem 0}.pricing-price{margin:1rem 0;font-size:1.1rem}.pricing-actions{margin-top:1rem}.pricing-err{color:var(--profile-err-text, #f0a8a8);font-size:.9rem;margin:.5rem 0 0}.pricing-sub-status{margin:.75rem 0 0;font-size:.92rem}.pricing-manage{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-border, rgba(255, 255, 255, .12))}.pricing-manage-intro{margin:0 0 .5rem;line-height:1.45;color:var(--muted-foreground, rgba(255, 255, 255, .78));font-size:.95rem}.pricing-cancel-note{margin:0 0 .75rem;line-height:1.45;color:var(--color-warning-text, #e8c96a);font-size:.95rem}.pricing-actions--manage{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.profile-subscription-wrap{margin:0 0 .5rem;padding-bottom:.25rem;border-bottom:1px solid var(--color-border, rgba(255, 255, 255, .1))}.subscription-manage--proTab,.subscription-manage--profile{margin-top:.5rem}.subscription-manage__title-protab{font-size:1.1rem;font-weight:650;margin:.75rem 0 .5rem;color:var(--foreground, #fff)}.subscription-manage__err{margin:.5rem 0 0}.subscription-manage__intro,.subscription-manage__hint,.subscription-manage__note{margin:.35rem 0 0;line-height:1.45}.subscription-manage__actions--row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.65rem}.billing-success{max-width:28rem;margin:1rem auto 2rem}.board-page-title{margin:0 0 .35rem;font-size:1.35rem;font-weight:650}.play-hub-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1rem;align-items:start}@media(max-width:900px){.play-hub-layout{grid-template-columns:1fr}}.play-hub-col--left,.play-hub-col--right{min-width:0}.play-hub-active-sessions .play-casual-list{margin-top:0}.play-hub-session-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin-bottom:.65rem}.play-hub-filter-field{display:flex;flex-direction:column;gap:.2rem;min-width:0}.play-hub-filter-field label{font-size:.8rem;font-weight:500;color:var(--muted-fg, #8a8a8a)}.play-hub-filter-field select{min-width:8.5rem;max-width:100%;padding:.4rem .5rem;font-size:.9rem;color:var(--text-fg, #e8e8e8);background:var(--input-bg, rgba(0, 0, 0, .35));border:1px solid var(--border-subtle, rgba(255, 255, 255, .12));border-radius:6px}.play-hub-filter-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.play-hub-active-sessions .play-casual-list>li.muted{border:1px dashed var(--border-subtle, rgba(255, 255, 255, .12));border-radius:8px;padding:.65rem .75rem}.play-hub-subtitle{font-size:.95rem;font-weight:600;margin:.5rem 0 .35rem;color:var(--muted-fg, #8a8a8a)}.play-casual-list{list-style:none;padding:0;margin:.75rem 0 0;display:flex;flex-direction:column;gap:.65rem}.play-casual-list-item{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .75rem;border:1px solid var(--border-subtle, rgba(255, 255, 255, .12));border-radius:8px;background:var(--panel-elevated, rgba(0, 0, 0, .2))}.play-casual-list-item--mine{border-color:var(--accent-muted, rgba(100, 180, 255, .45))}.play-match-root{max-width:1320px;margin-left:auto;margin-right:auto;padding:.85rem 1.25rem 2rem;position:relative}.play-match-layout{display:grid;gap:1rem;align-items:start}@media(min-width:900px){.play-match-layout{grid-template-columns:minmax(0,1fr) 300px}}.play-match-main{display:flex;flex-direction:column;min-width:0}.play-match-root--fit-board{--play-viewport-h: calc(100dvh - 4.75rem - env(safe-area-inset-bottom, 0px)) ;display:flex;flex-direction:column;height:var(--play-viewport-h);max-height:var(--play-viewport-h);overflow:hidden;padding-top:.35rem;padding-bottom:.5rem;box-sizing:border-box}@media(max-width:899px){.app-root--play-immersive{--play-top-inset: max(env(safe-area-inset-top, 0px), 2.75rem)}.play-match-root.play-match-root--fit-board{--play-viewport-h: calc(100svh - 3.5rem - env(safe-area-inset-bottom, 0px)) ;padding:.25rem .35rem .4rem;max-width:100%}.app-root--play-immersive .play-match-root.play-match-root--fit-board{--play-viewport-h: 100svh;padding-top:calc(.25rem + var(--play-top-inset));padding-bottom:calc(.4rem + env(safe-area-inset-bottom,0px));padding-left:.35rem;padding-right:.35rem}.app-root--play-immersive .play-match-root--fit-board .play-sidebar-toggle{top:calc(.45rem + var(--play-top-inset))}.app-root--play-immersive:has(.play-match-root--drawer-open) .play-immersive-nav-btn{display:none!important}}.play-match-root--fit-board .play-match-layout{flex:1 1 0;min-height:0;max-height:100%;overflow:hidden;align-items:stretch;grid-template-rows:minmax(0,1fr) auto}@media(min-width:900px){.play-match-root--fit-board .play-match-layout{grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr);height:100%}}@media(max-width:899px){.play-match-root--fit-board .play-match-layout{height:100%;min-height:0;gap:.4rem}.play-match-root--fit-board .play-match-main.panel{padding:.35rem .4rem;min-height:0}.play-match-root--fit-board .play-board-wrap .board-wrap{max-width:100%;width:100%;height:100%;min-height:0}.play-match-root--fit-board .board-wrap svg{width:100%;max-width:100%;height:auto;max-height:100%;display:block}}.play-match-root--fit-board .play-match-main{min-width:0;min-height:0;max-height:100%;overflow:hidden;display:flex;flex-direction:column}.play-match-root--fit-board .play-board-stack{flex:1 1 0;min-height:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.45rem}.play-match-root--fit-board .play-board-stack>.player-strip{flex:0 0 auto;max-width:min(92vw,760px);align-self:center;position:relative;z-index:2}.play-match-root--fit-board .play-board-wrap{flex:1 1 0;min-height:0;min-width:0;width:100%;max-width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.play-match-root--fit-board .play-board-wrap .board-wrap{width:100%;max-width:min(92vw,760px);max-height:100%;min-height:0;height:100%;margin:0 auto;display:flex;align-items:center;justify-content:center}.play-match-root--fit-board .board-wrap svg{display:block;width:auto;height:auto;max-width:100%;max-height:100%}@media(max-width:1024px){.play-match-root--fit-board .play-board-stack{gap:.3rem}.play-match-root--fit-board .player-strip{padding:.32rem .5rem;gap:.45rem;border-radius:8px}.play-match-root--fit-board .player-strip-flag{font-size:1.05rem}.play-match-root--fit-board .player-strip-avatar{width:30px;height:30px;font-size:.95rem}.play-match-root--fit-board .player-strip-avatar--initial,.play-match-root--fit-board .player-strip-name{font-size:.82rem}.play-match-root--fit-board .player-strip-meta{font-size:.72rem;margin-top:.05rem;gap:.25rem}.play-match-root--fit-board .player-strip-clock{font-size:.88rem}.play-match-root--fit-board .player-strip-turn{font-size:.7rem;min-width:3.85rem}}@media(max-width:640px){.play-match-root--fit-board .play-board-stack{gap:.14rem}.play-match-root--fit-board .player-strip{padding:.2rem .38rem;gap:.3rem;border-radius:7px}.play-match-root--fit-board .player-strip-flag{font-size:.95rem}.play-match-root--fit-board .player-strip-avatar{width:24px;height:24px;font-size:.82rem}.play-match-root--fit-board .player-strip-avatar--initial{font-size:.7rem}.play-match-root--fit-board .player-strip-name{font-size:.74rem}.play-match-root--fit-board .player-strip-meta{font-size:.58rem}.play-match-root--fit-board .player-strip-clock{font-size:.68rem}.play-match-root--fit-board .player-strip-turn{font-size:.58rem;min-width:3.35rem}}.play-match-root--fit-board .play-match-error{flex:0 0 auto}.play-match-root--fit-board .play-match-sidebar{min-height:0;overflow-y:auto;overflow-x:hidden;max-height:min(42vh,22rem);position:relative}.play-sidebar-toggle,.play-drawer-scrim,.play-sidebar-drawer-close{display:none}@media(max-width:899px){.play-match-root--fit-board .play-match-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.play-match-root--fit-board .play-match-main{grid-column:1;grid-row:1;min-height:0;align-self:stretch}.play-match-root--fit-board .play-match-sidebar{grid-column:1;grid-row:1;align-self:start;justify-self:end;position:fixed;top:0;right:0;bottom:0;width:min(86vw,340px);max-width:340px;height:100dvh;max-height:100dvh;transform:translate(100%);transition:transform .22s ease;z-index:80;box-shadow:-12px 0 36px #0000008c;border-radius:0;padding:3rem .9rem 1rem;gap:.5rem;flex-shrink:0;overflow-y:auto}.play-match-root--fit-board.play-match-root--drawer-open .play-match-sidebar{transform:translate(0)}.play-match-root--fit-board .play-drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:70;opacity:0;pointer-events:none;transition:opacity .18s ease;display:block}.play-match-root--fit-board.play-match-root--drawer-open .play-drawer-scrim{opacity:1;pointer-events:auto}.play-sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;position:fixed;right:.5rem;top:calc(3.2rem + env(safe-area-inset-top,0px));bottom:auto;z-index:60;padding:.45rem .8rem;font-size:.78rem;font-weight:600;letter-spacing:.02em;border-radius:999px;border:1px solid var(--panel-border, rgba(255, 255, 255, .2));background:var(--panel-elevated, rgba(20, 20, 22, .85));color:inherit;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 18px #0000008c;max-width:calc(100vw - 5.5rem)}.play-sidebar-toggle:active{cursor:grabbing}.play-sidebar-toggle:before{content:"☰";font-size:.95rem;line-height:1}.play-sidebar-drawer-close{display:inline-flex;align-items:center;justify-content:center;position:absolute;top:.5rem;right:.6rem;width:32px;height:32px;padding:0;border-radius:50%;border:1px solid var(--panel-border, rgba(255, 255, 255, .18));background:transparent;font-size:1.35rem;line-height:1;color:inherit;cursor:pointer}.play-match-root--fit-board .play-match-main{flex:1 1 auto;min-height:0;max-height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.play-match-root--fit-board .play-move-list{height:auto;min-height:2.75rem;max-height:12rem;flex-shrink:0}.play-match-root--fit-board .play-sidebar-chat{flex:0 1 auto;min-height:0;max-height:16rem}.play-match-root--fit-board .play-chat-card{max-height:16rem;min-height:0}.play-match-root--fit-board .play-chat-log{min-height:0;max-height:8rem;flex:1 1 auto}.play-match-root--fit-board .play-chat-compose{padding:.35rem .45rem}.play-match-root--fit-board .play-sidebar-estimate,.play-match-root--fit-board .play-sidebar-actions{flex-shrink:0}}.play-match-root--fit-board .play-sidebar-chat{flex:1 1 0;min-height:0;display:flex;flex-direction:column}@media(min-width:900px){.play-match-root--fit-board .play-match-sidebar.panel{position:relative;top:auto;max-height:none;height:100%;align-self:stretch;box-sizing:border-box;padding:.9rem 1rem}.play-match-root--fit-board .play-match-main.panel{height:100%;align-self:stretch;box-sizing:border-box;padding:.9rem 1rem}.play-match-root--fit-board .play-match-layout{gap:1rem 1.15rem;align-items:stretch}}.play-hub-simple .play-hub-main-actions{display:flex;flex-direction:column;gap:.65rem}@media(min-width:560px){.play-hub-simple .play-hub-main-actions{flex-direction:row;flex-wrap:wrap}}.play-hub-action-btn{flex:1 1 160px;min-height:2.75rem;font-weight:600}.play-hub-modal-overlay{align-items:flex-start}.play-hub-modal-close{position:absolute;top:.45rem;right:.45rem;z-index:1;width:2.25rem;height:2.25rem;padding:0;line-height:1;font-size:1.35rem;border-radius:8px;background:var(--line);color:var(--text)}.play-hub-modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem;flex-wrap:wrap}.play-sidebar-game-summary{margin:0 0 .65rem;font-size:.82rem;line-height:1.35}.play-match-thinking{margin:0 0 .65rem;font-size:.88rem}.play-match-title{margin:0 0 .35rem;font-size:1.35rem;font-weight:650}.play-board-stack{display:flex;flex-direction:column;align-items:center;gap:.55rem}.play-board-wrap{width:100%;display:flex;justify-content:center;align-items:center}.player-strip{display:flex;align-items:center;gap:.6rem;width:100%;max-width:760px;padding:.5rem .75rem;border-radius:10px;border:1px solid var(--line);background:#0003;box-sizing:border-box}.player-strip .player-strip-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-width:0}.player-strip .player-strip-row .player-strip-name{min-width:0;flex:1}.player-strip-active{border-color:#60a5fa8c;box-shadow:0 0 0 1px #60a5fa2e}.player-strip-flag{font-size:1.25rem;line-height:1;flex-shrink:0}.player-strip-avatar{width:40px;height:40px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;background:#ffffff0f;overflow:hidden;flex-shrink:0}.player-strip-avatar-img{width:100%;height:100%;object-fit:cover}.player-strip-avatar--initial{font-size:1rem;font-weight:700}.player-strip-info{flex:1;min-width:0}.player-strip-name{font-weight:650;font-size:.95rem;display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;min-width:0}.player-strip-pro-tag{flex-shrink:0}.player-strip-meta{display:flex;flex-wrap:wrap;gap:.35rem;font-size:.78rem;margin-top:.1rem}.player-strip-elo{color:#93c5fd;font-weight:600}.player-strip-unranked{color:var(--muted);font-weight:600;font-style:normal}.player-strip-budget{font-size:.8rem;font-weight:700;margin-top:.2rem;letter-spacing:.02em}.player-strip-budget--low{color:#f97316}.player-strip:not(.player-strip-active) .player-strip-budget{color:#a5b4fc}.player-strip:not(.player-strip-active) .player-strip-budget--low{color:#fb923c}.player-strip-clock{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:.08rem;font-variant-numeric:tabular-nums;font-weight:650;font-size:1rem;color:var(--text);letter-spacing:.02em;flex-shrink:0;max-width:10rem;text-align:right}.player-strip-clock-primary{line-height:1.1}.player-strip-clock-sub{display:block;font-size:.72rem;font-weight:500;line-height:1.2;max-width:10rem}.player-strip-clock--byo{color:#fbbf24}.player-strip-clock--fischer{color:#7dd3fc;text-shadow:0 0 10px rgba(56,189,248,.2)}.player-strip-clock--mainFischerByo,.player-strip-clock--main{color:#e8edf5}.player-strip-clock--absolute{color:#c4c9d2}.player-strip-active .player-strip-clock--byo,.player-strip-active .player-strip-clock--fischer{color:#fdba74}.player-strip-turn{font-size:.78rem;font-weight:600;color:#86efac;white-space:nowrap;flex-shrink:0;min-width:4.25rem;text-align:right}.player-strip-turn--placeholder{visibility:hidden}.opponent-menu-wrap{position:relative;display:inline-block;max-width:100%}.opponent-menu-name-btn{display:inline;max-width:100%;padding:0;margin:0;border:none;background:none;font:inherit;font-weight:inherit;color:inherit;text-align:left;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}.opponent-menu-name-btn:hover{color:#93c5fd}.opponent-menu-name-btn:focus-visible{outline:2px solid rgba(96,165,250,.75);outline-offset:2px;border-radius:4px}.opponent-menu-dropdown{position:absolute;z-index:40;left:0;top:calc(100% + 4px);min-width:11rem;margin:0;padding:.25rem 0;list-style:none;border-radius:8px;border:1px solid var(--line);background:var(--panel, #1a1d24);box-shadow:0 8px 24px #00000059}.opponent-menu-dropdown--fixed{position:fixed;z-index:10050;left:auto;top:auto;min-width:11rem;max-width:min(20rem,calc(100vw - 12px));box-sizing:border-box;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.opponent-menu-item{display:block;width:100%;padding:.45rem .75rem;border:none;background:none;font:inherit;font-size:.88rem;color:var(--text);text-align:left;cursor:pointer}.opponent-menu-item:hover:not(:disabled){background:#ffffff0f}.opponent-menu-item:disabled{opacity:.45;cursor:not-allowed}.opponent-menu-feedback{display:block;margin-top:.2rem;font-size:.78rem}.opponent-menu-feedback-row{padding:.35rem .75rem .5rem;font-size:.78rem;list-style:none}.opponent-report-overlay,.opponent-profile-overlay{z-index:80}.opponent-report-modal,.opponent-profile-modal{max-width:min(420px,94vw);max-height:min(86dvh,640px,calc(100dvh - 2.5rem));overflow:auto}.opponent-report-title,.public-profile-header{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.public-profile-avatar .player-strip-avatar,.public-profile-avatar .player-strip-avatar-img{width:2.5rem;height:2.5rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;object-fit:cover}.public-profile-name-line{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.public-profile-flag{font-size:1.1rem}.user-profile-name-wrap{display:inline-flex;align-items:baseline;max-width:min(100%,14rem);min-width:0;vertical-align:baseline;overflow:hidden;line-height:inherit}.user-profile-link{background:none;border:none;padding:0;margin:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px;display:inline-flex;align-items:baseline;max-width:min(100%,14rem);min-width:0;text-align:start;vertical-align:baseline;line-height:inherit;overflow:hidden}.user-profile-name__text{min-width:0;flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:inherit}.public-profile-modal .opponent-profile-title,.public-profile-modal .public-profile-name-line,.public-profile-modal .public-profile-name-line strong{white-space:normal;overflow:visible;text-overflow:clip;max-width:none;word-break:break-word;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.public-profile-modal .public-profile-header{min-width:0;align-items:flex-start}.public-profile-modal .public-profile-header>div:not(.public-profile-avatar){min-width:0;flex:1 1 auto}.user-profile-link:hover{filter:brightness(1.1)}.user-profile-link:disabled,.user-profile-link[aria-disabled=true]{color:var(--text);cursor:default;text-decoration:none}.opponent-profile-title{margin:0 0 .5rem;font-size:1.1rem}.opponent-report-lead{margin:0 0 .75rem;font-size:.88rem}.opponent-report-label{display:block;font-size:.85rem;margin-bottom:.75rem}.opponent-report-textarea{display:block;width:100%;margin-top:.35rem;box-sizing:border-box;padding:.45rem .55rem;border-radius:6px;border:1px solid var(--line);background:#00000040;color:var(--text);font:inherit;resize:vertical}.opponent-report-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap;margin-top:.5rem}.opponent-profile-actions{margin-top:.75rem;display:flex;justify-content:flex-end}@media(max-width:640px){.play-board-stack{gap:.22rem}.player-strip{padding:.24rem .42rem;gap:.35rem;border-radius:8px}.player-strip-flag{font-size:1.02rem}.player-strip-avatar{width:26px;height:26px;border-radius:6px;font-size:.88rem}.player-strip-avatar--initial{font-size:.74rem}.player-strip-info{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;column-gap:.35rem;row-gap:0;min-width:0}.player-strip-name{font-size:.78rem;line-height:1.2}.player-strip-meta{font-size:.62rem;margin-top:0;gap:.2rem}.player-strip-turn{font-size:.62rem}.player-strip-clock{font-size:.72rem}.player-strip .player-strip-row{gap:.4rem}.player-strip .player-strip-row .player-strip-name{font-size:.78rem}.player-strip .player-strip-row .player-strip-clock{font-size:.72rem}}@media(max-width:400px){.player-strip{padding:.18rem .32rem;gap:.28rem}.player-strip-avatar{width:22px;height:22px;font-size:.78rem}.player-strip-avatar--initial{font-size:.68rem}.player-strip-name{font-size:.72rem}.player-strip-meta,.player-strip-turn{font-size:.58rem}}.play-match-error{margin-top:.5rem;margin-bottom:0}.play-hidden-move-toast{position:fixed;bottom:max(1rem,calc(.45rem + env(safe-area-inset-bottom,0px)));left:50%;transform:translate(-50%);z-index:10040;max-width:min(22rem,calc(100vw - 1.5rem));margin:0;padding:.55rem .95rem;border-radius:12px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));background:color-mix(in srgb,var(--bg) 92%,var(--danger));color:var(--danger);font-size:.88rem;line-height:1.35;text-align:center;box-shadow:0 6px 24px #0003;pointer-events:none;animation:play-hidden-move-toast-in .18s ease-out}@keyframes play-hidden-move-toast-in{0%{opacity:0;transform:translate(-50%) translateY(6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.play-match-sidebar{display:flex;flex-direction:column;gap:.85rem;max-height:calc(100vh - 100px);position:sticky;top:.75rem}.play-sidebar-section-title{font-size:.82rem;font-weight:600;color:var(--muted);margin:0 0 .35rem}.play-move-list{flex-shrink:0;box-sizing:border-box;height:calc(12rem + 7px);min-height:calc(12rem + 7px);max-height:calc(12rem + 7px);overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:.4rem .5rem;font-size:.8rem;line-height:1.45;font-family:ui-monospace,Cascadia Code,monospace;background:#00000024}.play-move-row{padding:.12rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.play-move-row:last-child{border-bottom:none}.play-move-empty{margin:0;font-size:.82rem}.play-chat-card{flex:1 1 0;min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:#0000001f;overflow:hidden}.play-chat-card-header{flex:0 0 auto;padding:.45rem .65rem;font-size:.82rem;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line);background:#00000014}.play-chat-log{flex:1 1 0;min-height:3.5rem;overflow-y:auto;padding:.45rem .55rem;font-size:.86rem;background:#0000000f}.play-chat-card .play-chat-log{border-radius:0}.play-chat-empty{margin:0;font-size:.82rem}.play-chat-row{display:flex;gap:.45rem;margin-bottom:.35rem;line-height:1.35}.play-chat-side{flex:0 0 1.25rem;font-weight:700;color:var(--muted)}.play-chat-compose{flex:0 0 auto;display:flex;flex-direction:column;gap:.35rem;padding:.55rem .65rem;border-top:1px solid var(--line);background:#0000001a}.play-chat-as{font-size:.78rem}.play-chat-input-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.play-chat-input{flex:1 1 120px;min-width:100px}.play-sidebar-caps{margin:0;font-size:.82rem}.play-sidebar-actions{margin:0}.play-sidebar-new{width:100%;margin-top:.25rem}.game-result-modal{position:relative;max-width:440px;width:calc(100% - 2rem);padding:1.35rem 1.5rem 1.5rem;margin:1rem}.game-result-close{position:absolute;top:.45rem;right:.5rem;width:2.25rem;height:2.25rem;border:none;border-radius:8px;background:transparent;color:var(--muted);font-size:1.65rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.game-result-close:hover{color:var(--text, #e8e8e8);background:#ffffff14}.game-result-title{margin:0 0 .35rem;padding-right:2rem;font-size:1.25rem;font-weight:650}.game-result-headline{margin:0 0 1rem;font-weight:650;font-size:1.02rem}.game-result-modal-score{width:100%;margin-bottom:.65rem}.game-result-note{font-size:.82rem;margin:0 0 1rem}.game-result-actions{display:flex;flex-direction:column;gap:.5rem}.game-result-actions .primary,.game-result-actions button[type=button]{width:100%}.match-hud{margin-bottom:1rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:12px;background:#161a2259}.match-hud-players{display:flex;flex-wrap:wrap;align-items:stretch;gap:.65rem;margin-bottom:.85rem}.match-hud-player{flex:1 1 200px;padding:.55rem .65rem;border-radius:10px;border:1px solid transparent;background:#00000026}.match-hud-player-active{border-color:#60a5fa8c;box-shadow:0 0 0 1px #60a5fa33}.match-hud-player-top{display:flex;align-items:center;gap:.5rem}.match-hud-flag{font-size:1.35rem;line-height:1}.match-hud-avatar{width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;background:#ffffff0f;overflow:hidden}.match-hud-avatar-md{width:48px;height:48px}.match-hud-avatar-img{width:100%;height:100%;object-fit:cover}.match-hud-name{font-weight:650;font-size:.95rem}.match-hud-meta{display:flex;flex-wrap:wrap;gap:.35rem .65rem;font-size:.8rem;margin-top:.15rem}.match-hud-elo{color:#93c5fd;font-weight:600}.match-hud-vs{align-self:center;font-weight:700;color:var(--muted);font-size:.85rem;padding:0 .25rem}.match-hud-chat-head{font-size:.82rem;font-weight:600;margin-bottom:.4rem;color:var(--muted)}.match-hud-chat-log{max-height:140px;overflow-y:auto;border:1px solid var(--line);border-radius:8px;padding:.45rem .55rem;margin-bottom:.55rem;background:#0000001f;font-size:.86rem}.match-hud-chat-empty{margin:0;font-size:.82rem}.match-hud-chat-row{display:flex;gap:.45rem;margin-bottom:.35rem;line-height:1.35}.match-hud-chat-side{flex:0 0 1.25rem;font-weight:700;color:var(--muted)}.match-hud-chat-compose{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.match-hud-chat-as-label{flex:0 0 auto;font-size:.82rem;white-space:nowrap;padding:.25rem 0}.match-hud-chat-input{flex:1 1 140px;min-width:120px;font-size:.86rem;padding:.35rem .5rem}.panel .muted{color:var(--muted);font-size:.9rem;margin:0 0 1rem}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.error{color:var(--danger);font-size:.9rem;min-height:1.25rem}.community-social-error{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.community-social-error .error{margin:0}.thinking{margin:0 0 .65rem;font-size:.92rem;color:var(--muted)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;min-height:100dvh;min-height:-webkit-fill-available;background:#0000008c;display:flex;justify-content:center;align-items:flex-start;padding:max(1rem,env(safe-area-inset-top,0px)) max(1rem,env(safe-area-inset-right,0px)) max(1.5rem,env(safe-area-inset-bottom,0px)) max(1rem,env(safe-area-inset-left,0px));overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:100}.overlay.game-result-overlay{align-items:center;justify-content:center;z-index:2000;padding:1rem;top:0;left:0;right:0;bottom:0;height:100dvh;max-height:100dvh}.remote-game-end-overlay{z-index:3000}.remote-game-end-card{max-width:min(520px,100% - 2rem)}.remote-game-end-title{margin:0 0 .5rem;font-size:1.45rem;font-weight:700;line-height:1.2}.remote-game-end-title--win{color:var(--accent, #4c8bf5)}.remote-game-end-title--loss{color:var(--danger, #e05858)}.remote-game-end-title--draw{color:var(--muted, #9aa3b2)}.remote-game-end-reason{margin:0 0 .4rem;font-size:.95rem;line-height:1.45;color:var(--text, #e8eaef)}.remote-game-end-mode{margin:0 0 .75rem;font-size:.86rem}.remote-game-end-warn{margin:.35rem 0 .75rem;padding:.5rem .6rem;font-size:.86rem;line-height:1.4;border-radius:8px;background:#eab3081f;border:1px solid rgba(234,179,8,.35);color:var(--text, #e8eaef)}[data-theme=light] .remote-game-end-warn{background:#ca8a041a;border-color:#ca8a0459}.remote-game-end-rating{margin:.5rem 0 .75rem}.remote-game-end-rating-table{width:100%;border-collapse:collapse;font-size:.88rem}.remote-game-end-rating-table th,.remote-game-end-rating-table td{padding:.35rem .45rem;border-bottom:1px solid var(--line, rgba(255, 255, 255, .1));text-align:right}.remote-game-end-rating-table th[scope=row]{text-align:left;font-weight:600}.remote-game-end-delta--up{color:#6ee7b7;font-weight:650}[data-theme=light] .remote-game-end-delta--up{color:#047857}.remote-game-end-delta--down{color:#fca5a5;font-weight:650}[data-theme=light] .remote-game-end-delta--down{color:#b91c1c}.remote-game-end-casual{margin:.35rem 0 .5rem;font-size:.9rem}.remote-game-end-sgf{margin:.5rem 0 0}.remote-game-end-sgf-ta{width:100%;margin-top:.35rem;font-size:.75rem;font-family:ui-monospace,Cascadia Code,monospace;line-height:1.3;padding:.4rem .5rem;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);resize:vertical;min-height:4.5rem}.remote-game-end-actions{width:100%;margin-top:1rem}.remote-game-end-rematch-err{margin:.5rem 0 0;font-size:.9rem}.remote-game-end-rematch-incoming{margin:.75rem 0 .25rem;padding:.75rem .9rem}.remote-game-end-rematch-prompt{margin:0 0 .6rem;line-height:1.45}.remote-game-end-rematch-incoming-actions{display:flex;flex-wrap:wrap;gap:.5rem}.remote-game-end-waiting{margin:.5rem 0 .35rem;line-height:1.5;font-size:.95rem}.remote-game-end-cancel-rematch{margin-left:.4rem;font-size:.85rem;padding:.2rem .6rem}.remote-distant-rematch h2{margin:0 0 .5rem;font-size:1.15rem}.remote-distant-rematch-actions{margin-top:.9rem}.resign-confirm-title{margin:0 0 .6rem;font-size:1.2rem;font-weight:650}.resign-confirm-body{margin:0 0 1.1rem;line-height:1.5;font-size:.95rem}.resign-confirm-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:flex-end}.modal{width:min(420px,100%);max-width:100%;max-height:min(calc(100dvh - 2rem),92vh);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;flex-shrink:0;margin-top:max(.5rem,env(safe-area-inset-top,0px));background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.25rem 1.35rem;box-shadow:0 18px 50px #00000073}.modal h2{margin:0 0 1rem;font-size:1.15rem}.modal.play-hub-modal{width:min(96vw,640px);max-height:min(calc(100dvh - 2.5rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)),92dvh)}.field{margin-bottom:1rem}.field label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.45rem}.choice-row{display:flex;flex-wrap:wrap;gap:.45rem}.choice-row button{min-width:4.5rem}.choice-row button.active{outline:2px solid var(--accent)}.select-control{width:100%;max-width:100%;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit}.app-control-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem}.app-control-bar--center{align-items:center}.app-inline-checkbox{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}.app-control-bar--mt{margin-top:.5rem}.app-control-field,.puzzles-filter-field{display:flex;flex-direction:column;gap:.3rem;min-width:min(100%,220px)}.app-control-label,.app-control-field>span:first-of-type,.puzzles-filter-field label{font-size:.82rem;color:var(--muted)}.checkbox-field label{display:flex;align-items:center;gap:.45rem;cursor:pointer;color:var(--text);font-size:.95rem}.clock-panel h2{color:var(--muted);font-weight:600}.clock-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.35rem .45rem;border-radius:8px;margin-bottom:.25rem;border:1px solid transparent}.clock-row.active{border-color:var(--accent);background:#4c8bf51f}.clock-row span{color:var(--muted);font-size:.88rem}.rules-hint{font-size:.82rem;color:var(--muted);margin-top:.35rem}.rules-hint code{font-size:.78em;padding:.1em .35em;border-radius:4px;background:var(--bg);border:1px solid var(--line)}.board-wrap{width:100%;max-width:min(92vw,760px);margin:0 auto}.board-wrap svg{display:block;width:100%;height:auto;border-radius:10px;box-shadow:0 10px 30px #00000059}.board-ghost-stone{filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.board-root{position:relative;width:100%;max-width:min(92vw,760px);margin:0 auto}.board-root .board-wrap{margin:0;max-width:100%}.board-zoom-viewport{position:relative;width:100%;overflow:hidden;border-radius:10px;touch-action:none}.board-zoom-viewport--zoomed{cursor:grab}.board-zoom-viewport>.board-wrap{will-change:transform;transition:transform 80ms linear}.board-magnifier{position:absolute;pointer-events:none;z-index:30;transform:translate(-50%,calc(-100% - 32px));display:flex;flex-direction:column;align-items:center;background:transparent;overflow:visible;width:max-content}.board-magnifier-lens{width:136px;height:136px;border-radius:50%;overflow:hidden;position:relative;background:var(--board, #d9b07c);box-shadow:0 14px 30px #00000080,0 0 0 2px #ffffff2e,inset 0 0 0 1px #0000004d}.board-magnifier svg{width:100%;height:100%;display:block}.board-magnifier-crosshair{position:absolute;left:50%;top:50%;width:2px;height:2px;box-shadow:0 -10px 0 -.5px #3b82f680,0 10px 0 -.5px #3b82f680,-10px 0 0 -.5px #3b82f680,10px 0 0 -.5px #3b82f680;transform:translate(-50%,-50%);pointer-events:none}.board-magnifier-coord{margin-top:7px;padding:5px 12px;border-radius:999px;font-size:.88rem;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:.08em;background:#121316f0;color:#f1f5f9;border:1px solid rgba(255,255,255,.14);box-shadow:0 6px 16px #00000073}.board-touch-confirm{position:absolute;top:6px;left:50%;transform:translate(-50%);z-index:25;display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border-radius:14px;background:#121316e6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 10px 28px #00000073,0 0 0 1px #ffffff14;color:var(--text, #f2f4f7);font-size:.88rem;font-weight:600;max-width:calc(100% - 12px)}.board-touch-confirm-label{padding:0 8px;font-variant-numeric:tabular-nums;letter-spacing:.04em;color:#ffffffd1}.board-touch-confirm button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;font:inherit;font-weight:600;padding:10px 14px;min-height:40px;min-width:72px;border-radius:10px;color:var(--text, #f2f4f7);background:#ffffff1a;cursor:pointer;transition:background .12s ease,transform 80ms ease}.board-touch-confirm button:active{transform:translateY(1px)}.board-touch-confirm button:hover{background:#ffffff29}.board-touch-confirm-confirm{background:linear-gradient(180deg,#3b82f6,#2563eb)!important;color:#fff!important;box-shadow:0 4px 14px #2563eb73}.board-touch-confirm-confirm:hover{background:linear-gradient(180deg,#4f8ff7,#2f6de0)!important}.board-zoom-ctrls{position:relative;z-index:15;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin-top:4px;flex-shrink:0}.board-zoom-ctrls button{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:40px;height:34px;padding:0 10px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#121316c7;color:var(--text, #f2f4f7);font-size:1.05rem;font-weight:700;cursor:pointer;line-height:1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.board-zoom-ctrls button:disabled{opacity:.4;cursor:default}.board-zoom-ctrls .board-zoom-reset{font-size:.95rem}@media(hover:hover)and (pointer:fine){.board-zoom-ctrls{display:none}}.play-match-root--fit-board .board-root{width:100%;max-width:100%;height:100%;min-width:0;min-height:0;max-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.play-match-root--fit-board .board-root .board-zoom-viewport{flex:1 1 0;min-height:0;width:100%;max-width:100%;display:flex;align-items:center;justify-content:center}.home-daily-board-preview .board-root,.home-daily-board-preview .board-zoom-viewport{width:100%;max-width:100%;display:flex;justify-content:center;align-items:center}.home-daily-board-preview .board-zoom-viewport{border-radius:0;touch-action:auto}.puzzle-runner--solved .board-zoom-viewport{touch-action:auto}.board-coord{fill:var(--board-line);font-size:11px;font-weight:650;-webkit-user-select:none;user-select:none;pointer-events:none}.score-table{width:100%;border-collapse:collapse;font-size:.9rem}.score-table td{padding:.35rem 0;border-bottom:1px solid var(--line)}.score-table td:last-child{text-align:right}.play-sidebar-estimate .score-table td{border-bottom:none}.rank-badge{display:inline-block;padding:.05rem .4rem;border-radius:.4rem;font-weight:600;font-size:.85rem;letter-spacing:.02em;border:1px solid transparent}.rank-badge.rank-kyu{background:#2e3a47;color:#cbd5e1;border-color:#475569}.rank-badge.rank-dan-low{background:#1f3b29;color:#bbf7d0;border-color:#4ade80}.rank-badge.rank-dan-high{background:#4a2a05;color:#ffd587;border-color:#f59e0b}.play-leaderboard{margin:0;list-style:decimal}.play-leaderboard li{display:flex;justify-content:space-between;gap:.5rem;padding:.2rem 0;border-bottom:1px dashed var(--line, #2d3748)}.play-leaderboard li:last-child{border-bottom:0}.app-root{min-height:100vh;min-height:100dvh;min-height:-webkit-fill-available}@media(max-width:899px){.app-root--play-immersive .app-header{display:none}.app-root--play-immersive .app-header+*{margin-top:0}}.play-immersive-nav-btn{display:none}@media(max-width:899px){.play-immersive-nav-btn{display:inline-flex;align-items:center;justify-content:center;position:fixed;left:.5rem;top:calc(.45rem + var(--play-top-inset));z-index:61;width:2.5rem;height:2.5rem;padding:0;border-radius:10px;border:1px solid var(--panel-border, rgba(255, 255, 255, .2));background:var(--panel-elevated, rgba(20, 20, 22, .85));color:inherit;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 18px #00000073}.play-immersive-nav-btn:hover{border-color:var(--accent, #4c8bf5);color:var(--accent, #4c8bf5)}}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.75rem 1rem;padding:.65rem 1.25rem;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:20}.app-header-left{display:flex;align-items:center;min-width:0;flex-shrink:0}.app-header-nav-wrap{display:flex;flex-direction:row;align-items:center;gap:.45rem;flex:1;min-width:0}.app-header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.4rem .5rem;margin-left:auto;flex-shrink:0}.app-header-hub-back{display:inline-flex;align-items:center;font:inherit;font-size:.9rem;text-decoration:none;color:var(--muted);padding:.35rem .5rem;border-radius:6px;white-space:nowrap}.app-header-hub-back:hover{color:var(--text);background:#4c8bf51a}[data-theme=light] .app-header-hub-back:hover{background:#5c7eb31f}.app-header-settings-text{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:.4rem .7rem;font:inherit;font-size:.85rem;font-weight:500;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;white-space:nowrap}.app-header-settings-text:hover{color:var(--text);border-color:var(--accent)}.app-header-settings-text[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:#4c8bf51f}[data-theme=light] .app-header-settings-text[aria-pressed=true]{background:#5c7eb324}.app-header+*{margin-top:2.25rem}@media(max-width:640px){.app-header+*{margin-top:1.5rem}}.app-brand{font-weight:650;font-size:1.05rem}button.app-brand-btn{background:none;border:none;padding:.1rem 0;margin:0;font:inherit;color:var(--text);cursor:pointer;text-align:left;display:inline-flex;align-items:baseline;gap:.4rem;max-width:100%}.app-brand-inner{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .5rem;min-width:0}.app-brand-title{font-weight:650;font-size:1.05rem;letter-spacing:.02em;color:var(--text)}.app-brand-sub{font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}button.app-brand-btn:hover .app-brand-title,button.app-brand-btn:hover{color:var(--accent)}.app-tabs{display:flex;gap:.35rem;flex:1;min-width:0}.app-tabs button{padding:.45rem 1rem;border-radius:8px;background:transparent;border:1px solid var(--line);color:var(--muted)}.app-tabs button:hover{color:var(--text)}.app-tabs button.active{color:var(--text);border-color:var(--accent);background:#4c8bf51f}@media(max-width:900px){.app-header--compact{flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:.5rem;padding:.5rem .65rem}.app-header--compact .app-header-left{flex:1;min-width:0}.app-header--compact .app-brand-title{font-size:.98rem}.app-header--compact .app-brand-sub{font-size:.75rem}.app-header--compact .app-header-actions{margin-left:auto}}@media(min-width:901px){.app-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;scrollbar-width:thin}}.app-header-menu-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border-radius:10px;border:1px solid var(--line);background:#4c8bf514;color:var(--text);cursor:pointer}.app-header-menu-btn:hover{background:#4c8bf524;border-color:var(--accent);color:var(--accent)}.app-header-guest-chip{flex-shrink:1;min-width:0;display:inline-flex;align-items:center;gap:.4rem;height:1.85rem;max-width:100%;padding:0 .7rem;border-radius:999px;border:1px solid #d6a700;background:#d6a7001f;color:#d6a700;font-size:.8rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header-guest-chip:before{content:"";display:inline-block;width:.45rem;height:.45rem;border-radius:50%;background:currentColor;flex-shrink:0}.app-header-guest-chip:hover{background:#d6a70033;color:#b88c00;border-color:#b88c00}.app-header-guest-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:540px){.app-header-guest-chip-label-long{display:none}}@media(min-width:541px){.app-header-guest-chip-label-short{display:none}}.profile-guest-banner{margin:0 0 1rem;padding:.75rem .9rem;border-radius:10px;border:1px solid rgba(214,167,0,.55);background:#d6a7001a;color:var(--text);font-size:.92rem;line-height:1.4}.profile-guest-banner strong{color:#d6a700}.profile-guest-locked{margin:1rem 0;padding:1rem;border-radius:10px;border:1px dashed var(--line);background:#4c8bf50a}.profile-guest-locked-title{margin:0 0 .4rem;font-size:1rem;font-weight:600}.profile-guest-locked-body{margin:0;color:var(--muted);font-size:.92rem;line-height:1.4}.profile-guest-help-link{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-decoration:underline;margin-left:.4rem}.app-mobile-nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;min-height:100dvh;min-height:-webkit-fill-available;z-index:29;background:#00000073;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s;pointer-events:none}.app-mobile-nav-backdrop--open{opacity:1;visibility:visible;pointer-events:auto}.app-mobile-nav{position:fixed;top:0;left:0;bottom:0;z-index:30;width:min(18rem,88vw);max-width:100%;background:var(--panel, #1a1f2a);border-right:1px solid var(--line);box-shadow:8px 0 32px #00000073;transform:translate(-100%);transition:transform .22s ease,width .2s ease;display:flex;flex-direction:column}.app-mobile-nav--open{transform:translate(0)}.app-mobile-nav--collapsed{width:4.25rem}.app-mobile-nav-inner{display:flex;flex-direction:column;min-height:0;flex:1;padding:.65rem .5rem}.app-mobile-nav-top{display:flex;align-items:center;justify-content:space-between;gap:.35rem;margin-bottom:.75rem;border-bottom:1px solid var(--line);padding-bottom:.55rem}.app-mobile-nav-brand{font-weight:650;font-size:.88rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.app-mobile-nav--collapsed .app-mobile-nav-brand{display:none}.app-mobile-nav-close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.app-mobile-nav-close:hover{color:var(--text);background:#ffffff0f}.app-mobile-nav--collapsed .app-mobile-nav-close{margin-left:auto;margin-right:auto}.app-mobile-nav-list{display:flex;flex-direction:column;gap:.2rem;flex:1;min-height:0;overflow-y:auto}.app-mobile-nav-item{display:flex;flex-direction:row;align-items:center;gap:.65rem;width:100%;text-align:left;padding:.55rem .6rem;border:none;border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-size:.92rem;font-weight:550;cursor:pointer;position:relative}a.app-mobile-nav-item{text-decoration:none}.app-mobile-nav-item:hover{background:#ffffff0f;color:var(--text)}.app-mobile-nav-item--active{color:var(--accent)}.app-mobile-nav-item-indicator{position:absolute;left:0;top:.35rem;bottom:.35rem;width:3px;border-radius:2px;background:transparent}.app-mobile-nav-item--active .app-mobile-nav-item-indicator{background:var(--accent)}.app-mobile-nav-icon{flex-shrink:0;width:1.35rem;height:1.35rem}.app-mobile-nav-item-label{flex:1;min-width:0}.app-mobile-nav--collapsed .app-mobile-nav-item-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-mobile-nav--collapsed .app-mobile-nav-item{justify-content:center;padding-left:.5rem;padding-right:.5rem}.app-mobile-nav-footer{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.5rem}.app-mobile-nav-settings{display:flex;flex-direction:row;align-items:center;gap:.65rem;width:100%;padding:.5rem .55rem;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-size:.82rem;cursor:pointer}.app-mobile-nav-settings:hover{color:var(--text);border-color:var(--accent)}.app-mobile-nav-settings-label{flex:1;text-align:left;min-width:0}.app-mobile-nav--collapsed .app-mobile-nav-settings{justify-content:center;padding:.5rem}.app-mobile-nav--collapsed .app-mobile-nav-settings-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-mobile-nav-toggle{display:flex;flex-direction:row;align-items:center;gap:.65rem;width:100%;padding:.5rem .55rem;border:1px solid var(--line);border-radius:10px;background:#4c8bf50f;color:var(--muted);font:inherit;font-size:.82rem;cursor:pointer}.app-mobile-nav-toggle:hover{color:var(--text);border-color:var(--accent)}.app-mobile-nav--collapsed .app-mobile-nav-toggle{justify-content:center;padding:.5rem}.app-mobile-nav--collapsed .app-mobile-nav-toggle-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-mobile-nav-toggle-label{flex:1;text-align:left;min-width:0}@media(max-width:640px){.overlay{padding-top:max(.75rem,env(safe-area-inset-top,0px));padding-bottom:max(1rem,env(safe-area-inset-bottom,0px))}.overlay .modal{margin-top:0;width:min(420px,100%);max-height:min(calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 1.5rem),90dvh)}.modal.play-hub-modal{width:min(100%,640px)}.choice-row{gap:.5rem}.choice-row button{min-height:2.75rem;padding:.45rem .85rem}}.settings-modal h2{margin-top:0;padding-right:2rem}.settings-modal-lead{margin:0 0 .5rem;font-size:.88rem;line-height:1.45}.settings-modal-close{position:absolute;top:.45rem;right:.45rem;z-index:1;width:2.25rem;height:2.25rem;padding:0;line-height:1;font-size:1.35rem;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer}.settings-section{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--line)}.settings-section-title{margin:0 0 .5rem;font-size:.82rem;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.settings-toggle{display:flex;flex-direction:row;align-items:flex-start;gap:.65rem;cursor:pointer;margin:0}.settings-toggle input{margin-top:.2rem;flex-shrink:0;width:1.1rem;height:1.1rem;accent-color:var(--accent)}.settings-toggle:has(input:disabled){cursor:default;opacity:.72}.settings-toggle-text{display:flex;flex-direction:column;gap:.2rem;min-width:0}.settings-toggle-text strong{font-size:.95rem;font-weight:650}.settings-toggle-hint{font-size:.82rem;line-height:1.4;display:block}.settings-more-hint{margin:1rem 0 0;font-size:.8rem;line-height:1.4}.settings-modal-actions{margin:1.25rem 0 0}button.btn-resign{background:transparent;border:1px solid var(--danger);color:var(--danger)}button.btn-resign:hover:not(:disabled){background:#e058581f;filter:none}.profile-page{max-width:1100px;margin-left:auto;margin-right:auto;margin-bottom:2rem}.profile-two-col{display:grid;gap:1.25rem;align-items:start}@media(min-width:900px){.profile-two-col{grid-template-columns:1fr minmax(280px,360px)}.profile-col-sidebar{position:sticky;top:1rem;min-width:0}}.profile-col-primary{display:flex;flex-direction:column;gap:0;min-width:0}.profile-main-top{margin-bottom:1.25rem}.profile-title{margin:0 0 1rem;font-size:1.35rem}.profile-header{display:flex;gap:1.25rem;align-items:flex-start}.profile-avatar-col{display:flex;flex-direction:column;align-items:center;gap:.35rem;flex-shrink:0;max-width:6.5rem}.profile-avatar{width:4.5rem;height:4.5rem;border-radius:50%;background:var(--line);display:flex;align-items:center;justify-content:center;font-size:2.25rem;flex-shrink:0;border:2px solid var(--line)}button.profile-avatar--interactive{padding:0;cursor:pointer;font:inherit;color:inherit;overflow:hidden}button.profile-avatar--interactive:hover:not(:disabled){border-color:var(--accent-muted, rgba(100, 180, 255, .55));box-shadow:0 0 0 1px var(--accent-muted, rgba(100, 180, 255, .35))}button.profile-avatar--interactive:disabled{opacity:.65;cursor:not-allowed}.profile-avatar-img{width:100%;height:100%;object-fit:cover;display:block}.profile-avatar-initial{font-size:1.85rem;font-weight:650;line-height:1;color:var(--fg, #e2e8f0)}.profile-avatar-remove{font-size:.78rem;margin:0;padding:0}.profile-header-text{flex:1;min-width:0}.profile-label{display:block;font-size:.82rem;color:var(--muted);margin-bottom:.35rem}.profile-input{width:100%;max-width:280px;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit}.profile-name-row{display:flex;gap:.5rem;align-items:stretch;max-width:360px}.profile-name-row--view{align-items:center;flex-wrap:wrap;max-width:420px}.profile-username-readonly{flex:1 1 auto;min-width:0;font-size:1.05rem;font-weight:650;line-height:1.3;padding:.5rem .65rem;border-radius:8px;border:1px solid transparent;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-name-edit{flex:0 0 auto;padding:0 .85rem;min-height:2.4rem;font:inherit;border-radius:8px;border:1px solid var(--line, rgba(255, 255, 255, .2));background:var(--bg, transparent);color:var(--text);cursor:pointer}.profile-name-edit:hover:not(:disabled){border-color:var(--accent-muted, rgba(100, 180, 255, .45))}.profile-name-edit:disabled{opacity:.55;cursor:not-allowed}.profile-name-cancel{flex:0 0 auto;padding:0 .85rem;min-height:2.4rem;font:inherit;border-radius:8px;border:1px solid var(--line, rgba(255, 255, 255, .2));background:var(--bg, transparent);color:var(--text);cursor:pointer}.profile-name-cancel:hover:not(:disabled){border-color:var(--accent-muted, rgba(100, 180, 255, .45))}.profile-name-row .profile-input{flex:1 1 auto;max-width:none}.profile-name-save{flex:0 0 auto;padding:0 .85rem;white-space:nowrap}.profile-pro-tag{display:inline-flex;align-items:center;align-self:center;font-size:1.2rem;line-height:1;padding:.2rem .45rem;border-radius:8px;border:1px solid var(--line, rgba(255, 255, 255, .12));background:var(--line, rgba(255, 255, 255, .06));flex-shrink:0;-webkit-user-select:none;user-select:none}.profile-pro-tag--inline{font-size:1.05rem;padding:.1rem .35rem;margin-left:.1rem;vertical-align:.08em}.profile-name-msg{margin:.35rem 0 0;font-size:.8rem}.profile-name-msg--ok{color:var(--ok, #4ade80)}.profile-name-msg--err{color:var(--err, #f87171)}.profile-section-title{font-size:1rem;margin:1.35rem 0 .65rem;font-weight:600}.profile-account.panel-inner,.profile-friends.panel-inner,.profile-settings.panel-inner,.profile-main-top.panel-inner{padding:.85rem 1rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--profile-card-bg);margin-bottom:1.25rem}.profile-col-sidebar.profile-friends.panel-inner{margin-bottom:0;min-width:0}.profile-account .profile-section-title,.profile-friends .profile-section-title,.profile-settings .profile-section-title,.profile-main-top .profile-section-title{margin-top:0}.profile-settings-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin-top:.5rem}.profile-settings-row label{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;color:var(--muted)}.profile-settings-row select{min-width:11rem;padding:.45rem .6rem;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);font:inherit}.profile-account-lead{margin:0 0 .85rem;font-size:.86rem;line-height:1.45}.profile-account-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}button.profile-delete-account-btn{background:transparent;border:1px solid var(--danger);color:var(--danger)}button.profile-delete-account-btn:hover:not(:disabled){background:#e058581f;filter:none}[data-theme=light] button.profile-delete-account-btn:hover:not(:disabled){background:#b84a4a1a}.profile-form-grid{display:grid;gap:.65rem;max-width:420px;margin-bottom:.65rem}.profile-account-hint{margin:.65rem 0 0;font-size:.8rem}.profile-social-err{margin:.75rem 0 0;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--profile-err-border);background:var(--profile-err-bg);color:var(--profile-err-text);font-size:.88rem}.profile-subheading{font-size:.92rem;margin:1rem 0 .4rem;font-weight:600}.profile-statistics-cta{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;margin-top:.85rem}.profile-statistics-cta--solo{margin-bottom:.35rem}.profile-statistics-cta-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.profile-statistics-cta-hint{font-size:.82rem;margin:0}.achievements-panel-head{margin-bottom:1rem}.achievements-back{display:inline-block;margin-bottom:.35rem}.achievements-panel-title{margin:0;font-size:1.35rem}.achievements-section{margin-bottom:1.75rem}.achievements-section-title{margin:0 0 .5rem;font-size:1.05rem}.achievements-progress{margin:0 0 .75rem;font-size:.88rem}.achievements-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.65rem}.achievements-card{padding:.65rem .75rem;border-radius:10px;border:1px solid var(--line);background:#00000026}.achievements-card--locked{opacity:.65}.achievements-card-label{font-weight:650;font-size:.92rem;margin-bottom:.25rem}.achievements-card-desc{margin:0 0 .35rem;font-size:.78rem;line-height:1.35}.achievements-card-status{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.achievements-card-when{font-size:.78rem}.achievements-hint{margin:0 0 .75rem;font-size:.88rem}.achievements-sync-err{margin:.35rem 0 0;font-size:.88rem}.profile-stats-root{display:flex;flex-direction:column;gap:1rem;padding:.5rem .25rem}.profile-stats-topbar{display:flex;flex-direction:column;gap:.25rem}.profile-stats-title{margin:0;font-size:1.35rem}.profile-stats-section.panel-inner{padding:.85rem 1rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--profile-card-bg)}.profile-stats-section .profile-section-title{margin:0 0 .65rem}.stats-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.stats-grid--core{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.stats-card{border:1px solid var(--line);border-radius:10px;padding:.65rem .75rem;background:#0000001f;display:flex;flex-direction:column;gap:.15rem;min-height:4.5rem}.stats-card-label{font-size:.78rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.stats-card-value{font-size:1.25rem;font-weight:650;line-height:1.15}.stats-card-hint{font-size:.78rem}.profile-stats-puzzle-strengths .puzzle-type-radar{margin:0;padding:0;border:none;background:transparent}.profile-stats-puzzle-strengths .puzzle-type-radar-head{margin-bottom:.5rem}.stats-trend-row{display:flex;flex-wrap:wrap;gap:.3rem}.stats-trend-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.6rem;border-radius:6px;font-size:.78rem;font-weight:700;border:1px solid var(--line);background:#0000002e}.stats-trend-pill--W{background:#22c55e2e;border-color:#22c55e73;color:#bbf7d0}.stats-trend-pill--L{background:#ef44442e;border-color:#ef444473;color:#fecaca}.stats-trend-pill--D{background:#94a3b82e;border-color:#94a3b873;color:#e2e8f0}.stats-sparkline{width:100%;max-width:320px;height:48px;color:var(--accent, #60a5fa)}.stats-advanced-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.profile-friend-add{display:flex;flex-wrap:wrap;gap:.65rem;align-items:flex-end;margin-bottom:.5rem}.profile-friends .profile-challenge-block .profile-input{max-width:100%;width:100%}.profile-pending-list,.profile-friends-list,.profile-mr-list{list-style:none;margin:0;padding:0}.profile-friends-list li{min-width:0;line-height:1.5;word-break:break-word;overflow-wrap:anywhere}.profile-pending-row,.profile-mr-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem 0;border-bottom:1px solid var(--line);font-size:.88rem}.profile-pending-row>span:first-child,.profile-mr-row>span:first-child{min-width:0;flex:1 1 12rem;word-break:break-word;overflow-wrap:anywhere}.profile-pending-actions{display:flex;gap:.35rem}.profile-challenge-row{display:flex;flex-wrap:wrap;gap:.65rem;align-items:flex-end;margin-top:.35rem}.profile-auth-overlay{z-index:25}.profile-auth-modal-lead{margin:0 0 1rem;font-size:.88rem;line-height:1.45}.profile-auth-modal-err{margin:0 0 .75rem;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--profile-err-border);background:var(--profile-err-bg);color:var(--profile-err-text);font-size:.88rem}.profile-auth-modal-hint-warn{margin:0 0 .65rem;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--profile-warn-border);background:var(--profile-warn-bg);color:var(--profile-warn-text);font-size:.85rem;line-height:1.45}.profile-auth-modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0 .75rem}.profile-auth-switch{margin:.75rem 0 0;font-size:.88rem}button.link-like{background:none;border:none;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer;font:inherit}button.link-like:hover:not(:disabled){filter:brightness(1.1)}.match-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.match-table{width:100%;border-collapse:collapse;font-size:.86rem}.match-table th,.match-table td{padding:.45rem .55rem;text-align:left;border-bottom:1px solid var(--line)}.match-table th{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.match-table tr:last-child td{border-bottom:none}.match-table .delta-pos{color:#6ecf8f}.match-table .delta-neg{color:var(--danger)}.match-highlights{margin-bottom:.85rem}.match-highlights-head{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.4rem}.match-highlights-title{font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.match-highlights-sub{font-size:.78rem}.match-highlights-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.55rem}.match-highlight-card{border:1px solid var(--line);border-radius:10px;padding:.55rem .65rem;background:#ffffff05;display:flex;flex-direction:column;gap:.3rem;font-size:.82rem}.match-highlight-peak{border-left:3px solid #f1c94e}.match-highlight-biggest_win{border-left:3px solid #6ecf8f}.match-highlight-toughest_loss{border-left:3px solid #e05c6b}.match-highlight-longest{border-left:3px solid #7aa2ff}.match-highlight-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.match-highlight-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .45rem;border-radius:999px;background:#ffffff0f;color:var(--text)}.match-highlight-badge-peak{background:#f1c94e26;color:#f1c94e}.match-highlight-badge-biggest_win{background:#6ecf8f26;color:#6ecf8f}.match-highlight-badge-toughest_loss{background:#e05c6b26;color:#e05c6b}.match-highlight-badge-longest{background:#7aa2ff26;color:#7aa2ff}.match-highlight-when{font-size:.75rem}.match-highlight-subtitle{font-size:.78rem;color:var(--muted)}.match-highlight-body{display:flex;flex-direction:column;gap:.15rem}.match-highlight-opponent{font-weight:600}.match-highlight-result{font-size:.78rem;color:var(--muted)}.match-highlight-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.15rem}.match-highlight-delta{font-weight:700;font-size:.85rem}.match-highlight-delta.delta-pos{color:#6ecf8f}.match-highlight-delta.delta-neg{color:var(--danger)}.match-highlight-foot button{padding:.25rem .6rem;font-size:.78rem}.match-table-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.55rem;flex-wrap:wrap}.match-table-expand{padding:.35rem .8rem;font-size:.82rem}.match-table-footer-note{font-size:.78rem}.replay-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#000000a6;display:flex;align-items:flex-start;justify-content:center;padding:.75rem;overflow-y:auto}.replay-modal{width:min(980px,100%);margin:.5rem auto 1.5rem;max-height:min(calc(100dvh - 1rem),96vh);overflow:hidden;display:flex;flex-direction:column}.replay-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.replay-head h2{margin:0;font-size:1.15rem}.replay-close{font-size:1.5rem;line-height:1;padding:.15rem .55rem;background:transparent;border:1px solid var(--line);color:var(--muted)}.replay-sub{margin:.35rem 0 .75rem;font-size:.88rem}.replay-body{display:grid;gap:1rem;overflow:auto}@media(min-width:800px){.replay-body{grid-template-columns:minmax(0,1fr) 320px;align-items:start}}.replay-board-col{min-width:0}.replay-controls{margin-top:.65rem}.replay-slider-label{display:flex;flex-direction:column;gap:.35rem;margin-top:.65rem;font-size:.88rem;color:var(--muted)}.replay-slider-label input[type=range]{width:100%}.replay-side{min-width:0;font-size:.92rem}.replay-h3{margin:0 0 .45rem;font-size:.95rem}.replay-h4{margin:.65rem 0 .35rem;font-size:.88rem;color:var(--muted)}.replay-analyze-err{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.25rem}.replay-analyze-err .error{margin:0}.replay-tier-line{margin:0 0 .35rem;line-height:1.5}.replay-candidates{margin:0;padding-left:1.1rem;font-size:.86rem}.cand-order{color:var(--muted);font-size:.8rem}.cand-v{font-size:.82rem;background:var(--bg);padding:.08em .35em;border-radius:4px;border:1px solid var(--line)}.replay-toolbar{margin-top:.85rem}.replay-moves-wrap{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:8px}.replay-moves{width:100%;border-collapse:collapse;font-size:.84rem}.replay-moves th,.replay-moves td{padding:.35rem .45rem;border-bottom:1px solid var(--line);text-align:left}.replay-moves tbody tr{cursor:pointer}.replay-moves tbody tr:hover{background:#4c8bf514}.replay-moves tbody tr.active-move{outline:1px solid var(--accent);background:#4c8bf51f}.tier-badge{display:inline-block;font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;padding:.12rem .4rem;border-radius:4px;border:1px solid var(--line)}.tier-genius{border-color:#6ecf8f;color:#6ecf8f}.tier-great{border-color:#7ec8e3;color:#7ec8e3}.tier-good{border-color:#c9d1dc;color:var(--text)}.tier-inaccuracy{border-color:#e6a23c;color:#e6a23c}.tier-blunder{border-color:var(--danger);color:var(--danger)}.tier-unknown{color:var(--muted)}.home-page{max-width:880px;margin-left:auto;margin-right:auto;margin-bottom:2rem}.home-dashboard-grid{display:grid;grid-template-columns:1fr;gap:1.15rem;margin-top:1.75rem}@media(min-width:720px){.home-dashboard-grid{grid-template-columns:1fr 1fr;align-items:start}}.home-dash-card{border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem 1.15rem;background:var(--bg)}.home-dash-card--daily-solved{border-color:#22c55e6b;box-shadow:0 0 0 1px #22c55e1a}.home-daily-card-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.home-daily-card-head .home-dash-card-title{margin:0}.home-daily-solved-pill{font-size:.72rem;font-weight:650;padding:.2rem .5rem;border-radius:999px;background:#22c55e24;color:#86efac;border:1px solid rgba(34,197,94,.35);white-space:nowrap;line-height:1.2}[data-theme=light] .home-daily-solved-pill{color:#166534;background:#22c55e2e}.home-daily-solved-hint{margin:0 0 .75rem;font-size:.86rem;line-height:1.4}.home-dash-card-title{font-size:1rem;margin:0 0 .35rem;font-weight:650}.home-dash-card-lead{margin:0 0 .85rem;font-size:.88rem;line-height:1.45}.home-preset-list{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.75rem}.home-preset-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;text-align:left;padding:.55rem .65rem;border-radius:10px;border:1px solid var(--line);background:var(--surface, var(--bg));color:var(--text);cursor:pointer;font:inherit;transition:border-color .12s ease,background .12s ease}.home-preset-btn:hover{border-color:var(--accent)}.home-preset-btn--suggested{border-style:dashed}.home-preset-label{font-size:.88rem;line-height:1.35}.home-preset-hint{font-size:.76rem}.home-custom-setup-btn{width:100%;margin-top:.15rem}.home-daily-date{font-size:.86rem;margin:0 0 .5rem}.home-daily-board-preview{margin:0 0 .65rem;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#00000038}.home-daily-board-preview .board-wrap{width:100%;max-width:100%;margin:0 auto;display:flex;justify-content:center;align-items:center}.home-daily-board-preview .board-wrap svg{max-height:min(48vw,240px);width:auto;height:auto;max-width:100%;display:block}@media(max-width:639px){.home-dash-card--daily:not(.home-dash-card--daily-solved) .home-daily-board-preview,.home-dash-card--daily:not(.home-dash-card--daily-solved) .home-daily-board-skeleton{display:none}}@media(min-width:640px){.home-daily-board-preview .board-wrap svg{max-height:min(52vw,320px);min-height:168px}.home-daily-board-skeleton{min-height:168px;height:clamp(168px,40vw,300px)}}.home-daily-board-preview text.board-footer-status,.home-daily-board-preview text.board-footer-hint{opacity:0}.home-daily-board-skeleton{height:min(48vw,240px);margin:0 0 .65rem;border-radius:10px;border:1px solid var(--line);background:linear-gradient(90deg,#ffffff08,#ffffff14,#ffffff08);background-size:200% 100%;animation:home-daily-board-skel 1.1s ease-in-out infinite}@keyframes home-daily-board-skel{0%{background-position:0% 0%}to{background-position:-200% 0%}}.home-daily-title{margin:0 0 .35rem;font-size:.95rem}.home-daily-meta{margin:0 0 1rem;font-size:.86rem}.home-daily-cta{width:100%}.community-page,.settings-page{max-width:720px;margin-left:auto;margin-right:auto;margin-bottom:2rem}.settings-page-title{margin:0 0 .45rem;font-size:1.35rem}.settings-page-lead{margin:0 0 1.25rem;font-size:.92rem;line-height:1.55}.settings-page-section{margin-bottom:1.25rem}.community-title{margin:0 0 .45rem;font-size:1.35rem}.community-lead{margin:0 0 1.25rem;font-size:.92rem;line-height:1.55}.community-section{margin-bottom:1.35rem;padding:1rem 1.1rem 1.15rem;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.community-section-title{font-size:1.05rem;margin:0 0 .45rem;font-weight:650}.community-section-lead{margin:0 0 .85rem;font-size:.88rem;line-height:1.45}.community-ladder-tabs{margin-bottom:.35rem}.community-ladder-hint{margin:0 0 .65rem}.community-leaderboard{margin:0;padding-left:1.25rem}.community-friend-add{display:flex;flex-wrap:wrap;gap:.65rem .85rem;align-items:flex-end;margin-bottom:.75rem}.community-label{display:flex;flex-direction:column;gap:.3rem;font-size:.88rem;flex:1;min-width:200px}.community-subheading{font-size:.92rem;margin:1rem 0 .45rem;font-weight:600}.community-friends-list{margin:0;padding-left:1.15rem;font-size:.9rem;line-height:1.55}.community-friends-list li{margin-bottom:.35rem}.app-toast-stack{position:fixed;bottom:1rem;inset-inline-end:1rem;z-index:10050;display:flex;flex-direction:column;gap:.5rem;justify-content:flex-end;max-height:calc(100vh - 2rem);max-width:min(360px,calc(100vw - 2rem));pointer-events:none}.app-toast{pointer-events:auto;display:flex;flex-direction:column;align-items:stretch;gap:.5rem;padding:.75rem .85rem;border-radius:12px;border:1px solid var(--line);background:var(--bg);box-shadow:0 8px 28px #0000002e;font-size:.9rem;line-height:1.4}.app-toast-message{margin:0;flex:1;min-width:0}.app-toast-actions{display:flex;flex-shrink:0;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.35rem}.app-toast-actions--row{width:100%;justify-content:flex-start}.app-toast-btn{padding:.25rem .5rem;font-size:.85rem;border-radius:8px;border:1px solid var(--line);background:var(--bg-elev);color:inherit;cursor:pointer;line-height:1.2}.app-toast-btn.primary{border-color:transparent;background:var(--accent, #2563eb);color:var(--accent-fg, #fff)}.app-toast-btn:hover{filter:brightness(1.05)}.community-pending-empty{margin:0 0 .85rem;font-size:.88rem}.community-pending-cards{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.65rem}.community-pending-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;padding:.75rem .85rem;border:1px solid var(--line);border-radius:12px;background:var(--bg-elev, var(--bg))}.community-pending-card--incoming{border-left:3px solid var(--accent, #2563eb)}.community-pending-card--outgoing{opacity:.95}.community-pending-card-main{display:flex;align-items:center;gap:.65rem;min-width:0;flex:1}.community-pending-name{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.community-pending-flag{font-size:1.1rem;line-height:1}.community-pending-meta{font-size:.82rem;margin-top:.15rem}.community-pending-actions{display:flex;flex-wrap:wrap;gap:.4rem}.community-friend-avatar{width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;background:color-mix(in srgb,var(--accent, #2563eb) 22%,transparent);color:var(--fg);flex-shrink:0}.community-friend-avatar--muted{background:color-mix(in srgb,var(--line) 55%,transparent);font-weight:600}.community-friends-play-hint{margin:0 0 .75rem;font-size:.86rem;line-height:1.45}.community-friends-grid{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.community-friend-card{border:1px solid var(--line);border-radius:12px;padding:.75rem .85rem;background:var(--bg)}.community-friend-card-top{display:flex;align-items:center;gap:.65rem}.community-friend-card-top>button{margin-left:auto;flex-shrink:0;font-size:.85rem;padding:.35rem .65rem;border-radius:8px;border:1px solid var(--line);background:var(--bg-elev, var(--bg));cursor:pointer;color:inherit}.community-friend-card-top>button.active{border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 12%,transparent)}.community-friend-card-info{min-width:0;flex:1}.community-friend-card-name{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.community-friend-card-rating{font-size:.85rem;margin-top:.12rem}.community-challenge-panel{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.65rem}.community-challenge-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.community-challenge-label{font-size:.82rem;color:var(--muted, inherit);min-width:4rem}.community-challenge-segmented{display:flex;flex-wrap:wrap;gap:.35rem}.community-challenge-segmented button{font-size:.8rem;padding:.3rem .55rem;border-radius:8px;border:1px solid var(--line);background:var(--bg-elev, var(--bg));cursor:pointer;color:inherit}.community-challenge-segmented button.active{border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 14%,transparent)}.community-challenge-note{margin:0}.community-challenge-submit{align-self:flex-start}.community-challenge-sent{margin:.5rem 0 0;font-size:.86rem;color:var(--ok, #15803d)}.home-page.panel{padding:1.3rem 1.35rem 1.45rem}.learn-page{max-width:720px;margin-left:auto;margin-right:auto;margin-bottom:2rem}.learn-title{margin:0 0 .35rem;font-size:1.35rem}.learn-lead{margin:0 0 1rem;font-size:.92rem}.learn-toc{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .35rem;margin:0 0 1.35rem;padding:.55rem .75rem;border-radius:10px;border:1px solid var(--line);background:var(--bg);font-size:.88rem}.learn-toc a{color:var(--accent);text-decoration:none}.learn-toc a:hover{text-decoration:underline}.learn-toc-sep{color:var(--muted);-webkit-user-select:none;user-select:none}.learn-section{scroll-margin-top:4.5rem;padding-bottom:1.35rem;margin-bottom:1.25rem;border-bottom:1px solid var(--line)}.learn-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.learn-section-title{font-size:1.05rem;margin:0 0 .65rem;font-weight:650}.learn-subhead{font-size:.95rem;margin:1rem 0 .4rem;font-weight:600;color:var(--text)}.learn-p{margin:0 0 .65rem;font-size:.92rem;line-height:1.5}.learn-p:last-child{margin-bottom:0}.learn-list{margin:0;padding-left:1.2rem;font-size:.92rem;line-height:1.55}.learn-list li{margin-bottom:.55rem}.learn-list li:last-child{margin-bottom:0}.learn-note{font-size:.86rem;margin-top:.75rem!important}.learn-tutorial-figures{display:grid;gap:.6rem .65rem;margin:.35rem 0 .9rem;width:100%;grid-template-columns:1fr;align-items:start;justify-items:stretch}@media(min-width:480px){.learn-tutorial-figures{grid-template-columns:repeat(2,minmax(0,1fr))}}.learn-tutorial-fig-lead{grid-column:1 / -1;font-size:.9rem;margin-bottom:.1rem!important}.learn-tutorial-fig{display:flex;flex-direction:column;margin:0;padding:0;min-width:0;width:100%;align-items:stretch}.learn-tutorial-fig-frame{border:1px solid var(--line);border-radius:10px;padding:.28rem;background:var(--panel);width:100%;min-width:0;overflow:hidden}.learn-tutorial-fig-canvas{position:relative;width:100%;aspect-ratio:1 / 1;min-height:0;border-radius:6px;line-height:0;overflow:hidden}.learn-tutorial-fig-canvas .learn-tutorial-fig-board{position:absolute;left:0;top:0;display:block;width:100%;height:100%;max-width:none;min-height:0;margin:0;border-radius:4px}.learn-tutorial-fig-board{display:block}.learn-tutorial-fig-cap{margin:.4rem 0 0;font-size:.8rem;line-height:1.4;color:var(--muted);flex:0 0 auto}.learn-cta{margin:1rem 0 0}.learn-explore-cta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .85rem;margin-top:1.15rem}.learn-explore-hint{font-size:.84rem}.learn-open-puzzles-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}.learn-open-puzzles-hint{font-size:.84rem}.learn-sgf-hints{margin-top:.5rem;margin-bottom:.85rem}.learn-sgf-actions{display:grid;gap:1.1rem;margin-top:.75rem}@media(min-width:640px){.learn-sgf-actions{grid-template-columns:1fr 1.2fr;align-items:start}}.learn-sgf-label{display:block;font-size:.82rem;font-weight:600;color:var(--muted);margin-bottom:.35rem}.learn-sgf-file{min-width:0}.learn-sgf-file .file-choose{max-width:28rem}.learn-sgf-paste{display:flex;flex-direction:column;gap:.5rem}.learn-sgf-textarea{width:100%;max-width:36rem;min-height:6rem;font-family:ui-monospace,Cascadia Code,monospace;font-size:.8rem;line-height:1.4}.learn-sgf-submit{align-self:flex-start}.learn-sgf-err{margin:.85rem 0 0;padding:.55rem .7rem;border-radius:8px;background:#7f1d1d33;border:1px solid rgba(248,113,113,.35);color:#fecaca;font-size:.88rem}[data-theme=light] .learn-sgf-err{background:#b84a4a14;border-color:#b84a4a47;color:var(--profile-err-text)}.home-title{margin:0 0 .55rem;font-size:1.35rem}.home-lead{margin:0 0 1.85rem;font-size:.92rem;line-height:1.55}.home-sgf-teaser{margin:-1rem 0 1.35rem;font-size:.88rem;line-height:1.5}.link-like-btn{display:inline;padding:0;border:none;background:none;font:inherit;font-weight:600;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:.12em}.link-like-btn:hover{color:var(--text)}.home-section-title{font-size:1rem;margin:0 0 .85rem;font-weight:600}.session-card{border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;background:var(--bg)}.session-card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.session-status{font-size:.78rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:#6ecf8f}.session-id{font-size:.78rem;color:var(--muted)}.session-meta{list-style:none;padding:0;margin:0 0 1rem;font-size:.88rem}.session-meta li{margin-bottom:.25rem}.session-meta li:last-child{margin-bottom:0}.session-empty{padding:1.2rem .35rem 1.3rem;font-size:.92rem;line-height:1.5}.session-empty p{margin:0}.session-empty p+p{margin-top:.65rem}.tactics-explore{min-height:100vh;background:var(--bg);color:var(--text);padding:1.25rem 1.25rem 2.5rem}.tactics-explore-header{max-width:880px;margin:0 auto 1rem;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem 1.25rem}.tactics-explore-title{margin:0 0 .35rem;font-size:1.45rem;font-weight:650}.tactics-explore-sub{margin:0;max-width:42rem;font-size:.9rem}button.tactics-explore-close{flex-shrink:0;background:var(--panel);border:1px solid var(--line);color:var(--text);padding:.45rem .85rem;border-radius:8px;font:inherit;cursor:pointer}button.tactics-explore-close:hover{border-color:var(--accent)}.tactics-explore-toc{max-width:880px;margin:0 auto 1.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .4rem;padding:.55rem .75rem;border-radius:10px;border:1px solid var(--line);background:var(--panel);font-size:.82rem}.tactics-explore-toc a{color:var(--accent);text-decoration:none}.tactics-explore-toc a:hover{text-decoration:underline}.tactics-toc-sep{color:var(--muted);-webkit-user-select:none;user-select:none}.tactics-explore-body{max-width:880px;margin:0 auto}.tactics-sec{scroll-margin-top:4.5rem;padding-bottom:1.75rem;margin-bottom:1.5rem;border-bottom:1px solid var(--line)}.tactics-sec:last-of-type{border-bottom:none;margin-bottom:0}.tactics-sec h2{margin:0 0 .65rem;font-size:1.12rem;font-weight:650}.tactics-sec h3{margin:1.1rem 0 .45rem;font-size:.98rem;font-weight:600}.tactics-sec p{margin:0 0 .75rem;font-size:.92rem;line-height:1.55}.tactics-note{margin-top:.5rem!important}.tactics-figure-row{display:flex;flex-wrap:wrap;gap:1rem 1.25rem;align-items:flex-start;margin:.75rem 0 1rem}.tactics-figure{margin:.75rem 0;max-width:min(100%,320px)}.tactics-board-svg{display:block;width:100%;height:auto;border-radius:8px;box-shadow:0 6px 20px #00000059}.tactics-figure-caption{margin-top:.45rem;font-size:.82rem;color:var(--muted);line-height:1.45}.tactics-table-wrap{overflow-x:auto;margin:.65rem 0 0;border-radius:10px;border:1px solid var(--line)}.tactics-table{width:100%;border-collapse:collapse;font-size:.86rem;line-height:1.45}.tactics-table th,.tactics-table td{padding:.5rem .65rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.tactics-table th{background:var(--panel);font-weight:600;color:var(--text)}.tactics-table tr:last-child td,.tactics-table tr:last-child th{border-bottom:none}.tactics-table td:first-child{white-space:nowrap;font-weight:600;color:var(--text)}.puzzles-hub{max-width:720px;margin-left:auto;margin-right:auto;margin-bottom:2rem;padding:0 .25rem}.puzzles-hub-inner{padding:1.2rem 1.25rem 1.5rem}.puzzles-hub-title{margin:0 0 .4rem;font-size:1.35rem;font-weight:650}.puzzles-hub-lead{margin:0 0 1rem;font-size:.92rem;line-height:1.5}.puzzles-subtabs{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 1.25rem;padding:.2rem;border-radius:10px;background:var(--bg);border:1px solid var(--line)}@media(max-width:720px){.puzzles-subtabs{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-right:1.25rem;mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 1.25rem),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 1.25rem),transparent 100%)}.puzzles-subtabs::-webkit-scrollbar{display:none}.puzzles-subtab{flex:0 0 auto;scroll-snap-align:center;white-space:nowrap}}.puzzles-subtab{font:inherit;font-size:.88rem;font-weight:550;padding:.45rem .95rem;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;transition:color .12s ease,background .12s ease,border-color .12s ease}.puzzles-subtab:hover{color:var(--text);background:#ffffff0a}.puzzles-subtab--active{color:var(--text);background:var(--panel);border-color:var(--line);box-shadow:0 1px 2px #0000001f}.puzzles-section--flush{border-bottom:none;margin-bottom:0;padding-bottom:0}.puzzles-practice-lead{margin-bottom:1rem}.puzzles-kbd{display:inline-block;font-size:.78em;font-family:ui-monospace,monospace;padding:.12em .4em;border-radius:4px;border:1px solid var(--line);background:var(--bg);color:var(--text)}.puzzles-practice-filters{display:flex;flex-wrap:wrap;gap:1rem 1.25rem;margin-bottom:1rem}.puzzles-practice-hint{margin:0 0 .5rem}.puzzles-practice-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem .75rem;margin-bottom:.85rem}.puzzles-practice-nav-btn{font:inherit;font-weight:550;padding:.45rem .85rem;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer;min-width:5.5rem}.puzzles-practice-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.puzzles-practice-nav-btn:disabled{opacity:.38;cursor:not-allowed}.puzzles-practice-counter{display:flex;flex-direction:column;align-items:center;gap:.15rem;text-align:center;flex:1;min-width:8rem}.puzzles-practice-pos{font-size:1rem;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:.02em}.puzzles-practice-meta{font-size:.78rem;line-height:1.35}.puzzles-practice-card{border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;background:var(--bg)}.puzzles-practice-card-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem .75rem;font-size:.82rem;margin-bottom:.35rem}.puzzles-practice-title{margin:0 0 .65rem;font-size:1.05rem;font-weight:600}.puzzles-inline-code{font-size:.85em;padding:.1em .35em;border-radius:4px;background:var(--bg);border:1px solid var(--line)}.puzzles-section{margin-bottom:1.75rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}.puzzles-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.puzzles-section-title{margin:0 0 .5rem;font-size:1.05rem;font-weight:650}.puzzles-section-p{margin:0 0 .85rem;font-size:.9rem;line-height:1.5}.puzzles-entitlement-inline{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.puzzles-entitlement-inline .puzzles-section-p{margin:0}.puzzles-daily-controls{margin-bottom:1rem}.puzzles-date-label{min-width:11rem}.calendar-picker{position:relative;display:inline-block}.calendar-picker-trigger{display:inline-flex;align-items:center;gap:.5rem;font:inherit;padding:.4rem .7rem;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer;min-width:11rem;text-align:left}.calendar-picker-trigger:hover,.calendar-picker-trigger[aria-expanded=true]{border-color:var(--accent)}.calendar-picker-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.calendar-picker-trigger-icon{color:var(--muted);display:inline-flex}.calendar-picker-trigger-text{font-variant-numeric:tabular-nums}.calendar-picker-pop{position:absolute;top:calc(100% + .4rem);left:0;z-index:40;width:18rem;padding:.6rem;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--text);box-shadow:0 16px 40px #00000059}.calendar-picker-head{display:grid;grid-template-columns:2rem 1fr 2rem;align-items:center;margin-bottom:.4rem}.calendar-picker-nav{font:inherit;font-size:1.1rem;line-height:1;width:2rem;height:2rem;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer}.calendar-picker-nav:hover:not(:disabled){border-color:var(--line);background:var(--bg)}.calendar-picker-nav:disabled{opacity:.35;cursor:not-allowed}.calendar-picker-month{font:inherit;font-weight:600;background:transparent;border:0;color:var(--text);cursor:pointer;padding:.25rem .5rem;border-radius:6px}.calendar-picker-month:hover{background:var(--bg)}.calendar-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;text-align:center;margin-bottom:.25rem}.calendar-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-picker-blank{display:block;height:2rem}.calendar-picker-cell{position:relative;font:inherit;font-size:.85rem;line-height:1;height:2rem;padding:0;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.calendar-picker-cell:hover:not(:disabled):not(.is-selected){background:var(--bg);border-color:var(--line)}.calendar-picker-cell.is-today:not(.is-selected){border-color:var(--accent);color:var(--accent);font-weight:600}.calendar-picker-cell.is-selected{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.calendar-picker-cell.is-disabled{color:var(--muted);opacity:.4;cursor:not-allowed}.calendar-picker-cell-dot{position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--accent)}.calendar-picker-cell.is-selected .calendar-picker-cell-dot{background:#fff}.puzzles-daily-buttons{display:flex;gap:.4rem;flex-wrap:wrap}.puzzles-daily-buttons button{font:inherit;padding:.4rem .75rem;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);cursor:pointer}.puzzles-daily-buttons button:hover{border-color:var(--accent)}.puzzles-daily-card{border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;background:var(--bg)}.puzzles-daily-meta{font-size:.82rem;margin-bottom:.35rem}.puzzles-daily-name{margin:0 0 .45rem;font-size:1.05rem;font-weight:600}.puzzles-daily-goal{margin:0 0 .35rem;font-size:.92rem;line-height:1.45}.puzzles-daily-tags{font-size:.82rem;margin:0 0 .65rem}.puzzles-placeholder-note{margin:0;font-size:.82rem;color:var(--muted);line-height:1.45}.puzzles-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem 1.25rem;margin-bottom:1rem}.puzzles-select{font:inherit;font-weight:550;padding:.45rem .65rem;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--text);min-height:2.35rem;box-sizing:border-box}.puzzles-browse-list{list-style:none;margin:0;padding:0}.puzzles-browse-item{padding:.75rem 0;border-bottom:1px solid var(--line)}.puzzles-browse-item:last-child{border-bottom:none}.puzzles-browse-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem .75rem;margin-bottom:.25rem}.puzzles-browse-title{font-weight:600}.puzzles-browse-badges{font-size:.78rem}.puzzles-browse-goal{margin:0;font-size:.88rem;color:var(--muted);line-height:1.45}.puzzles-streak-line{margin:0 0 1rem;font-size:.88rem}.puzzle-runner-error{margin:0 0 .75rem;padding:.55rem .75rem;border-radius:8px;border:1px solid rgba(224,88,88,.45);background:#e058581a;color:#f0a8a8;font-size:.9rem}.guest-upgrade-banner{position:relative;margin:.85rem 0;padding:.85rem 2.25rem .85rem 1rem;border-radius:12px;border:1px solid rgba(214,167,0,.55);background:linear-gradient(135deg,#d6a70014,#d6a70029);display:grid;grid-template-columns:1fr auto;gap:.75rem 1rem;align-items:center}@media(max-width:560px){.guest-upgrade-banner{grid-template-columns:1fr}}.guest-upgrade-banner-body{min-width:0}.guest-upgrade-banner-title{display:block;margin:0 0 .15rem;color:#d6a700;font-size:.95rem;letter-spacing:.01em}.guest-upgrade-banner-text{margin:0;font-size:.9rem;line-height:1.4;color:var(--text)}.guest-upgrade-banner-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.guest-upgrade-banner-close{position:absolute;top:.35rem;right:.45rem;width:1.6rem;height:1.6rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%;border:none;background:transparent;color:var(--muted);font-size:1.1rem;line-height:1;cursor:pointer}.guest-upgrade-banner-close:hover{color:var(--text);background:#ffffff0d}.account-required-cta{margin:.6rem 0;padding:.75rem .85rem;border-radius:10px;border:1px dashed rgba(214,167,0,.55);background:#d6a70014;display:flex;flex-wrap:wrap;gap:.5rem .85rem;align-items:center;justify-content:space-between}.account-required-cta-lead{margin:0;flex:1 1 220px;min-width:0;font-size:.9rem;line-height:1.4;color:var(--text)}.account-required-cta-actions{display:flex;gap:.4rem;flex-wrap:wrap}.puzzle-runner-loading{margin:.5rem 0}.puzzle-runner{margin-top:.35rem}.puzzle-runner-goal{margin:0 0 .75rem;font-size:.92rem;line-height:1.45}.puzzle-runner-toolbar{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem}.puzzle-runner-hint-btn{font-size:.82rem;padding:.35rem .75rem}.puzzles-practice-nav-btn.puzzle-runner-reset-btn{font-size:.82rem;padding:.35rem .75rem;min-width:unset;background:color-mix(in srgb,var(--panel) 88%,var(--line));color:var(--muted)}.puzzles-practice-nav-btn.puzzle-runner-reset-btn:hover:not(:disabled){background:color-mix(in srgb,var(--panel) 72%,var(--line));border-color:var(--line);color:var(--text)}.puzzle-board-frame{border-radius:14px;padding:.65rem;background:linear-gradient(165deg,#1e222aa6,#12141ae6);border:1px solid var(--line);box-shadow:inset 0 1px #ffffff0a}@media(max-width:640px){.puzzle-runner-goal{margin:0 0 .45rem;font-size:.8rem;line-height:1.35}.puzzle-runner-toolbar{margin:0 0 .35rem;gap:.35rem}.puzzle-board-frame{padding:.35rem;border-radius:10px}}@media(max-width:400px){.puzzle-runner-goal{font-size:.74rem;margin-bottom:.35rem}.puzzle-board-frame{padding:.28rem}}.puzzle-runner--solved .puzzle-board-frame{border-color:#22c55e59;box-shadow:inset 0 1px #ffffff0d,0 0 0 1px #22c55e1f,0 12px 40px #00000073}.puzzle-runner--solved .board-wrap svg{box-shadow:0 12px 36px #16a34a1f}.board-success-move{filter:drop-shadow(0 0 5px rgba(34,197,94,.55))}.board-wrong-move{filter:drop-shadow(0 0 4px rgba(248,113,113,.65))}.board-hint-move{filter:drop-shadow(0 0 5px rgba(251,191,36,.45))}.board-stone--context-dim{pointer-events:none;transition:opacity .18s ease}.board-fog-cell{fill:#373c48b8;stroke:#00000038;stroke-width:1;filter:drop-shadow(0 0 2px rgba(0,0,0,.35))}text.board-footer-hint,text.board-footer-status{letter-spacing:.02em;fill:var(--board-line)}text.board-footer-hint{opacity:.92}.puzzle-runner-msg{margin:.85rem 0 0;padding:.55rem .75rem;border-radius:10px;font-size:.88rem;line-height:1.45;background:#2a31408c;border:1px solid var(--line);color:var(--text)}.puzzle-runner-msg-ok{background:#16653438;border-color:#22c55e66;color:#bbf7d0}.puzzle-runner-msg-bad{background:#7f1d1d40;border-color:#f8717173;color:#fecaca}.puzzle-runner-explain{margin:.85rem 0 0;padding:.65rem .85rem;border-radius:10px;font-size:.88rem;line-height:1.5;color:#e8eaf2;background:#1e293b8c;border:1px solid rgba(148,163,184,.25)}.puzzle-runner-explain strong{color:#cbd5e1}.puzzle-runner-explain-head,.puzzle-runner-explain-root{margin:0}.puzzle-runner-explain-root{margin-top:.25rem}.puzzle-runner-explain-sequence{margin:.5rem 0 0;padding-left:1.25rem}.puzzle-runner-explain-sequence li+li{margin-top:.25rem}.puzzle-concept-panel{margin:.6rem 0 0;padding:.65rem .85rem .75rem;border-radius:10px;border:1px solid rgba(129,140,248,.35);background:#312e8140;color:#e0e7ff;display:flex;flex-direction:column;gap:.35rem}.puzzle-concept-head{display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap}.puzzle-concept-label{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#a5b4fc;font-weight:700}.puzzle-concept-name{font-size:.95rem;font-weight:600;color:#eef2ff}.puzzle-concept-blurb{margin:0;font-size:.85rem;line-height:1.5;color:#c7d2fe}.puzzle-concept-link{align-self:flex-start;font-size:.82rem;font-weight:600;color:#a5b4fc;text-decoration:none;border-bottom:1px dashed rgba(165,180,252,.6);padding-bottom:1px}.puzzle-concept-link:hover,.puzzle-concept-link:focus-visible{color:#ddd6fe;border-bottom-color:#ddd6fecc;outline:none}.puzzle-wrong-panel{margin:.85rem 0 0;padding:.75rem .95rem .85rem;border-radius:10px;border:1px solid rgba(251,191,36,.35);background:#78350f2e;color:#fde68a;display:flex;flex-direction:column;gap:.55rem}.puzzle-wrong-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.puzzle-wrong-panel-title{margin:0;font-size:.95rem;font-weight:700;color:#fef3c7;letter-spacing:.01em}.puzzle-wrong-panel-body{margin:0;font-size:.88rem;line-height:1.5;color:#fde68a}.puzzle-wrong-panel-body--strong{color:#fef3c7;font-weight:500}.puzzle-wrong-panel-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.15rem}.puzzle-wrong-panel-step{font-size:.82rem;font-weight:600;color:#fde68a;padding:.15rem .5rem}.puzzle-wrong-panel-btn-show{background:#d9770666;border-color:#fbbf248c;color:#fef3c7}.puzzle-wrong-panel-btn-show:hover{background:#d977068c}.puzzle-wrong-panel-btn-close{margin-left:auto}@media(max-width:560px){.puzzle-wrong-panel-controls{flex-direction:column;align-items:stretch}.puzzle-wrong-panel-btn-close{margin-left:0}.puzzle-wrong-panel-step{text-align:center}}.puzzle-runner-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0 .4rem}.puzzle-runner-hint-btn[disabled]{opacity:.55;cursor:not-allowed}.puzzle-runner-freeedit-btn--on{background:linear-gradient(180deg,#2a4870,#1f3759);border-color:#3b5a85;color:#e6efff;box-shadow:inset 0 0 0 1px #ffffff0f}.puzzles-practice-nav-btn.puzzle-runner-view-toggle{font-size:.82rem;padding:.35rem .75rem;min-width:unset}.puzzle-runner-view-toggle--on{background:linear-gradient(180deg,#2d3f4e,#243340);border-color:#3d5163;color:#e8eef3;box-shadow:inset 0 0 0 1px #ffffff0d}.puzzle-runner-freeedit-banner{margin:.25rem 0 .6rem;padding:.5rem .7rem;border-radius:8px;border:1px dashed var(--line);background:#ffffff05;font-size:.85rem;line-height:1.4}.puzzle-runner-sparkline{display:flex;align-items:center;gap:.6rem;margin:.5rem 0 0;padding:.35rem .55rem;border-radius:8px;background:#ffffff06;border:1px solid var(--line);flex-wrap:wrap}.puzzle-runner-sparkline-label{font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.puzzle-runner-sparkline-list{list-style:none;margin:0;padding:0;display:flex;gap:.4rem;flex-wrap:wrap}.puzzle-runner-sparkline-list li{display:inline-flex;align-items:center;gap:.25rem;font-size:.78rem;color:var(--muted)}.puzzle-runner-sparkline-step{font-variant-numeric:tabular-nums;opacity:.7}.puzzle-runner-sparkline-dots{display:inline-flex;gap:2px;color:#d97171;letter-spacing:1px;font-weight:600}.puzzles-streak-line{margin:.35rem 0 .55rem;font-size:.85rem;display:flex;flex-wrap:wrap;gap:.5rem .85rem;align-items:center}.puzzles-review-badge{display:inline-flex;align-items:center;padding:.05rem .45rem;border-radius:999px;background:#78aaff1f;color:#b9d2ff;border:1px solid rgba(120,170,255,.25);font-size:.78rem;font-weight:600}.puzzles-subtab-badge{display:inline-block;margin-left:.35rem;min-width:1.2rem;padding:0 .35rem;border-radius:999px;background:#ffc8502e;color:#ffd896;border:1px solid rgba(255,200,80,.32);font-size:.7rem;font-weight:700;text-align:center;line-height:1.2rem}.puzzles-more-like-this{margin:.5rem 0 0;font-size:.85rem;color:var(--muted)}.puzzles-link-button{background:none;border:none;padding:0;color:#8ab4ff;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.puzzles-link-button:hover{color:#b3ccff}.puzzles-rush-timer{font-variant-numeric:tabular-nums;font-weight:600;color:#ffd383}.puzzles-postmortem{margin-top:1rem;padding:1rem 1.1rem 1.1rem;border-radius:12px;border:1px solid var(--line);background:linear-gradient(180deg,#ffffff08,#fff0)}.puzzles-postmortem-title{margin:0 0 .6rem;font-size:1.05rem}.puzzles-postmortem-stats{list-style:none;margin:0 0 .7rem;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem .8rem}.puzzles-postmortem-stats li{display:flex;flex-direction:column;padding:.45rem .6rem;border-radius:8px;background:#ffffff08;border:1px solid var(--line);font-size:.85rem}.puzzles-postmortem-stats li strong{font-size:1.15rem;font-variant-numeric:tabular-nums}.puzzles-postmortem-types,.puzzles-postmortem-suggest{margin:.4rem 0;font-size:.88rem;line-height:1.45}.puzzles-postmortem-unlocks{margin-top:.7rem;padding-top:.6rem;border-top:1px dashed var(--line)}.puzzles-postmortem-unlocks-title{margin:0 0 .35rem;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.puzzles-postmortem-unlocks-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;font-size:.88rem}.puzzles-friend-leaderboard{margin-top:1.25rem;padding:.9rem 1rem;border-radius:12px;border:1px solid var(--line);background:#ffffff05}.puzzles-friend-leaderboard-title{margin:0 0 .55rem;font-size:1rem}.puzzles-friend-leaderboard-empty,.puzzles-friend-leaderboard-error{margin:0;font-size:.88rem}.puzzles-friend-leaderboard-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.puzzles-friend-leaderboard-list li{display:grid;grid-template-columns:1.6rem 1.8rem 1fr auto auto;align-items:center;gap:.55rem;padding:.4rem .55rem;border-radius:8px;background:#ffffff05;border:1px solid transparent;font-size:.9rem}.puzzles-friend-leaderboard-row--you{background:#78aaff14!important;border-color:#78aaff38!important}.puzzles-friend-leaderboard-rank{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600;text-align:right}.puzzles-friend-leaderboard-avatar{width:1.8rem;height:1.8rem;border-radius:999px;background:linear-gradient(135deg,#4f6286,#2a3450);display:inline-flex;align-items:center;justify-content:center;color:#e2e8f0;font-size:.75rem;font-weight:700;overflow:hidden;flex-shrink:0}.puzzles-friend-leaderboard-avatar-img{width:100%;height:100%;object-fit:cover;display:block}.puzzles-friend-leaderboard-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.puzzles-friend-leaderboard-rating{font-variant-numeric:tabular-nums;font-weight:700;color:#ffe2a3}.puzzles-friend-leaderboard-meta{font-size:.78rem}.puzzles-friend-leaderboard-hint{margin:.5rem 0 0;font-size:.8rem}.home-progress-card{margin-top:1.15rem}.home-progress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin:0 0 .85rem}.home-progress-stat,.home-progress-theme{display:flex;flex-direction:column;gap:.15rem;padding:.7rem .8rem;border-radius:10px;border:1px solid var(--line);background:#ffffff08}.home-progress-stat-label{font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;font-weight:600}.home-progress-stat-value{font-size:1.5rem;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.15;display:inline-flex;align-items:baseline;gap:.25rem;color:var(--text)}.home-progress-stat-unit{font-size:.9rem;font-weight:500}.home-progress-stat-sub{font-size:.78rem;margin-top:.15rem}.home-progress-theme{background:linear-gradient(135deg,#ffc86417,#ffc86400);border-color:#ffc86440}.home-progress-theme-value{font-size:1.1rem;font-weight:650;color:#ffd896;line-height:1.2}.home-progress-achievements{margin-top:.3rem;padding-top:.7rem;border-top:1px dashed var(--line)}.home-progress-achievements-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.35rem}.home-progress-achievements-count{font-size:.78rem;font-variant-numeric:tabular-nums}.home-progress-achievements-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.home-progress-achievements-list li{display:flex;flex-wrap:wrap;gap:.35rem .6rem;align-items:baseline;padding:.35rem .55rem;border-radius:8px;background:#ffffff05;border:1px solid rgba(255,255,255,.04);font-size:.88rem}.home-progress-achievement-label{font-weight:600}.home-progress-achievement-desc{font-size:.82rem}.home-progress-achievements-hint{margin:.5rem 0 0;font-size:.85rem}.puzzle-type-radar{margin:1.25rem 0 .25rem;padding:.9rem 1rem 1.05rem;border-radius:12px;border:1px solid var(--line);background:#ffffff05}.puzzle-type-radar-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.6rem}.puzzle-type-radar-title{margin:0;font-size:1rem;font-weight:650}.puzzle-type-radar-sub{font-size:.85rem}.puzzle-type-radar-body{display:grid;grid-template-columns:auto 1fr;gap:1.15rem;align-items:center}@media(max-width:640px){.puzzle-type-radar-body{grid-template-columns:1fr;justify-items:center}}.puzzle-type-radar-svg{display:block;flex-shrink:0;overflow:visible}.puzzle-type-radar-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;width:100%}.puzzle-type-radar-bars li{display:grid;grid-template-columns:120px 1fr auto;align-items:center;gap:.6rem;font-size:.85rem}@media(max-width:480px){.puzzle-type-radar-bars li{grid-template-columns:100px 1fr auto}}.puzzle-type-radar-bar-label{font-weight:600}.puzzle-type-radar-bar-track{display:block;width:100%;height:8px;background:#ffffff0f;border-radius:999px;overflow:hidden}.puzzle-type-radar-bar-fill{display:block;height:100%;background:linear-gradient(90deg,#6b8dff,#b9d2ff);border-radius:999px;transition:width .4s ease}.puzzle-type-radar-bar-value{font-variant-numeric:tabular-nums;font-size:.82rem;white-space:nowrap}.puzzles-browse-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem;margin:.8rem 0 1rem;align-items:end}.puzzles-browse-field{display:flex;flex-direction:column;gap:.2rem}.puzzles-browse-field--range,.puzzles-browse-field--search{grid-column:span 2}.puzzles-browse-field-label{font-size:.78rem;color:var(--muted, #888);letter-spacing:.02em}.puzzles-browse-range-row{display:flex;align-items:center;gap:.4rem}.puzzles-browse-range-row input{width:5.5rem}.puzzles-browse-reset{padding:.45rem .8rem;border-radius:6px;border:1px solid var(--border, #2a2a2a);background:transparent;color:inherit;cursor:pointer;height:2.1rem;align-self:end}.puzzles-browse-reset:hover{background:#ffffff0d}.puzzles-browse-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.7rem}.puzzles-browse-card{border:1px solid var(--border, #2a2a2a);border-radius:8px;padding:.7rem;display:flex;flex-direction:column;gap:.35rem;background:#ffffff05}.puzzles-browse-card--solved{border-color:#50b46e8c;background:#50b46e0f}.puzzles-browse-card--expanded{grid-column:1 / -1}.puzzles-browse-card-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.puzzles-browse-card-title{font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.puzzles-browse-card-badge{color:#78c88c;font-weight:700}.puzzles-browse-card-meta{display:flex;gap:.6rem;font-size:.82rem}.puzzles-browse-card-theme{font-size:.78rem;font-style:italic}.puzzles-browse-card-actions{margin-top:.2rem}.puzzles-browse-card-btn{padding:.35rem .7rem;border-radius:6px;border:1px solid var(--border, #2a2a2a);background:transparent;color:inherit;cursor:pointer;font-size:.85rem}.puzzles-browse-card-btn:hover{background:#ffffff0d}.puzzles-browse-card-runner{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border, #2a2a2a);min-width:0}.puzzles-browse-card-runner .board-root,.puzzles-browse-card-runner .board-wrap{max-width:100%}.puzzles-browse-card-runner .puzzle-board-frame{min-width:0;max-width:100%}.puzzles-browse-more{display:flex;justify-content:center;margin-top:1rem}.puzzles-browse-more-btn{padding:.5rem 1.1rem;border-radius:6px;border:1px solid var(--border, #2a2a2a);background:transparent;color:inherit;cursor:pointer}.puzzles-browse-more-btn:hover{background:#ffffff0d}.puzzle-similar-link{align-self:flex-start;margin-top:.5rem;padding:.4rem .85rem;border-radius:6px;border:1px dashed rgba(120,200,140,.55);background:transparent;color:inherit;cursor:pointer;font-size:.88rem}.puzzle-similar-link:hover{background:#50b46e14}.puzzle-srs-recap{margin-top:.6rem;padding:.7rem .85rem;border-radius:8px;border:1px solid rgba(120,170,230,.45);background:#5082dc0f;display:flex;flex-direction:column;gap:.4rem}.puzzle-srs-recap-head{display:flex;align-items:center;gap:.5rem}.puzzle-srs-recap-badge{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .45rem;border-radius:999px;background:#78aae62e;color:#aac8f0}.puzzle-srs-recap-title{font-weight:600}.puzzle-srs-recap-body{margin:0;font-size:.9rem}.puzzle-srs-recap-list{margin:0;display:grid;grid-template-columns:1fr;gap:.3rem}.puzzle-srs-recap-list dt{font-size:.78rem;color:var(--muted, #999);letter-spacing:.02em}.puzzle-srs-recap-list dd{margin:0;font-size:.9rem}@media(prefers-reduced-motion:reduce){.puzzle-runner--solved .puzzle-board-frame,.puzzle-runner--solved .board-wrap svg,.board-success-move,.board-wrong-move,.board-hint-move{box-shadow:none!important;filter:none!important}.puzzles-subtab,.puzzle-runner-hint-btn,.puzzles-browse-card-btn,.puzzles-browse-more-btn,.puzzle-similar-link{transition:none!important}.board-zoom-viewport>.board-wrap{transition:none!important}.puzzle-runner-next-btn,.puzzles-practice-nav-btn,.puzzles-browse-field input,.puzzles-browse-field select,.calendar-day-btn{transition:none!important}.puzzles-browse-field input:focus,.puzzles-browse-field select:focus{transition:none!important}}@media(pointer:coarse){.puzzles-subtab,.puzzle-runner-hint-btn,.puzzles-practice-nav-btn,.puzzles-browse-card-btn,.puzzles-browse-more-btn,.puzzles-browse-reset,.puzzle-similar-link{min-height:40px;padding-top:.5rem;padding-bottom:.5rem}.puzzles-browse-field input,.puzzles-browse-field select,.calendar-day-btn{min-height:40px}}.puzzle-board-frame{position:relative}.puzzle-board-frame:after{content:"";position:absolute;top:.55rem;right:.65rem;display:none;width:1.85rem;height:1.85rem;border-radius:50%;font:600 1.05rem/1.85rem Segoe UI,system-ui,sans-serif;text-align:center;pointer-events:none;z-index:5;box-shadow:0 2px 6px #00000059}.puzzle-runner--solved .puzzle-board-frame:after{content:"✓";display:block;background:#22c55e;color:#062c12}.puzzle-runner--wrong .puzzle-board-frame:after{content:"✕";display:block;background:#ef4444;color:#2a0606}.puzzle-runner--hinted .puzzle-board-frame:after{content:"?";display:block;background:#f59e0b;color:#2c1c00}@media(prefers-reduced-motion:reduce){.puzzle-board-frame:after{box-shadow:none}}@media(max-width:720px){.puzzle-runner{padding-bottom:calc(60px + env(safe-area-inset-bottom))}.puzzle-runner-toolbar{position:fixed;left:0;right:0;bottom:0;z-index:30;margin:0;padding:.5rem .85rem;padding-bottom:max(.5rem,env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 92%,var(--panel));border-top:1px solid var(--line);box-shadow:0 -3px 10px #0000002e;flex-wrap:wrap;justify-content:center}.puzzle-runner-toolbar>*{flex:1 1 auto;min-width:0}}.puzzle-runner-toolbar-next{background:linear-gradient(180deg,#2563eb,#1d4ed8)!important;color:#f5f9ff!important;border-color:#1e40af!important;font-weight:600}.puzzle-runner-toolbar-next:hover:not(:disabled){background:linear-gradient(180deg,#3b76f0,#2151d9)!important}.puzzle-runner-body{display:flex;flex-direction:column;gap:.55rem;min-width:0}.puzzle-runner-body>.puzzle-runner-board-col{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:640px;min-width:0;align-self:center}@media(min-width:721px){.puzzle-runner-body>.puzzle-runner-toolbar{align-self:center;width:100%;max-width:640px;justify-content:flex-start}}.puzzle-runner-body>.puzzle-runner-freeedit-banner,.puzzle-runner-body>.puzzle-runner-explain,.puzzle-runner-body>.puzzle-srs-recap,.puzzle-runner-body>.puzzle-concept-panel,.puzzle-runner-body>.puzzle-similar-link,.puzzle-runner-body>.guest-upgrade-banner,.puzzle-runner-body>.puzzle-runner-next-row{align-self:center;width:100%;max-width:640px}.puzzle-runner-next-row{margin-top:1rem;display:flex;justify-content:flex-start}.puzzle-runner-next-btn{font:inherit;font-size:.95rem;font-weight:650;padding:.7rem 1.35rem;border-radius:10px;border:1px solid #1e40af;background:linear-gradient(180deg,#2563eb,#1d4ed8);color:#f5f9ff;cursor:pointer;box-shadow:0 2px 6px #2563eb4d;display:inline-flex;align-items:center;gap:.45rem;transition:transform .1s ease,box-shadow .1s ease,background .12s ease}.puzzle-runner-next-btn:hover{background:linear-gradient(180deg,#3b76f0,#2151d9);box-shadow:0 3px 10px #2563eb73}.puzzle-runner-next-btn:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}@media(prefers-reduced-motion:reduce){.puzzle-runner-next-btn{transition:none}.puzzle-runner-next-btn:hover{transform:none}}.puzzle-shortcuts-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#0a0c128c;display:grid;place-items:center;padding:1.5rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.puzzle-shortcuts-card{width:min(420px,100%);max-height:calc(100vh - 3rem);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.25rem 1.25rem;box-shadow:0 18px 40px #00000073;color:var(--text)}.puzzle-shortcuts-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.85rem}.puzzle-shortcuts-title{margin:0;font-size:1.05rem;font-weight:650}.puzzle-shortcuts-close{font:inherit;font-size:1.4rem;line-height:1;width:2rem;height:2rem;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer}.puzzle-shortcuts-close:hover{background:#ffffff0d;color:var(--text)}.puzzle-shortcuts-list{margin:0;display:grid;grid-template-columns:1fr;gap:.55rem}.puzzle-shortcuts-list>div{display:grid;grid-template-columns:4.5rem 1fr;align-items:center;gap:.65rem}.puzzle-shortcuts-list dt{margin:0}.puzzle-shortcuts-list dd{margin:0;font-size:.9rem}.puzzle-shortcuts-list kbd{font-family:ui-monospace,JetBrains Mono,SF Mono,Menlo,Consolas,monospace;font-size:.78rem;padding:.18rem .55rem;border-radius:5px;border:1px solid var(--line);background:var(--bg);color:var(--text);box-shadow:inset 0 -1px #0000002e}@media(prefers-reduced-motion:reduce){.puzzle-shortcuts-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skeleton{display:block;border-radius:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--panel) 75%,var(--bg)),color-mix(in srgb,var(--panel) 55%,var(--text) 4%),color-mix(in srgb,var(--panel) 75%,var(--bg)));background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;background:color-mix(in srgb,var(--panel) 65%,var(--bg))}}.skeleton-line{height:.85rem;width:100%;margin:.4rem 0}.skeleton-line--goal{height:1.1rem;width:75%;margin-bottom:.85rem}.skeleton-line--short{width:40%}.skeleton-board{width:100%;aspect-ratio:1 / 1;max-width:480px;border-radius:14px;margin:.5rem 0}.skeleton-toolbar{display:flex;gap:.5rem;margin:0 0 .75rem}.skeleton-chip{height:32px;width:92px;border-radius:8px}.puzzle-runner--skeleton{display:block!important}.puzzles-browse-skeleton{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;list-style:none;margin:.75rem 0 0;padding:0}.skeleton-card{height:160px;border-radius:12px}.puzzles-tracks-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:1rem}.puzzles-track-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem 1.15rem}.puzzles-track-head{display:grid;grid-template-columns:2.4rem 1fr auto;align-items:center;gap:.8rem;margin-bottom:.65rem}.puzzles-track-icon{font-size:1.7rem;line-height:1}.puzzles-track-title{margin:0;font-size:1.05rem;font-weight:650}.puzzles-track-blurb{margin:.1rem 0 0;font-size:.86rem;line-height:1.4}.puzzles-track-overall{text-align:right;display:grid;gap:.1rem}.puzzles-track-overall-pct{font-weight:650;font-size:.95rem}.puzzles-track-overall-count{font-size:.78rem}.puzzles-track-steps{list-style:decimal inside;margin:.4rem 0 0;padding:0;display:grid;gap:.65rem}.puzzles-track-step{background:color-mix(in srgb,var(--bg) 65%,var(--panel));border:1px solid var(--line);border-radius:10px;padding:.65rem .8rem .75rem;list-style-position:inside}.puzzles-track-step-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.2rem}.puzzles-track-step-label{font-weight:600;font-size:.94rem}.puzzles-track-step-count{font-size:.78rem}.puzzles-track-step-blurb{margin:0 0 .45rem;font-size:.83rem;line-height:1.4}.puzzles-track-step-bar{height:6px;border-radius:99px;background:var(--bg);border:1px solid var(--line);overflow:hidden;margin:.25rem 0 .55rem}.puzzles-track-step-bar-fill{height:100%;background:linear-gradient(90deg,#2563eb,#22c55e);transition:width .25s ease}@media(prefers-reduced-motion:reduce){.puzzles-track-step-bar-fill{transition:none}}.puzzles-track-step-btn{font-size:.82rem;padding:.3rem .85rem}@media(max-width:480px){.puzzles-track-head{grid-template-columns:2rem 1fr}.puzzles-track-overall{grid-column:1 / -1;text-align:left;display:flex;align-items:baseline;gap:.5rem}}.puzzles-concepts-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem}.puzzles-concept-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.85rem 1rem 1rem;display:flex;flex-direction:column;gap:.5rem}.puzzles-concept-card-title{margin:0;font-size:1rem;font-weight:650}.puzzles-concept-card-tier{font-size:.72rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.puzzles-concept-card-blurb{margin:0;font-size:.86rem;line-height:1.45}.puzzles-concept-card-meta{font-size:.78rem;color:var(--muted)}.puzzles-concept-card-actions{margin-top:auto;display:flex;gap:.5rem}.puzzles-streak-freeze{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .55rem;border-radius:99px;background:color-mix(in srgb,var(--panel) 80%,var(--bg));border:1px solid var(--line);font-size:.78rem;color:var(--muted);margin-left:.45rem}.puzzles-streak-freeze--active{border-color:#38bdf8;color:#bae6fd;background:#38bdf81f}
