:root{--paper:#ffffff;--cream-100:#fdf6ef;--cream-200:#f8ead9;--cream-300:#f0d8bf;--ink:#1b0c1b;--ink-70:#5b4a59;--ink-50:#766875;--line:#e8e0e4;--line-strong:#d6cbd3;--plum-700:#41203f;--plum-800:#2d152c;--plum-900:#1b0c1b;--red-400:#f0604f;--red-500:#e33e2b;--red-600:#cf2d1c;--focus:#2d6cdf;--font-display:"Montserrat","Segoe UI",system-ui,sans-serif;--font-body:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--font-mono:"Montserrat",ui-monospace,"SF Mono",Menlo,monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(27,12,27,.05),0 2px 8px rgba(27,12,27,.04);--shadow-base:0 2px 4px rgba(27,12,27,.04),0 12px 32px rgba(27,12,27,.07);--shadow-lg:0 4px 8px rgba(27,12,27,.05),0 24px 60px rgba(27,12,27,.12);--ease:cubic-bezier(.22,.61,.36,1);--gutter:clamp(16px,3vw,32px)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;letter-spacing:-.005em;-webkit-font-smoothing:antialiased}@media (max-width:560px){body{font-size:1rem}}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;text-wrap:balance;margin:0}h1{font-size:clamp(2rem,1.4rem + 2.4vw,3rem);line-height:1.08}h1,h2{letter-spacing:-.028em}h2{font-size:clamp(1.5rem,1.2rem + 1.2vw,2rem);line-height:1.1}h3{font-size:clamp(1.125rem,1rem + .5vw,1.375rem);line-height:1.2;letter-spacing:-.028em}h4{font-size:1.0625rem;line-height:1.3;letter-spacing:-.015em}p{margin:0}a{color:inherit;text-decoration:none}ol,ul{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}.wrap{width:100%;max-width:1200px;margin:0 auto;padding-inline:var(--gutter)}.wrap--narrow{max-width:820px}.eyebrow{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-50)}.lead{font-size:clamp(1.0625rem,1rem + .4vw,1.25rem);line-height:1.6;max-width:54ch}.lead,.muted{color:var(--ink-70)}.caption,.dim{color:var(--ink-50)}.caption{line-height:1.4;font-weight:500}.caption,.mono{font-size:.8125rem}.mono{font-family:var(--font-mono)}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.page-head__text{display:grid;grid-gap:var(--space-1);gap:var(--space-1)}.stack{display:grid;grid-gap:var(--space-5);gap:var(--space-5)}.stack--sm{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.row{gap:var(--space-3)}.row,.row--between{display:flex;align-items:center;flex-wrap:wrap}.row--between{justify-content:space-between;gap:var(--space-4)}.grid-2{grid-template-columns:repeat(2,1fr);grid-gap:var(--space-5)}.grid-2,.grid-3{display:grid;gap:var(--space-5)}.grid-3{grid-template-columns:repeat(3,1fr);grid-gap:var(--space-5)}.grid-side{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:var(--space-6);gap:var(--space-6);align-items:start}@media (max-width:860px){.grid-2,.grid-3,.grid-side{grid-template-columns:1fr}}.section{padding-block:clamp(var(--space-8),4vw,var(--space-12))}.shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:rgba(255,255,255,.82);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid transparent;transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}.site-header.is-stuck{border-bottom-color:var(--line);box-shadow:0 1px 24px rgba(27,12,27,.06)}.site-header .wrap{display:flex;align-items:center;gap:var(--space-5);height:68px}.brand{display:inline-flex;align-items:center;gap:11px;margin-right:auto;font-family:var(--font-display);font-size:1.125rem;font-weight:700;letter-spacing:-.03em}.brand img{width:36px;height:36px;border-radius:10px}.brand__badge{margin-left:2px;font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-50)}.nav ul{display:flex;align-items:center;gap:var(--space-1)}.nav a{position:relative;display:block;padding:8px 12px;border-radius:var(--radius-pill);font-size:.9375rem;font-weight:500;color:var(--ink-70);transition:color .18s var(--ease),background-color .18s var(--ease)}.nav ul a:hover{color:var(--ink);background:var(--cream-100)}.nav a[aria-current=page]{color:var(--ink);font-weight:600}.nav a[aria-current=page]:after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;border-radius:2px;background:var(--red-500)}.nav__actions,.nav__mobile-only{display:none}.header-actions{display:flex;align-items:center;gap:var(--space-3)}.header-actions .btn,.nav__actions .btn{padding:10px 18px;font-size:.875rem}.nav-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:transparent}.nav-toggle span,.nav-toggle span:after,.nav-toggle span:before{display:block;width:18px;height:1.5px;border-radius:2px;background:var(--ink)}.nav-toggle span{position:relative;transition:background-color .2s var(--ease)}.nav-toggle span:after,.nav-toggle span:before{content:"";position:absolute;left:0;transition:transform .25s var(--ease)}.nav-toggle span:before{top:-6px}.nav-toggle span:after{top:6px}body.nav-open .nav-toggle span{background:transparent}body.nav-open .nav-toggle span:before{transform:translateY(6px) rotate(45deg)}body.nav-open .nav-toggle span:after{transform:translateY(-6px) rotate(-45deg)}@media (max-width:860px){.header-actions{display:none}.nav-toggle{display:inline-flex}.nav{display:none;position:fixed;inset:68px 0 auto 0;max-height:calc(100dvh - 68px);overflow-y:auto;padding:var(--space-4) var(--gutter) var(--space-6);background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow-lg)}body.nav-open{overflow:hidden}body.nav-open .nav{display:block}.nav ul{flex-direction:column;align-items:stretch;gap:var(--space-1)}.nav a{padding:14px 16px;border-radius:var(--radius-md);font-size:1.0625rem}.nav a[aria-current=page]:after{display:none}.nav a[aria-current=page]{background:var(--cream-100);color:var(--red-600)}.nav__mobile-only{display:block}.nav__actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--line)}.nav__actions .header-avatar{display:none}.nav__actions a.btn{padding:10px 18px}}.footer{border-top:1px solid var(--line);padding-block:var(--space-6);margin-top:var(--space-10)}.footer__inner{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.avatar{width:36px;height:36px;border-radius:var(--radius-md);display:grid;place-items:center;font-family:var(--font-mono);font-size:.8125rem;font-weight:500;flex:none}.avatar--red{background:var(--red-500);color:#fff}.avatar--cream{background:var(--cream-200);color:var(--plum-700)}.avatar--plum{background:var(--plum-800);color:#fff}.avatar--lg{width:64px;height:64px;border-radius:var(--radius-lg);font-size:1.125rem}.avatar--sm{width:28px;height:28px;border-radius:var(--radius-sm);font-size:.6875rem}.grid-avatars{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:var(--space-3);gap:var(--space-3)}@media (max-width:480px){.grid-avatars{grid-template-columns:repeat(4,1fr)}}.avatar-option{position:relative;padding:4px;border-radius:var(--radius-md);border:2px solid transparent;background:var(--cream-100);cursor:pointer;line-height:0;transition:border-color .2s var(--ease),transform .2s var(--ease)}.avatar-option img{width:100%;height:auto;border-radius:calc(var(--radius-md) - 4px);display:block}.avatar-option:hover:not(:disabled){transform:translateY(-2px)}.avatar-option:disabled{opacity:.6;cursor:default}.avatar-option--active{border-color:var(--red-500);background:var(--cream-200)}.avatar-option--locked img{filter:grayscale(1);opacity:.35}.avatar-option__lock{position:absolute;inset:4px;display:grid;place-items:center;border-radius:calc(var(--radius-md) - 4px);background:rgba(27,12,27,.45);color:#fff;font-family:var(--font-mono);font-size:.6875rem;font-weight:500}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:10px 18px;border-radius:var(--radius-pill);border:1px solid transparent;font-family:var(--font-body);font-size:.9375rem;font-weight:600;letter-spacing:-.005em;cursor:pointer;transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:16px;height:16px;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;fill:none;transition:transform .2s var(--ease)}.btn:not(:disabled):hover svg{transform:translateX(3px)}.btn--primary{background:var(--red-500);color:#fff;box-shadow:0 2px 10px rgba(227,62,43,.22)}.btn--primary:not(:disabled):hover{background:var(--red-600)}.btn--dark{background:var(--ink);color:#fff}.btn--dark:not(:disabled):hover{background:var(--plum-700)}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn--ghost:not(:disabled):hover{background:var(--cream-100);border-color:var(--ink-50)}.btn--light{background:#fff;color:var(--ink)}.btn--light:not(:disabled):hover{background:var(--cream-200)}.btn--outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.3)}.btn--outline-light:not(:disabled):hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.55)}.btn--sm{padding:6px 12px;font-size:.875rem}.btn--block{width:100%}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-5);transition:border-color .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}.card--hover:hover,a.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-base);transform:translateY(-3px)}.card--plain:hover{transform:none;box-shadow:var(--shadow-sm)}.card--cream{background:var(--cream-100);border-color:var(--cream-300)}.card--dark{background:var(--plum-800);border-color:var(--plum-800);color:#fff}.card--dark .caption,.card--dark .dim{color:rgba(255,255,255,.62)}.card--dark .muted{color:rgba(255,255,255,.78)}.card--flush{padding:0;overflow:hidden}.card__num{font-family:var(--font-mono);background:var(--cream-200);border-radius:var(--radius-md);padding:4px 10px}.card__num,.pill{font-size:.8125rem;color:var(--plum-700)}.pill{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--cream-100);border:1px solid var(--cream-300);border-radius:var(--radius-pill);padding:4px 12px;font-weight:500;white-space:nowrap}.pill--solid{background:var(--red-500);border-color:var(--red-500);color:#fff}.pill--quiet{background:transparent;border-color:var(--line);color:var(--ink-50)}.tag{display:inline-flex;font-family:var(--font-mono);font-size:.75rem;background:var(--cream-100);border:1px solid var(--cream-300);color:var(--plum-700);border-radius:var(--radius-sm);padding:3px 8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:var(--paper);margin:0}.stat{padding:var(--space-4) var(--space-5)}.stat+.stat{border-left:1px solid var(--line)}.stat dt{font-size:.8125rem;font-weight:500;color:var(--ink-50);margin-bottom:var(--space-1)}.stat dd{margin:0;font-family:var(--font-display);font-weight:700;font-size:1.75rem;line-height:1.1;letter-spacing:-.028em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat dd small{font-family:var(--font-body);font-weight:400;font-size:.9375rem;color:var(--ink-50);margin-left:2px}@media (max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.stat:nth-child(odd){border-left:none}.stat:nth-child(n+3){border-top:1px solid var(--line)}}@media (max-width:560px){.stats{grid-template-columns:1fr}.stat+.stat{border-left:none;border-top:1px solid var(--line)}}.form{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.field{display:grid;grid-gap:var(--space-2);gap:var(--space-2)}.field>label{font-size:.875rem;font-weight:600;color:var(--ink)}.field .hint{font-weight:400;color:var(--ink-50);margin-left:var(--space-1)}.field input,.field select,.field textarea{width:100%;font-family:var(--font-body);font-size:.9375rem;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:10px 13px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.field textarea{resize:vertical;min-height:96px;line-height:1.55}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--ink-50)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--red-500);box-shadow:0 0 0 3px rgba(227,62,43,.14)}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%235b4a59' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6.5L8 10.5L12 6.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}.field__row{display:flex;gap:var(--space-3)}.field__row>*{flex:1 1}.form-note{font-size:.875rem;color:var(--red-600)}.form-ok{font-size:.875rem;color:#1f8a53}.check{display:flex;align-items:flex-start;gap:var(--space-3);font-size:.9375rem;cursor:pointer}.check input{width:18px;height:18px;margin-top:3px;accent-color:var(--red-500);flex:none}.list{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--paper)}.list__row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);transition:background .2s var(--ease)}.list__row+.list__row{border-top:1px solid var(--line)}.list__row--hover:hover,a.list__row:hover{background:var(--cream-100)}.list__main{flex:1 1;min-width:0;display:grid;grid-gap:2px;gap:2px}.list__title{font-weight:600;font-size:.9375rem}.list__empty{padding:var(--space-8) var(--space-5);text-align:center;color:var(--ink-50);font-size:.9375rem}.bar{height:6px;background:var(--cream-200);overflow:hidden}.bar,.bar__fill{border-radius:var(--radius-pill)}.bar__fill{height:100%;background:var(--red-500);transition:width .4s var(--ease)}.rank{font-family:var(--font-mono);font-size:.8125rem;color:var(--ink-50);width:28px;text-align:right;flex:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rank--top{color:var(--red-500);font-weight:500}.list__row--me{background:var(--cream-100)}.dots{display:flex;flex-wrap:wrap;gap:var(--space-2)}.dot{width:22px;height:22px;flex:none;background-color:var(--line-strong);-webkit-mask:url(/icons/stamp.png) center/contain no-repeat;mask:url(/icons/stamp.png) center/contain no-repeat;transition:background-color .2s var(--ease),transform .2s var(--ease)}.dot--on{background-color:var(--red-500)}.dot--week{width:100%;height:auto;aspect-ratio:1;display:grid;place-items:center;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-50)}.dot--week.dot--on{color:#fff}.week{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:var(--space-2);gap:var(--space-2)}.terminal{background:var(--plum-800);color:#f3ece3;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;font-family:var(--font-mono);font-size:.8125rem;line-height:1.85}.terminal__bar{display:flex;gap:6px;padding:var(--space-2) var(--space-3);border-bottom:1px solid rgba(255,255,255,.08)}.terminal__dot{width:10px;height:10px;border-radius:var(--radius-pill);background:rgba(255,255,255,.18)}.terminal__dot:first-child{background:var(--red-400)}.terminal__body{padding:var(--space-3) var(--space-4)}.terminal__body .k{color:var(--red-400)}.caret{display:inline-block;width:7px;height:14px;background:#f3ece3;vertical-align:-2px;animation:caret 1.1s step-end infinite}@keyframes caret{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.caret{animation:none}*{transition:none!important}}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth__pane{display:grid;place-items:center;padding:var(--space-8) var(--gutter)}.auth__pane--dark{background:var(--plum-900);color:#fff}.auth__form{max-width:380px}.auth__aside,.auth__form{width:100%;display:grid;grid-gap:var(--space-5);gap:var(--space-5)}.auth__aside{max-width:440px}@media (max-width:860px){.auth{grid-template-columns:1fr}.auth__pane--dark{display:none}}.divider{height:1px;background:var(--line);border:0;margin:0}.video{width:100%;border:0;border-radius:var(--radius-lg);background:var(--plum-900);display:block}.thumb,.video{aspect-ratio:16/9}.thumb{width:140px;border-radius:var(--radius-md);object-fit:cover;background:var(--cream-200);flex:none}@media (max-width:560px){.thumb{display:none}}.qr{width:220px;height:220px;border-radius:var(--radius-md);border:1px solid var(--line);background:#fff;display:block}.icon{width:20px;height:20px;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;fill:none;flex:none}.icon--sm{width:14px;height:14px;stroke-width:1.7}.icon--accent{color:var(--red-500)}.checklist{display:grid;grid-gap:var(--space-3);gap:var(--space-3)}.checklist li{display:flex;gap:var(--space-3);align-items:flex-start;font-size:.9375rem}.checklist .icon{color:var(--red-500);margin-top:2px}.badge-dot{width:7px;height:7px;border-radius:999px;background:var(--red-500);flex:none}.table{width:100%;border-collapse:collapse;font-size:.9375rem}.table th{text-align:left;font-size:.75rem;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-50);font-weight:500;padding:var(--space-2) var(--space-3)}.table td,.table th{border-bottom:1px solid var(--line)}.table td{padding:var(--space-3);vertical-align:middle}.table tr:last-child td{border-bottom:0}.copy-field{display:flex;align-items:center;gap:var(--space-2);background:var(--cream-100);border:1px solid var(--cream-300);border-radius:var(--radius-md);padding:8px 8px 8px 12px;font-family:var(--font-mono);font-size:.8125rem}.copy-field code{flex:1 1;min-width:0;overflow-x:auto;white-space:nowrap}.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}