:root{--bg:#0b1730;--panel:#12234a;--panel-hi:#1a2f60;--line:#2a427d;--fg:#eef2fb;--muted:#9fb0d4;--accent:#e0b04a;--bad:#ff8d8d;
--display:"Bebas Neue","Oswald",Impact,sans-serif;--label:"Oswald","Arial Narrow",sans-serif;--body:"Source Sans 3",system-ui,sans-serif;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 var(--body);padding-inline:16px;padding-block:20px 56px}
.wrap{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
a{color:var(--accent)}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.brand{font:500 13px var(--label);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);text-decoration:none}
nav{display:flex;gap:16px;align-items:center;font:500 14px var(--label);letter-spacing:.08em}
nav form{margin:0}
h1{margin:0;font:40px/1 var(--display);letter-spacing:.03em}
h2{margin:0;font:28px/1.1 var(--display);letter-spacing:.03em}
h3{margin:10px 0 0;font:500 12px var(--label);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
p{margin:0}
.muted,.meta{color:var(--muted)}.meta{font-size:13px}
.crumb{font:500 13px var(--label);letter-spacing:.12em;text-transform:uppercase}
.quote{border:1px solid var(--line);background:var(--panel);padding:24px 18px;text-align:center}
.quote p{font:clamp(26px,6vw,48px)/1.05 var(--display);letter-spacing:.02em;text-wrap:balance}
.quote .by{margin-top:10px;font:20px var(--label);letter-spacing:.18em;color:var(--muted)}
.doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.door,.project,.card{background:var(--panel);border:1px solid var(--line);padding:18px;min-width:0}
.door,.project{display:flex;flex-direction:column;gap:8px;color:var(--fg);text-decoration:none}
.door:hover,.project:hover{background:var(--panel-hi)}
.who{font:500 12px var(--label);letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.door p{color:var(--muted);font-size:15px}
.row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.tag{font:500 12px var(--label);letter-spacing:.14em;text-transform:uppercase;color:#1a1405;background:var(--accent);padding:2px 8px;white-space:nowrap}
.card{display:flex;flex-direction:column;gap:10px}.narrow{max-width:420px;width:100%;margin-inline:auto}
.card.hl{border-color:var(--accent)}
label{font:500 12px var(--label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:4px}
input,select,textarea{width:100%;background:var(--bg);color:var(--fg);border:1px solid var(--line);padding:11px;font:16px var(--body)}
textarea{resize:vertical}
button{background:var(--accent);color:#1a1405;border:0;cursor:pointer;font:600 14px var(--label);letter-spacing:.12em;text-transform:uppercase;padding:11px 16px}
button.link{background:none;color:var(--accent);padding:0;letter-spacing:.06em;text-decoration:underline;font-weight:500}
button.bad{background:var(--bad)}
button.on{background:var(--accent)}button.off{background:transparent;color:var(--muted);border:1px solid var(--line)}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.inputrow{display:flex;gap:8px}.inputrow input{flex:1;min-width:0}.who2{align-self:center;min-width:90px;font-weight:600}
.flash{background:var(--panel-hi);border-left:4px solid var(--accent);padding:10px 14px}
.tasks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.tasks li{display:flex;gap:10px;align-items:center}.tasks li span{flex:1;min-width:0;overflow-wrap:anywhere}
.tasks li.done span{text-decoration:line-through;color:var(--muted)}
.tasks form{margin:0}.check{padding:4px 10px;font-size:16px}
.scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:480px}
th{font:500 12px var(--label);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:left}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}tr.off td{opacity:.55}
.danger summary{cursor:pointer;color:var(--muted);font-size:14px}.danger p{margin:8px 0}
.prog{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center}
.track{grid-column:1/-1;height:8px;background:var(--bg);border:1px solid var(--line)}.fill{height:100%;background:var(--accent)}
.pnum{font:600 13px var(--label);letter-spacing:.1em}
.dot{font:500 12px var(--label);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);justify-self:end}
.dot.on{color:#7fe3a1}.dot.off{color:var(--bad)}
.golink{display:block;text-align:center;background:var(--accent);color:#1a1405;text-decoration:none;font:600 14px var(--label);letter-spacing:.14em;text-transform:uppercase;padding:12px 16px}
.cols{display:grid;grid-template-columns:1fr;gap:16px}.col{display:flex;flex-direction:column;gap:12px;min-width:0}
.pt{font:22px/1.1 var(--display);letter-spacing:.03em;text-transform:none;color:var(--fg);margin:0}
.monthnav{display:flex;gap:12px;align-items:center;font:500 14px var(--label);letter-spacing:.08em}
.grid7{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.dow{text-align:center;font:500 12px var(--label);color:var(--muted)}
.day{display:block;text-align:center;padding:10px 0;border:1px solid var(--line);color:var(--fg);text-decoration:none;background:var(--bg)}
.day.has{background:var(--panel-hi);border-color:var(--accent)}.day.today{font-weight:700;text-decoration:underline}.day.picked{outline:2px solid var(--fg)}
.agenda{margin:0;padding-left:18px;color:var(--muted)}.agenda strong{color:var(--fg)}
.cal select,.cal input{max-width:100%}
@media (min-width:900px){.wrap.wide{max-width:1160px}.cols{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.cols:has(.col:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}}
.logo{display:block;margin:0 auto -8px;width:120px;height:auto}
