:root{--ink:#1c0f2e;--ink2:#241338;--ink3:#2d1650;--cream:#f6f1fb;--paper:#f8f5fc;--gold:#e3c47e;--gold2:#86662a;--text:#251b33;--muted:#5b4f6b;--line:rgba(45,22,80,.12);--a:#6b3fa0;--r:22px;--serif:"Cormorant Garamond",Georgia,serif;--sans:Inter,system-ui,-apple-system,Segoe UI,sans-serif;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;font:400 16px/1.6 var(--sans);color:var(--text);background:var(--paper);overflow-x:hidden}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.1;letter-spacing:-.01em;color:var(--ink3)}
h1{font-size:clamp(2.3rem,7vw,4.2rem);margin:0 0 .35em;color:var(--cream)}h2{font-size:clamp(1.7rem,4vw,2.3rem);margin:0 0 .5em}h3{font-size:1.35rem;margin:0 0 .4em}
em{font-style:italic;color:var(--gold)}
.kicker{font:600 .74rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold2);margin:0 0 .7em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:var(--ink);padding:10px 14px;border-radius:8px;z-index:200}.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(28,15,46,.94);-webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);color:var(--cream);padding-top:env(safe-area-inset-top);transition:box-shadow .3s}
.top.solid{box-shadow:0 8px 24px -12px rgba(0,0,0,.5)}
.top-in{width:min(1080px,100% - 32px);margin:auto;display:flex;align-items:center;gap:12px;height:64px}
.brand{display:inline-flex;align-items:center;gap:clamp(8px,2.2vw,14px);text-decoration:none;color:var(--cream);min-width:0;margin-right:auto;min-height:44px}
.brand .logo{height:clamp(19px,5.4vw,32px);width:auto;aspect-ratio:888/181;flex:none}
.wm-name{font:600 clamp(.92rem,4vw,1.4rem)/1 var(--serif);white-space:nowrap;padding-left:clamp(8px,2.2vw,14px);border-left:1px solid rgba(227,196,126,.45)}
.badge{flex:none;font:600 .7rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(227,196,126,.5);border-radius:999px;padding:7px 11px}
@media(max-width:420px){.badge{display:none}}
@media(max-width:340px){.brand .logo{height:15px}.wm-name{font-size:.8rem}}
/* hero */
.hero{background:radial-gradient(120% 90% at 85% 0%,rgba(107,63,160,.55),transparent 60%),linear-gradient(160deg,var(--ink),var(--ink3));color:var(--cream);padding:clamp(40px,8vw,84px) 0 clamp(36px,6vw,64px)}
.hero-in{width:min(1080px,100% - 40px);margin:auto}
.hero .kicker{color:var(--gold)}.lede{font-size:clamp(1.02rem,1.6vw,1.2rem);max-width:640px;opacity:.88;margin:0}
.steps{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.steps li{display:flex;align-items:center;gap:10px;padding:8px 16px 8px 8px;border-radius:999px;border:1px solid rgba(246,241,251,.18);font-size:.9rem;color:#cfc3e0;transition:all .4s var(--ease)}
.steps span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(246,241,251,.1);font-weight:600}
.steps li.on{color:var(--cream);border-color:var(--gold);background:rgba(227,196,126,.1)}.steps li.on span{background:linear-gradient(135deg,#f3ddaa,var(--gold) 50%,#cfa95f);color:var(--ink)}
.steps li.past span{background:var(--a);color:#fff}
.notice{background:#fbf3df;border-bottom:1px solid rgba(134,102,42,.25);font-size:.9rem;color:#4a3a1c}.notice div{width:min(1080px,100% - 40px);margin:auto;padding:10px 0}
/* layout */
main{width:min(1080px,100% - 32px);margin:auto;padding:12px 0 40px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(18px,3.5vw,32px);margin:18px 0;box-shadow:0 20px 50px -30px rgba(45,22,80,.35);min-width:0}
.plan-head{background:linear-gradient(160deg,var(--ink),var(--ink3));color:var(--cream);border:0}.plan-head h2{color:var(--cream)}.plan-head .kicker{color:var(--gold)}.plan-head p{color:#e4dbef}
/* form */
label{display:block;font-weight:600;margin:12px 0;font-size:.92rem;color:var(--ink3)}
input,select{display:block;width:100%;min-height:48px;padding:11px 14px;border:1px solid rgba(45,22,80,.2);border-radius:12px;font:inherit;font-size:16px;margin-top:6px;background:#fff;color:var(--text);transition:border-color .2s,box-shadow .2s;max-width:100%}
input:focus,select:focus{outline:0;border-color:var(--a);box-shadow:0 0 0 4px rgba(227,196,126,.45)}
.g2{display:grid;gap:0 16px}@media(min-width:640px){.g2{grid-template-columns:1fr 1fr}}
fieldset{border:1px solid var(--line);border-radius:16px;margin:16px 0 0;padding:14px;min-width:0}legend{font-weight:600;color:var(--ink3);padding:0 6px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips label{display:flex;gap:10px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:10px 16px;margin:0;font-weight:500;min-height:44px;cursor:pointer;transition:background .2s,border-color .2s}
.chips label:has(input:checked){background:rgba(227,196,126,.22);border-color:var(--gold2)}
.chips input{width:20px;height:20px;min-height:0;margin:0;accent-color:var(--a)}
/* buttons */
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:46px;padding:.7em 1.25em;border-radius:999px;font:600 .92rem/1 var(--sans);cursor:pointer;border:1px solid var(--ink3);background:var(--ink3);color:#fff;margin:0;transition:transform .3s var(--ease),box-shadow .3s,background .3s}
button:hover,.btn:hover{transform:translateY(-1px)}
.sec{background:transparent;color:var(--ink3)}.plan-head .sec{color:var(--cream);border-color:rgba(246,241,251,.5)}
.plan-head #pr,.big{background:linear-gradient(135deg,#f3ddaa,var(--gold) 50%,#cfa95f);color:var(--ink);border:0;box-shadow:0 10px 30px -10px rgba(217,181,108,.7)}
.big{width:100%;margin-top:22px;min-height:56px;font-size:1.05rem}
.danger{background:transparent;color:#a3343a;border-color:rgba(163,52,58,.45)}
.row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.pl{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:12px 0;gap:10px}.pl>div:last-child{display:flex;gap:8px}
.pl small{color:var(--muted)}
.jump{display:flex;gap:8px;overflow-x:auto;margin-top:18px;padding-bottom:4px;scrollbar-width:none}.jump::-webkit-scrollbar{display:none}
.jump a{flex:none;color:var(--cream);text-decoration:none;font-size:.85rem;padding:9px 14px;border-radius:999px;border:1px solid rgba(246,241,251,.22)}.jump a:hover{border-color:var(--gold);color:var(--gold)}
/* progress */
.bar{height:10px;background:rgba(246,241,251,.15);border-radius:99px;overflow:hidden;margin-top:14px}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--a),var(--gold));transition:width .6s var(--ease)}
/* timeline */
.ph{border-left:3px solid var(--gold);padding-left:clamp(12px,2.5vw,20px);margin:22px 0}
.ph h3{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.due{font:500 .82rem var(--sans);color:var(--muted);display:inline-flex;align-items:center;gap:8px}.due input{width:auto;min-height:38px;padding:4px 10px;margin:0;font-size:.9rem}
.task{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:12px 0;border-bottom:1px dashed var(--line)}
input[type=checkbox]{width:22px;height:22px;min-height:0;margin:2px 0 0;padding:0;accent-color:var(--a);cursor:pointer}
.task.done .t,tr.done td{text-decoration:line-through;color:#8a8096}
.meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.meta input{flex:1 1 140px;min-width:0;min-height:40px;padding:6px 12px;font-size:.88rem;margin:0}
/* tables */
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th{font:600 .72rem/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold2);text-align:left;padding:10px;border-bottom:2px solid var(--line)}
td{border-bottom:1px solid var(--line);padding:10px;vertical-align:middle}td input{min-height:40px;padding:6px 10px;margin:0;font-size:.9rem}
td small{color:var(--muted)}.tm{white-space:nowrap;font-weight:600;color:var(--ink3)}.num{font-weight:600}
@media(max-width:640px){
 table.stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
 table.stack tr{position:relative;border:1px solid var(--line);border-radius:16px;padding:10px 14px;margin:0 0 12px;background:var(--paper)}
 table.stack td{border:0;padding:5px 0;display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px;align-items:center}
 table.stack td::before{content:attr(data-l);font:600 .68rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold2)}
 table.stack td.ck{position:absolute;top:12px;right:12px;width:auto;display:block;padding:0}
 table.stack td.ck::before{content:none}
 table.stack td.tm{padding-right:36px}
}
ul,ol{padding-left:1.3em}li{margin:.4em 0}
.draft{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:12px;padding:14px;margin:10px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.tag{font:700 .68rem/1 var(--sans);letter-spacing:.08em;background:var(--gold);color:var(--ink);border-radius:999px;padding:5px 10px;vertical-align:middle}
footer{background:var(--ink);color:#cfc3e0;text-align:center;padding:28px 20px calc(28px + env(safe-area-inset-bottom));font-size:.9rem}
/* motion */
#planSec.in>.card{animation:rise .6s var(--ease) both}#planSec.in>.card:nth-child(2){animation-delay:.06s}#planSec.in>.card:nth-child(3){animation-delay:.12s}#planSec.in>.card:nth-child(n+4){animation-delay:.18s}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* print */
@media print{
 .no-print,.notice,.hero,.top,footer,.jump,button,.skip{display:none!important}
 body{background:#fff;font-size:11pt;color:#000}main{width:auto;padding:0}
 .card,.plan-head{box-shadow:none;border:0;padding:0;margin:0 0 14pt;background:#fff;color:#000}.plan-head h2,.plan-head p{color:#000}.plan-head .kicker{color:var(--gold2)}
 .bar{border:1px solid #999;background:#fff}.bar i{print-color-adjust:exact;-webkit-print-color-adjust:exact}
 .ph,tr,.draft{break-inside:avoid}
 input{border:0;border-bottom:1px solid #bbb;border-radius:0;min-height:0;padding:2px}
 .tw{overflow:visible}
 table.stack thead{position:static;width:auto;height:auto;clip:auto}table.stack{display:table}table.stack tbody{display:table-row-group}table.stack tr{display:table-row}table.stack td{display:table-cell;width:auto}table.stack td::before{content:none}
}

/* recurring / status */
.st{display:inline-block;font:600 .72rem/1.2 var(--sans);padding:4px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.st.sub{background:#e8f4ea;color:#1d5b2b;border-color:#bcdcc3}.st.rec{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.status{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:10px 0}
.chk{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;font-weight:600}.chk input{width:22px;height:22px;min-height:0}
.based{font-style:italic;color:var(--gold)}
.from{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:0 0 16px;padding:14px;border:1px dashed var(--line);border-radius:14px}.from label{flex:1 1 240px;margin:0}
.basis{padding:12px 14px;border-radius:12px;background:rgba(227,196,126,.18);border:1px solid rgba(227,196,126,.5)}.basis button{margin-top:8px}
.pl>div:last-child{flex-wrap:wrap}.pl>div:first-child{min-width:0;overflow-wrap:anywhere}
textarea{width:100%;box-sizing:border-box;font:16px/1.4 var(--sans)}
/* section tabs: wrap instead of clipping off the right edge on phones */
.jump{flex-wrap:wrap;overflow:visible}.jump a{min-height:44px;box-sizing:border-box;display:inline-flex;align-items:center}
@media(max-width:640px){.jump a{flex:1 1 calc(33% - 8px);justify-content:center;padding:9px 8px}}
textarea{padding:11px 14px;border:1px solid rgba(45,22,80,.2);border-radius:12px;margin-top:6px;background:#fff;color:var(--text)}
.meta input,td input,.due input{min-height:44px}
[hidden]{display:none!important}
.plan-head .st{color:var(--cream);border-color:rgba(246,241,251,.4)}.plan-head .st.sub{color:#1d5b2b}.plan-head .chk{color:var(--cream)}.plan-head .based{color:var(--gold)}
