@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&family=Source+Serif+4:wght@400;600;700&display=swap");:root{color-scheme:light;--bg-base:#f6f1e7;--bg-tint:#f0e8db;--bg-ink:#1d1a16;--bg-muted:#6f655a;--bg-card:#fffaf2;--accent:#1e4b3a;--accent-2:#c4a85a;--accent-3:#0f2e23;--stroke:#e2d7c4;--shadow:0 10px 30px rgba(20,15,10,.08);--radius-lg:28px;--radius-md:18px;--radius-sm:12px;--space-1:6px;--space-2:12px;--space-3:18px;--space-4:24px;--space-5:32px;--space-6:44px;--space-7:64px;--discover-card-width:240px;--discover-card-height:320px}*{box-sizing:border-box}body,html{padding:0;margin:0;font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;background:radial-gradient(1200px 600px at 20% 10%,#fdf8f0,var(--bg-base)) fixed;color:var(--bg-ink);min-height:100%}body::-webkit-scrollbar,html::-webkit-scrollbar{width:0;height:0}body,html{scrollbar-width:none}main{gap:var(--space-6)}.intro-page,main{display:flex;flex-direction:column;min-height:100vh}.intro-page{background:url(/bg-book.png) 50%/cover no-repeat}.intro-hero{flex:1 1;display:flex;align-items:center;padding:88px 6vw 32px}.intro-hero-inner{width:min(1120px,92vw);margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:32px;gap:32px;align-items:center;background:rgba(255,250,240,.92);border-radius:32px;padding:40px;box-shadow:0 18px 40px rgba(76,43,15,.2);border:1px solid rgba(165,120,64,.25)}.intro-copy h1{font-family:"Source Serif 4",Times New Roman,serif;font-size:40px;margin:12px 0}.intro-kicker{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#9a6b2f}.intro-copy p{font-size:16px;line-height:1.6;color:#3b2f0b}.intro-form{margin-top:20px;display:grid;grid-gap:10px;gap:10px}.intro-form label{font-size:13px;font-weight:600}.intro-form input{padding:12px 14px;border-radius:14px;border:1px solid rgba(165,120,64,.35);font-size:14px}.intro-form button{padding:12px 16px;border-radius:14px;background:#0f5132;color:#fff;font-weight:700;border:none}.intro-note{font-size:12px;color:#6b7280}.intro-error{font-size:12px;color:#b91c1c}.intro-visual img{width:100%;max-width:420px;display:block;margin:0 auto}.intro-tabs{padding:0 6vw 96px}.intro-tabs-inner{width:min(1120px,92vw);margin:0 auto;background:hsla(0,0%,100%,.92);border-radius:26px;padding:20px;border:1px solid rgba(165,120,64,.22);box-shadow:0 18px 36px rgba(76,43,15,.16)}.intro-tab-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin-bottom:16px}.intro-tab{border:1px solid rgba(165,120,64,.2);background:hsla(0,0%,100%,.9);border-radius:16px;padding:14px 12px;font-weight:700;color:#3b2f0b;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.intro-tab.active{background:#1e4b3a;color:#fff;border-color:transparent;box-shadow:0 10px 20px rgba(15,81,50,.35);transform:translateY(-1px)}.intro-tab-panel{background:hsla(0,0%,100%,.96);border-radius:22px;padding:26px;border:1px solid rgba(165,120,64,.18)}.intro-tab-panel h3{margin:0 0 8px}.intro-tab-dots{display:none;justify-content:center;gap:10px;margin-bottom:16px}.intro-dot{width:8px;height:8px;border-radius:999px;border:none;background:rgba(59,47,11,.35);cursor:pointer}.intro-dot.active{background:#1e4b3a;transform:scale(1.1)}@media (max-width:900px){.intro-hero-inner,.intro-tab-row{grid-template-columns:1fr}}@media (max-width:560px){.intro-hero{padding:32px 6vw 20px}.intro-hero-inner{padding:24px}.intro-copy h1{font-size:30px}.intro-tab-row{display:none}.intro-tab-dots{display:flex}}.page-bg{background-size:cover;background-repeat:no-repeat;background-position:top}.book-bg{background-image:url(/bg-book.png)}.profile-bg{background-image:url(/bg-profile.png)}.coming-bg{background-image:url(/bg-coming.png)}.brand-with-icon{display:inline-flex;align-items:center;gap:10px}.brand-with-icon img{width:28px;height:28px;object-fit:contain}.app-shell{min-height:100vh;display:flex;flex-direction:column}.container{width:min(1120px,92vw);margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) 0}.topbar-shell{background:rgba(255,250,242,.78);border:1px solid hsla(38,34%,83%,.9);border-radius:22px;padding:6px 16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 24px rgba(20,15,10,.08);margin-top:14px;position:-webkit-sticky;position:sticky;top:10px;z-index:30}.global-topbar{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:40;width:min(1120px,92vw);margin:0;background:rgba(255,250,242,.92);border:1px solid hsla(38,34%,83%,.9);border-radius:24px;padding:10px 18px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 24px rgba(20,15,10,.08)}.global-topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px}.global-left{gap:10px}.global-left,.global-nav{display:inline-flex;align-items:center}.global-nav{gap:12px;background:transparent;border:none;border-radius:0;padding:0}.global-nav-item{text-decoration:none;color:var(--bg-ink);font-weight:600;font-size:13px;padding:4px 10px;border-radius:999px}.global-nav-item:hover{background:rgba(30,75,58,.12)}.global-brand{font-family:"Source Serif 4",Times New Roman,serif;font-size:20px;font-weight:700;color:var(--bg-ink);text-decoration:none}.wallet-btn{border:1px solid var(--stroke);background:#fff;border-radius:999px;padding:6px 12px;font-weight:700;font-size:12px;cursor:pointer}.wallet-row{display:flex;align-items:center;justify-content:space-between;font-weight:700}.wallet-overlay{position:fixed;inset:0;background:rgba(15,10,8,.55);display:grid;place-items:center;z-index:70;padding:20px}.wallet-modal{width:min(520px,92vw);background:#fff;border:1px solid var(--stroke);border-radius:18px;padding:18px;display:grid;grid-gap:10px;gap:10px;position:relative;box-shadow:0 16px 30px rgba(0,0,0,.2)}.wallet-close{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:999px;background:#f3f4f6}.wallet-close,.wallet-refresh{border:none;cursor:pointer;font-weight:700}.wallet-refresh{background:transparent}.wallet-actions{display:inline-flex;align-items:center;gap:10px}.wallet-disconnect{border:1px solid #ef4444;background:#fef2f2;color:#b91c1c;border-radius:999px;padding:4px 10px;font-weight:700;cursor:pointer;font-size:12px}.wallet-address{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;color:var(--bg-muted);word-break:break-all}.wallet-balance{font-weight:700;font-size:14px}.wallet-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--bg-muted)}.wallet-tokens{display:grid;grid-gap:6px;gap:6px;max-height:160px;overflow:auto}.wallet-token{display:flex;justify-content:space-between;font-size:12px}.wallet-empty{font-size:12px;color:var(--bg-muted)}.wallet-error{font-size:12px;color:#b91c1c;font-weight:600}.topbar-shell .topbar{padding:10px 0}.topbar-centered{position:relative}.topbar-centered .brand-centered{position:absolute;left:50%;transform:translateX(-50%);width:max-content}.mobile-title{display:none;text-align:center;font-family:"Source Serif 4",Times New Roman,serif;font-size:28px;font-weight:800;margin-top:14px;color:#2b1b0a;text-shadow:0 8px 18px rgba(76,43,15,.35);position:relative;animation:titleFloat 10s ease-in-out infinite}.mobile-title:before{top:10px;width:12px;height:12px;border-radius:999px;background:radial-gradient(circle,#ffd36b 0,#ff9f1a 55%,rgba(255,200,120,0) 72%);box-shadow:0 0 14px rgba(255,195,80,.9),0 0 24px rgba(255,140,0,.6);animation:sparkleWander 10s ease-in-out infinite;pointer-events:none}.mobile-title:after,.mobile-title:before{content:"";position:absolute;left:50%;transform:translateX(-50%)}.mobile-title:after{bottom:-6px;width:120px;height:10px;background:radial-gradient(circle,rgba(255,234,176,.9),transparent 70%);filter:blur(6px);opacity:.9}.topbar-shell .brand strong{font-family:"Source Serif 4",Times New Roman,serif;font-size:28px;font-weight:800;color:#2b1b0a;text-shadow:0 8px 18px rgba(76,43,15,.35);position:relative;animation:titleFloat 10s ease-in-out infinite}.topbar-shell .brand strong:before{content:"";position:absolute;top:10px;left:50%;width:12px;height:12px;border-radius:999px;background:radial-gradient(circle,#ffd36b 0,#ff9f1a 55%,rgba(255,200,120,0) 72%);box-shadow:0 0 14px rgba(255,195,80,.9),0 0 24px rgba(255,140,0,.6);animation:sparkleWander 10s ease-in-out infinite;pointer-events:none;transform:translateX(-50%)}.topbar-shell .brand strong:after{content:"";position:absolute;left:50%;bottom:-6px;width:140px;height:10px;transform:translateX(-50%);background:radial-gradient(circle,rgba(255,234,176,.9),transparent 70%);filter:blur(6px);opacity:.9}@keyframes titleFloat{0%{transform:translateY(0);opacity:1}55%{transform:translateY(-6px);opacity:1}75%{transform:translateY(4px);opacity:.88}to{transform:translateY(0);opacity:1}}@keyframes sparkleWander{0%{transform:translate(-50%) scale(1);opacity:.95}30%{transform:translate(calc(-50% - 26px),-10px) scale(1.12)}50%{transform:translate(calc(-50% + 18px),8px) scale(.9);opacity:.6}65%{transform:translate(calc(-50% - 8px),16px) scale(1.05)}78%{transform:translate(calc(-50% + 28px),-12px) scale(1.15);opacity:.85}88%{transform:translate(calc(-50% - 16px),6px) scale(.92)}95%{transform:translate(calc(-50% + 8px),-6px) scale(1.06)}to{transform:translate(-50%) scale(1);opacity:.95}}@media (prefers-reduced-motion:reduce){.mobile-title,.mobile-title:before,.topbar-shell .brand strong,.topbar-shell .brand strong:before{animation:none}}.brand{display:flex;flex-direction:column;gap:4px}.brand span{text-transform:uppercase;letter-spacing:.28em;font-size:11px;color:var(--bg-muted)}.brand strong{font-family:"Source Serif 4",Times New Roman,serif;font-size:28px;font-weight:700}.brand-centered{align-items:center;text-align:center}.profile-chip{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border:1px solid var(--stroke);border-radius:999px;background:#fff;font-weight:600}.hero{display:grid;grid-template-columns:1.2fr 1fr;grid-gap:var(--space-5);gap:var(--space-5);padding:var(--space-5);background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--stroke)}.book-hero{align-items:center}.book-hero h1{font-size:42px}.book-hero p{max-width:460px}.hero h1{font-family:"Source Serif 4",Times New Roman,serif;font-size:38px;margin:0 0 var(--space-2)}.hero p{margin:0;color:var(--bg-muted);font-size:16px}.hero-meta{display:flex;flex-direction:column;gap:var(--space-3)}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.stat-card{padding:var(--space-3);border-radius:var(--radius-md);background:#fff;border:1px solid var(--stroke);display:flex;flex-direction:column;gap:6px}.stat-card span{font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:var(--bg-muted)}.stat-card strong{font-size:22px;font-weight:600}.section{display:flex;flex-direction:column;gap:var(--space-3)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.section-header h2{font-family:"Source Serif 4",Times New Roman,serif;font-size:26px;margin:0}.section-header p{margin:0;color:var(--bg-muted)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.stats-table{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px}.stats-table-wrap{padding:16px;border-radius:var(--radius-md);background:hsla(0,0%,100%,.7);border:1px solid var(--stroke);box-shadow:0 18px 30px rgba(76,43,15,.12)}.stats-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 6px;border-bottom:1px dashed rgba(165,120,64,.25);background:transparent}.stats-row:last-child{border-bottom:none}.stats-label{color:var(--bg-muted);font-size:13px;font-weight:600}.stats-value{font-weight:700;font-size:14px;color:var(--bg-ink);text-align:right}.opening-card{padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--stroke);background:#fff;display:flex;flex-direction:column;gap:10px}.opening-card header{display:flex;justify-content:space-between}.badge,.opening-card header{align-items:center;font-weight:600}.badge{display:inline-flex;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(30,75,58,.12);color:var(--accent-3);font-size:12px}.tag-row{display:flex;flex-wrap:wrap;gap:6px}.tag-row-scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tag-row-scroll::-webkit-scrollbar{display:none}.profile-input{padding:10px 14px;border-radius:999px;border:1px solid var(--stroke);background:#fff;font-size:14px;min-width:180px}.profile-input.compact{min-width:180px;height:36px;padding:6px 12px}.input-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.error{margin-top:var(--space-2);color:#8f2c2c;font-weight:500}.avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;border:1px solid var(--stroke)}.avatar.placeholder{display:grid;place-items:center;background:#efe6d7;color:var(--bg-muted);font-weight:600}.opening-image{width:100%;height:140px;object-fit:cover;border-radius:14px;border:1px solid var(--stroke)}.hero-image{width:100%;max-width:920px;display:block;margin:0 auto}.hero-wrap{position:relative}.hero-info{position:absolute;top:18px;right:18px;width:min(340px,90vw);background:rgba(255,250,240,.96);border:1px solid rgba(165,120,64,.35);border-radius:18px;padding:16px 16px 14px;box-shadow:0 16px 30px rgba(76,43,15,.2);color:#2f1d0f;z-index:2}.hero-info-icon{width:26px;height:26px;border-radius:999px;background:#0f6b3a;color:#fff;font-weight:700;display:grid;place-items:center;margin-bottom:10px}.hero-info-title{font-weight:700;font-size:16px;margin-bottom:6px}.hero-info-sub{font-size:12px;color:#5b4632;margin-bottom:10px}.hero-info-list{display:grid;grid-gap:8px;gap:8px;font-size:12px;color:#3b2f0b}.hero-info-item strong{color:#0f6b3a}.hero-info-close{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:999px;border:none;background:rgba(47,42,36,.08);color:#2f1d0f;font-weight:700;cursor:pointer}@media (min-width:900px){.hero-image{max-width:480px}}.hero-note{text-align:center;font-weight:600;color:var(--bg-ink);font-size:22px;display:grid;grid-gap:6px;gap:6px}.hero-line{display:block;position:relative;transform-origin:center;animation:heroFloat 10s ease-in-out infinite;text-shadow:0 6px 16px rgba(76,43,15,.2)}.hero-line-1{font-family:"Source Serif 4",Times New Roman,serif;font-size:24px;font-weight:700;color:#2b1b0a;animation-delay:0s}.hero-line-2{font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;font-size:18px;font-weight:600;color:#5a3b1a;animation-delay:.6s}.hero-line-3{font-family:"Source Serif 4",Times New Roman,serif;font-size:20px;font-weight:600;color:#3a2411;animation-delay:1.2s}.hero-line-4{font-family:IBM Plex Sans,system-ui,-apple-system,sans-serif;font-size:16px;font-weight:600;color:var(--accent-3);animation-delay:1.8s}.hero-line:after{content:"";position:absolute;inset:-6px -12px;border-radius:999px;background:radial-gradient(circle,rgba(255,243,210,.7),transparent 70%);opacity:0;z-index:-1;filter:blur(6px);animation:heroGlow 10s ease-in-out infinite}.hero-line-1:after{animation-delay:0s}.hero-line-2:after{animation-delay:.6s}.hero-line-3:after{animation-delay:1.2s}.hero-line-4:after{animation-delay:1.8s}@keyframes heroFloat{0%{transform:translateY(0) scale(1);opacity:1}45%{transform:translateY(-6px) scale(1.02);opacity:1}70%{transform:translateY(4px) scale(.98);opacity:.7}80%{transform:translateY(8px) scale(.96);opacity:.4}90%{transform:translateY(-2px) scale(1.01);opacity:.85}to{transform:translateY(0) scale(1);opacity:1}}@keyframes heroGlow{0%,to{opacity:.2;transform:scale(.96)}55%{opacity:.75;transform:scale(1.03)}82%{opacity:.35;transform:scale(.98)}}@media (prefers-reduced-motion:reduce){.hero-line,.hero-line:after{animation:none}}.weekly-banner{position:relative;border-radius:20px;overflow:hidden;min-height:220px;border:1px solid rgba(251,191,36,.35);box-shadow:0 12px 30px rgba(245,158,11,.25);cursor:pointer}.weekly-banner-bg{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.weekly-overlay{position:absolute;inset:0;background:rgba(0,0,0,.35)}.weekly-content{position:relative;z-index:2;padding:18px;color:#fff;max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center}.weekly-pill{background:#f7c948;color:#3b2f0b;display:inline-block;padding:6px 12px;border-radius:12px;font-size:11px;font-weight:800;letter-spacing:.18em}.weekly-body{display:flex;gap:24px;align-items:center;justify-content:center;margin:var(--space-3) auto 0;width:-moz-fit-content;width:fit-content}.weekly-label{font-size:12px;text-transform:uppercase;letter-spacing:.15em;opacity:.75}.weekly-meta{opacity:.85}.weekly-rewards{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}.weekly-rewards span{background:hsla(0,0%,100%,.2);padding:6px 10px;border-radius:10px;font-weight:600;font-size:12px}.weekly-image{width:150px;height:150px;border-radius:16px;overflow:hidden;background:hsla(0,0%,100%,.2);border:1px solid hsla(0,0%,100%,.2)}.weekly-image img{width:100%;height:100%;object-fit:cover}.weekly-fallback{width:100%;height:100%;display:grid;place-items:center;color:#fff;font-weight:700}.search-bar{display:flex;align-items:center;gap:10px;background:#fff;border-radius:16px;padding:12px 14px;border:1px solid var(--stroke)}.search-bar--nav{display:none}.search-bar--inline{gap:8px;padding:8px 12px;border-radius:999px;box-shadow:0 6px 14px rgba(0,0,0,.08)}.search-bar--inline input{min-width:140px;width:180px}.search-bar input{border:none;outline:none;flex:1 1;font-size:14px}.search-icon{font-size:18px}.search-icon-btn--solo{border:1px solid var(--stroke);background:#fff;border-radius:999px;padding:8px 10px;box-shadow:0 6px 14px rgba(0,0,0,.08);display:inline-flex;align-items:center;gap:6px}.search-icon-label{font-size:12px;font-weight:600;color:#3b2f0b}.search-card-modal{max-width:360px}.search-alert{margin-top:12px;padding:14px;border-radius:14px;background:rgba(239,68,68,.1);color:#b91c1c}.search-alert.error{background:rgba(239,68,68,.15)}.discover-subtitle{margin:10px 0 0;color:var(--bg-muted);font-weight:600}.search-results{margin-top:12px;display:grid;grid-gap:10px;gap:10px}.search-card{background:#fff;border-radius:16px;padding:12px 16px;border:1px solid rgba(139,92,246,.3);display:flex;justify-content:space-between;align-items:center}.search-card h4{margin:0 0 4px}.openings-list{display:grid;grid-gap:14px;gap:14px}.opening-row{display:grid;grid-template-columns:110px 1fr;grid-gap:16px;gap:16px;padding:16px;background:#fff;border-radius:20px;border:1px solid var(--stroke);box-shadow:var(--shadow)}.opening-thumb{width:100px;height:100px;border-radius:16px;overflow:hidden;background:#f1e6d4;display:grid;place-items:center}.opening-thumb img{width:100%;height:100%;object-fit:cover}.opening-info h4{margin:0 0 6px;font-size:18px}.opening-info p{margin:0 0 6px;color:var(--bg-muted);font-size:13px}.opening-moves{font-family:"Source Serif 4",Times New Roman,serif;font-size:13px}.opening-stats{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--accent-3);font-weight:600}.opening-actions{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}.action-btn{border:none;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;color:#fff}.action-practice{background:#2563eb}.action-learn{background:#16a34a}.action-stats{background:#f59e0b;color:#3b2f0b}.action-play{background:#0ea5e9}.discover-strip{display:grid;grid-auto-flow:column;grid-auto-columns:var(--discover-card-width);grid-gap:18px;gap:18px;overflow-x:auto;padding:0 4px 8px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;overscroll-behavior-x:contain;touch-action:pan-x;justify-content:start;align-content:start}.discover-slider{position:relative;display:flex;align-items:center;justify-content:center;padding:0 44px}.discover-slider-track{width:min(100%,calc(var(--discover-card-width) * 4 + 24px));overflow:hidden}.discover-arrow{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:999px;border:1px solid rgba(165,120,64,.5);background:#fff6ea;color:#6b3f12;font-size:22px;font-weight:700;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 18px rgba(76,43,15,.15);transition:transform .2s ease,background .2s ease,box-shadow .2s ease;z-index:2}.discover-arrow:hover{transform:translateY(-50%) scale(1.05);background:#ffe6cb;box-shadow:0 10px 22px rgba(76,43,15,.2)}.discover-arrow:active{transform:translateY(-50%) scale(.96)}.discover-arrow.left{left:10px}.discover-arrow.right{right:10px}.discover-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:6px;gap:6px;justify-content:start;justify-items:start}.discover-scroll{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:var(--discover-card-width);overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;overscroll-behavior-x:contain;touch-action:pan-x;justify-content:start;align-content:start}.discover-scroll::-webkit-scrollbar{height:0}.discover-scroll{scrollbar-width:none}.discover-strip::-webkit-scrollbar{height:0}.discover-strip{scrollbar-width:none}.discover-card{background:rgba(0,0,0,.4);color:#fff;border-radius:16px;overflow:hidden;width:var(--discover-card-width);min-height:var(--discover-card-height);display:grid;grid-gap:10px;gap:10px;padding:28px 12px 12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;position:relative;justify-items:center;scroll-snap-align:start}.discover-card--discovered{background:hsla(0,0%,100%,.92);color:var(--bg-ink);border:1px solid var(--stroke)}.discover-card--search{background:#ffe7cf;color:#3b2f0b;border:1px solid #f2caa0}.discover-card--goal{background:#fff4c2;color:#3b2f0b;border:1px solid #f1d888}.discover-card:hover{transform:translateY(-2px);box-shadow:0 10px 18px rgba(0,0,0,.25)}.discover-media{width:100%;aspect-ratio:1/1;border-radius:12px;background:hsla(0,0%,100%,.15);display:flex;align-items:center;justify-content:center;padding:0}.discover-media .discover-fallback,.discover-media img{width:92%;height:92%;border-radius:10px;object-fit:contain;object-position:center;display:grid;place-items:center;margin:0 auto}.discover-row{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;width:100%}.discover-row strong{font-size:16px;width:100%;display:block}.discover-meta{display:flex;flex-direction:column;gap:2px;font-size:11px;text-align:center;color:hsla(0,0%,100%,.78);min-height:28px}.discover-card--discovered .discover-meta,.discover-card--goal .discover-meta,.discover-card--search .discover-meta{color:#6b4f2b}.discover-kp{background:rgba(16,185,129,.2);color:#10b981;font-weight:700;font-size:12px;padding:6px 8px;border-radius:999px;white-space:nowrap}.discover-actions{display:flex;justify-content:stretch;gap:8px}.discover-actions .action-btn{width:100%;justify-content:center;text-decoration:none;display:inline-flex;align-items:center}.discover-pin{position:absolute;top:10px;right:10px;border:none;width:34px;height:34px;border-radius:999px;background:hsla(0,0%,100%,.85);display:grid;place-items:center;font-size:16px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.discover-pin.pinned{background:#fde68a;box-shadow:0 6px 12px rgba(245,158,11,.35)}.discover-pin:hover{transform:scale(1.05)}.discover-medal{position:absolute;top:10px;right:10px;width:56px;height:56px;border-radius:999px;display:grid;place-items:center;background:radial-gradient(circle at 30% 30%,#fff7d6,#f7c948 55%,#d39e28 100%);box-shadow:0 6px 16px rgba(245,158,11,.45);border:1px solid hsla(0,0%,100%,.7);overflow:hidden}.discover-medal img{width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 3px 6px rgba(122,83,14,.5))}.discover-medal:after{content:"";position:absolute;top:6px;left:-18px;width:50px;height:22px;background:linear-gradient(110deg,transparent,hsla(0,0%,100%,.8),transparent);transform:rotate(-20deg);opacity:.9}.discover-dot{position:absolute;top:6px;right:6px;min-width:20px;height:20px;padding:0 6px;background:#f59e0b;color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 10px rgba(245,158,11,.45);z-index:2}.discover-dot,.discover-medal-pill{border-radius:999px;font-size:11px;font-weight:700}.discover-medal-pill{background:#fde68a;color:#7c5a14;padding:4px 6px;text-transform:uppercase}.goal-empty{background:rgba(245,158,11,.08);border-radius:16px;padding:24px;text-align:center;border:1px dashed rgba(245,158,11,.3)}.goal-note{margin-bottom:12px;padding:10px 14px;border-radius:12px;background:rgba(239,68,68,.12);color:#b91c1c;font-weight:600;text-align:center}.modal-backdrop{position:fixed;inset:0;background:rgba(15,10,5,.7);display:grid;place-items:center;padding:24px;z-index:50}.modal-card{width:min(700px,92vw);max-height:90vh;overflow-y:auto;background:#fffaf2 url(/popupbg.png) 50%/cover no-repeat;border-radius:24px;border:1px solid var(--stroke);box-shadow:0 24px 60px rgba(0,0,0,.25);position:relative}.modal-card::-webkit-scrollbar{width:0;height:0}.modal-card{scrollbar-width:none}.modal-close{position:absolute;top:6px;right:6px;border:none;background:transparent;border-radius:999px;padding:0;cursor:pointer}.modal-close img{width:42px;height:42px;object-fit:contain}.modal-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;align-items:stretch}.modal-image{width:min(420px,100%);aspect-ratio:1/1;background:#f2e6d4;display:grid;place-items:center;padding:6px;border-radius:20px;border:1px solid var(--stroke)}.modal-image img{width:100%;height:100%;object-fit:contain;border-radius:14px}.modal-fallback{font-size:48px;color:var(--bg-muted)}.modal-body{padding:24px;display:grid;grid-gap:16px;gap:16px;margin-top:20px}.modal-body h3{margin:0;font-size:32px}.modal-top{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center}.modal-meta{font-size:13px;color:var(--bg-muted)}.modal-title-row{display:inline-flex;align-items:center;gap:10px}.modal-badge{width:38px;height:38px;object-fit:contain}.modal-section strong{display:block;margin-bottom:6px}.modal-section p{margin:0;color:var(--bg-muted);line-height:1.5;font-size:20px}.modal-copy{display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:6px 0}.modal-mainline{font-family:"Source Serif 4",Times New Roman,serif;color:var(--bg-ink);font-size:22px;text-align:center;width:min(520px,100%)}.modal-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.modal-plan-card{background:#fff;border-radius:14px;padding:12px 14px;border:1px solid var(--stroke)}.modal-plan-card p{margin:6px 0 0;color:var(--bg-muted);line-height:1.5}.modal-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.modal-tags span{background:#efe6d7;color:var(--bg-muted);padding:6px 10px;border-radius:999px;font-size:12px;font-weight:600}.modal-tags span:nth-child(4n+1){background:#e8f2ff;color:#31567a}.modal-tags span:nth-child(4n+2){background:#ecf7ee;color:#2f5f3c}.modal-tags span:nth-child(4n+3){background:#fff1dc;color:#7a4f17}.modal-tags span:nth-child(4n){background:#f3e9ff;color:#5b3c7a}.goal-icon{width:64px;height:64px;border-radius:50%;background:rgba(245,158,11,.15);display:grid;place-items:center;margin:0 auto 12px;font-size:24px}@media (max-width:900px){.opening-row,.weekly-body{grid-template-columns:1fr}}.profile-hero{display:flex;gap:var(--space-3);align-items:center}.profile-avatar{width:72px;height:72px;display:grid;place-items:center;border-radius:24px;background:#f3eadb;border:1px solid var(--stroke)}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.list{margin:10px 0 0;padding:0 0 0 18px;color:var(--bg-muted);line-height:1.6}.bottom-nav-wrap{height:calc(96px + env(safe-area-inset-bottom));position:fixed;left:0;right:0;bottom:0;z-index:9999}.bottom-nav-gradient{position:absolute;inset:0;background:linear-gradient(0deg,hsla(31,64%,64%,.95),hsla(31,64%,64%,.8) 35%,hsla(31,64%,64%,.3) 70%,hsla(31,64%,64%,0));pointer-events:none}.bottom-nav-inner-highlight{position:absolute;top:0;left:0;right:0;height:1px;background:transparent;pointer-events:none}.bottom-nav{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;padding:10px 12px calc(14px + env(safe-area-inset-bottom));background:#c4a574;border-top:1px solid hsla(0,0%,100%,.2);height:calc(80px + env(safe-area-inset-bottom));align-items:center;justify-items:center}.nav-item{border:none;background:transparent;padding:0;font-weight:600;cursor:pointer;text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font-size:12px;height:78px}.nav-icon{width:46px;height:46px;object-fit:contain;margin-bottom:4px;transition:all .2s ease}.nav-item.active .nav-icon{width:54px;height:54px;margin-bottom:6px}@media (max-width:560px){.bottom-nav-wrap{height:calc(104px + env(safe-area-inset-bottom))}.bottom-nav{height:calc(86px + env(safe-area-inset-bottom))}.nav-item{height:82px}}.nav-item.active{color:#fff}.nav-item.muted{color:var(--bg-muted);background:#f6efe5;cursor:not-allowed}@media (max-width:700px){.bottom-nav{padding:5px 12px 12px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}}.tag{border-radius:999px;padding:4px 10px;background:#f2ece2;font-size:12px;color:var(--bg-muted)}.cta{border:none;border-radius:999px;padding:10px 18px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.cta.small{padding:8px 14px;font-size:13px}.icon-btn{border:none;background:transparent;padding:0;font-size:18px;font-weight:700;color:var(--accent-3);cursor:pointer}.icon-btn:disabled{opacity:.5;cursor:default}.connect-label{border:1px solid var(--stroke);background:#fff;border-radius:999px;padding:8px 14px;font-weight:600;color:var(--bg-ink);cursor:pointer}.connect-inline{display:inline-flex;align-items:center;gap:10px}.connect-backdrop{position:fixed;inset:0;background:rgba(20,16,10,.5);display:grid;place-items:center;z-index:10050}.connect-card{width:min(360px,88vw);border-radius:18px;border:1px solid var(--stroke);padding:20px;grid-gap:12px;gap:12px;box-shadow:0 20px 50px rgba(0,0,0,.25)}.connect-card,.deep-scan-card{background:#fffaf2;display:grid;position:relative}.deep-scan-card{width:min(680px,92vw);border-radius:20px;border:1px solid var(--stroke);padding:18px;grid-gap:10px;gap:10px;box-shadow:0 24px 60px rgba(0,0,0,.3)}.deep-scan-note{margin:0;font-size:13px;color:#6b4f2b}.deep-scan-hint{margin:0;padding:10px 12px;border-radius:12px;background:rgba(15,107,58,.08);border:1px solid rgba(15,107,58,.25);color:#0f6b3a;font-size:12px;font-weight:600}.deep-scan-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));grid-gap:12px;gap:12px}.deep-scan-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:4px;flex-wrap:wrap}.deep-scan-actions .connect-btn,.deep-scan-actions .deep-scan-cancel{padding:8px 14px;font-size:13px;border-radius:999px}.deep-scan-field{display:grid;grid-gap:6px;gap:6px;font-size:12px;font-weight:600;color:#3b2f0b}.deep-scan-field input,.deep-scan-field select{border:1px solid var(--stroke);border-radius:12px;padding:9px 10px;font-size:13px;background:#fffdf6;color:#2f1d0f}.deep-scan-cancel{border:none;border-radius:12px;padding:10px 12px;background:#2f2a24;color:#f2d3a3;font-weight:700;cursor:pointer}.deep-scan-error{color:#8f2c2c;font-size:13px}@media (max-width:700px){.deep-scan-grid{grid-template-columns:1fr}}.connect-card h4{margin:6px 0 0;font-size:18px}.connect-input{border:1px solid var(--stroke);border-radius:12px;padding:10px 12px;font-size:14px}.connect-btn{border:none;border-radius:12px;padding:10px 12px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}.connect-error{color:#8f2c2c;font-size:13px}.connect-close{position:absolute;top:8px;right:8px;border:none;background:transparent;cursor:pointer;padding:0}.connect-close img{width:28px;height:28px;object-fit:contain}.league-page{min-height:100vh;background:#000;position:relative;color:#fff;padding-bottom:40px}.league-center-label{max-width:720px;margin:140px auto 0;padding:28px 32px;text-align:center;border-radius:28px;background:rgba(255,245,228,.9);border:1px solid rgba(165,120,64,.25);box-shadow:0 18px 40px rgba(76,43,15,.2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#2b1b0a}.league-center-label h1{margin:0 0 12px;font-size:32px}.league-center-label p{margin:0;font-size:17px;line-height:1.5;color:#4a2d12}@media (max-width:720px){.league-center-label{margin:120px 16px 0;padding:22px 18px;border-radius:22px}.league-center-label h1{font-size:24px}.league-center-label p{font-size:15px}}.league-page:before{content:"";position:absolute;inset:0;background:url(/league-bg.png) 50%/cover no-repeat;opacity:.35}.league-overlay{position:absolute;inset:0;background:radial-gradient(circle at top,rgba(0,0,0,.6),rgba(0,0,0,.9))}.league-content{position:relative;z-index:2;padding:60px 0;display:flex;justify-content:center}.league-card{width:min(520px,92vw);background:rgba(8,12,22,.9);border-radius:20px;padding:32px;text-align:center;border:1px solid rgba(103,234,238,.2);box-shadow:0 20px 50px rgba(0,0,0,.45)}.league-lock{width:120px;height:120px;border-radius:60px;margin:0 auto 20px;display:grid;place-items:center;background:rgba(103,234,238,.15);border:3px solid rgba(103,234,238,.4);animation:pulseGlow 2.4s ease-in-out infinite}.league-lock-icon{font-size:52px}.league-card h1{margin:0 0 8px;font-size:28px}.league-subtitle{color:hsla(0,0%,100%,.7);margin:0 0 24px;line-height:1.5}.league-reqs{display:grid;grid-gap:16px;gap:16px;margin-bottom:24px}.league-req{display:flex;gap:14px;align-items:center;padding:18px;border-radius:16px;border:2px solid hsla(0,0%,100%,.15);background:hsla(0,0%,100%,.08);text-align:left}.league-req strong{display:block;font-size:18px;margin-bottom:4px}.league-req span{color:hsla(0,0%,100%,.65);font-size:14px}.league-req-icon{width:48px;height:48px;border-radius:24px;display:grid;place-items:center;background:rgba(103,234,238,.2);font-size:26px}.league-cta-row{display:grid;grid-gap:12px;gap:12px;margin-bottom:18px}.league-cta{border:none;border-radius:16px;padding:14px 18px;background:#67eaee;color:#014c85;font-weight:700;cursor:pointer}.league-cta.ghost{background:rgba(103,234,238,.2);color:#67eaee}.league-foot{color:hsla(0,0%,100%,.5);font-size:13px;line-height:1.5}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 rgba(103,234,238,.4)}50%{box-shadow:0 0 24px rgba(103,234,238,.5)}}.subtle{color:var(--bg-muted);font-size:14px}@media (max-width:900px){.hero,.modal-media,.modal-plan-grid,.stat-grid{grid-template-columns:1fr}}@media (max-width:560px){.coming-bg .topbar-shell,.global-topbar{display:none}.page-bg{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.search-bar--page{display:flex;width:min(240px,86vw);margin:10px auto 16px;justify-content:center}.search-bar--inline{width:min(220px,80vw);margin-left:auto}.search-bar--nav{display:none}.search-bar--page input{font-size:13px}.modal-card{width:88vw;max-height:92vh}.topbar-centered .brand-centered{display:none}.mobile-title{display:block}.modal-body{padding:16px;gap:12px;text-align:center}.modal-image{width:min(300px,78vw);aspect-ratio:1/1;margin:0 auto}.modal-copy{align-items:center}.modal-section strong{text-align:center}.modal-mainline{font-size:13px;padding:8px 10px}.modal-chip,.modal-tags span{font-size:11px;padding:5px 8px}.hero-image{max-width:280px}}@media (min-width:561px){.topbar,.topbar-shell{display:none}.page-bg{padding-top:90px}.bottom-nav,.pp-actions{display:none}}@media (min-width:900px){.page-bg{background-attachment:fixed}}.player-profile-bg{background-image:url(/background-1767877446497.png)}.player-profile{color:#111827}.player-profile-state{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#1a1a2e,#0a0a0f);color:#fff;text-align:center;padding:24px}.pp-state-card{display:flex;flex-direction:column;align-items:center;gap:16px}.pp-error-card .pp-icon{width:64px;height:64px;color:#ef4444}.pp-state-card h2{margin:0;font-size:18px}.pp-state-card p{margin:0;color:#9ca3af}.pp-spinner{width:42px;height:42px;border-radius:50%;border:4px solid hsla(0,0%,100%,.2);border-top-color:#8b5cf6;animation:pp-spin 1s linear infinite}@keyframes pp-spin{to{transform:rotate(1turn)}}.pp-retry{border:none;border-radius:12px;padding:10px 18px;background:#8b5cf6;color:#fff;font-weight:700;cursor:pointer}.pp-shell{width:min(980px,92vw);margin:0 auto;padding:24px 0 120px;display:flex;flex-direction:column;gap:16px}.pp-header-card{padding:16px;border-radius:20px;background:hsla(0,0%,100%,0)}.pp-header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.pp-menu-btn{border:none;background:#fff;width:38px;height:38px;border-radius:12px;font-size:18px;display:grid;place-items:center;box-shadow:0 6px 14px rgba(0,0,0,.15)}.pp-drawer-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:9999;display:flex;justify-content:flex-end}.pp-drawer{width:min(320px,88vw);height:100%;background:#fffaf0;padding:18px;box-shadow:-10px 0 30px rgba(0,0,0,.25);display:flex;flex-direction:column;gap:16px}.pp-drawer-header{display:flex;align-items:center;justify-content:space-between}.pp-drawer-header h3{margin:0}.pp-drawer-close{border:none;background:#fff;width:32px;height:32px;border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.15)}.pp-drawer-section h4{margin:0 0 8px;font-size:14px;color:#3b2f0b;text-transform:uppercase;letter-spacing:.06em}.pp-drawer-btn{width:100%;padding:10px 12px;border-radius:12px;border:1px solid rgba(165,120,64,.35);background:#fff;font-weight:600;margin-bottom:8px}.pp-drawer-btn.danger{background:#fee2e2;border-color:#fca5a5;color:#b91c1c}.pp-drawer-hint{font-size:12px;color:#6b7280;word-break:break-all}.pp-drawer-error{color:#b91c1c;font-size:12px}.pp-drawer-form{display:grid;grid-gap:8px;gap:8px}.pp-drawer-note{margin:0 0 2px;font-size:12px;color:#6b7280}.pp-drawer-form input,.pp-drawer-form textarea{width:100%;border-radius:10px;border:1px solid rgba(165,120,64,.35);padding:8px 10px;font-size:13px;background:#fff}.pp-drawer-footer{margin-top:auto}.pp-welcome{display:flex;gap:14px;align-items:flex-start;padding:16px;border-radius:18px;background:rgba(255,250,235,.95);border:1px solid rgba(165,120,64,.25);box-shadow:0 10px 24px rgba(76,43,15,.12);margin-bottom:16px;position:relative;width:100%;animation:welcomeShake 5s infinite}.pp-sync-banner{width:100%;background:rgba(255,244,194,.95);border:1px solid rgba(245,158,11,.35);color:#7c4a03;padding:12px 14px;border-radius:14px;font-size:13px;font-weight:600;margin-bottom:14px;box-shadow:0 10px 20px rgba(245,158,11,.12)}.pp-welcome h3{margin:0 0 8px;font-size:18px;color:#2b1b0a}.pp-welcome p{margin:0 0 6px;color:#3b2f0b;font-size:14px;line-height:1.5}.pp-welcome-strong{font-weight:700}.pp-welcome-close{border:none;background:#fff;width:32px;height:32px;border-radius:10px;box-shadow:0 4px 10px rgba(0,0,0,.15);position:absolute;top:12px;right:12px;display:grid;place-items:center}.pp-welcome-close img{width:18px;height:18px}@keyframes welcomeShake{0%,80%,to{transform:translateX(0)}82%{transform:translateX(-4px)}84%{transform:translateX(4px)}86%{transform:translateX(-3px)}88%{transform:translateX(3px)}90%{transform:translateX(0)}}@media (min-width:561px){.pp-drawer-overlay,.pp-menu-btn{display:none}}.pp-actions{gap:8px}.pp-actions,.pp-user{display:flex;align-items:center}.pp-user{gap:14px;flex:1 1;min-width:0}.pp-avatar{width:70px;height:70px;border-radius:999px;border:3px solid #8b5cf6;background:#8b5cf6;display:grid;place-items:center;overflow:hidden;flex-shrink:0}.pp-avatar img{width:100%;height:100%;object-fit:cover}.pp-avatar span{color:#fff;font-size:28px;font-weight:700}.pp-user-text{flex:1 1;min-width:0}.pp-username{color:#fff;font-size:45px;font-weight:800;text-shadow:0 3px 6px rgba(0,0,0,.9);animation:pp-float 3.6s ease-in-out infinite}@keyframes pp-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.pp-subtitle{color:#fff;font-size:13px;margin-top:2px;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.7)}.pp-settings{width:40px;height:40px;border-radius:999px;border:none;background:#f3f4f6;display:grid;place-items:center;cursor:pointer;flex-shrink:0}.pp-settings .pp-icon{width:22px;height:22px;color:#1f2937}.pp-icon{width:16px;height:16px}.pp-badges{display:flex;gap:8px;margin:6px 0 18px;flex-wrap:wrap;justify-content:center;padding:0 6px}.pp-badge{background:#fff4c2;padding:6px 12px;border-radius:12px;border:1.5px solid #fde68a;color:#111827;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:6px;box-shadow:0 2px 6px rgba(245,158,11,.35)}.pp-badge .pp-icon{width:12px;height:12px}.pp-ratings{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:8px;gap:8px;padding-bottom:2px}.pp-ratings::-webkit-scrollbar{height:0}.pp-ratings{scrollbar-width:none}.pp-rating-card{background:hsl(var(--rating-hue,30deg) 80% 96%);border-radius:14px;padding:10px 12px;border:1px solid hsla(0,0%,100%,.7);min-width:0;display:flex;flex-direction:column;align-items:center;position:relative;overflow:hidden;transform-origin:center;box-shadow:0 6px 16px rgba(17,24,39,.08);filter:drop-shadow(0 8px 18px rgba(76,43,15,.18));animation:ratingFloat 10s ease-in-out infinite}.pp-rating-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,hsla(0,0%,100%,.9),transparent 45%),linear-gradient(135deg,rgba(255,208,128,.3),rgba(99,102,241,.25));opacity:.6;mix-blend-mode:screen;z-index:0;filter:hue-rotate(var(--rating-hue,0deg));animation:ratingGlow 10s ease-in-out infinite}.pp-rating-card:after{content:"";position:absolute;inset:1px;border-radius:12px;background:hsla(0,0%,100%,.9);opacity:.55;z-index:0}.pp-rating-card>*{position:relative;z-index:1}.pp-rating-card:first-child{--rating-hue:25deg;animation-delay:0s}.pp-rating-card:nth-child(2){--rating-hue:140deg;animation-delay:.5s}.pp-rating-card:nth-child(3){--rating-hue:200deg;animation-delay:1s}.pp-rating-card:nth-child(4){--rating-hue:280deg;animation-delay:1.5s}.pp-rating-badges{position:absolute;top:6px;right:6px;display:flex;gap:4px}.pp-rating-badge{width:18px;height:18px;border-radius:999px;display:grid;place-items:center}.pp-rating-badge svg{width:11px;height:11px}.pp-rating-badge.is-favorite{background:#fde68a;color:#b45309}.pp-rating-badge.is-best{background:#bbf7d0;color:#166534}.pp-rating-icon svg{width:20px;height:20px;color:hsl(var(--rating-hue,30deg) 55% 30%)}.pp-rating-icon{display:grid;place-items:center}.pp-rating-current{color:#111827;font-size:24px;font-weight:800;margin-top:4px;background:linear-gradient(120deg,#111827 10%,hsl(var(--rating-hue,30deg) 55% 45%) 90%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 18px hsla(0,0%,100%,.35)}.pp-rating-best{color:#6b7280;font-size:11px;margin-top:2px}.pp-rating-meta{color:#9ca3af;font-size:10px;margin-top:2px}.pp-rating-note{margin-top:16px;text-align:center;line-height:1.5}.pp-rating-note.hero-note{color:var(--bg-ink);font-weight:600}@keyframes ratingFloat{0%{transform:translateY(0) scale(1);opacity:1}35%{transform:translateY(-6px) scale(1.03);opacity:1}60%{transform:translateY(4px) scale(.98);opacity:.6}70%{transform:translateY(8px) scale(.96);opacity:.25}85%{transform:translateY(-4px) scale(1.02);opacity:.8}to{transform:translateY(0) scale(1);opacity:1}}@keyframes ratingGlow{0%,to{opacity:.45}55%{opacity:.85}82%{opacity:.35}}@media (prefers-reduced-motion:reduce){.pp-rating-card,.pp-rating-card:before{animation:none}}.pp-analysis{background:#fff;border-radius:20px;padding:16px;box-shadow:0 2px 8px rgba(0,0,0,.08);overflow-x:hidden}.pp-keycards{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);grid-gap:14px;gap:14px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x}.pp-keycards::-webkit-scrollbar{height:0}.pp-keycard{background:hsla(0,0%,100%,.92);border-radius:18px;padding:14px 16px;border:1px solid rgba(165,120,64,.25);box-shadow:0 10px 24px rgba(76,43,15,.12);scroll-snap-align:start}.pp-keycard h3{margin:0 0 10px;font-size:16px;color:#2b1b0a}.pp-key-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed rgba(165,120,64,.2);font-size:13px}.pp-key-row:last-child{border-bottom:none}.pp-key-row span{color:#6b7280}.pp-key-row strong{color:#1f2937}.pp-key-subtitle{margin:8px 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#9a6b2f;font-weight:700}.pp-analysis-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.pp-analysis-btn{border:none;background:#0f172a;color:#fff;padding:10px 16px;border-radius:999px;font-weight:700;box-shadow:0 8px 18px rgba(15,23,42,.2);cursor:pointer}.pp-analysis-btn:disabled{opacity:.6;cursor:default}.pp-analysis-empty{background:#f8fafc;border-radius:16px;padding:18px;margin-bottom:16px;border:1px dashed rgba(15,23,42,.2)}.pp-analysis-queued{background:rgba(15,107,58,.08);border:1px solid rgba(15,107,58,.25);border-radius:14px;padding:12px 14px;margin-bottom:12px;font-size:13px;color:#0f6b3a;font-weight:600}.pp-analysis-openings{background:#fff7ed;border-radius:16px;padding:16px;margin-bottom:16px;border:1px solid rgba(180,83,9,.2)}.pp-analysis-openings.compact{padding:12px;margin-bottom:12px}.pp-analysis-openings.compact h3{font-size:15px;margin-bottom:10px}.pp-analysis-openings.compact .pp-openings-summary strong{font-size:13px}.pp-openings-summary{display:grid;grid-gap:10px;gap:10px}.pp-openings-summary span{font-size:12px;color:#6b7280}.pp-openings-summary strong{display:block;font-size:14px;color:#1f2937}.pp-analysis-header h2{margin:0;font-size:18px;color:#1f2937;display:flex;align-items:center;gap:8px;text-shadow:none}.pp-leads{background:#fef3c7;padding:4px 10px;border-radius:10px;display:inline-flex;align-items:center;gap:4px;color:#d97706;font-size:11px;font-weight:600}.pp-leads .pp-icon{width:12px;height:12px}.pp-tabs{display:flex;background:#f3f4f6;border-radius:12px;padding:4px;margin-bottom:16px;gap:4px;flex-wrap:wrap}.pp-tab{flex:1 1;min-width:90px;border:none;background:transparent;border-radius:10px;padding:10px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:700;cursor:pointer}.pp-tab-text{display:inline-block}.pp-tab .pp-icon{width:16px;height:16px}.pp-tab.strengths{color:#10b981}.pp-tab.strengths.active{background:#10b981;color:#fff}.pp-tab.tips{color:#6b7280}.pp-tab.tips.active{background:#6b7280;color:#fff}.pp-tab.improve{color:#ef4444}.pp-tab.improve.active{background:#ef4444;color:#fff}.pp-tab.openings{color:#111827}.pp-tab.openings.active{background:#111827;color:#fff}.pp-tab.details{color:#0f6b3a}.pp-tab.details.active{background:#0f6b3a;color:#fff}.pp-tab-body{min-height:240px}@media (max-width:560px){.pp-tab-body{min-height:330px}}.pp-list{display:flex;flex-direction:column;gap:10px}.pp-improve{display:grid;grid-gap:16px;gap:16px}.pp-improve-block h4{margin:0 0 8px;font-size:14px;color:#1f2937}.pp-list-item{display:flex;gap:10px;align-items:flex-start}.pp-list-item p{margin:0;color:#374151;font-size:14px;line-height:20px}.pp-dot{width:6px;height:6px;border-radius:999px;margin-top:6px}.pp-list-item.strengths .pp-dot{background:#10b981}.pp-list-item.tips .pp-dot{background:#6b7280}.pp-list-item.improve .pp-dot{background:#ef4444}.pp-analysis-strengths{display:flex;flex-direction:column;gap:16px}.pp-analysis-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:12px;gap:12px}.pp-analysis-card{background:#f8fafc;border-radius:14px;padding:12px;border:1px solid rgba(15,23,42,.1)}.pp-analysis-card span{display:block;color:#6b7280;font-size:12px}.pp-analysis-card strong{display:block;font-size:16px;color:#1f2937;margin-top:4px}.pp-analysis-summary-text{background:rgba(15,23,42,.05);border-radius:12px;padding:12px;color:#374151;font-size:13px;line-height:1.6}.pp-details{display:grid;grid-gap:18px;gap:18px;max-width:100%;overflow-x:hidden}.pp-detail-section h3{margin:0 0 8px;font-size:15px;color:#1f2937}.pp-detail-section,.pp-trend{max-width:100%}.pp-trend{background:#fff;border:1px solid rgba(165,120,64,.2);border-radius:16px;padding:12px;overflow:hidden}.pp-trend-chart{width:100%;height:160px;display:block}.pp-trend-line{fill:none;stroke-width:3}.pp-trend-line.win{stroke:#16a34a}.pp-trend-line.score{stroke:#f59e0b}.pp-trend-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;font-weight:600;color:#374151;margin-top:8px}.pp-trend-legend .score:before,.pp-trend-legend .win:before{content:"";display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:6px}.pp-trend-legend .win:before{background:#16a34a}.pp-trend-legend .score:before{background:#f59e0b}.pp-trend-openings{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;font-size:11px;color:#4b5563;max-width:100%}.pp-trend-opening{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:rgba(15,23,42,.06);min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-trend-dot{width:8px;height:8px;border-radius:999px;display:inline-block}.pp-trend-sub{margin-top:6px;font-size:11px;color:#6b7280}@media (max-width:560px){.pp-trend{padding:10px}.pp-trend-chart{height:140px}.pp-trend-legend{gap:10px;font-size:11px}.pp-trend-openings{gap:6px}.pp-trend-opening{font-size:10px;padding:4px 6px}}.pp-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px;max-width:100%}.pp-detail-card{background:#fff;border:1px solid rgba(165,120,64,.2);border-radius:14px;padding:12px}.pp-detail-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#9a6b2f;font-weight:700}.pp-detail-value{display:block;font-size:18px;color:#1f2937;margin:6px 0}.pp-detail-meta{font-size:12px;color:#6b7280}.pp-detail-table-grid{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px}.pp-detail-table{background:#fff;border:1px solid rgba(165,120,64,.2);border-radius:14px;padding:12px;display:grid;grid-gap:6px;gap:6px;overflow-x:auto}.pp-detail-table-title{font-weight:700;font-size:13px;color:#1f2937;margin-bottom:4px}.pp-detail-row{display:grid;grid-template-columns:minmax(120px,1.4fr) repeat(4,minmax(60px,1fr));grid-gap:8px;gap:8px;font-size:12px;color:#374151;align-items:center;min-width:420px}.pp-detail-row.trend{grid-template-columns:minmax(90px,1fr) repeat(4,minmax(80px,.7fr)) minmax(160px,1.2fr);min-width:620px}.pp-detail-row.openings{grid-template-columns:minmax(120px,1.1fr) minmax(60px,.4fr) minmax(160px,1.4fr) minmax(140px,1.2fr) repeat(6,minmax(90px,.7fr));min-width:980px}.pp-detail-row.repertoire{grid-template-columns:minmax(140px,1.2fr) repeat(12,minmax(80px,.7fr));min-width:1120px}.pp-detail-row.header{font-weight:700;color:#9a6b2f;font-size:11px;text-transform:uppercase}.pp-detail-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-detail-bucket{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:#1f2937}.pp-detail-dot{width:10px;height:10px;border-radius:999px;border:1px solid #9ca3af;background:#f8fafc;display:inline-block}.pp-detail-bucket.black .pp-detail-dot{background:#111827}.pp-detail-bucket.white .pp-detail-dot{background:#f8fafc}.pp-detail-bucket.neutral .pp-detail-dot{background:#d1d5db}.pp-matrix{background:#fff7ed;border-radius:16px;padding:14px;border:1px solid rgba(180,83,9,.2)}.pp-matrix h4{margin:0 0 10px;font-size:14px;color:#1f2937}.pp-matrix-grid{display:grid;grid-template-columns:minmax(140px,1.2fr) repeat(2,minmax(80px,1fr));grid-gap:6px;gap:6px}.pp-matrix-grid .pp-matrix-cell{background:hsla(0,0%,100%,.8);border-radius:10px;padding:8px;font-size:12px;color:#374151;display:flex;flex-direction:column;gap:2px;align-items:flex-start;justify-content:center}.pp-matrix-grid .pp-matrix-cell.header{background:transparent;border:none;font-weight:700;color:#9a6b2f}.pp-matrix-grid .pp-matrix-cell.row-head{font-weight:700;color:#1f2937;background:hsla(0,0%,100%,.6)}.pp-matrix-grid .pp-matrix-cell strong{font-size:13px;color:#1f2937}.pp-matrix-grid .pp-matrix-cell span{font-size:11px;color:#6b7280}@media (max-width:600px){.pp-matrix-grid{grid-template-columns:minmax(120px,1fr) repeat(2,minmax(70px,1fr))}}.pp-nemesis{background:#fef2f2;border-radius:12px;padding:12px;margin-top:8px;border:1px solid #fecaca}.pp-nemesis-title{display:flex;align-items:center;gap:6px;margin-bottom:6px;color:#dc2626;font-size:12px;font-weight:700}.pp-nemesis-title .pp-icon{width:14px;height:14px}.pp-nemesis-name{color:#7f1d1d;font-size:14px;font-weight:600}.pp-nemesis-sub{color:#991b1b;font-size:12px;margin-top:2px}.pp-openings-header h3{margin:0;color:#1f2937;font-size:14px}.pp-openings-header p{margin:4px 0 0;color:#6b7280;font-size:12px}.pp-openings-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px;margin-top:12px}.pp-openings-card{background:#f9fafb;border-radius:12px;padding:12px;color:#4b5563;font-size:13px}.pp-openings-card span{display:block;color:#1f2937;font-size:12px;font-weight:700;margin-bottom:8px}.pp-openings-sub{margin-top:10px}.pp-recent{margin-top:16px}.pp-recent-title{color:#fff;font-size:24px;font-weight:600;text-align:center;margin:16px 0 8px;text-shadow:0 2px 6px rgba(0,0,0,.6)}.pp-recent-list,.pp-recent-placeholder-list{display:grid;grid-gap:12px;gap:12px}.pp-recent-card,.pp-recent-placeholder-card{position:relative;border-radius:24px;overflow:hidden;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 8px rgba(0,0,0,.1)}.pp-recent-card{cursor:pointer}.pp-recent-card-bg{position:absolute;inset:0;background:hsla(0,0%,100%,.9)}.pp-recent-row{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px}.pp-recent-result{width:48px;height:48px;border-radius:999px;display:grid;place-items:center;color:#fff;font-size:20px;font-weight:700;flex-shrink:0}.pp-recent-middle{display:flex;align-items:center;gap:12px}.pp-recent-info,.pp-recent-middle{flex:1 1;min-width:0}.pp-recent-name{font-size:13px;font-weight:700;color:#111827;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pp-recent-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:11px;color:#6b7280}.pp-recent-rating{padding:2px 6px;border-radius:6px;font-weight:700;font-size:11px}.pp-recent-rating.light{background:#e0e0e0;color:#424242}.pp-recent-rating.dark{background:#424242;color:#e0e0e0}.pp-recent-opening{font-size:11px;color:#9ca3af}.pp-recent-opening.has{color:#2563eb}.pp-recent-scan{width:56px;height:56px;object-fit:contain;flex-shrink:0}.pp-recent-elo{text-align:right;color:#111827;flex-shrink:0}.pp-recent-elo span{font-size:11px;color:#6b7280}.pp-recent-elo strong{display:block;font-size:15px;font-weight:700}.pp-recent-elo em{display:block;font-size:11px;font-style:normal;font-weight:700}.pp-recent-elo em.up{color:#10b981}.pp-recent-elo em.down{color:#ef4444}.pp-recent-placeholder-card{background:linear-gradient(135deg,#e0f2fe,#bfdbfe)}.pp-recent-placeholder-card .pp-recent-row{padding:12px}.pp-recent-result.placeholder{background:#67eaee;font-size:22px}.placeholder-bar{height:10px;border-radius:6px;background:rgba(9,136,169,.7);width:120px}.placeholder-bar.small{width:70px;height:8px}.placeholder-bar.tiny{width:36px;height:8px}.placeholder-circle{width:36px;height:36px;border-radius:999px;background:rgba(9,136,169,.7)}.pp-recent-empty{margin-top:18px;text-align:center;color:#014c85}.pp-recent-empty-icon{width:64px;height:64px;border-radius:999px;background:#67eaee;display:grid;place-items:center;margin:0 auto 12px;font-size:28px;color:#fff}.pp-recent-empty h3{margin:0 0 6px;font-size:16px}.pp-recent-empty p{margin:0;font-size:13px;color:#0376b5}.pp-game-overlay{position:fixed;inset:0;background:rgba(10,10,15,.6);display:grid;place-items:center;z-index:60;padding:20px}.pp-game-modal{width:min(520px,92vw);background:#fffaf2;border-radius:20px;padding:20px;position:relative;box-shadow:0 12px 30px rgba(0,0,0,.2)}.pp-game-close{position:absolute;top:12px;right:12px;border:none;background:#f3f4f6;width:32px;height:32px;border-radius:999px;cursor:pointer;font-weight:700}.pp-game-title{margin:0 0 10px;font-size:20px;font-weight:700;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pp-game-user{color:#1f2937}.pp-game-opponent{color:#b45309}.pp-game-vs{color:#6b7280;font-size:14px}.pp-game-opening{margin-bottom:12px;color:#374151}.pp-game-goal-btn{border:none;border-radius:999px;padding:10px 16px;background:#1e4b3a;color:#fff;font-weight:700;cursor:pointer}.pp-game-note{margin-top:10px;padding:8px 10px;border-radius:10px;background:rgba(245,158,11,.15);color:#92400e;font-weight:600}.pp-game-elo{margin-top:12px;font-weight:700}.pp-game-elo .up{color:#10b981}.pp-game-elo .down{color:#ef4444}@media (max-width:700px){.pp-recent-row{flex-direction:row;align-items:center;gap:10px}.pp-recent-middle{width:100%;gap:8px}.pp-recent-elo{text-align:right;min-width:60px}.pp-recent-card,.pp-recent-placeholder-card{border-radius:20px}.pp-recent-row{padding:10px}.pp-recent-scan{width:42px;height:42px}}@media (max-width:800px){.pp-header-row{flex-wrap:wrap}.pp-username{font-size:36px}.pp-openings-grid{grid-template-columns:1fr}.pp-ratings{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){:root{--discover-card-width:200px;--discover-card-height:280px}.discover-slider{padding:0 32px}.discover-arrow{width:30px;height:30px;font-size:20px}.discover-arrow.left{left:6px}.discover-arrow.right{right:6px}.pp-shell{width:min(520px,92vw)}.pp-badges{justify-content:flex-start;margin-top:10px;padding:0 12px}.pp-tab{min-width:72px;padding:10px 12px}.pp-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;touch-action:pan-x;cursor:-webkit-grab;cursor:grab}.pp-tabs::-webkit-scrollbar{height:0}.pp-tabs{scrollbar-width:none}.pp-tab{flex:0 0 auto;scroll-snap-align:start}.pp-tab-text{display:none}}.practice-shell{gap:16px;width:min(1180px,94vw)}.practice-page,.practice-shell{display:flex;flex-direction:column}.practice-page{gap:20px;padding:18px 0 64px}.practice-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.practice-page-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:#7c5a2f;font-weight:700}.practice-page-title{margin:6px 0;font-size:32px;color:#2f1d0f}.practice-page-sub{margin:0;color:#6a5a47;font-size:14px}.practice-selector{background:hsla(0,0%,100%,.78);border:1px solid hsla(38,34%,83%,.9);border-radius:18px;padding:12px 16px;display:grid;grid-gap:10px;gap:10px;box-shadow:0 10px 24px rgba(20,15,10,.08)}.practice-selector-label{font-weight:600;color:#3b2a1b}.practice-selector-control{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.practice-selector select{min-width:min(420px,90vw);border-radius:12px;border:1px solid var(--stroke);padding:10px 12px;font-size:14px;background:#fffaf2;color:#2f1d0f}.practice-selector-status{font-size:12px;color:#6b4f2b;font-weight:600}.practice-selector-error{font-size:12px;color:#b91c1c}.practice-empty{background:hsla(0,0%,100%,.8);border:1px dashed rgba(165,120,64,.35);border-radius:18px;padding:20px;color:#6b4f2b}@media (max-width:600px){.practice-page-title{font-size:26px}.practice-selector select{min-width:100%}}@media (max-width:980px){.practice-grid{grid-template-columns:1fr}.practice-panel{width:min(520px,100%);margin:0 auto}}.practice-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.practice-header h3{margin:6px 0 0;font-size:22px}.practice-sub{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#6b4f2b}.practice-status{background:rgba(16,24,40,.08);padding:8px 14px;border-radius:12px;font-size:13px;font-weight:600;color:#3e2a12;align-self:flex-start}.practice-grid{display:grid;grid-template-columns:minmax(520px,1fr) minmax(260px,340px);grid-gap:24px;gap:24px;align-items:start}.practice-board{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;border:2px solid rgba(63,40,18,.35);background:#2b1c0e;width:100%;max-width:660px;margin:0 auto}.practice-row{display:grid;grid-template-columns:repeat(8,1fr)}.practice-square{position:relative;width:100%;aspect-ratio:1/1;border:none;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer}.practice-square.light{background:#f0d9b5}.practice-square.dark{background:#b58863}.practice-square.selected{outline:3px solid #3b82f6;outline-offset:-3px}.practice-square.highlight:not(.selected){box-shadow:inset 0 0 0 3px rgba(74,222,128,.7)}.file-label,.rank-label{position:absolute;font-size:10px;font-weight:600;color:rgba(63,40,18,.6)}.file-label{bottom:3px;right:4px}.rank-label{top:3px;left:4px}.practice-panel{background:hsla(0,0%,100%,.7);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;min-height:100%}.practice-panel h4{margin:0;font-size:15px}.practice-engine-error{background:rgba(220,38,38,.08);border:1px solid rgba(220,38,38,.25);border-radius:12px;color:#7a1f1f}.practice-engine-error,.practice-notes{padding:10px 12px;font-size:12px;display:flex;flex-direction:column;gap:8px}.practice-notes{background:rgba(15,107,58,.08);border:1px solid rgba(15,107,58,.2);border-radius:12px;color:#2f2a24}.practice-notes-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:#0f6b3a}.practice-note strong{font-weight:700}.practice-modes{display:flex;flex-direction:column;gap:8px}.practice-modes-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:#6b4f2b}.practice-mode-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.practice-mode-btn{border:1px solid rgba(47,42,36,.2);background:#fff;color:#3a2a1a;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;cursor:pointer;font-weight:600;transition:background .2s ease,border-color .2s ease,color .2s ease}.practice-mode-btn span{font-size:12px;color:#6b4f2b}.practice-mode-btn strong{font-size:15px}.practice-mode-btn.active{background:#2f2a24;border-color:#2f2a24;color:#fff}.practice-mode-btn.active span{color:#f2d3a3}.practice-history-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:8px;gap:8px}.practice-history-track{display:flex;gap:8px;overflow-x:auto;padding:6px 4px;white-space:nowrap;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-x}.practice-history-track::-webkit-scrollbar{height:0}.practice-history-chip{background:hsla(0,0%,100%,.75);border:1px solid rgba(165,120,64,.25);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:600;color:#3b2f0b;flex:0 0 auto;scroll-snap-align:start}.practice-history-empty{font-size:12px;color:#6b4f2b}.practice-history-arrow{width:30px;height:30px;border-radius:999px;border:1px solid rgba(165,120,64,.4);background:#fff6ea;color:#6b3f12;font-size:18px;font-weight:700;display:grid;place-items:center;cursor:pointer}.practice-actions{display:flex;gap:10px;flex-wrap:wrap}.practice-btn{flex:1 1;border:none;border-radius:12px;padding:10px 12px;font-weight:600;background:#0f6b3a;color:#fff;cursor:pointer}.practice-btn.ghost{background:#2f2a24;color:#f8dcdc}.practice-thinking{font-size:12px;color:#8a6a4a}@media (max-width:900px){.practice-grid{grid-template-columns:1fr}}@media (max-width:600px){.practice-mode-buttons{grid-template-columns:1fr}}.practice-card{width:min(980px,94vw);max-height:90vh;overflow:auto}.practice-card::-webkit-scrollbar{width:0;height:0}.practice-card{scrollbar-width:none}.opening-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-radius:16px;background:linear-gradient(120deg,rgba(255,249,233,.9),rgba(255,235,201,.9));border:1px solid rgba(210,165,92,.4);box-shadow:0 12px 26px rgba(92,50,10,.18);margin-bottom:14px}.library-note{margin-top:-6px;margin-bottom:14px;font-size:12px;color:#6b4f2b;letter-spacing:.02em}.opening-banner-title{font-weight:700;color:#4b2e1a}.opening-banner-metrics{display:flex;align-items:center;gap:14px;background:hsla(0,0%,100%,.65);padding:6px 10px;border-radius:999px}.opening-metric{display:flex;align-items:center;gap:6px;font-weight:700;color:#4b2e1a;font-size:13px}.opening-metric-icon{font-size:16px}.pp-analysis-meta{margin:6px 0 0;font-size:12px;color:#6b7280}.pp-analysis-meta-note{display:block;margin-top:6px;font-size:12px;color:#7c4a1c;font-weight:600}.pp-recent-actions{display:flex;align-items:center;gap:8px}.pp-recent-analyze{border:none;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;background:#0ea5e9;color:#fff;cursor:pointer}.pp-recent-analyze.scanned{background:#10b981}.pp-recent-tag{display:inline-flex;align-items:center;justify-content:center;margin-top:6px;padding:2px 10px;border-radius:999px;background:rgba(16,185,129,.15);color:#047857;font-size:11px;font-weight:700}.pp-analysis-modal{width:min(980px,92vw);background:#fffaf2;border-radius:20px;padding:20px;box-shadow:0 24px 60px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:16px}.pp-analysis-modal-header h3{margin:0;display:flex;gap:8px;font-size:22px}.pp-analysis-sub{margin:6px 0 0;color:#6b7280;font-size:13px}.pp-analysis-modal-body{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,1fr);grid-gap:16px;gap:16px}.pp-analysis-board-wrap{display:flex;justify-content:center}.analysis-board{width:min(360px,80vw);border-radius:16px;overflow:hidden;border:2px solid rgba(63,40,18,.35)}.analysis-row{display:grid;grid-template-columns:repeat(8,1fr)}.analysis-square{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center}.analysis-square.light{background:#f0d9b5}.analysis-square.dark{background:#b58863}.pp-analysis-notes{display:flex;flex-direction:column;gap:12px}.pp-analysis-summary h4{margin:0 0 6px;font-size:16px}.pp-analysis-summary p{margin:0;color:#433022;line-height:1.6}.pp-analysis-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.pp-analysis-metrics div{background:rgba(17,24,39,.05);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;font-size:12px}.pp-analysis-metrics strong{font-size:14px}.pp-analysis-error{color:#b91c1c;font-size:12px}.pp-analysis-retry{border:none;border-radius:12px;padding:8px 12px;background:#111827;color:#fff;font-weight:600;cursor:pointer;width:-moz-fit-content;width:fit-content}.pp-analysis-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:12px;gap:12px}.pp-analysis-arrow,.pp-analysis-close{border:none;border-radius:999px;padding:8px 14px;font-weight:700;cursor:pointer}.pp-analysis-arrow{background:#e2e8f0;color:#1f2937}.pp-analysis-close{background:#0f6b3a;color:#fff}@media (max-width:900px){.pp-analysis-modal-body{grid-template-columns:1fr}}.pp-analysis-tab-title{margin:0;font-size:18px;font-weight:600;color:#1f2937;display:flex;align-items:center;gap:8px;text-shadow:none}.pp-keycards.single-column{grid-auto-flow:row;grid-auto-columns:unset;overflow-x:visible;padding-bottom:0}