.gate{--mx: 32%;--my: 42%;position:relative;min-height:100vh;min-height:100dvh;overflow-x:hidden;overflow-y:auto;padding:max(1rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) max(2rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left));display:flex;flex-direction:column;background:#fff;color:#1c1917}.gate-glow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(520px circle at var(--mx) var(--my),rgba(255,214,170,.16),transparent 42%);transition:background 80ms linear}.gate-grain{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;pointer-events:none;opacity:.22;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.55'/></svg>");mix-blend-mode:overlay}.gate-nav,.gate-layout{position:relative;z-index:1}.gate-nav{display:flex;align-items:center;gap:.7rem;min-height:48px}.mark{width:28px;height:28px;border-radius:8px;display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:5px;background:linear-gradient(160deg,#ff5a3d,#3ee0b0)}.mark i{display:block;border-radius:2px;background:#fff}.mark i:first-child{grid-column:1 / -1}.word{font-family:Syne,sans-serif;font-weight:800;letter-spacing:-.04em;font-size:1.05rem}.nav-domain{margin-left:auto;color:#57534e;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.gate-layout{flex:1;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(1.25rem,3vw,3rem);align-items:center;width:min(1120px,100%);margin:0 auto}.gate-copy{min-width:0}.eyebrow{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 1.1rem;color:#0f766e;font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.live-dot{width:8px;height:8px;border-radius:50%;background:#3ee0b0;box-shadow:0 0 #3ee0b0b3;animation:live 2s ease-out infinite}.gate-copy h1{margin:0;font-family:Syne,sans-serif;font-weight:800;letter-spacing:-.055em;line-height:.92;font-size:clamp(2.8rem,4.6vw,4.7rem)}.gate-copy h1 span{display:block}.headline-accent{background:linear-gradient(100deg,#ff5a3d,#ffd2a8 42%,#3ee0b0);-webkit-background-clip:text;background-clip:text;color:transparent}.lede{max-width:38ch;margin:1.35rem 0 1.8rem;color:#57534e;font-size:1.12rem;line-height:1.55}.google-cta{display:inline-flex;align-items:center;gap:.85rem;border:0;cursor:pointer;border-radius:999px;padding:.72rem .8rem .72rem .72rem;min-height:52px;max-width:100%;background:#f7f4ee;color:#101820;font-weight:700;font-size:1rem;box-shadow:0 1px #ffffffb3 inset,0 18px 40px #00000059;transition:transform .18s ease,box-shadow .18s ease}.google-cta:hover{transform:translateY(-2px);box-shadow:0 1px #fffc inset,0 24px 50px #0000006b}.google-cta:disabled{opacity:.7;cursor:wait;transform:none}.g-logo{width:36px;height:36px;padding:7px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000014}.cta-arrow{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#101820;color:#f7f4ee;margin-left:.35rem}.assurances{display:flex;flex-wrap:wrap;gap:.5rem .9rem;margin:1.4rem 0 0;padding:0;list-style:none;color:#57534e;font-size:.82rem}.assurances li{display:flex;align-items:center;gap:.45rem}.assurances li:before{content:"";width:5px;height:5px;border-radius:50%;background:#ff5a3d}.gate-aside{margin:1.1rem 0 0;max-width:36rem;color:#57534e;font-size:.95rem;line-height:1.5}.gate-aside a{color:#1c1917;font-weight:650;text-decoration:underline;text-underline-offset:.18em;margin-right:.45rem}.gate-aside a:hover{color:#3ee0b0}.stage{position:relative;min-height:460px;display:grid;place-items:center}.stage-halo{position:absolute;width:78%;height:70%;border-radius:40%;background:radial-gradient(circle,rgba(62,224,176,.22),transparent 68%);filter:blur(8px);animation:halo 7s ease-in-out infinite alternate}.window{position:relative;width:min(560px,100%);border-radius:22px;border:1px solid rgba(28,25,23,.12);background:#fff;box-shadow:0 30px 80px #00000073,0 0 0 1px #ffffff0a inset;overflow:hidden;transform:rotate(-1.5deg);animation:settle .9s cubic-bezier(.22,1,.36,1) both}.window-bar{display:flex;align-items:center;gap:.7rem;padding:.75rem .9rem;border-bottom:1px solid rgba(255,255,255,.08);background:#ffffff08}.dots{display:flex;gap:5px}.dots i{width:8px;height:8px;border-radius:50%;background:#ff5a3d}.dots i:nth-child(2){background:#f0b429}.dots i:nth-child(3){background:#3ee0b0}.url{flex:1;text-align:center;font-size:.72rem;letter-spacing:.04em;color:#57534e;background:#00000040;border-radius:999px;padding:.28rem .6rem}.pulse-label{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#3ee0b0}.mini-board{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;padding:.85rem;min-height:360px}.mini-col header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.55rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#57534e;font-weight:700}.mini-col header em{font-style:normal;color:#1c1917}.mini-col article{border-radius:12px;padding:.7rem .7rem .6rem;margin-bottom:.5rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.mini-col article.hot{border-color:#ff5a3d73;background:linear-gradient(180deg,#ff5a3d29,#ffffff08);animation:glowCard 3.2s ease-in-out infinite}.ticket-id{font-size:.68rem;font-weight:700;letter-spacing:.04em;color:#3ee0b0}.mini-col h3{margin:.28rem 0 .55rem;font-size:.86rem;font-weight:600;letter-spacing:-.02em;line-height:1.25}.mini-col footer{display:flex;justify-content:space-between;align-items:center}.tag{font-size:.68rem;padding:.12rem .4rem;border-radius:999px;background:#f7f6f3;color:#44403c}.avatar{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:.62rem;font-weight:700;background:#ff5a3d;color:#1a0b07}@keyframes glowCard{0%,to{box-shadow:0 0 #ff5a3d00}50%{box-shadow:0 0 0 1px #ff5a3d59,0 12px 30px #ff5a3d1f}}@keyframes live{0%{box-shadow:0 0 #3ee0b08c}to{box-shadow:0 0 0 10px #3ee0b000}}@keyframes halo{0%{transform:translateY(0) scale(1)}to{transform:translateY(-12px) scale(1.06)}}@keyframes settle{0%{opacity:0;transform:translateY(24px) rotate(-4deg) scale(.98)}to{opacity:1;transform:translateY(0) rotate(-1.5deg) scale(1)}}@media(max-width:900px){.gate-layout{grid-template-columns:1fr;padding-top:1.25rem;gap:1.75rem}.stage{min-height:0;order:-1}.gate-copy h1{font-size:clamp(2.4rem,11vw,3.4rem)}.lede{font-size:1.02rem;margin:1.1rem 0 1.5rem}.google-cta{width:100%;justify-content:space-between}.window{transform:none}.mini-board{min-height:0;grid-template-columns:repeat(3,minmax(140px,1fr));overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.mini-col{scroll-snap-align:start;min-width:140px}.nav-domain{display:none}}@media(max-width:640px){.stage{display:none}.gate-layout{align-items:start;padding-top:2.5rem}.gate-copy{width:100%}.assurances{font-size:.78rem}}@media(prefers-reduced-motion:reduce){.live-dot,.stage-halo,.window{animation:none}}:root{color-scheme:light;--ink: #1c1917;--ink-dim: #57534e;--canvas: #ffffff;--canvas-2: #f7f6f3;--panel: #ffffff;--panel-solid: #ffffff;--line: rgba(28, 25, 23, .12);--line-strong: rgba(28, 25, 23, .22);--accent: #e23d22;--accent-2: #0f766e;--accent-soft: rgba(226, 61, 34, .1);--warn: #b45309;--danger: #be123c;--radius: 16px;--font-display: "Syne", "Avenir Next", sans-serif;--font-body: "Outfit", "Segoe UI", sans-serif;color:var(--ink);background:var(--canvas);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-height:100vh;min-height:100dvh;background:#fff;background-attachment:fixed;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-rows:auto 1fr}.app-shell--login{grid-template-rows:1fr}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:max(.75rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .75rem max(1rem,env(safe-area-inset-left));border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:sticky;top:0;z-index:10;background:#fff}.brand{display:flex;align-items:baseline;gap:.55rem}.brand strong{font-family:var(--font-display);font-size:1.2rem;font-weight:800;letter-spacing:-.04em}.brand span{color:var(--ink-dim);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.main-nav{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center}.main-nav a{padding:.45rem .75rem;border-radius:10px;color:var(--ink-dim);font-weight:650;font-size:.9rem}.main-nav a:hover{color:var(--ink);background:#1c19170d}.main-nav a.active{color:var(--ink);background:#f3f1ec}.topbar-actions{display:flex;align-items:center;gap:.75rem}.app-switch{display:inline-flex;align-items:center;min-height:44px;padding:0 .9rem;border:1px solid var(--line-strong);border-radius:999px;font-weight:700}.app-switch:hover{border-color:var(--ink);background:#f3f1ec}.app-switch:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.user-chip{color:var(--ink-dim);font-size:.88rem;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-radius:12px;padding:.7rem 1.15rem;min-height:44px;cursor:pointer;font-weight:600;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.btn-compact{min-height:40px;padding:.55rem .9rem;font-size:.88rem}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.65;cursor:wait;transform:none}.btn-primary{background:var(--accent);color:#140805}.btn-primary:hover{background:#ff714f}.btn-ghost{background:transparent;border-color:var(--line-strong);color:var(--ink)}.btn-ghost:hover{border-color:var(--accent-2);color:var(--accent-2)}.btn-google{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-width:min(100%,280px);padding:.95rem 1.4rem;background:var(--ink);color:#071018;font-size:1rem;font-weight:700;border-radius:14px;animation:rise .7s .18s ease both}.btn-google:hover{background:#fff;box-shadow:0 0 0 1px #fff3,0 18px 40px #00000059}.google-mark{width:1.15rem;height:1.15rem;flex-shrink:0}.page{width:min(1180px,100%);margin:0 auto;padding:1.25rem max(1rem,env(safe-area-inset-right)) max(2.5rem,calc(1.5rem + env(safe-area-inset-bottom))) max(1rem,env(safe-area-inset-left))}.topbar-id{display:flex;align-items:center;gap:.75rem;min-width:0}.app-crumb{display:inline-flex;align-items:center;min-height:44px;padding:0 .85rem;border-radius:999px;background:#f3f1ec;color:var(--ink);font-weight:700}.app-crumb:hover{background:var(--accent-soft);color:var(--accent)}.app-crumb:focus-visible,.app-door:focus-visible,.subject-door:focus-visible,.subject-projects a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.launcher-intro{max-width:38rem;margin-bottom:1.5rem}.launcher-kicker{margin:0 0 .35rem;color:var(--accent-2);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.launcher-kicker a{color:inherit}.launcher-kicker a:hover{color:var(--ink)}.launcher-intro h1,.subject-room h1{margin:0;font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.05em;line-height:.95}.launcher-intro p,.subject-lede{margin:.75rem 0 0;color:var(--ink-dim);font-size:1.05rem;line-height:1.5}.app-grid,.subject-grid,.subject-projects{list-style:none;margin:0;padding:0}.app-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.app-door,.subject-door,.subject-projects a{display:flex;gap:.9rem;align-items:flex-start;min-height:44px;padding:1.1rem 1.15rem;border:1px solid var(--line);border-radius:18px;background:#fff;cursor:pointer;transition:border-color .18s ease,transform .18s ease,background .18s ease}.app-door:hover,.subject-door:hover,.subject-projects a:hover{border-color:var(--line-strong);background:#faf9f7}.app-door:active,.subject-door:active,.subject-projects a:active{transform:scale(.99)}.app-door svg{flex:none;margin-top:.15rem;color:var(--accent)}.app-door span,.subject-door{display:flex;flex-direction:column;gap:.3rem;min-width:0}.app-door strong,.subject-door strong,.subject-projects strong{font-family:var(--font-display);font-size:1.45rem;letter-spacing:-.04em;line-height:1.1}.app-door em,.subject-door em,.subject-projects span,.subject-projects em{color:var(--ink-dim);font-style:normal;font-size:.98rem;line-height:1.45}.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.subject-count{color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.recall-door{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-top:1.25rem;padding:1.15rem 1.2rem;border:1px solid var(--line);border-radius:18px;background:#f7f6f3}.recall-door h2{margin:0;font-family:var(--font-display);font-size:1.6rem;letter-spacing:-.04em}.recall-door p:last-child{margin:.4rem 0 0;max-width:40rem;color:var(--ink-dim);line-height:1.5}.subject-room h2{margin:1.6rem 0 .7rem;font-family:var(--font-display);font-size:1.35rem;letter-spacing:-.03em}.subject-projects{display:grid;gap:.65rem}.subject-projects a{flex-direction:column;gap:.25rem}.subject-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.85rem}.lab-kicker a{color:inherit}.page.is-studio .ide{height:calc(100dvh - 6.4rem)}@media(max-width:800px){.app-grid,.subject-grid{grid-template-columns:1fr}.recall-door{flex-direction:column;align-items:stretch}}a.user-chip{display:inline-flex;align-items:center;min-height:44px;padding:0 .55rem;border-radius:10px}a.user-chip:hover{color:var(--ink);background:#f3f1ec}.page.learn-web:not(.is-studio){width:min(1440px,100%);display:grid;grid-template-columns:14.5rem minmax(0,1fr);column-gap:2.25rem;align-items:start}.learn-side{position:sticky;top:5.25rem;display:flex;flex-direction:column;gap:.15rem;padding-top:.35rem}.learn-side p{margin:1rem 0 .25rem;padding:0 .75rem;color:var(--ink-dim);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.learn-side p:first-child{margin-top:0}.learn-side a{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:40px;padding:0 .75rem;border-radius:10px;color:var(--ink-dim);font-weight:650}.learn-side a:hover{color:var(--ink);background:#f7f6f3}.learn-side a.active{color:var(--ink);background:#f3f1ec}.learn-side .recall-count{background:#ffedd5;color:#9a3412}.learn-side a:focus-visible,.learn-table a:focus-visible,.app-toggle:focus-visible,a.user-chip:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.learn-desk-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.25rem}.learn-desk-head h1{margin:0;font-family:var(--font-display);font-size:clamp(2.4rem,4vw,3.4rem);letter-spacing:-.05em;line-height:.95}.learn-desk-head p:last-child{max-width:40rem;margin:.7rem 0 0;color:var(--ink-dim);line-height:1.5}.learn-metrics{display:flex;gap:1.5rem;margin:0}.learn-metrics div{min-width:6.5rem}.learn-metrics dt{color:var(--ink-dim);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.learn-metrics dd{margin:.15rem 0 0;font-family:var(--font-display);font-size:2rem;letter-spacing:-.04em}.learn-table-wrap{overflow:auto}.learn-table{width:100%;border-collapse:collapse}.learn-table th,.learn-table td{padding:.85rem .75rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.learn-table thead th{color:var(--ink-dim);font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.learn-table th[scope=row]{font-weight:400;width:46%}.learn-table a{display:grid;gap:.2rem}.learn-table a strong{font-size:1.02rem}.learn-table a span,.learn-cap,.learn-num{color:var(--ink-dim)}.learn-cap{text-transform:capitalize}.learn-num{font-variant-numeric:tabular-nums}.learn-table tbody tr:hover td,.learn-table tbody tr:hover th{background:#faf9f7}.profile{display:grid;grid-template-columns:18rem minmax(0,1fr);gap:3rem;align-items:start}.profile-id h1{margin:0;font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3.2rem);letter-spacing:-.05em;line-height:.95}.profile-id p:last-child{margin:.6rem 0 0;color:var(--ink-dim)}.profile-apps h2{margin:0;font-family:var(--font-display);font-size:1.6rem;letter-spacing:-.04em}.profile-apps-head p{max-width:36rem;margin:.45rem 0 .4rem;color:var(--ink-dim);line-height:1.5}.profile-apps ul{list-style:none;margin:0;padding:0}.profile-apps li{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;min-height:4.5rem;border-bottom:1px solid var(--line)}.profile-apps li strong{display:block;font-size:1.05rem}.profile-apps li span{color:var(--ink-dim)}.app-toggle{position:relative;flex:none;width:3rem;height:1.75rem;padding:0;border:0;border-radius:999px;background:#d6d3d1;cursor:pointer}.app-toggle span{position:absolute;top:.15rem;left:.15rem;width:1.45rem;height:1.45rem;border-radius:50%;background:#fff;transition:transform .18s ease}.app-toggle[aria-checked=true]{background:var(--accent-2)}.app-toggle[aria-checked=true] span{transform:translate(1.25rem)}.launcher-empty a{color:var(--accent-2);font-weight:700}.loading-pulse{color:var(--ink-dim);animation:pulse 1.4s ease-in-out infinite}.login-stage{position:relative;min-height:100vh;overflow:hidden;display:grid;align-items:end;padding:clamp(1.5rem,5vw,4rem)}.login-atmosphere{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.orb{position:absolute;border-radius:50%;filter:blur(40px);opacity:.7;animation:drift 14s ease-in-out infinite alternate}.orb-a{width:42vw;height:42vw;max-width:520px;max-height:520px;top:-8%;right:-6%;background:radial-gradient(circle,rgba(255,90,61,.55),transparent 68%)}.orb-b{width:38vw;height:38vw;max-width:460px;max-height:460px;bottom:8%;left:-10%;background:radial-gradient(circle,rgba(62,224,176,.4),transparent 70%);animation-delay:-4s}.orb-c{width:28vw;height:28vw;max-width:320px;max-height:320px;top:38%;left:42%;background:radial-gradient(circle,rgba(120,170,255,.22),transparent 70%);animation-delay:-7s}.grid-wash{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(168,196,214,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(168,196,214,.06) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 70% 35%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 70% 35%,#000 20%,transparent 75%);animation:gridIn 1.1s ease both}.board-silhouette{position:absolute;right:clamp(4%,8vw,12%);top:14%;width:min(420px,46vw);display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem;transform:perspective(900px) rotateY(-18deg) rotateX(8deg);animation:floatBoard 8s ease-in-out infinite alternate,rise .9s ease both}.sil-col{display:flex;flex-direction:column;gap:.7rem;padding:.75rem;border-radius:14px;border:1px solid var(--line);background:#f7f6f3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sil-col span{display:block;height:52px;border-radius:10px;background:linear-gradient(135deg,#ff5a3d38,#3ee0b01f);border:1px solid var(--line)}.sil-col:nth-child(2) span:first-child{height:72px;background:linear-gradient(135deg,#3ee0b047,#ff5a3d1a)}.sil-col:nth-child(3) span:nth-child(2){height:64px}.login-copy{position:relative;z-index:1;max-width:640px}.login-domain{margin:0 0 1rem;color:var(--accent-2);font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;animation:rise .5s ease both}.login-brand{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(3.4rem,12vw,7.5rem);line-height:.9;letter-spacing:-.06em;animation:brandIn .8s cubic-bezier(.22,1,.36,1) both}.brand-dot{display:inline-block;width:.22em;height:.22em;margin-left:.08em;border-radius:50%;background:var(--accent);vertical-align:.12em;box-shadow:0 0 #ff5a3d80;animation:pingDot 2.4s ease-out infinite}.login-lede{margin:1.25rem 0 2rem;max-width:34ch;color:var(--ink-dim);font-size:clamp(1.05rem,2.2vw,1.25rem);line-height:1.55;animation:rise .65s 90ms ease both}.section-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.section-head h1,.section-head h2{margin:0;font-family:var(--font-display);font-weight:750;letter-spacing:-.04em;font-size:clamp(1.8rem,3vw,2.4rem)}.section-head .muted{margin:.35rem 0 0}.muted{color:var(--ink-dim)}.tiny{font-size:.72rem}.breadcrumb{display:flex;align-items:center;gap:.45rem}.key-inline{display:inline-flex;padding:.12rem .45rem;border-radius:7px;background:var(--accent-soft);color:#ffb3a3;font-size:.72rem;font-weight:700;letter-spacing:.06em}.lede-inline{margin:.45rem 0 0;max-width:52ch;color:var(--ink-dim);line-height:1.45}.stat-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem;margin:0 0 1.25rem}.stat{border:1px solid var(--line);border-radius:14px;background:#f7f6f3;padding:.85rem .95rem}.stat-label{display:block;margin-bottom:.35rem;color:var(--ink-dim);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.stat strong{font-family:var(--font-display);font-size:1.45rem;letter-spacing:-.03em}.tone-high{color:var(--danger)}.tone-warn{color:var(--warn)}.field-hint{margin:.2rem 0 0;color:var(--ink-dim);font-size:.75rem}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.modal-wide{width:min(640px,100%)}.modal-head,.drawer-head{display:flex;align-items:start;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.modal-head h2,.drawer-head h2{margin:.15rem 0 0;font-family:var(--font-display);letter-spacing:-.03em}.grid-projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.card{position:relative;display:block;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:1.25rem 1.25rem 1.35rem;overflow:hidden;transition:transform .2s ease,border-color .2s ease,background .2s ease}.card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(180deg,var(--accent),var(--accent-2));opacity:0;transition:opacity .2s ease}.card:hover{transform:translateY(-3px);border-color:var(--line-strong);background:#f7f6f3}.card:hover:before{opacity:1}.project-card-top,.project-card-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.project-card-foot{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--line)}.open-link{color:var(--accent-2);font-size:.82rem;font-weight:700}.card h3{margin:0 0 .4rem;font-family:var(--font-display);font-size:1.2rem;letter-spacing:-.03em}.card .key{display:inline-block;margin-bottom:.75rem;padding:.2rem .55rem;border-radius:8px;background:var(--accent-soft);color:#ffb3a3;font-size:.72rem;font-weight:700;letter-spacing:.08em}.card p{margin:0;color:var(--ink-dim);font-size:.92rem;line-height:1.45}.form-row{display:grid;gap:.5rem;margin-bottom:.9rem}.form-row label{font-size:.82rem;font-weight:600;color:var(--ink-dim)}.form-row input,.form-row textarea,.form-row select{width:100%;border:1px solid var(--line-strong);border-radius:12px;padding:.75rem .9rem;background:#fff;color:var(--ink);outline:none;transition:border-color .16s ease}.form-row input:focus,.form-row textarea:focus,.form-row select:focus{border-color:var(--accent-2)}.form-row textarea{min-height:96px;resize:vertical}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#03080cb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));z-index:40;animation:fade .18s ease both}.modal{width:min(480px,100%);max-height:min(90dvh,100%);overflow:auto;background:var(--panel-solid);border-radius:calc(var(--radius) + 4px);border:1px solid var(--line-strong);padding:1.35rem;animation:rise .22s ease both}.modal h2{margin:0 0 1rem;font-family:var(--font-display);letter-spacing:-.03em}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem}.board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:.9rem;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-bottom:.75rem;margin-inline:calc(-1*max(1rem,env(safe-area-inset-left)));padding-inline:max(1rem,env(safe-area-inset-left))}.column{min-height:440px;min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:.85rem;scroll-snap-align:start}.board-hint{display:none;margin:0 0 .75rem;color:var(--ink-dim);font-size:.78rem}.column-head{display:flex;align-items:start;justify-content:space-between;gap:.5rem;margin-bottom:.85rem}.column-head h3{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);font-weight:700}.column-head p{margin:.25rem 0 0;color:var(--ink-dim);font-size:.72rem}.count-pill{min-width:1.6rem;height:1.6rem;padding:0 .45rem;border-radius:999px;display:grid;place-items:center;background:#f3f1ec;border:1px solid var(--line);font-size:.75rem;font-weight:700}.column-empty{padding:1rem .75rem;margin-bottom:.7rem;border:1px dashed var(--line);border-radius:12px;color:var(--ink-dim);font-size:.8rem;text-align:center}.issue{border:1px solid var(--line);border-radius:12px;background:#fff;padding:.85rem;margin-bottom:.7rem;cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease;animation:rise .28s ease both}.issue:hover{border-color:var(--line-strong);transform:translateY(-1px)}.issue-active{border-color:#3ee0b073;box-shadow:0 0 0 1px #3ee0b033}.issue-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.issue-id{font-size:.72rem;color:var(--accent-2);font-weight:700;letter-spacing:.04em}.issue h4{margin:.35rem 0 .4rem;font-size:.98rem;font-weight:600;letter-spacing:-.01em;line-height:1.3}.issue-preview{margin:0;color:var(--ink-dim);font-size:.82rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.priority-badge{display:inline-flex;padding:.14rem .45rem;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border:1px solid transparent}.priority-badge.high,.priority-badge.prio-high,.priority-badge.prio-highest{color:#ffd0d6;background:#ff6b7a24;border-color:#ff6b7a47}.priority-badge.medium,.priority-badge.prio-medium{color:#ffe2a3;background:#f0b42924;border-color:#f0b42947}.priority-badge.low,.priority-badge.prio-low,.priority-badge.prio-lowest{color:#b8ffe9;background:#3ee0b01f;border-color:#3ee0b047}.priority-badge.prio-highest{box-shadow:inset 0 0 0 1px #ff6b7a59}.label-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem}.label-chip{padding:.12rem .45rem;border-radius:999px;background:#ffffff0d;border:1px solid var(--line);color:#d7e2eb;font-size:.68rem;font-weight:600}.issue-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.7rem}.meta-right{display:inline-flex;align-items:center;gap:.45rem}.due-chip{font-size:.7rem;font-weight:600;color:var(--ink-dim)}.due-chip.due-late{color:var(--danger)}.due-chip.due-soon{color:var(--warn)}.due-chip.due-ok{color:var(--accent-2)}.avatar{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.62rem;font-weight:700;background:linear-gradient(140deg,#ff5a3d,#3ee0b0);color:#071018}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#03080c8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:45;display:flex;justify-content:flex-end;animation:fade .16s ease both}.drawer{width:min(440px,100%);height:100%;overflow:auto;background:var(--panel-solid);border-left:1px solid var(--line-strong);padding:max(1.1rem,env(safe-area-inset-top)) max(1.1rem,env(safe-area-inset-right)) max(1.25rem,env(safe-area-inset-bottom)) 1.1rem;animation:drawerIn .22s ease both}.detail-form{display:grid}.detail-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:.25rem 0 1rem;padding:.85rem;border-radius:12px;border:1px solid var(--line);background:#ffffff08}.detail-meta-grid p{margin:.25rem 0 0;font-size:.88rem}.drawer-actions{position:sticky;bottom:0;padding-top:.75rem;background:linear-gradient(180deg,transparent,var(--panel-solid) 28%)}.danger-text{color:var(--danger)!important;border-color:#ff6b7a59!important}@keyframes drawerIn{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}.issue-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.7rem}.issue-actions select,.issue-actions button{border-radius:8px;border:1px solid var(--line);background:transparent;padding:.45rem .65rem;min-height:36px;font-size:.78rem;cursor:pointer;color:var(--ink-dim)}.issue-actions select:hover,.issue-actions button:hover{color:var(--ink);border-color:var(--line-strong)}.empty{padding:2.5rem 1.5rem;text-align:center;color:var(--ink-dim);border:1px dashed var(--line-strong);border-radius:var(--radius);background:#f7f6f3}.empty h3{margin:0 0 .4rem;color:var(--ink);font-family:var(--font-display)}.empty p{margin:0 0 1rem}.empty .btn{margin-top:.25rem}.error{color:var(--danger);margin:.75rem 0 0;font-size:.9rem}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes brandIn{0%{opacity:0;transform:translateY(28px) scale(.98);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(24px,-18px,0) scale(1.08)}}@keyframes floatBoard{0%{transform:perspective(900px) rotateY(-18deg) rotateX(8deg) translateY(0)}to{transform:perspective(900px) rotateY(-14deg) rotateX(6deg) translateY(-12px)}}@keyframes gridIn{0%{opacity:0}to{opacity:1}}@keyframes pingDot{0%{box-shadow:0 0 #ff5a3d8c}70%{box-shadow:0 0 0 12px #ff5a3d00}to{box-shadow:0 0 #ff5a3d00}}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}@media(max-width:1100px){.stat-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.form-grid-2{grid-template-columns:1fr}.board{grid-auto-flow:column;grid-auto-columns:minmax(78vw,280px);grid-template-columns:none;gap:.75rem;scroll-snap-type:x mandatory}.column{min-height:min(70dvh,560px);max-height:calc(100dvh - 11rem);overflow-y:auto;-webkit-overflow-scrolling:touch}.board-hint{display:block}.section-head{flex-direction:column;align-items:stretch}.section-head .btn{width:100%}.board-silhouette{opacity:.35;width:min(280px,70vw);right:-4%;top:8%}.login-stage{align-items:center}.grid-projects{grid-template-columns:1fr}}@media(max-width:640px){.board-silhouette,.brand span{display:none}.user-chip{max-width:7.5rem;font-size:.8rem}.page{padding-top:1rem}.section-head h1,.section-head h2{font-size:clamp(1.55rem,7vw,2rem)}.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-backdrop{place-items:end center;padding:0}.modal{width:100%;max-height:min(92dvh,100%);border-radius:20px 20px 0 0;padding:1.15rem max(1rem,env(safe-area-inset-right)) max(1.25rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));animation:sheetUp .24s ease both}.drawer-backdrop{align-items:flex-end}.drawer{width:100%;height:min(92dvh,100%);border-left:0;border-top:1px solid var(--line-strong);border-radius:20px 20px 0 0;animation:sheetUp .24s ease both}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}.empty{padding:2rem 1rem}.card:hover,.issue:hover{transform:none}}@keyframes sheetUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.jira-top{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.jira-top-actions{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.view-toggle{display:inline-flex;padding:.2rem;border-radius:12px;border:1px solid var(--line-strong);background:#f3f1ec}.view-toggle button{border:0;background:transparent;color:var(--ink-dim);font-weight:700;font-size:.82rem;padding:.55rem .9rem;border-radius:10px;cursor:pointer;min-height:36px}.view-toggle button.active{background:#fff;color:var(--ink);box-shadow:0 0 0 1px var(--line)}.filter-bar{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;margin:0 0 1rem;padding:.75rem;border:1px solid var(--line);border-radius:14px;background:#fff}.filter-search,.filter-bar select{border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);padding:.6rem .75rem;min-height:40px}.filter-search{flex:1 1 220px;min-width:180px}.filter-check{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink-dim);font-size:.82rem;font-weight:600}.column-drop{border-color:#3ee0b073;background:#3ee0b00f}.issue-id-row{display:inline-flex;align-items:center;gap:.4rem}.type-pill{width:1.35rem;height:1.35rem;border-radius:6px;display:grid;place-items:center;font-size:.72rem;font-weight:800;border:1px solid var(--line)}.type-task{background:#4f94ff2e;color:#9ec1ff}.type-bug{background:#ff6b7a29;color:#ffb0b8}.type-story{background:#3ee0b024;color:#9dffdf}.issue-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff}.issue-table{width:100%;border-collapse:collapse;min-width:820px}.issue-table th,.issue-table td{padding:.75rem .85rem;text-align:left;border-bottom:1px solid var(--line);font-size:.86rem;vertical-align:top}.issue-table th{color:var(--ink-dim);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;background:#ffffff08;position:sticky;top:0}.issue-table tbody tr{cursor:pointer}.issue-table tbody tr:hover{background:#ffffff08}.mono{font-variant-numeric:tabular-nums;color:var(--accent-2);font-weight:700;white-space:nowrap}.summary-cell strong{display:block;margin-bottom:.35rem}.table-labels{display:flex;flex-wrap:wrap;gap:.3rem}.issue-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#03080cb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left));animation:fade .16s ease both}.issue-dialog{width:min(1080px,100%);max-height:min(92dvh,100%);overflow:auto;border-radius:18px;border:1px solid var(--line-strong);background:#fff;box-shadow:0 30px 80px #00000073;animation:rise .22s ease both}.issue-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1.1rem;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.issue-dialog-key{display:inline-flex;align-items:center;gap:.5rem;color:var(--accent-2);font-weight:700;font-size:.9rem}.issue-dialog-actions{display:flex;gap:.45rem}.issue-dialog-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(240px,.7fr);gap:0;min-height:520px}.issue-main{padding:1.1rem 1.2rem 1.4rem;border-right:1px solid var(--line)}.issue-side{padding:1.1rem;background:#ffffff05;display:grid;align-content:start;gap:.85rem}.issue-title-input{width:100%;border:0;background:transparent;color:var(--ink);font-family:var(--font-display);font-size:clamp(1.35rem,2.5vw,1.8rem);font-weight:750;letter-spacing:-.03em;padding:.2rem 0 .8rem;outline:none}.issue-description-input,.comment-compose textarea{width:100%;border:1px solid var(--line-strong);border-radius:12px;background:#fff;color:var(--ink);padding:.85rem;resize:vertical}.field-label{display:block;margin:.4rem 0 .45rem;color:var(--ink-dim);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.side-field{display:grid;gap:.35rem}.side-field label{color:var(--ink-dim);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.side-field input,.side-field select{width:100%;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);padding:.65rem .75rem}.activity{margin-top:1.5rem;padding-top:1.1rem;border-top:1px solid var(--line)}.activity h3{margin:0 0 .75rem;font-family:var(--font-display);letter-spacing:-.02em}.activity-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:1rem}.activity-meta p{margin:0;padding:.7rem;border-radius:12px;border:1px solid var(--line);background:#ffffff08;font-size:.88rem}.comments{display:grid;gap:.7rem;margin-bottom:.9rem}.comment{border:1px solid var(--line);border-radius:12px;padding:.8rem;background:#ffffff08}.comment-head{display:grid;grid-template-columns:auto 1fr auto;gap:.55rem;align-items:center;margin-bottom:.45rem}.comment-head strong{display:block;font-size:.88rem}.comment p{margin:0;white-space:pre-wrap;line-height:1.45}.comment-compose{display:grid;gap:.55rem}.linkish{border:0;background:transparent;color:var(--ink-dim);cursor:pointer;font-size:.75rem}.linkish:hover{color:var(--danger)}@media(max-width:900px){.jira-top{flex-direction:column;align-items:stretch}.jira-top-actions{width:100%}.jira-top-actions .btn-primary{flex:1}.issue-dialog-grid{grid-template-columns:1fr}.issue-main{border-right:0;border-bottom:1px solid var(--line)}.activity-meta{grid-template-columns:1fr}}.panel-block{margin:1rem 0;padding:1.1rem 1.15rem;border:1px solid var(--line);border-radius:16px;background:#fff}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.panel-head h2{margin:0;font-family:var(--font-display);font-size:1.15rem;letter-spacing:-.02em}.type-bars{display:grid;gap:.85rem}.type-bar-row{display:grid;gap:.4rem}.type-bar-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:.55rem .85rem}.bar-track{height:10px;border-radius:999px;background:#ffffff0f;overflow:hidden}.bar-fill{height:100%;border-radius:inherit;background:var(--accent-2);min-width:2px;transition:width .28s ease}.bar-fill.goal-career{background:#4f94ff}.bar-fill.goal-health{background:#3ee0b0}.bar-fill.goal-learning{background:#c084fc}.bar-fill.goal-money{background:#f0b429}.bar-fill.goal-personal{background:#ff5a3d}.goal-pill{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--line)}.goal-pill.goal-career{color:#9ec1ff;background:#4f94ff24}.goal-pill.goal-health{color:#9dffdf;background:#3ee0b01f}.goal-pill.goal-learning{color:#e0c4ff;background:#c084fc24}.goal-pill.goal-money{color:#ffe2a3;background:#f0b42924}.goal-pill.goal-personal{color:#ffc4b8;background:#ff5a3d24}.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.simple-list,.feed-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.simple-list li,.feed-list li{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;padding:.65rem .2rem;border-bottom:1px solid var(--line)}.simple-list li:last-child,.feed-list li:last-child{border-bottom:0}.feed-list strong{display:block;margin-bottom:.2rem}.feed-list p{margin:0}.goal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem}.goal-card{border:1px solid var(--line);border-radius:16px;padding:1rem;background:#fff;display:grid;gap:.55rem}.goal-card h3{margin:0;font-family:var(--font-display);letter-spacing:-.02em}.goal-card-top{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.status-chip{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim)}.status-chip.status-active{color:var(--accent-2)}.status-chip.status-done{color:var(--ink-dim)}.target-line{margin:0;display:grid;gap:.2rem}.goal-card-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.danger-text{color:var(--danger)!important}.create-dialog{width:min(520px,100%)}.create-body{padding:1rem 1.1rem 1.25rem;display:grid;gap:.35rem}.create-body input,.create-body textarea,.create-body select,.track-form input,.track-form select,.section-head select{width:100%;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);padding:.65rem .75rem;margin-bottom:.55rem}.track-form{display:grid;gap:.55rem}.track-form h2{margin:0 0 .35rem;font-family:var(--font-display)}.track-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.track-form>.view-toggle{margin-bottom:.75rem}.tiny{font-size:.78rem}.week-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.week-hint{margin:.75rem 0 0}.progress-readout{display:grid;gap:.35rem}.spark{display:flex;align-items:flex-end;gap:3px;height:36px}.spark span{width:6px;border-radius:999px;background:var(--accent-2);min-height:4px}.bar-fill.bar-lift{background:var(--accent-2)}.bar-fill.bar-run{background:#7eb6ff}.banner{margin:0 0 .5rem;padding:.75rem .9rem;border-radius:12px;border:1px solid rgba(62,224,176,.35);background:#3ee0b01a}.form-details{border:1px solid var(--line);border-radius:12px;padding:.7rem .8rem .2rem;margin:.2rem 0 .8rem}.form-details summary{cursor:pointer;font-weight:700;margin-bottom:.65rem}.train-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem}.exercise-list{display:grid;gap:.7rem}.exercise-block{border:1px solid var(--line);border-radius:12px;padding:.75rem;display:grid;gap:.45rem}.exercise-head{display:flex;gap:.5rem;align-items:center}.exercise-head input{flex:1}.set-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,.7fr) auto;gap:.4rem;align-items:center}.set-row-labels span{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-dim)}.next-note{margin:0;color:var(--accent-2);font-size:.92rem}.set-row input,.exercise-head input{margin-bottom:0}.row-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;justify-content:flex-end}.compare{font-size:.75rem;font-weight:700;letter-spacing:.03em;white-space:nowrap}.compare-up{color:var(--accent-2)}.compare-down{color:var(--warn)}.compare-same,.compare-new{color:var(--ink-dim)}.template-draft{display:grid;gap:.35rem;margin-top:.8rem}.template-draft input,.template-draft textarea{width:100%;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);padding:.65rem .75rem}@media(max-width:800px){.dash-grid,.track-grid,.week-grid,.train-layout{grid-template-columns:1fr}.main-nav{order:3;width:100%}.topbar-actions{margin-left:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.train-page .section-head{align-items:center}.train-head-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:flex-end}.train-head-actions .btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.run-board{display:grid;gap:1rem}.run-board :focus-visible{outline:2px solid #0f766e;outline-offset:2px}.run-hero{display:grid;grid-template-columns:minmax(220px,.82fr) minmax(0,1.18fr);gap:1.25rem 1.75rem;align-items:end;padding:1.35rem 1.35rem 1.15rem;border:1px solid var(--line);border-radius:24px;background:radial-gradient(90% 90% at 100% -20%,rgba(15,118,110,.16),transparent 58%),radial-gradient(70% 70% at -10% 120%,rgba(226,61,34,.08),transparent 52%),#fff}.run-kicker{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#0f766e}.run-hero-distance{display:flex;align-items:baseline;gap:.45rem;margin:.35rem 0 0;font-family:var(--font-display);font-weight:800;font-size:clamp(3.4rem,7vw,5.4rem);letter-spacing:-.06em;line-height:.88;font-variant-numeric:tabular-nums}.run-hero-distance span,.run-record-value span,.run-log-distance span,.run-log-pace span,.run-pace-live strong span,.run-hero-stats dd span{font-family:var(--font-body);font-size:.95rem;font-weight:650;letter-spacing:0;color:var(--ink-dim)}.run-hero-stats{display:flex;flex-wrap:wrap;gap:.85rem 1.5rem;margin:1.1rem 0 0}.run-hero-stats div{display:grid;gap:.12rem}.run-hero-stats dt{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.run-hero-stats dd{margin:0;font-family:var(--font-display);font-size:1.45rem;font-weight:750;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.run-hero-note{margin:.85rem 0 0;max-width:36ch;color:var(--ink-dim)}.run-goal{display:grid;gap:.45rem;margin-top:1rem}.run-goal p{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:0;font-weight:650}.run-goal .goal-pill,.run-goal .goal-pill.goal-career,.run-goal .goal-pill.goal-health,.run-goal .goal-pill.goal-learning,.run-goal .goal-pill.goal-money,.run-goal .goal-pill.goal-personal{color:#115e59;background:#0f766e1f;border-color:transparent}.run-goal-meter{height:8px;border-radius:999px;background:#1c191714;overflow:hidden}.run-goal-meter span{display:block;height:100%;border-radius:inherit;background:#0f766e}.run-course{margin:0;min-width:0}.run-course svg{display:block;width:100%;height:auto;overflow:visible}.run-course-base{stroke:#1c19171f;stroke-width:1.5}.run-course-area{fill:#0f766e24}.run-course-line{fill:none;stroke:#0f766e;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1400;stroke-dashoffset:1400;animation:run-draw .7s ease forwards}.run-course-dot{fill:#0f766e;stroke:#fff;stroke-width:2}.run-course-dot.is-rest{fill:#fff;stroke:#1c191747}.run-course-today{fill:none;stroke:#e23d22;stroke-width:2}.run-course-days{list-style:none;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;margin:.35rem 0 0;padding:0;text-align:center}.run-course-days li{display:grid;gap:.1rem;min-width:0;font-size:.75rem;font-weight:650;color:var(--ink-dim)}.run-course-days li.is-today{color:#9a3412}.run-course-dist{font-variant-numeric:tabular-nums;font-weight:700;color:var(--ink)}.run-course-days li.is-today .run-course-dist{color:#9a3412}.run-charts{display:grid;grid-template-columns:1.25fr .85fr;gap:1rem}.run-card{border:1px solid var(--line);border-radius:20px;background:#fff;padding:1.1rem 1.15rem 1.15rem;min-width:0}.run-card h2,.run-record h2{margin:0;font-family:var(--font-display);font-size:1.15rem;letter-spacing:-.03em}.run-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.run-card-head p{margin:0}.run-bars{list-style:none;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:.4rem;margin:0;padding:0;align-items:end}.run-bars li{display:grid;justify-items:center;gap:.35rem;min-width:0}.run-bar-value{min-height:1rem;font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-dim)}.run-bar-track{height:128px;width:100%;display:flex;align-items:flex-end;justify-content:center}.run-bar{display:block;width:min(100%,26px);border-radius:999px 999px 6px 6px;background:#0f766e;transform-origin:bottom;animation:run-grow .42s ease}.run-bar.is-current{background:#e23d22}.run-bar.is-empty{width:min(100%,16px);background:#1c19171f}.run-bar.is-current.is-empty{background:#e23d2266}.run-bar-label{font-size:.75rem;font-weight:650;color:var(--ink-dim);text-align:center}.run-bars li:last-child .run-bar-label{color:var(--ink);font-weight:750}.run-pace{display:block;width:100%;height:auto}.run-pace-line{fill:none;stroke:#1c1917;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.run-pace-dot{fill:#fff;stroke:#1c1917;stroke-width:2}.run-pace-dot.is-latest{fill:#e23d22;stroke:#fff}.run-insight{margin:.75rem 0 0;color:var(--ink-dim);line-height:1.45}.run-records{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.run-record-value{margin:.55rem 0 .2rem;display:flex;align-items:baseline;gap:.35rem;font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.4rem);font-weight:800;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}.run-split{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:1rem;align-items:start}#log-run{scroll-margin-top:5.5rem}.run-form{display:grid;gap:.75rem}.run-form input,.run-form select{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:12px;background:#fff;color:var(--ink);padding:.6rem .75rem;font-size:1rem}.run-form input::placeholder{color:#1c191761}.run-figures{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:.75rem;align-items:end}.run-figure{display:flex;gap:.45rem;min-width:0}.run-form .run-figure input:first-child{flex:1 1 auto;width:auto;min-width:0;font-family:var(--font-display);font-size:1.65rem;font-weight:750;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.run-form .run-figure-input{font-family:var(--font-display);font-size:1.65rem;font-weight:750;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.run-form .run-unit{flex:0 0 4.75rem;width:4.75rem;text-align:center}.run-pace-live{grid-column:1 / -1;margin:.15rem 0 0;display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.75rem .9rem;border-radius:14px;background:#f7f6f3}.run-pace-live .field-label{margin:0}.run-pace-live strong{font-family:var(--font-display);font-size:1.65rem;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1}.run-meta{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.run-feel{margin:0;padding:0;border:0;display:grid;gap:.4rem}.run-feel-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.45rem}.run-feel button{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:52px;border-radius:12px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;padding:.35rem .2rem;font-size:.72rem;font-weight:700}.run-feel button span{font-family:var(--font-display);font-size:1rem;line-height:1.1}.run-feel button.is-selected{background:#0f766e;border-color:#0f766e;color:#fff}.run-feel button:hover{border-color:#0f766e}.run-log{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.run-log-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem 1rem;align-items:start;padding:.8rem .2rem;border-bottom:1px solid var(--line)}.run-log-item:last-child{border-bottom:0;padding-bottom:0}.run-log-distance,.run-log-pace{margin:0;font-family:var(--font-display);font-weight:750;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.run-log-distance{font-size:1.35rem}.run-log-pace{font-size:1.15rem;text-align:right}.run-log-side{display:grid;justify-items:end;gap:.15rem}.run-log-side p{margin:0}.run-log-track{height:6px;margin-top:.4rem;border-radius:999px;background:#1c191714;overflow:hidden}.run-log-track span{display:block;height:100%;border-radius:inherit;background:#0f766e}.run-log-note{margin:.35rem 0 0;color:var(--ink-dim);font-size:.92rem}@keyframes run-draw{to{stroke-dashoffset:0}}@keyframes run-grow{0%{transform:scaleY(.2)}to{transform:scaleY(1)}}@media(max-width:900px){.run-hero,.run-charts,.run-split,.run-records{grid-template-columns:1fr}}@media(max-width:560px){.run-meta,.run-figures{grid-template-columns:1fr}.run-feel-row{grid-template-columns:repeat(3,minmax(0,1fr))}.run-hero{padding:1.1rem 1rem 1rem}.train-head-actions{width:100%;justify-content:space-between}}.gym{width:min(100%,520px);margin:0 auto 1rem;padding:1.1rem 1.05rem 1.15rem;border:1px solid var(--line);border-radius:24px;background:radial-gradient(80% 50% at 100% 0%,rgba(15,118,110,.1),transparent 60%),#fff;display:grid;gap:.85rem}.gym-head h2{margin:0;font-family:var(--font-display);font-size:1.45rem;letter-spacing:-.04em}.gym-head p{margin:.2rem 0 0}.gym-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.chip-rail{min-width:0}.gym-exercises,.lift-picks{display:flex;gap:.45rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none}.gym-exercises::-webkit-scrollbar,.lift-picks::-webkit-scrollbar{display:none;width:0;height:0}.chip-rail.is-overflow:not(.is-end)>.gym-exercises,.chip-rail.is-overflow:not(.is-end)>.lift-picks{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 1.6rem),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 1.6rem),transparent)}.chip-rail.is-scrolled.is-end>.gym-exercises,.chip-rail.is-scrolled.is-end>.lift-picks{-webkit-mask-image:linear-gradient(to right,transparent,#000 1.6rem);mask-image:linear-gradient(to right,transparent,#000 1.6rem)}.chip-rail.is-overflow.is-scrolled:not(.is-end)>.gym-exercises,.chip-rail.is-overflow.is-scrolled:not(.is-end)>.lift-picks{-webkit-mask-image:linear-gradient(to right,transparent,#000 1.6rem,#000 calc(100% - 1.6rem),transparent);mask-image:linear-gradient(to right,transparent,#000 1.6rem,#000 calc(100% - 1.6rem),transparent)}.gym-days button,.gym-exercises button{min-height:44px;border-radius:999px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);padding:.45rem .85rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.gym-days button{width:100%;min-width:0;padding-inline:.45rem}.gym-days button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.gym-exercises button{flex:0 0 auto;scroll-snap-align:start;max-width:15rem}.gym-days button.is-selected,.gym-exercises button.is-selected,.gym-rir button.is-selected{background:#0f766e;border-color:#0f766e;color:#fff}.gym-exercises button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gym-exercises button strong{min-width:1.3rem;height:1.3rem;border-radius:999px;display:grid;place-items:center;background:#ffffff38;font-size:.75rem}.gym-exercises button:not(.is-selected) strong{background:#0f766e1f;color:#115e59}.gym-add{display:flex;gap:.4rem;flex:1 0 12rem}.gym-add input,.gym-goal select,.gym-notes input{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:12px;background:#fff;padding:.55rem .75rem;font-size:1rem}.gym-exercise{margin:0;font-family:var(--font-display);font-size:1.35rem;letter-spacing:-.03em;line-height:1.15}.gym-now .tiny,.gym-now .next-note{margin:.3rem 0 0}.gym-entry{display:grid;grid-template-columns:1.25fr .75fr;gap:.6rem}.gym-entry input{width:100%;min-height:68px;border:1px solid var(--line-strong);border-radius:16px;background:#fff;text-align:center;font-family:var(--font-display);font-size:2rem;font-weight:750;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.gym-entry input::placeholder{color:#1c191752}.gym-rir{margin:0;padding:0;border:0}.gym-rir-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem}.gym-rir button{min-height:44px;border-radius:12px;border:1px solid var(--line-strong);background:#fff;font-weight:750;cursor:pointer}.gym-log,.gym-finish,.gym-reset{width:100%}.gym-log{min-height:52px;font-size:1.05rem}.gym-clock{border-radius:18px;background:#f7f6f3;padding:.9rem 1rem}.gym-clock.is-long{background:#b453091a}.gym-clock-empty{margin:0;color:var(--ink-dim)}.gym-rest,.gym-elapsed{margin:0;display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.gym-rest span,.gym-elapsed{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.gym-rest strong{font-family:var(--font-display);font-size:clamp(2.6rem,12vw,3.6rem);font-weight:800;line-height:.9;font-variant-numeric:tabular-nums;color:var(--ink);text-transform:none;letter-spacing:-.05em}.gym-clock.is-long .gym-rest strong{color:#9a3412}.gym-elapsed{margin-top:.35rem;letter-spacing:0;text-transform:none;font-size:.92rem;font-weight:650}.gym-elapsed strong{font-variant-numeric:tabular-nums;font-family:var(--font-display);font-size:1.15rem}.gym-sets{list-style:none;margin:0;padding:0}.gym-sets li{display:grid;grid-template-columns:1.6rem minmax(0,1fr) auto;gap:.45rem .65rem;align-items:baseline;padding:.55rem 0;border-top:1px solid var(--line)}.gym-set-n{font-weight:750;color:var(--ink-dim);font-variant-numeric:tabular-nums}.gym-sets strong{display:block;font-variant-numeric:tabular-nums}.gym-sets strong span,.gym-set-rest,.gym-sets time{color:var(--ink-dim);font-weight:650;font-size:.85rem}.gym-set-rest{display:block;margin-top:.1rem}.gym-actions{display:grid;gap:.45rem}.gym-finish{background:var(--ink);color:#fff}.gym-finish:hover{background:#292524}.gym-finish:disabled{background:#1c19172e;color:#1c19178c}.gym :focus-visible{outline:2px solid #0f766e;outline-offset:2px}.gym-pr{display:inline-flex;align-items:baseline;gap:.15rem;margin-top:.35rem;color:#9a3412;font-weight:750;text-decoration:none}.gym-pr span{color:var(--ink-dim);font-weight:650}.lift-history{display:grid;gap:.9rem;margin:0 0 1.25rem;scroll-margin-top:5.5rem}.lift-history-head h2,.lift-workouts h3,.lift-card h3,.lift-pr h3{margin:0;font-family:var(--font-display);letter-spacing:-.03em}.lift-history-head h2{font-size:1.55rem}.lift-history-head p,.lift-workouts>h3{margin:.15rem 0 0}.lift-workouts>h3{font-size:1.2rem}.lift-picks button{white-space:nowrap;scroll-snap-align:start;flex:0 0 auto;min-height:44px;border-radius:999px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);padding:.45rem .9rem;font-weight:700;cursor:pointer}.lift-picks button.is-selected{background:#1c1917;border-color:#1c1917;color:#fff}.lift-stage{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:.75rem;align-items:stretch}.lift-pr{border-radius:20px;padding:1.15rem 1.2rem 1.2rem;background:radial-gradient(90% 70% at 100% 0%,rgba(226,61,34,.35),transparent 58%),#1c1917;color:#fff}.lift-pr-kicker{margin:0;font-size:.75rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:#ffffffb8}.lift-pr h3{margin-top:.35rem;font-size:1.25rem}.lift-pr-value{margin:.35rem 0 0;font-family:var(--font-display);font-size:clamp(2.4rem,6vw,3.3rem);font-weight:800;letter-spacing:-.05em;line-height:.95;font-variant-numeric:tabular-nums}.lift-pr-sub,.lift-pr-effort,.lift-pr-last{margin:.35rem 0 0;color:#ffffffc7}.lift-pr-effort{color:#fecaca;font-weight:700}.lift-pr-last{margin-top:.85rem;font-weight:650}.lift-card{border:1px solid var(--line);border-radius:20px;background:#fff;padding:1.05rem 1.1rem 1.1rem;min-width:0}.lift-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.85rem}.lift-card-head p{margin:0}.lift-bars{list-style:none;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:.4rem;margin:0;padding:0;align-items:end}.lift-bars li{display:grid;justify-items:center;gap:.3rem;min-width:0}.lift-bar-value,.lift-bar-date{font-size:.75rem;font-weight:700;text-align:center;font-variant-numeric:tabular-nums}.lift-bar-date{color:var(--ink-dim);font-weight:650}.lift-bar-track{width:100%;height:6.5rem;display:flex;align-items:flex-end}.lift-bar{display:block;width:100%;border-radius:10px 10px 4px 4px;background:#0f766e}.lift-bar.is-record{background:#e23d22}.lift-visits{list-style:none;margin:0;padding:0}.lift-visits li{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline;padding:.65rem 0;border-top:1px solid var(--line)}.lift-visits li:first-child{border-top:0;padding-top:0}.lift-visits p{margin:.15rem 0 0}.lift-sessions{list-style:none;margin:.55rem 0 0;padding:0;display:grid;gap:.55rem}.lift-sessions>li{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}.lift-session-toggle{width:100%;min-height:44px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.15rem .75rem;padding:.85rem 1rem;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.lift-session-toggle span{grid-column:1;color:var(--ink-dim);font-size:.92rem}.lift-session-toggle time{grid-row:1;grid-column:2;color:var(--ink-dim);font-size:.85rem;font-weight:650}.lift-session-body{display:grid;gap:.85rem;padding:0 1rem 1rem}.lift-group h4{margin:0;font-size:1rem}.lift-group ol{list-style:none;margin:.35rem 0 0;padding:0}.lift-group li{display:grid;grid-template-columns:1.4rem minmax(0,1fr) auto;gap:.45rem;align-items:baseline;padding:.4rem 0;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}.lift-group li span:first-child{color:var(--ink-dim);font-weight:750}.lift-group em{font-style:normal;font-size:.72rem;font-weight:800;letter-spacing:.04em;color:#9a3412;background:#e23d221f;border-radius:999px;padding:.12rem .4rem}.lift-session-note{margin:0;color:var(--ink-dim)}.lift-history :focus-visible{outline:2px solid #0f766e;outline-offset:2px}@media(max-width:800px){.lift-stage{grid-template-columns:1fr}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.recall{--mono: "JetBrains Mono", ui-monospace, monospace;color-scheme:dark}.recall :focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}.recall h1:focus{outline:none}.recall-skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.recall-skip:focus{position:static;width:auto;height:auto;clip:auto;overflow:visible;display:inline-flex;align-items:center;min-height:44px;margin-bottom:.75rem;padding:.4rem .8rem;border-radius:10px;background:var(--accent-2);color:#062018;font-weight:700}.recall-nav{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1.15rem}.recall-nav a{min-height:44px;display:inline-flex;align-items:center;gap:.4rem;padding:0 .95rem;border-radius:999px;color:var(--ink-dim);font-weight:650}.recall-nav a:hover{color:var(--ink);background:#ffffff0a}.recall-nav a.active{color:var(--ink);background:#3ee0b024}.recall-count{min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;display:inline-grid;place-items:center;background:#f0b42929;color:#f0b429;font-size:.78rem;font-variant-numeric:tabular-nums}.recall-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,320px);gap:1.25rem;align-items:start}.recall-main,.recall-field,.recall-split,.recall-row{min-width:0}.recall-hero h1,.recall-focus h1,.recall-now h2,.recall-row h2{overflow-wrap:break-word}.recall-kicker{margin:0 0 .45rem;color:var(--accent-2);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.recall-hero h1{margin:0;max-width:16ch;font-family:var(--font-display);font-weight:750;letter-spacing:-.045em;font-size:clamp(2.05rem,4.4vw,3.15rem);line-height:1.02}.recall-lede,.recall-reason{margin:.75rem 0 0;max-width:48ch;color:var(--ink-dim);font-size:1.05rem;line-height:1.55}.recall-reason{color:var(--ink)}.recall-finish-block{margin-top:1rem}.recall-finish-text{margin:0;font-variant-numeric:tabular-nums;font-weight:650}.recall-slots{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.65rem}.recall-slots span{width:2.4rem;height:.45rem;border-radius:99px;background:#a8c4d638}.recall-slots span.is-done{background:var(--accent-2)}.recall-now{--rail: var(--accent-2);position:relative;margin-top:1.2rem;padding:1.25rem 1.2rem 1.2rem 1.35rem;border-radius:20px;border:1px solid var(--line-strong);background:#fff;overflow:hidden}.recall-now:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--rail)}.recall-now[data-kind=learn]{--rail: var(--accent)}.recall-now[data-kind=rest]{--rail: rgba(168, 196, 214, .55)}.recall-now-kicker{margin:0;color:var(--ink-dim);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.recall-now h2{margin:.35rem 0 .45rem;font-family:var(--font-display);font-size:clamp(1.55rem,3vw,2.15rem);letter-spacing:-.04em;line-height:1.12}.recall-meta{display:flex;flex-wrap:wrap;gap:.25rem .15rem;margin:.2rem 0 .35rem;color:var(--ink-dim);font-size:.92rem}.recall-meta>span:not(:last-child):after{content:"·";margin:0 .45rem;color:#a8c4d673}.recall-now-actions,.recall-form-actions,.recall-backup-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.recall-now-actions{margin-top:1rem}.recall a.btn{display:inline-flex;align-items:center;justify-content:center}.recall-picks,.recall-filters{display:flex;flex-wrap:wrap;gap:.45rem}.recall-pick,.recall-filters button{min-height:44px;padding:.45rem .9rem;border-radius:999px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);cursor:pointer}.recall-pick.is-on,.recall-filters button.is-on{background:#3ee0b024;border-color:transparent}.recall-pick.is-on{background:#ff5a3d29}.recall-form,.recall-more{display:grid;gap:.85rem}.recall-form{margin-top:.85rem}.recall-form-intro{margin:0;max-width:52ch;line-height:1.5}.recall-split{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;align-items:start}.recall-field{display:grid;gap:.35rem}.recall-field>label,.recall-search>label{font-size:.82rem;font-weight:650;color:var(--ink-dim)}.recall input,.recall textarea,.recall select{width:100%;max-width:100%;min-height:48px;border:1px solid var(--line-strong);border-radius:12px;padding:.7rem .85rem;background:#fff;color:var(--ink);font-size:1rem;line-height:1.45}.recall textarea{min-height:8rem;resize:vertical}.recall select{color-scheme:dark}.recall-hint{margin:.15rem 0 0;color:var(--ink-dim);font-size:.92rem;line-height:1.45}.recall-error{margin:0;color:#ffb4bc;font-size:.95rem}.recall-code,.recall-pre,.recall-pre code{font-family:var(--mono);font-size:1rem;line-height:1.55}.recall-editor .cm-editor{width:100%;min-height:16rem;max-height:32rem;border:1px solid var(--line-strong);border-radius:12px;background:#fff;overflow:hidden}.recall-editor.is-compact .cm-editor,.recall-editor.is-compact .cm-scroller{min-height:10rem}.recall-editor .cm-scroller{min-height:16rem;font-family:JetBrains Mono,ui-monospace,monospace}.recall-editor .cm-content{font-family:JetBrains Mono,ui-monospace,monospace}.recall-run{display:grid;gap:.65rem}.recall-runbar{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem .9rem}.recall-runbar .recall-hint,.recall-run .recall-hint{margin:0}.recall-examples{display:grid;gap:.45rem}.recall-example{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr) auto;gap:.4rem;align-items:center}.recall-example input{min-height:44px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.92rem}.recall-run-out{display:grid;gap:.55rem;margin:0;padding:.8rem .9rem;border:1px solid var(--line);border-radius:12px;background:#f7f6f3;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.88rem;line-height:1.5;max-height:18rem;overflow:auto}.recall-run-out p,.recall-run-out pre{margin:0;white-space:pre-wrap;font-family:inherit}.recall-run-error{color:#9f1239;font-weight:650}.recall-cases{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.recall-cases li{display:grid;gap:.15rem;padding-top:.45rem;border-top:1px solid var(--line)}.recall-cases strong{font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.recall-cases .is-pass strong{color:#0f766e}.recall-cases .is-fail strong{color:#9f1239}.recall-cases code,.recall-cases span{font-family:inherit}.recall-pre{margin:0;padding:.9rem 1rem;border-radius:12px;overflow:auto;background:#fff;border:1px solid var(--line)}.recall-label-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.recall-inline{display:inline-flex;align-items:center;gap:.45rem;color:var(--ink-dim);font-size:.82rem;font-weight:650}.recall-inline select{width:auto;min-width:8.5rem}.recall-fold,.recall-card{border:1px solid var(--line);border-radius:16px;background:#fff}.recall-fold{margin-top:1rem;padding:.35rem 1rem 1rem}.recall-fold summary,.recall-card summary{min-height:48px;display:flex;align-items:center;cursor:pointer;font-weight:700}.recall-section{margin-top:1.5rem}.recall-section h2,.recall-card h2{font-family:var(--font-display)}.recall-section h2{margin:0 0 .7rem;font-size:1.3rem;letter-spacing:-.03em}.recall-list,.recall-cards,.recall-pulses,.recall-history,.recall-week,.recall-rules{list-style:none;margin:0;padding:0}.recall-list,.recall-cards{display:grid;gap:.5rem}.recall-list a{display:flex;flex-direction:column;justify-content:center;gap:.15rem;min-height:52px;padding:.7rem .85rem;border-radius:12px;border:1px solid var(--line);background:#fff}.recall-list a:hover,.recall-row:hover{border-color:var(--line-strong)}.recall-list strong{font-weight:650}.recall-list span,.recall-pulse-top span:last-child,.recall-history span{color:var(--ink-dim);font-size:.92rem}.recall-slip{margin:1rem 0 0;color:var(--ink-dim);line-height:1.5}.recall-rail{display:grid;gap:.8rem}.recall-card{display:grid;gap:.65rem;padding:1rem 1.05rem 1.05rem}details.recall-card{display:block}details.recall-card>:not(summary){margin-top:.35rem}.recall-card h2{margin:0;font-family:var(--font-body);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.recall-card p{margin:0;line-height:1.5}.recall-card-head{display:flex;align-items:center;gap:.4rem}.recall-card-head svg{color:var(--accent)}.recall-streak-num{display:flex;align-items:baseline;gap:.45rem;margin:0}.recall-streak-num strong{font-family:var(--font-display);font-size:3rem;line-height:.9;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.recall-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem}.recall-week-mark{display:block;height:8px;border-radius:99px;background:transparent}.recall-week-label{display:block;margin-top:.28rem;text-align:center;font-size:.72rem;color:var(--ink-dim)}.recall-week .is-studied .recall-week-mark{background:var(--accent-2)}.recall-week .is-freeze .recall-week-mark{background:#f0b429}.recall-week .is-open .recall-week-mark{box-shadow:inset 0 0 0 1.5px var(--accent-2)}.recall-week .is-missed .recall-week-mark{box-shadow:inset 0 0 0 1.5px #a8c4d666}.recall-freeze{display:flex;align-items:flex-start;gap:.45rem;margin:0;color:var(--ink-dim);font-size:.92rem;line-height:1.4}.recall-freeze svg{flex:none;margin-top:.1rem;color:#f0b429}.recall-rules{display:grid;gap:.45rem;padding-left:1.15rem;list-style:decimal}.recall-rules li{line-height:1.45;padding-left:.2rem}.recall-pulses{display:grid;gap:.75rem}.recall-pulse-top{display:flex;justify-content:space-between;gap:.6rem;font-size:.92rem}.recall-meter{height:6px;margin-top:.35rem;border-radius:99px;overflow:hidden;background:#a8c4d624}.recall-meter span{display:block;height:100%;border-radius:inherit;background:var(--accent-2)}.recall-meter span.is-rest{background:#a8c4d661}.recall-stepper+.recall-stepper{margin-top:.85rem}.recall-stepper label{display:block;margin-bottom:.4rem;font-weight:650}.recall-stepper-row{display:flex;align-items:center;gap:.55rem}.recall-stepper-row button{width:44px;height:44px;border-radius:12px;border:1px solid var(--line-strong);background:transparent;color:var(--ink);font-size:1.25rem;cursor:pointer}.recall-stepper-row button:disabled{opacity:.38;cursor:not-allowed}.recall-stepper-row output{min-width:1.5ch;font-family:var(--font-display);font-size:1.6rem;font-variant-numeric:tabular-nums}.recall-file{position:relative;cursor:pointer}.recall-file input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.recall-danger{color:#ffb4bc;border-color:#ff6b7a80}.recall-confirm p{margin:0 0 .35rem}.recall-library .recall-hero,.recall-search{margin-bottom:.9rem}.recall-search-row{display:flex;gap:.5rem;margin-top:.35rem}.recall-search-row input{flex:1}.recall-filters{margin:.2rem 0 .4rem}.recall-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:16px;background:#fff}.recall-row h2{margin:.15rem 0;font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.03em}.recall-row h2 a:hover{color:var(--accent-2)}.recall-strength.is-fragile{color:#f0b429}.recall-strength.is-solid{color:var(--accent-2)}.recall-strength.is-new,.recall-strength.is-steady{color:var(--ink-dim)}.recall-strength.is-steady{color:var(--ink)}.recall-empty{margin:1.2rem 0;color:var(--ink-dim)}.recall-empty a{color:var(--ink);text-decoration:underline;text-underline-offset:.18em}.recall-focus{width:min(720px,100%);margin:0 auto;display:grid;gap:.8rem}.recall-focus h1{margin:0;font-family:var(--font-display);font-weight:750;letter-spacing:-.04em;font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.08}.recall-prose{margin:0;white-space:pre-wrap;line-height:1.6}.recall-reveal{display:grid;gap:.55rem}.recall-reveal h2{margin:.45rem 0 0;font-family:var(--font-body);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.recall-ratebar{position:sticky;bottom:0;z-index:5;margin-top:.4rem;padding:.85rem 0 .15rem;background:linear-gradient(to bottom,#fff0,#fff 32%)}.recall-ratebar>p{margin:0 0 .55rem;font-weight:700}.recall-rates{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.recall-rate{min-height:88px;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.8rem .9rem;border-radius:14px;border:1px solid var(--line-strong);background:#fff;text-align:left;cursor:pointer}.recall-rate strong{display:flex;align-items:center;gap:.4rem;font-size:1.05rem}.recall-rate span,.recall-rate em{color:var(--ink-dim);font-style:normal;font-size:.92rem}.recall-rate em{color:var(--accent-2);font-variant-numeric:tabular-nums}.recall-rate:hover{border-color:var(--accent-2);background:#3ee0b014}.recall-key{font-family:var(--mono);font-size:.75rem;font-weight:500;color:var(--ink-dim);border:1px solid var(--line);border-radius:6px;padding:0 .32rem}.recall-result blockquote{margin:.2rem 0 0;padding:.85rem 1rem;border-left:3px solid var(--accent-2);border-radius:0 12px 12px 0;background:#3ee0b014}.recall-result blockquote p{margin:0;white-space:pre-wrap;line-height:1.5}.recall-backline,.recall-crumb{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 0;color:var(--ink-dim)}.recall-backline a,.recall-crumb a,.recall-hint a{color:var(--ink);text-decoration:underline;text-underline-offset:.18em}.recall input.recall-title-input{font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.35rem);font-weight:750;letter-spacing:-.04em;line-height:1.15;background:transparent;border-color:transparent;min-height:0;padding:.1rem .35rem;margin-left:-.35rem}.recall input.recall-title-input:hover,.recall input.recall-title-input:focus{background:#f7f6f3;border-color:var(--line-strong)}.recall-status{min-height:1.2rem;margin:0;color:var(--accent-2);font-size:.9rem}.recall-status:empty{display:none}.recall-history{display:grid;gap:.75rem}.recall-history li{display:grid;gap:.12rem}.recall-history p{margin:.15rem 0 0;white-space:pre-wrap}.recall-toast{position:fixed;z-index:30;left:50%;bottom:max(1.25rem,env(safe-area-inset-bottom));transform:translate(-50%);width:min(32rem,calc(100% - 2rem));margin:0;padding:.75rem .95rem;border-radius:12px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);box-shadow:0 16px 40px #00000059;text-align:center}.recall-toast:empty{display:none}@media(max-width:960px){.recall-layout{grid-template-columns:1fr}}@media(max-width:720px){.recall-split,.recall-rates,.recall-search-row,.recall-example{grid-template-columns:1fr;display:grid}.recall-row{flex-direction:column;align-items:stretch}.recall-hero h1{max-width:none}.recall input.recall-title-input{font-size:1.45rem}}.day{width:min(880px,100%)}.day-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.day-kicker{margin:0 0 .2rem;color:var(--accent-2);font-size:.78rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase}.day h1{margin:0;font-family:var(--font-display);font-size:clamp(2.2rem,6vw,3.4rem);letter-spacing:-.045em;line-height:.95}.day-head .muted{margin:.45rem 0 0}.day-switch{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.day-date input,.day-compose input,.day-compose select{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);padding:.55rem .7rem;color-scheme:dark}.day-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:1rem}.day-totals div{padding:.85rem .9rem;border:1px solid var(--line);border-radius:14px;background:#fff}.day-totals span{display:block;color:var(--ink-dim);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.day-totals strong{display:block;margin-top:.25rem;font-family:var(--font-display);font-size:1.35rem;letter-spacing:-.03em}.day-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;margin-bottom:1.25rem}.day-week button{min-height:52px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--ink-dim);cursor:pointer;display:grid;justify-items:center;align-content:center;gap:.1rem;padding:.35rem 0}.day-week button span{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.day-week button strong{font-family:var(--font-display);font-size:1rem;color:var(--ink)}.day-week button.is-selected{background:#3ee0b01f;border-color:#3ee0b059;color:var(--accent-2)}.day-compose,.day-log{border:1px solid var(--line);border-radius:18px;background:#fff;padding:1rem;margin-bottom:1rem}.day-modes,.day-filters{display:flex;flex-wrap:wrap;gap:.35rem}.day-modes{margin-bottom:.9rem}.day-modes button,.day-filters button{min-height:44px;padding:.4rem .85rem;border-radius:999px;border:1px solid var(--line-strong);background:transparent;color:var(--ink-dim);cursor:pointer;font-weight:600}.day-modes button.is-selected,.day-filters button.is-selected{background:var(--accent);border-color:var(--accent);color:#140805}.day-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.day-compose form{display:grid;gap:.7rem}.day-compose textarea{width:100%;min-height:5.5rem;border:1px solid var(--line-strong);border-radius:10px;background:#fff;color:var(--ink);padding:.65rem .7rem;color-scheme:dark;resize:vertical}.day-notes{display:grid;gap:.7rem}.day-row-label a,.work-log a{color:var(--accent-2);text-decoration:underline;text-underline-offset:.15em}.day-actions{margin:.4rem 0 0;padding-left:1.1rem}.day-actions li+li{margin-top:.2rem}.work-log{border:1px solid var(--line);border-radius:18px;background:#fff;padding:.4rem 1rem .6rem}.work-log ol{list-style:none;margin:0;padding:0}.work-log li{padding:.9rem 0;border-top:1px solid var(--line)}.work-log li:first-child{border-top:0}.work-log strong{display:block;margin-top:.15rem}.day-compose .btn-primary{justify-self:start}.day-compose .tiny{margin:.8rem 0 0}.day-compose .tiny a{color:var(--accent-2);text-decoration:underline;text-underline-offset:.15em}.day-log-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.4rem}.day-log h2{margin:0;font-family:var(--font-display);font-size:1.2rem;letter-spacing:-.03em}.day-empty{margin:.8rem 0 .2rem;color:var(--ink-dim)}.day-timeline{list-style:none;margin:.4rem 0 0;padding:0}.day-calendar{position:relative;display:grid;grid-template-columns:3.4rem minmax(0,1fr);border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.day-hours{position:relative;border-right:1px solid var(--line);background:#f7f6f3}.day-hour{position:absolute;left:0;right:0;padding-left:.35rem;color:var(--ink-dim);font-size:.72rem;font-variant-numeric:tabular-nums}.day-canvas{position:relative}.day-hour-line{position:absolute;left:0;right:0;border-top:1px solid var(--line);pointer-events:none}.day-block{position:absolute;overflow:hidden;box-sizing:border-box;margin:0;padding:.3rem .4rem;border:1px solid var(--line-strong);border-left-width:3px;border-radius:8px;background:#fff;color:var(--ink);text-align:left;cursor:pointer;box-shadow:0 1px #1c19170a}.day-block strong,.day-block span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-block span{color:var(--ink-dim);font-size:.72rem}.day-block.is-selected{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.day-block--time{border-left-color:var(--accent-2)}.day-block--food{border-left-color:var(--warn)}.day-block--money{border-left-color:var(--accent)}.day-block--other{border-left-color:#78716c}.day-detail{margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--line)}.day-detail-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.day-edit{display:grid;gap:.7rem;margin-top:.6rem}.day-detail h3{margin:.2rem 0 0;font-size:1.05rem}.day-macros{display:block;margin-top:.2rem;color:var(--ink-dim);font-size:.82rem}.day-row{display:grid;grid-template-columns:4.8rem minmax(0,1fr) auto;gap:.75rem;align-items:start;padding:.9rem 0;border-top:1px solid var(--line)}.day-row time{color:var(--ink-dim);font-variant-numeric:tabular-nums;padding-top:.15rem}.day-row-label{margin:0;color:var(--accent-2);font-size:.75rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.day-row--food .day-row-label{color:var(--warn)}.day-row--money .day-row-label{color:var(--accent)}.day-row strong{display:block;margin-top:.15rem;font-size:1.02rem}.day-row p{margin:.25rem 0 0}.day :focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}@media(max-width:720px){.day-fields{grid-template-columns:1fr}.day-totals strong{font-size:1.1rem}.day-row{grid-template-columns:1fr auto}.day-row time{grid-column:1 / -1;padding-top:0}}.pay-page{width:min(760px,100%)}.pay-form{display:grid;gap:.85rem;margin-bottom:1.25rem;padding:1rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.pay-grid{display:grid;grid-template-columns:1.4fr .6fr 1fr;gap:.75rem}.pay-grid-2{grid-template-columns:1fr 1fr}.pay-form .form-row{margin:0}.pay-tools{display:grid;grid-template-columns:1fr auto auto;gap:.6rem;align-items:end;margin-bottom:1rem}.pay-tools input{width:100%;min-height:44px;padding:.65rem .8rem;border:1px solid var(--line-strong);border-radius:12px;background:#fff}.pay-tools label{display:grid;gap:.25rem;color:var(--ink-dim);font-size:.78rem;font-weight:650}.pay-tools label input{width:5.5rem}.pay-list{display:grid;gap:.75rem}.pay-card{display:grid;gap:.45rem;padding:1rem 1.05rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.pay-card-top{display:flex;justify-content:space-between;gap:.75rem;align-items:baseline}.pay-card-top h2{margin:0;font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.03em}.pay-card-top span,.pay-role{color:var(--ink-dim)}.pay-role,.pay-salary,.pay-note,.pay-empty{margin:0}.pay-salary{font-family:var(--font-display);font-size:1.15rem;letter-spacing:-.03em}.pay-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none}.pay-tags li{padding:.2rem .55rem;border-radius:999px;background:#f7f6f3;border:1px solid var(--line);font-size:.82rem}.pay-note{white-space:pre-wrap;color:var(--ink);line-height:1.45}.pay-link{color:var(--accent-2);font-weight:650}.pay-actions{display:flex;flex-wrap:wrap;gap:.45rem}.pay-empty{margin-top:.5rem}@media(max-width:720px){.pay-grid,.pay-grid-2,.pay-tools{grid-template-columns:1fr}.pay-tools label input{width:100%}}.lab{color-scheme:light;display:grid;gap:1rem}.lab-intro,.lab-bar{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end}.lab-kicker{margin:0;color:var(--accent-2);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lab h1{margin:.1rem 0 .3rem;font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.35rem);letter-spacing:-.04em}.lab-intro>div>p,.lab-brief>p,.lab-hint-note,.lab-empty,.lab-meta{margin:0;color:var(--ink-dim);line-height:1.5}.lab-score{margin:0;min-width:8.5rem;padding:.85rem 1rem;border-radius:16px;background:#1c1917;color:#faf7f2;display:grid;gap:.1rem}.lab-score strong{font-family:var(--font-display);font-size:1.8rem;letter-spacing:-.04em}.lab-score span{color:#faf7f2b8;font-size:.85rem}.lab-filters{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,.8fr));gap:.65rem}.lab-filters label,.lab-brief{display:grid;gap:.35rem}.lab-filters label{font-size:.82rem;font-weight:650;color:var(--ink-dim)}.recall .lab input,.recall .lab select{color-scheme:light;width:100%;background:#fff;color:var(--ink)}.lab-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(16.5rem,1fr));gap:.75rem}.lab-card{display:grid;gap:.4rem;height:100%;padding:1rem;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink)}.lab-card:hover{border-color:#0f766e}.lab-card h2{margin:0;font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.03em}.lab-card p{margin:0}.lab-card ul{display:flex;flex-wrap:wrap;gap:.35rem;margin:.15rem 0 0;padding:0;list-style:none}.lab-card li{padding:.15rem .5rem;border:1px solid var(--line);border-radius:999px;background:var(--canvas-2);font-size:.8rem}.lab-card-top{display:flex;justify-content:space-between;gap:.5rem}.lab-level,.lab-status{font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.lab-level.is-easy,.lab-status.is-solved{color:#0f766e}.lab-level.is-medium,.lab-status.is-started{color:#9a3412}.lab-status.is-new{color:var(--ink-dim)}.lab .btn:disabled{cursor:not-allowed}@media(max-width:980px){.lab-intro,.lab-bar{flex-direction:column;align-items:stretch}.lab-filters{grid-template-columns:1fr 1fr}}.page:has(.ide){width:min(1680px,100%)}.ide{--ide-ink: #f5f5f4;--ide-dim: #a8a29e;--ide-line: rgba(245, 245, 244, .1);--ide-panel: #292524;--ide-editor: #1c1917;height:calc(100dvh - 8.75rem);min-height:38rem;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid #292524;border-radius:18px;background:var(--ide-editor);color:var(--ide-ink);color-scheme:dark}.ide-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.ide-top{display:flex;align-items:center;gap:.85rem;min-height:3.4rem;padding:.45rem .7rem;border-bottom:1px solid var(--ide-line);background:#211e1b}.ide-id{min-width:0;display:flex;align-items:baseline;gap:.7rem;flex:1}.ide-id a{color:#5eead4;font-weight:650}.ide-id h1{margin:0;font-family:var(--font-display);font-size:1.2rem;letter-spacing:-.03em}.ide-id p,.ide-clock small{margin:0;color:var(--ide-dim)}.ide-clock{display:flex;align-items:center;gap:.4rem;font-variant-numeric:tabular-nums}.ide-clock>span,.ide-term-log{font-family:JetBrains Mono,ui-monospace,monospace}.ide-clock>span{font-size:1.05rem}.ide-clock.is-over>span{color:#fdba74}.ide-clock.is-done>span,.ide-clock strong{color:#5eead4}.ide-clock button,.ide-reset,.ide-prompts button,.ide-guide form button{min-height:36px;border:1px solid var(--ide-line);border-radius:10px;background:transparent;color:var(--ide-ink);font:inherit;cursor:pointer}.ide-clock button{padding:0 .7rem}.ide-run{min-width:8.5rem}.ide-body{min-height:0;display:grid;grid-template-columns:3rem 15.5rem minmax(0,1fr) 21rem;grid-template-rows:minmax(0,1fr) 14rem;grid-template-areas:"rail files editor guide" "rail files term guide"}.ide-body.is-side-closed{grid-template-columns:3rem minmax(0,1fr) 21rem;grid-template-areas:"rail editor guide" "rail term guide"}.ide-body.is-bottom-closed{grid-template-rows:minmax(0,1fr);grid-template-areas:"rail files editor guide"}.ide-body.is-side-closed.is-bottom-closed{grid-template-areas:"rail editor guide"}.ide-rail{grid-area:rail;display:flex;flex-direction:column;gap:.2rem;padding:.4rem .3rem;background:#171412;border-right:1px solid var(--ide-line)}.ide-rail button{width:2.4rem;height:2.4rem;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#a8a29e;cursor:pointer}.ide-rail button svg,.ide-run svg,.ide-files .btn svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.ide-rail button.is-active,.ide-rail button[aria-pressed=true]{color:#f5f5f4;background:#ffffff0f;box-shadow:inset 2px 0 #e23d22}.ide-run,.ide-files .btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.ide-files{grid-area:files}.ide-editor{grid-area:editor}.ide-term{grid-area:term}.ide-guide{grid-area:guide}.ide-files,.ide-guide{min-width:0;min-height:0;background:var(--ide-panel)}.ide-files{display:flex;flex-direction:column;border-right:1px solid var(--ide-line)}.ide-files h2,.ide-guide h2,.ide-term-bar strong{margin:0;color:var(--ide-dim);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.ide-files h2{padding:.85rem .8rem .35rem}.ide-files>input,.ide-prompt input{color-scheme:dark;background:#1c1917;color:var(--ide-ink);border:1px solid var(--ide-line);border-radius:8px;font:inherit}.ide-files>input{margin:0 .55rem .45rem;min-height:36px;padding:0 .6rem}.ide-files .ide-hits button{align-items:flex-start;flex-direction:column;justify-content:center;height:auto;min-height:44px}.ide-hits small{color:var(--ide-dim);font-size:.75rem;font-weight:450;letter-spacing:0;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ide-side-note{margin:.35rem .8rem;color:var(--ide-dim);font-size:.85rem;line-height:1.4}.ide-files .btn-primary{margin:.4rem .7rem}.ide-files ul{list-style:none;margin:0;padding:.25rem;display:grid;align-content:start;gap:.15rem;overflow:auto;scrollbar-width:none}.ide-files ul::-webkit-scrollbar{display:none}.ide-files li button{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:.35rem .55rem;border:0;border-radius:8px;background:transparent;color:var(--ide-ink);font:inherit;text-align:left;cursor:pointer}.ide-files li button span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem}.ide-files li button small,.ide-tabs small{color:#fdba74;font-size:.65rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.ide-files li button.is-active{background:#0f766e47}.ide-reset{margin:auto .55rem .55rem;padding:0 .7rem}.ide-editor{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);border-bottom:1px solid var(--ide-line)}.ide-tabs{display:flex;gap:.15rem;min-height:2.5rem;padding:.3rem .35rem 0;overflow-x:auto;background:#211e1b;scrollbar-width:none}.ide-tabs::-webkit-scrollbar{display:none}.ide-tabs>div{display:flex;align-items:stretch;border-radius:8px 8px 0 0;background:transparent}.ide-tabs>div.is-active{background:var(--ide-editor)}.ide-tabs button{border:0;background:transparent;color:var(--ide-dim);font:inherit;cursor:pointer}.ide-tabs [role=tab]{min-height:36px;display:inline-flex;align-items:center;gap:.4rem;padding:0 .35rem 0 .7rem;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem;white-space:nowrap}.ide-tabs>div.is-active [role=tab]{color:var(--ide-ink)}.ide-tabs [aria-label^=Close]{min-width:32px;min-height:36px;color:var(--ide-dim)}.ide-code{min-height:0;overflow:hidden}.ide-code .recall-editor,.ide-code .cm-editor,.ide-code .cm-scroller{height:100%;min-height:0;max-height:none;border:0;border-radius:0;background:var(--ide-editor)}.ide-term{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);background:#0c0a09}.ide-term-bar{display:flex;align-items:center;gap:.5rem;padding:.25rem .45rem;border-bottom:1px solid var(--ide-line)}.ide-term-tabs{display:flex;gap:.2rem;margin-right:auto}.ide-term-tabs button,.ide-term-close{min-height:32px;border:0;border-radius:8px;background:transparent;color:var(--ide-dim);font:inherit;cursor:pointer}.ide-term-tabs button{padding:0 .7rem}.ide-term-tabs button.is-active{color:var(--ide-ink);background:#ffffff0f}.ide-term-close{min-width:32px}.ide-term{grid-template-rows:auto minmax(0,1fr) auto}.ide-prompt{display:flex;align-items:center;gap:.45rem;padding:.35rem .7rem .5rem}.ide-prompt span{color:#5eead4;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.8rem}.ide-prompt input{flex:1;min-width:0;min-height:32px;padding:0 .4rem;border:0;background:transparent;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.8rem}.ide-term-bar .ide-status:before{content:"";display:inline-block;width:.45rem;height:.45rem;margin-right:.4rem;border-radius:999px;background:#78716c}.ide-term-bar .is-run:before{background:#fdba74}.ide-term-bar .is-pass:before{background:#5eead4}.ide-term-bar .is-fail:before{background:#fb7185}.ide-term-log{overflow:auto;margin:0;padding:.65rem .8rem .9rem;font-size:.8rem;line-height:1.5}.ide-term-log p{margin:0;white-space:pre-wrap}.ide-term-log .is-cmd{color:#f5f5f4}.ide-term-log .is-info{color:#a8a29e}.ide-term-log .is-pass{color:#5eead4}.ide-term-log .is-fail,.ide-term-log .is-error{color:#fda4af}.ide-guide{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:.55rem;padding:.75rem;border-left:1px solid var(--ide-line)}.ide-guide details{border:1px solid var(--ide-line);border-radius:12px;padding:.45rem .65rem;background:#0000002e}.ide-guide summary{cursor:pointer;font-weight:650}.ide-guide details p,.ide-guide details li{color:#d6d3d1;line-height:1.45}.ide-guide details p{margin:.45rem 0 0}.ide-guide details ul{margin:.4rem 0 0;padding-left:1rem}.ide-thread{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.45rem}.ide-thread p{margin:0;max-width:95%;padding:.55rem .7rem;border-radius:12px;line-height:1.45}.ide-thread .is-guide{background:#ffffff0d}.ide-thread .is-you{align-self:end;background:#e23d2238}.ide-prompts{display:flex;flex-wrap:wrap;gap:.35rem}.ide-prompts button,.ide-guide form button{padding:0 .65rem}.ide-guide form{display:flex;gap:.4rem}.ide-guide input{flex:1;min-width:0;min-height:44px;border:1px solid var(--ide-line);border-radius:12px;background:#1c1917;color:var(--ide-ink);padding:0 .75rem;font:inherit}.ide .btn:disabled,.ide-guide form button:disabled{cursor:not-allowed}@media(max-width:980px){.ide{height:auto;min-height:0}.ide-top{flex-wrap:wrap}.ide-body,.ide-body.is-side-closed,.ide-body.is-bottom-closed,.ide-body.is-side-closed.is-bottom-closed{grid-template-columns:1fr;grid-template-rows:auto minmax(22rem,48vh) 16rem auto auto;grid-template-areas:"rail" "files" "editor" "term" "guide"}.ide-body.is-side-closed,.ide-body.is-side-closed.is-bottom-closed{grid-template-areas:"rail" "editor" "term" "guide"}.ide-body.is-bottom-closed{grid-template-rows:auto minmax(22rem,48vh) auto auto;grid-template-areas:"rail" "files" "editor" "guide"}.ide-rail{flex-direction:row;border-right:0;border-bottom:1px solid var(--ide-line)}.ide-files,.ide-guide{border:0}.ide-guide{min-height:24rem;border-top:1px solid var(--ide-line)}.ide-files{border-top:1px solid var(--ide-line)}}.learn-python-hub{display:flex;flex-direction:column;gap:1.25rem;width:100%;position:relative}.python-hub-head{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap}.python-hub-meta{flex:1 1 24rem}.python-hub-meta h1{margin:.15rem 0 .5rem;font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.4rem);font-weight:700;letter-spacing:-.03em;color:var(--ink)}.python-hub-lede{margin:0;color:var(--ink-dim);font-size:.95rem;line-height:1.55;max-width:48ch}.python-hub-stats-card{display:grid;grid-template-columns:repeat(4,auto);gap:1.25rem;background:#18181b;color:#f4f4f5;padding:.9rem 1.4rem;border-radius:var(--radius);box-shadow:0 10px 25px -5px #0000001f,0 8px 10px -6px #0000001a}.hub-stat-item{display:flex;flex-direction:column;gap:.15rem}.hub-stat-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#a1a1aa}.hub-stat-val{font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:#fafafa}.hub-stat-val.text-accent{color:#34d399}.python-hub-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-bottom:.25rem}.hub-search-box{display:flex;align-items:center;gap:.5rem;background:var(--canvas-2);border:1px solid var(--line);border-radius:9999px;padding:.45rem .9rem;flex:1 1 20rem;max-width:32rem;transition:border-color .15s ease,box-shadow .15s ease}.hub-search-box:focus-within{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e1f;background:#fff}.hub-search-box svg{color:var(--ink-dim);flex-shrink:0}.hub-search-box input{border:none;background:transparent;outline:none;font-size:.9rem;color:var(--ink);width:100%}.hub-search-clear{border:none;background:transparent;color:var(--ink-dim);cursor:pointer;padding:0 .2rem;font-size:.85rem}.hub-view-switcher{display:flex;background:var(--canvas-2);padding:.25rem;border-radius:9999px;border:1px solid var(--line)}.hub-view-btn{display:flex;align-items:center;gap:.4rem;padding:.4rem .85rem;border-radius:9999px;border:none;background:transparent;color:var(--ink-dim);font-size:.82rem;font-weight:500;cursor:pointer;transition:all .15s ease}.hub-view-btn.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 3px #00000014}.python-hub-content{position:relative;min-height:700px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:#fff}.graph-canvas-container{position:relative;width:100%;height:720px;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none}.graph-canvas-container.is-dragging{cursor:grabbing}.graph-grid-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(0,0,0,.12) 1.2px,transparent 1.2px);pointer-events:none}.graph-controls-hud{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;gap:.25rem;background:#fffffff0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:9999px;padding:.25rem;box-shadow:0 4px 12px #0000000f;z-index:10}.graph-controls-hud button{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:9999px;border:none;background:transparent;color:var(--ink);cursor:pointer;transition:background-color .15s ease}.graph-controls-hud button:hover{background:var(--canvas-2)}.graph-zoom-label{font-size:.75rem;font-weight:600;color:var(--ink-dim);padding:0 .5rem}.graph-tier-legend{position:absolute;bottom:1rem;left:1rem;display:flex;gap:.85rem;background:#fffffff0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:9999px;padding:.4rem .85rem;font-size:.75rem;z-index:10;box-shadow:0 4px 12px #0000000f}.graph-legend-item{display:flex;align-items:center;gap:.35rem}.graph-legend-dot{width:8px;height:8px;border-radius:9999px}.graph-legend-name{color:var(--ink-dim);font-weight:500}.graph-transform-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:auto}.graph-edges-svg{position:absolute;top:0;left:0;pointer-events:none}.graph-edge-path{transition:stroke .2s ease,stroke-width .2s ease}.graph-edge-path.is-edge-highlighted{filter:drop-shadow(0 0 4px rgba(15,118,110,.5))}.graph-nodes-layer{position:absolute;top:0;left:0}.graph-node-card{position:absolute;width:250px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.75rem .9rem;display:flex;flex-direction:column;gap:.6rem;cursor:pointer;transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s ease,border-color .18s ease,opacity .2s ease;box-shadow:0 4px 14px #0000000a}.graph-node-card:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 12px 28px -4px #0000001f,0 0 0 2px var(--tier-accent, #0f766e);z-index:20}.graph-node-card.is-selected{border-color:var(--tier-accent, #0f766e);box-shadow:0 12px 30px -4px #00000024,0 0 0 2px var(--tier-accent, #0f766e);z-index:25}.graph-node-card.is-dimmed{opacity:.28;filter:grayscale(40%)}.graph-node-head{display:flex;justify-content:space-between;align-items:center;font-size:.7rem;font-weight:600}.graph-node-tier{text-transform:uppercase;letter-spacing:.04em}.graph-node-badge{background:var(--canvas-2);color:var(--ink-dim);padding:.15rem .45rem;border-radius:9999px;font-size:.68rem}.graph-node-main{display:flex;align-items:center;gap:.75rem}.graph-node-ring{position:relative;width:48px;height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.graph-node-glyph{position:absolute;display:flex;align-items:center;justify-content:center;color:var(--ink)}.graph-node-info{flex:1;min-width:0}.graph-node-title{margin:0 0 .2rem;font-size:.95rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.graph-node-summary{margin:0;font-size:.75rem;color:var(--ink-dim);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35}.graph-node-footer{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;border-top:1px solid var(--line);padding-top:.5rem}.graph-node-count{color:var(--ink-dim)}.graph-node-status{font-weight:500;color:var(--ink-dim)}.graph-node-status.has-progress{color:#0f766e;font-weight:600}.topic-drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(520px,100%);background:#fff;border-left:1px solid var(--line);box-shadow:-8px 0 32px #00000014;z-index:50;display:flex;flex-direction:column;overflow-y:auto;animation:drawerSlideIn .22s cubic-bezier(.16,1,.3,1)}@keyframes drawerSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.topic-drawer-head{padding:1.4rem 1.4rem 1.1rem;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:.75rem;background:var(--canvas-2)}.topic-drawer-meta{display:flex;justify-content:space-between;align-items:center}.topic-tier-tag{font-size:.75rem;font-weight:600;padding:.2rem .65rem;border-radius:9999px;text-transform:uppercase;letter-spacing:.04em}.topic-drawer-close{border:none;background:transparent;color:var(--ink-dim);cursor:pointer;padding:.25rem;border-radius:9999px;display:flex;align-items:center;justify-content:center}.topic-drawer-close:hover{background:#0000000f;color:var(--ink)}.topic-drawer-title{margin:0;font-family:var(--font-display);font-size:1.45rem;font-weight:700;color:var(--ink);letter-spacing:-.02em}.topic-drawer-summary{margin:0;color:var(--ink-dim);font-size:.88rem;line-height:1.5}.topic-drawer-highlight{display:flex;align-items:center;gap:.5rem;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;font-size:.82rem;padding:.5rem .75rem;border-radius:8px}.topic-mastery-card{display:flex;flex-direction:column;gap:.4rem;background:#fff;padding:.75rem .9rem;border-radius:10px;border:1px solid var(--line)}.topic-mastery-labels{display:flex;justify-content:space-between;align-items:center;font-size:.8rem}.topic-mastery-labels span{color:var(--ink-dim)}.topic-mastery-labels strong{color:var(--ink)}.topic-mastery-track{height:6px;width:100%;background:var(--canvas-2);border-radius:9999px;overflow:hidden}.topic-mastery-fill{height:100%;border-radius:9999px;transition:width .3s ease}.topic-action-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none;border-radius:10px}.topic-action-btn small{font-weight:400;opacity:.85}.topic-drawer-relations{display:flex;align-items:center;gap:.6rem;padding:.75rem 1.4rem;border-bottom:1px solid var(--line);font-size:.8rem;flex-wrap:wrap}.topic-relations-label{color:var(--ink-dim);font-weight:500}.topic-relations-list{display:flex;gap:.4rem;flex-wrap:wrap}.topic-relation-pill{border:1px solid var(--line);background:var(--canvas-2);color:var(--ink);font-size:.75rem;padding:.2rem .55rem;border-radius:6px;cursor:pointer;transition:all .15s ease}.topic-relation-pill:hover{background:#fff;border-color:#0f766e;color:#0f766e}.topic-drawer-filter-bar{padding:.85rem 1.4rem;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:.6rem}.topic-search-wrap{display:flex;align-items:center;gap:.5rem;background:var(--canvas-2);border:1px solid var(--line);border-radius:8px;padding:.4rem .75rem}.topic-search-wrap svg{color:var(--ink-dim)}.topic-search-wrap input{border:none;background:transparent;outline:none;font-size:.85rem;color:var(--ink);width:100%}.topic-filter-groups{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.topic-filter-tabs{display:flex;background:var(--canvas-2);padding:.2rem;border-radius:8px;border:1px solid var(--line)}.topic-tab-btn{border:none;background:transparent;font-size:.75rem;color:var(--ink-dim);padding:.25rem .55rem;border-radius:6px;cursor:pointer}.topic-tab-btn.is-active{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 2px #0000000d}.topic-status-select{border:1px solid var(--line);background:var(--canvas-2);border-radius:8px;font-size:.75rem;padding:.3rem .6rem;color:var(--ink)}.topic-questions-list{padding:.85rem 1.4rem 2rem;display:flex;flex-direction:column;gap:.65rem}.topic-questions-count{font-size:.78rem;color:var(--ink-dim);margin-bottom:.2rem}.topic-questions-empty{font-size:.85rem;color:var(--ink-dim);text-align:center;padding:2rem 0}.topic-question-row{display:flex;align-items:center;gap:.75rem;padding:.75rem .85rem;border:1px solid var(--line);border-radius:10px;background:#fff;transition:all .15s ease}.topic-question-row:hover{border-color:#0f766e66;box-shadow:0 2px 8px #0000000a}.topic-question-row.is-solved{background:#f0fdf4;border-color:#bbf7d0}.topic-q-status{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.q-badge-solved{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:9999px;background:#10b981;color:#fff;font-size:.75rem;font-weight:700}.q-badge-started{color:#e23d22;font-size:.9rem}.q-badge-new{font-size:.75rem;color:var(--ink-dim);font-weight:500}.topic-q-body{flex:1;min-width:0}.topic-q-title-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.15rem}.topic-q-title{font-size:.88rem;font-weight:600;color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic-q-title:hover{color:#0f766e;text-decoration:underline}.q-diff-badge{font-size:.65rem;font-weight:600;padding:.1rem .4rem;border-radius:4px;text-transform:capitalize}.q-diff-badge.is-easy{background:#ecfdf5;color:#047857}.q-diff-badge.is-medium{background:#fffbeb;color:#b45309}.q-diff-badge.is-hard{background:#fdf2f8;color:#be185d}.topic-q-summary{margin:0 0 .3rem;font-size:.75rem;color:var(--ink-dim);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.topic-q-meta{display:flex;align-items:center;gap:.5rem;font-size:.7rem;color:var(--ink-dim)}.topic-q-tag{background:var(--canvas-2);padding:.1rem .35rem;border-radius:4px}.topic-q-launch-btn{display:flex;align-items:center;gap:.3rem;font-size:.75rem;padding:.35rem .65rem;text-decoration:none;flex-shrink:0;border-radius:6px}.topic-grid-wrapper{padding:1.5rem;display:flex;flex-direction:column;gap:2rem}.topic-grid-tier-section{display:flex;flex-direction:column;gap:1rem}.topic-tier-header{display:flex;flex-direction:column;gap:.2rem}.topic-tier-title-wrap{display:flex;align-items:center;gap:.5rem}.topic-tier-indicator{width:10px;height:10px;border-radius:9999px}.topic-tier-header h3{margin:0;font-size:1.15rem;font-weight:700;color:var(--ink)}.topic-tier-desc{margin:0;font-size:.85rem;color:var(--ink-dim)}.topic-cards-matrix{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.topic-matrix-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1.1rem;display:flex;flex-direction:column;gap:.75rem;cursor:pointer;transition:all .18s ease}.topic-matrix-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px #00000014;border-color:#0f766e66}.topic-card-top{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}.topic-card-badge{font-weight:600}.topic-card-qcount{color:var(--ink-dim)}.topic-card-heading{margin:0;font-size:1.05rem;font-weight:600;color:var(--ink)}.topic-card-snippet{margin:0;font-size:.82rem;color:var(--ink-dim);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.topic-card-progress{display:flex;flex-direction:column;gap:.3rem}.topic-card-progress-bar{height:5px;background:var(--canvas-2);border-radius:9999px;overflow:hidden}.topic-card-progress-fill{height:100%;border-radius:9999px}.topic-card-progress-text{display:flex;justify-content:space-between;font-size:.75rem;color:var(--ink-dim)}.topic-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:.5rem;border-top:1px solid var(--line)}.topic-card-tags{display:flex;gap:.3rem;flex-wrap:wrap}.topic-tag-chip{font-size:.68rem;background:var(--canvas-2);color:var(--ink-dim);padding:.15rem .4rem;border-radius:4px}.topic-card-practice-link{font-size:.78rem;font-weight:600;color:#0f766e;text-decoration:none;padding:.25rem .55rem}.hub-table-view{padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.hub-table-count{margin:0;font-size:.85rem;color:var(--ink-dim)}.ide-breadcrumb{display:flex;align-items:center;gap:.45rem;font-size:.8rem;margin-bottom:.25rem}.ide-breadcrumb a{color:var(--ide-link, #0f766e);text-decoration:none;font-weight:500}.ide-breadcrumb a:hover{text-decoration:underline}.ide-sep{color:#fff6}.ide-crumb-topic{color:#ffffffbf}
