@font-face{font-family:Inter;font-display:swap;font-weight:100 900;src:url(/assets/fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Satoshi;font-display:swap;font-weight:900;src:url(/assets/fonts/satoshi-900.woff2) format("woff2")}
:root{--ink:#121212;--muted:#5c5c5c;--accent:#f7b917;--accent-ink:#121212;--bg:#f7f5f2;--panel:#fff;--soft:#efece7;--line:#e5e5e5;--err:#b00020;--ok:#0a6b3a;--link:#8a5a00;--side:268px}
@media(prefers-color-scheme:dark){:root:not(.light){--ink:#f5f5f5;--muted:#b5b5b5;--bg:#0d0d0d;--panel:#171717;--soft:#222;--line:#333;--err:#ff8a80;--ok:#6fdc9c;--link:#f7c948}}
:root.dark{--ink:#f5f5f5;--muted:#b5b5b5;--bg:#0d0d0d;--panel:#171717;--soft:#222;--line:#333;--err:#ff8a80;--ok:#6fdc9c;--link:#f7c948}
:root.paper{--bg:#f3efe6;--panel:#f3efe6;--soft:#eae4d7;--line:#141414;--ink:#141414;--muted:#4a463f}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--link)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:.5rem;top:-4rem;background:var(--accent);color:var(--accent-ink);padding:.5rem 1rem;border-radius:8px;z-index:50;font-weight:600}
.skip:focus{top:.5rem}
h1{font:900 1.6rem/1.2 Satoshi,Inter,sans-serif;letter-spacing:-.02em;margin:0 0 1rem}
h2{font-size:1.05rem;margin:0 0 .75rem}
.muted{color:var(--muted);font-size:.875rem}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);font:900 1rem/1 Satoshi,Inter,sans-serif;letter-spacing:.04em}
.brand img{border-radius:8px}.brand small{display:block;font:600 .6rem/1.2 Inter,sans-serif;letter-spacing:.14em;color:var(--muted)}
.app{display:flex;min-height:100vh}
.side{width:var(--side);flex:none;background:var(--panel);border-right:1px solid var(--line);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.side nav{display:flex;flex-direction:column;gap:2px;flex:1}
.side nav a{display:block;padding:.5rem .75rem;border-radius:10px;color:var(--ink);text-decoration:none;font-size:.92rem;font-weight:500}
.side nav a:hover{background:var(--soft)}
.side nav a[aria-current=page]{background:var(--accent);color:var(--accent-ink);font-weight:700}
.grp{margin:.9rem .75rem .2rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.col{flex:1;min-width:0}
.top{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;background:var(--panel);border-bottom:1px solid var(--line);min-height:57px}
.top .brand,.menu{display:none}
.who{display:flex;align-items:center;gap:.5rem;margin-left:auto;font-weight:600;font-size:.9rem}.who img{border-radius:50%}
.page{max-width:60rem;padding:1.75rem 1.5rem 3rem}.page.wide{max-width:50rem}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.25rem;margin-bottom:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin-bottom:1rem}.grid .card{margin:0}
label{display:block;font-size:.875rem;font-weight:600;margin:.75rem 0 .25rem}
input[type=text],input[type=email],input[type=password],input[type=file],input[type=url],input[type=date],select,textarea{width:100%;padding:.65rem;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit}
button,.btn{display:inline-block;margin-top:1rem;background:var(--accent);color:var(--accent-ink);border:0;border-radius:10px;padding:.6rem 1.15rem;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
button.link{background:none;color:var(--muted);text-decoration:underline;padding:0;font-weight:400}
.btn.ghost{background:none;border:1px solid var(--line);color:var(--ink);margin:0;width:100%;font-weight:600}
.btn.sm{margin:0;padding:.45rem .9rem;font-size:.875rem}
.row{display:flex;gap:.5rem;align-items:center;margin-top:.75rem}.row input{width:auto}.row label{margin:0;font-weight:400}
.note{border-radius:10px;padding:.65rem .9rem;margin:0 0 1rem;border:1px solid var(--line)}
.note p{margin:.15rem 0 0}.note.ok{border-color:var(--ok);color:var(--ok);font-weight:600}.note.err{border:2px solid var(--err);color:var(--err)}
.note.warn{border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.note.warn a{font-weight:600}
.profile{display:flex;gap:1rem;align-items:center}.profile img{width:64px;height:64px;border-radius:50%}
.actions{display:flex;flex-wrap:wrap;gap:.5rem}.actions .btn{margin:0}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.55rem .4rem;border-bottom:1px solid var(--line);font-size:.9rem}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pill{display:inline-block;padding:.1rem .6rem;border-radius:999px;background:var(--soft);font-size:.78rem;font-weight:700;white-space:nowrap}
.pill.pub{background:rgba(10,107,58,.14);color:var(--ok)}.pill.rev{background:rgba(247,185,23,.25)}
.empty{text-align:center;padding:1.5rem 1rem;color:var(--muted)}
.edbar{display:flex;flex-wrap:wrap;gap:.25rem;margin:.25rem 0}
.edbar button{margin:0;padding:.3rem .6rem;font-size:.8rem;background:var(--soft);color:var(--ink);border:1px solid var(--line)}
.ed{min-height:14rem;padding:.65rem;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.ed h2,.ed h3{margin:.5rem 0}.ed blockquote{margin:.5rem 0;padding-left:.75rem;border-left:3px solid var(--accent)}
.mt{margin-top:1.25rem}
.auth2{min-height:100vh}.aside{display:none}
.authmain{display:flex;justify-content:center;padding:1.25rem 1.25rem 2.5rem}.authbox{width:100%;max-width:26rem}
.mbar{margin-bottom:1.75rem;justify-content:flex-start}.authbox h1{font-size:1.9rem}
.lede{margin:-.5rem 0 1.25rem;color:var(--muted)}
.authbox input[type=text],.authbox input[type=email],.authbox input[type=password]{padding:.8rem .85rem;font-size:1rem}
.authbox button:not(.link):not(.eye){width:100%;padding:.85rem 1rem;font-size:1rem;margin-top:1.25rem}
.authbox button.link{margin:.25rem 0 0;font-size:.875rem}
.links{margin:1.25rem 0 0}.back{margin-top:2rem}.inl{margin:0}
input.code{font:700 2rem/1.2 Satoshi,Inter,sans-serif;letter-spacing:.5em;text-align:center;padding-left:.5em}
.two{display:grid;gap:0 .75rem}
.privacy{display:flex;gap:.75rem;align-items:center;margin-top:1rem;padding:.75rem;background:var(--soft);border-radius:12px}.privacy p{margin:0}.privacy img{border-radius:50%;flex:none}
@media(min-width:480px){.two{grid-template-columns:1fr 1fr}}
@media(min-width:960px){
.auth2{display:grid;grid-template-columns:5fr 6fr}
.aside{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:2.5rem 3rem;color:#fff;background:radial-gradient(120% 70% at 0% 100%,rgba(226,181,60,.28),transparent 60%),radial-gradient(80% 50% at 100% 0%,rgba(226,181,60,.12),transparent 60%),#161512}
.aside .brand{color:#fff}.aside .brand small{color:#e6e6e6}
.slogan{font:900 2.4rem/1.1 Satoshi,Inter,sans-serif;letter-spacing:-.02em;margin:0 0 1.5rem}
.pitch{margin:auto 0 0;max-width:32rem}
.pitch ul{margin:0;padding:0;list-style:none;display:grid;gap:1rem;font-size:1.05rem}.pitch li{display:flex;gap:.75rem;align-items:baseline}.pitch li::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--accent);transform:translateY(-.15em)}
.authmain{align-items:center;padding:3rem}.mbar{display:none}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(max-width:860px){
.app{display:block}
.side{position:static;width:auto;height:auto;border-right:0;border-bottom:1px solid var(--line)}
.top{padding:.6rem 1rem}.top .brand{display:flex}
.js .menu{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;margin:0;padding:0;background:var(--soft);color:var(--ink);border:1px solid var(--line);border-radius:999px}.menu .ico{width:20px;height:20px}.menu:hover{border-color:var(--accent)}
.js .side{position:fixed;z-index:40;left:0;top:0;bottom:0;width:var(--side);border-bottom:0;transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 40px rgba(0,0,0,.3)}
.js.open .side{transform:none}
.js .side>.brand{display:none}
.page{padding:1.25rem 1rem 2.5rem}
}
@media(prefers-reduced-motion:reduce){.side{transition:none}}

.preview{width:100%;height:36rem;border:1px solid var(--line,#e5e5e5);border-radius:8px;background:#fff}
.site{margin-left:auto;font-size:.9rem;font-weight:600;color:var(--text);text-decoration:none;padding:.4rem .75rem;border:1px solid var(--line);border-radius:999px}.site:hover,.site:focus-visible{border-color:var(--accent);text-decoration:underline;text-underline-offset:3px}.site+.who{margin-left:0}@media (max-width:640px){.site{font-size:0;padding:.4rem .6rem}.site::after{content:"Site";font-size:.85rem;margin-left:.25rem}}
.themebtn{margin-left:auto;width:2.25rem;height:2.25rem;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font-size:1rem;cursor:pointer}.themebtn:hover,.themebtn:focus-visible{border-color:var(--accent)}.themebtn+.site{margin-left:0}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
td.actions{align-items:center}td.actions select{width:auto;padding:.4rem}
.backlink{display:inline-flex;gap:.4rem;margin-bottom:2rem;font-size:.9rem;font-weight:600;color:var(--muted);text-decoration:none}.backlink:hover{color:var(--ink)}
.kicker{margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.14em;font-size:.75rem!important;color:var(--muted)!important;font-size:.9rem;font-weight:600;color:var(--muted)}
.authbox h1{font-size:clamp(2rem,4vw,2.75rem);letter-spacing:-.03em;margin:0}
.lede{margin:.75rem 0 1.75rem;max-width:32rem;color:var(--muted);line-height:1.6}
.field{position:relative}.field>svg{position:absolute;left:.85rem;top:50%;width:16px;height:16px;transform:translateY(-50%);fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.field input{padding-left:2.5rem!important}.field input[type=password],.field input[data-shown]{padding-right:2.75rem!important}
.eye{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);margin:0;padding:.45rem;width:auto;background:none;border:0;color:var(--muted);cursor:pointer;border-radius:8px}.eye svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}.eye:hover{color:var(--ink)}
.row.spread{justify-content:space-between}.chk{display:flex;gap:.5rem;align-items:center}.chk input{width:auto;margin:0}.chk label{margin:0;font-weight:600}
.strong{font-weight:700;color:var(--ink);text-decoration:none}
.authbox button.primary{margin-top:1.5rem;box-shadow:0 8px 20px -10px var(--accent)}
.sep{margin:1.75rem 0 1rem;border:0;border-top:1px solid var(--line)}
.alt{margin:0;color:var(--muted)}.alt a{font-weight:700;color:var(--ink);text-decoration:none}
.fine{margin:.75rem 0 0;font-size:.8rem;color:var(--muted)}.fine a{color:inherit}
.authbox{max-width:36rem}
.afoot{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#cfcfcf}
.pitch li::before{content:"\2713";flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#161512;font-size:12px;font-weight:900;line-height:1;transform:none}
.afoot{margin-top:2rem}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ico{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.side nav a{display:flex;align-items:center;gap:.65rem}
.side nav a .ico{opacity:.75}.side nav a[aria-current=page] .ico{opacity:1}
.side form .btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%}
.btn.sm{display:inline-flex;align-items:center;gap:.45rem}
.themebtn{display:grid;place-items:center}.themebtn .ico{width:16px;height:16px}
.site{display:inline-flex;align-items:center;gap:.35rem}.site .ico{width:16px;height:16px}
.field>svg.fi{position:absolute;left:.85rem;top:50%;width:16px;height:16px;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.eye .ico{width:18px;height:18px}
.page.full{max-width:none}
@media (max-width:640px){.top .who span{display:none}}
.ach{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.75rem}
.ach li{display:flex;gap:.75rem;align-items:center;padding:.75rem .9rem;border:1px solid var(--line);border-radius:12px;color:var(--muted);transition:transform .2s,border-color .2s}
.ach li:hover{transform:translateY(-2px);border-color:var(--accent)}
.ach li.on{color:var(--ink);border-color:var(--accent)}.ach li.on .ico{color:var(--link);fill:var(--accent)}
.ach .ico{width:24px;height:24px;flex:none}.ach div{display:flex;flex-direction:column;min-width:0}.ach strong{font-size:.95rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(prefers-reduced-motion:reduce){.ach li{transition:none}}
.heatwrap{overflow-x:auto;padding-bottom:.25rem;direction:rtl}
.heat{direction:ltr;display:grid;grid-template-rows:repeat(7,auto);grid-auto-flow:column;grid-auto-columns:minmax(10px,1fr);gap:3px;min-width:47rem}
.heat i{display:block;aspect-ratio:1;border-radius:2px;background:var(--soft);box-shadow:inset 0 0 0 1px var(--line)}
.heatkey i{display:block;width:11px;height:11px;border-radius:2px;background:var(--soft);box-shadow:inset 0 0 0 1px var(--line)}
.heat .l1,.heatkey .l1{background:color-mix(in srgb,var(--accent) 30%,var(--soft))}.heat .l2,.heatkey .l2{background:color-mix(in srgb,var(--accent) 55%,var(--soft))}
.heat .l3,.heatkey .l3{background:color-mix(in srgb,var(--accent) 80%,var(--soft))}.heat .l4,.heatkey .l4{background:color-mix(in srgb,var(--accent) 85%,var(--ink))}
.heat i{transition:transform .15s}.heat i:hover{transform:scale(1.35);box-shadow:inset 0 0 0 1px var(--ink)}
.heatkey{display:flex;align-items:center;gap:4px;font-size:.75rem;margin:.5rem 0 0}
.bars{display:block;width:100%;height:11rem}.bars rect{fill:var(--accent);transition:fill .2s}.bars rect:hover{fill:var(--link)}
.barsx{display:flex;justify-content:space-between;margin:.35rem 0 0}
@media(prefers-reduced-motion:reduce){.heat i,.bars rect{transition:none}}
.sec{font:900 1.15rem/1.2 Satoshi,Inter,sans-serif;margin:1.75rem 0 .75rem}
.top .themebtn{margin:0 0 0 auto;padding:0;flex:none}
.daily{list-style:none;margin:0 0 .5rem;padding:0;display:grid;gap:.5rem}
.daily li{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;border:1px solid var(--line);border-radius:12px;transition:border-color .2s,transform .2s}
.daily li:hover{border-color:var(--accent);transform:translateX(2px)}
.daily a{flex:1;color:var(--ink);text-decoration:none;font-weight:600}.daily a:hover{text-decoration:underline}
.daily .tick{display:grid;place-items:center;width:1.5rem;height:1.5rem;border:2px solid var(--line);border-radius:50%;flex:none;color:transparent}
.daily li.on .tick{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.daily .tick .ico{width:14px;height:14px;stroke-width:3}
.daily li.on a{color:var(--muted);text-decoration:line-through}
.daily .pts{font-weight:800;font-variant-numeric:tabular-nums;color:var(--link)}
.formwrap{display:grid;gap:1.5rem;grid-template-columns:minmax(0,1fr)}
@media(min-width:1100px){.formwrap{grid-template-columns:minmax(0,1fr) 300px}.howto{position:sticky;top:5.5rem;align-self:start}}
.fs{margin:0 0 1rem;padding:1.1rem 1.25rem 1.25rem;border:1px solid var(--line);border-radius:14px;background:var(--panel);transition:border-color .2s}
.fs:focus-within{border-color:var(--accent)}
.fs legend{padding:0 .4rem;margin-left:-.4rem;font:800 .78rem/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fs>label:first-of-type{margin-top:.25rem}
.howto{padding:1.25rem;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.howto h2{font-size:1rem;margin:0 0 .75rem}
.howto ol{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:.9rem}
.howto li{counter-increment:s;display:grid;grid-template-columns:2rem 1fr;gap:.1rem .65rem}
.howto li::before{content:counter(s);grid-row:span 2;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:800}
.howto span{font-size:.85rem;color:var(--muted);line-height:1.45}
.page:has(.formwrap){max-width:none}
.formbtns{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.formbtns button{margin-top:1rem}.btn-preview{background:none;border:1px solid var(--line);color:var(--ink)}.btn-preview:hover,.btn-preview:focus-visible{border-color:var(--accent)}
.chk input{width:1.25rem;height:1.25rem;flex:none}
.saved{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.saved a{display:flex;gap:.9rem;align-items:center;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);text-decoration:none}.saved a:hover,.saved a:focus-visible{border-color:var(--accent)}.saved img{flex:none;width:96px;height:54px;object-fit:cover;border-radius:8px}.saved time{display:block;margin-top:.25rem;font-size:.8rem;color:var(--muted)}
.side{height:100vh;height:100dvh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.side nav{flex:1 0 auto}
