:root{
  --bg:#0a0a0a;--bg-2:#111110;--panel:#161614;--panel-2:#1d1c19;--line:#2c2b27;--line-2:#403e37;
  --text:#f4f0e6;--muted:#b3aea2;--dim:#8f8a7e;
  --gold:#d4af37;--gold-2:#e9d38a;--gold-deep:#8a6d14;--gold-text:#6b530b;--gold-ink:#171206;
  --paper:#f8f5ec;--paper-2:#efe9da;--ink:#0a0a0a;--ink-2:#3b3933;--ink-muted:#5e5a50;--paper-line:#d9d2c1;
  --err:#ff9b8c;--err-ink:#a3261b;
  --display:'Manrope',system-ui,sans-serif;--sans:'DM Sans',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;--mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;--serif:Georgia,'Times New Roman',serif;
  --gutter:clamp(16px,4.5vw,64px);--label-w:104px;--ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}
body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font:400 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip-link{position:absolute;left:16px;top:-80px;z-index:60;background:var(--gold);color:var(--gold-ink);padding:12px 16px;font-weight:700;text-decoration:none}
.skip-link:focus{top:12px}
.mono{font-family:var(--mono);font-weight:500;letter-spacing:.08em;text-transform:uppercase;font-size:11px}
.noscript{padding:24px var(--gutter);color:var(--gold-2)}

/* bar */
.bar{height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:0 var(--gutter);border-bottom:1px solid var(--line);background:var(--bg)}
.wordmark{justify-self:start;text-decoration:none;font:800 26px/.9 var(--display);letter-spacing:-.07em}
.wordmark span{color:var(--gold)}
.wordmark small{display:block;font:600 7px/1 var(--sans);letter-spacing:.34em;margin-top:6px}
.bar-label{margin:0;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.bar-label span{color:var(--gold);margin:0 .4em}
.bar-link{justify-self:end;font:500 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:14px 0;color:var(--muted)}
.bar-link span{color:var(--gold)}
.bar-link:hover{color:var(--text)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:54px;padding:14px 22px;border:1px solid transparent;border-radius:2px;font:700 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .2s var(--ease)}
.btn span[aria-hidden]{font:400 20px/1 var(--sans);letter-spacing:0}
.btn-gold{background:var(--gold);color:var(--gold-ink)}
.btn-gold:hover{background:var(--gold-2)}
.btn-ghost{background:transparent;border-color:var(--line-2);color:var(--text)}
.btn-ghost:hover{border-color:var(--gold)}
.btn-small{min-height:44px;padding:10px 16px}
.btn-block{width:100%}
.btn:active{transform:translateY(1px)}
.text-button{background:none;border:0;padding:8px 0;font:600 13px/1.3 var(--sans);color:var(--gold-2);text-decoration:underline;text-underline-offset:4px;min-height:44px}

.kicker{display:flex;align-items:center;gap:14px;margin:0;font:500 11px/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2)}
.kicker-rule{width:32px;height:1px;background:var(--gold);flex:none}
em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--gold);letter-spacing:-.03em}

/* ================= intro ================= */
.intro{min-height:calc(100svh - 64px);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:clamp(32px,5vw,88px);padding:clamp(40px,7vw,104px) var(--gutter);background:radial-gradient(ellipse at 20% 0%,#1c1a14 0%,rgba(10,10,10,0) 55%),var(--bg)}
.intro h1{font:700 clamp(46px,6.6vw,108px)/.98 var(--display);letter-spacing:-.058em;margin:clamp(28px,4vw,48px) 0 26px;max-width:12ch}
.intro-lede{max-width:560px;margin:0;color:var(--muted);font-size:clamp(17px,1.3vw,20px);line-height:1.6}
.intro-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;margin-top:40px}
.intro-actions .btn{min-width:268px}
.intro-note{margin:0;max-width:230px;color:var(--dim);font-size:13px;line-height:1.5}
.intro-resume{margin:18px 0 0;color:var(--muted);font-size:14px}

.sample{margin:0;border:1px solid var(--line);background:linear-gradient(180deg,var(--panel),var(--bg-2));padding:clamp(18px,2.4vw,30px)}
.sample-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--line);color:var(--dim)}
.sample-rec{display:inline-flex;align-items:center;gap:8px;color:var(--gold-2)}
.rec-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(212,175,55,.18)}
.sample-track{position:relative;padding:22px 0 8px;--label-w:92px}
.sample-ruler{display:flex;justify-content:space-between;margin-left:var(--label-w);font:500 10px/1 var(--mono);color:var(--dim);letter-spacing:.06em;padding-bottom:10px;border-bottom:1px dashed var(--line-2)}
.sample-lane{position:relative;height:44px;margin:12px 0 0 var(--label-w)}
.lane-label{position:absolute;left:calc(-1 * var(--label-w));top:50%;transform:translateY(-50%);width:calc(var(--label-w) - 10px);font:500 10px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.sample-block{position:absolute;top:6px;bottom:6px;left:calc(var(--a) * 1%);width:calc((var(--b) - var(--a)) * 1% - 3px);background:var(--panel-2);border:1px solid var(--line-2);font:500 11px/30px var(--sans);font-style:normal;color:var(--muted);padding:0 8px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.sample-block.is-stage{border-color:var(--gold-deep);color:var(--gold-2)}
.sample-band{position:absolute;top:6px;bottom:6px;left:0;width:100%;background:var(--gold);transform-origin:left;animation:sweep 1.6s .4s var(--ease) both}
.sample-band::after{content:"4 hours";position:absolute;left:10px;top:50%;transform:translateY(-50%);font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-ink)}
@keyframes sweep{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.sample-readout{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:18px 0 0;background:var(--line);border:1px solid var(--line)}
.sample-readout div{background:var(--bg-2);padding:14px}
.sample-readout dt{font:500 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.sample-readout dd{margin:8px 0 0;font:600 15px/1.3 var(--display);letter-spacing:-.01em}
.sample figcaption{margin-top:16px;color:var(--dim);font-size:13px}

/* ================= builder ================= */
.builder{padding:0 var(--gutter) 72px}
.chapters{border-bottom:1px solid var(--line);margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter);overflow-x:auto;scrollbar-width:none}
.chapters::-webkit-scrollbar{display:none}
.chapters ol{display:flex;list-style:none;margin:0;padding:0;gap:4px;min-width:max-content}
.chapters button{display:flex;align-items:center;gap:10px;min-height:56px;padding:0 14px;background:none;border:0;border-bottom:2px solid transparent;color:var(--dim);font:600 14px/1 var(--sans);white-space:nowrap}
.chapters button .mono{color:inherit}
.chapters li[data-state=done] button{color:var(--muted)}
.chapters li[data-state=done] button .mono::after{content:" ✓";color:var(--gold)}
.chapters li[data-state=current] button{color:var(--text);border-bottom-color:var(--gold)}
.chapters button:disabled{cursor:default;opacity:.55}
.chapters button:not(:disabled):hover{color:var(--text)}

.builder-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,440px);gap:clamp(28px,4vw,72px);align-items:start;padding-top:clamp(28px,4vw,56px)}
.flow{min-width:0}
.chapter-head{margin-bottom:32px}
.chapter-index{margin:0;color:var(--gold)}
.chapter-head h2{font:700 clamp(32px,3.6vw,54px)/1.04 var(--display);letter-spacing:-.045em;margin:14px 0 14px;outline:none}
.chapter-lede{margin:0;max-width:600px;color:var(--muted);font-size:17px}
.alert{margin:0 0 24px;padding:14px 16px;border:1px solid var(--err);color:var(--err);background:rgba(255,155,140,.06);font-weight:600}

.q{border:0;margin:0 0 34px;padding:0;min-width:0}
.q legend,.field label,.guests-head label{display:block;padding:0;margin:0 0 14px;font:600 15px/1.35 var(--sans);color:var(--text)}
.opt{font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-left:8px}
.hint{margin:12px 0 0;color:var(--dim);font-size:14px;max-width:620px}
.err{margin:8px 0 0;color:var(--err);font-size:14px;font-weight:600}
.err:empty{display:none}

/* tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.tile{position:relative;display:flex;min-height:72px;border:1px solid var(--line-2);background:var(--bg-2);cursor:pointer;transition:border-color .18s,background .18s}
.tile input,.chip input,.segment input,.moment-pick input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.tile-body{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:14px 16px 14px 44px;width:100%}
.tile-body::before{content:"";position:absolute;left:16px;top:50%;width:14px;height:14px;margin-top:-7px;border:1px solid var(--dim);border-radius:50%}
.tile strong{font:600 15px/1.3 var(--sans)}
.tile small{color:var(--dim);font-size:13px;line-height:1.35}
.tile:hover{border-color:var(--dim)}
.tile:has(input:checked){border-color:var(--gold);background:linear-gradient(180deg,rgba(212,175,55,.09),rgba(212,175,55,.03))}
.tile:has(input:checked) .tile-body::before{border-color:var(--gold);background:radial-gradient(circle,var(--gold) 0 4px,transparent 5px)}
.tile:has(input:focus-visible),.chip:has(input:focus-visible),.segment:has(input:focus-visible),.moment-pick:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:2px}
.list-choices{display:grid;gap:8px}
.tile-row{min-height:60px}
.tile-row .tile-body{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 16px}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;cursor:pointer}
.chip span{display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;border:1px solid var(--line-2);border-radius:999px;font-size:14px;font-weight:500;color:var(--muted);transition:all .18s}
.chip:hover span{border-color:var(--dim);color:var(--text)}
.chip:has(input:checked) span{background:var(--gold);border-color:var(--gold);color:var(--gold-ink);font-weight:600}
.chip:has(input:checked) span::before{content:"✓";margin-right:8px}

/* segments */
.segments{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--line-2);border:1px solid var(--line-2)}
.segment{position:relative;display:flex;cursor:pointer;background:var(--bg-2);transition:background .18s}
.segment>span{display:flex;flex-direction:column;gap:3px;justify-content:center;padding:14px 16px;min-height:64px;width:100%;border-top:2px solid transparent}
.segment strong{font:600 14px/1.3 var(--sans)}
.segment small{font-size:12.5px;color:var(--dim);line-height:1.35}
.segment:hover{background:var(--panel)}
.segment:has(input:checked){background:var(--panel-2)}
.segment:has(input:checked)>span{border-top-color:var(--gold)}
.segment:has(input:checked) strong{color:var(--gold-2)}
.segments.three{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.segments.four{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}

/* fields */
.row-3{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.span-2{grid-column:1/-1}
.field{margin:0 0 20px;min-width:0}
.field.narrow{max-width:240px}
.field.inline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 0}
.field.inline label{margin:0;font-weight:500;color:var(--muted);font-size:14px}
.field.inline input{width:150px}
input[type=text],input:not([type]),input[type=date],input[type=number],select{width:100%;min-height:52px;padding:12px 14px;background:var(--bg-2);border:1px solid var(--line-2);border-radius:2px;color:var(--text);font-size:16px}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:40px}
input::placeholder{color:#6f6b61}
input:hover,select:hover{border-color:var(--dim)}
input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold)}
[aria-invalid=true]{border-color:var(--err)!important}
input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8)}
.check{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:10px 0;cursor:pointer;font-size:15px;color:var(--text)}
.check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--gold);flex:none}

/* guests */
.guests{padding:22px;border:1px solid var(--line);background:var(--bg-2);margin-top:8px}
.guests-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.guests-head label{margin:0}
.guests-out{font:700 clamp(34px,4vw,48px)/1 var(--display);letter-spacing:-.05em;color:var(--gold-2)}
input[type=range]{--fill:0%;width:100%;height:44px;margin:14px 0 4px;background:transparent;appearance:none;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:3px;background:linear-gradient(90deg,var(--gold) var(--fill),var(--line-2) var(--fill))}
input[type=range]::-moz-range-track{height:3px;background:var(--line-2)}
input[type=range]::-moz-range-progress{height:3px;background:var(--gold)}
input[type=range]::-webkit-slider-thumb{appearance:none;width:26px;height:26px;margin-top:-11.5px;border-radius:50%;background:var(--gold);border:4px solid var(--bg);box-shadow:0 0 0 1px var(--gold)}
input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--gold);border:4px solid var(--bg)}
input[type=range]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.guests-scale{display:flex;justify-content:space-between;color:var(--dim);font-size:10px}

/* moments */
.moments{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.moment{display:flex;align-items:stretch;border:1px solid var(--line-2);background:var(--bg-2);min-height:56px;transition:border-color .2s,background .2s}
.moment-pick{position:relative;flex:1;display:flex;align-items:center;cursor:pointer;min-width:0}
.moment-pick span{display:block;padding:12px 12px 12px 44px;font-size:14.5px;font-weight:500;line-height:1.3}
.moment-pick span::before{content:"";position:absolute;left:14px;top:50%;width:16px;height:16px;margin-top:-8px;border:1px solid var(--dim);border-radius:2px}
.moment.is-on{border-color:var(--gold-deep);background:var(--panel)}
.moment.is-on .moment-pick span::before{background:var(--gold);border-color:var(--gold);box-shadow:inset 0 0 0 3px var(--panel)}
.moment-time{display:none;flex:none;width:128px;border-left:1px solid var(--line-2)}
.moment.is-on .moment-time{display:block}
.moment-time select{height:100%;min-height:54px;border:0;background-color:transparent;font-size:14px;padding:0 30px 0 12px;background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%}
.moment.just-on{animation:flash .5s var(--ease)}
@keyframes flash{from{background:rgba(212,175,55,.2)}to{background:var(--panel)}}
.room-note{margin:0;padding:16px 18px;border-left:2px solid var(--gold);background:var(--panel);color:var(--text);font-size:15px}

.flow-actions{display:flex;justify-content:space-between;gap:12px;padding-top:28px;margin-top:8px;border-top:1px solid var(--line)}
.flow-actions .btn-gold{margin-left:auto;min-width:220px}
.save-note{margin:16px 0 0;color:var(--dim);font-size:10px;text-align:right}

/* ================= monitor ================= */
.monitor{position:sticky;top:20px;border:1px solid var(--line);background:linear-gradient(180deg,var(--panel),var(--bg-2));padding:22px}
.monitor-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.monitor-head h2{display:flex;align-items:center;gap:10px;margin:0;color:var(--gold-2)}
.monitor-sub{margin:0;color:var(--dim);text-align:right;font-size:10px}
.monitor .timeline{padding:18px 0 4px;--label-w:92px}
.readout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:16px 0 0;background:var(--line);border:1px solid var(--line)}
.readout div{background:var(--bg-2);padding:14px;min-width:0}
.readout dt{font:500 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.readout dd{margin:8px 0 0;font:600 15px/1.25 var(--display);letter-spacing:-.015em}
.readout div:first-child,.readout .ro-money{grid-column:1/-1}
.readout .ro-money dd{font-size:26px;color:var(--gold-2);letter-spacing:-.04em}
.monitor[data-level=production] .ro-money dd{font-size:20px}
.monitor-why{margin:16px 0 0;min-height:44px;color:var(--muted);font-size:14px;line-height:1.5;border-left:2px solid var(--gold);padding-left:12px}
.monitor-why:empty{border-color:transparent}
.monitor-why.pulse{animation:whyin .5s var(--ease)}
@keyframes whyin{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* ================= timeline ================= */
.timeline-empty{margin:0;padding:24px 0;color:var(--dim);font-size:14px;text-align:center;border:1px dashed var(--line-2)}
.tl{display:grid;gap:6px}
.tl-ruler{position:relative;height:18px;margin-left:var(--label-w);border-bottom:1px dashed var(--line-2)}
.tl-ruler span{position:absolute;top:0;transform:translateX(-50%);font:500 10px/1 var(--mono);color:var(--dim);white-space:nowrap}
.tl-ruler span:first-child{transform:none}
.tl-ruler span:last-child:not(:first-child){transform:translateX(-100%)}
.tl-lane{position:relative;height:34px;margin-left:var(--label-w)}
.tl-lane:nth-child(2){height:48px}
.tl-label{position:absolute;left:calc(-1 * var(--label-w));top:50%;transform:translateY(-50%);width:calc(var(--label-w) - 10px);font:500 10px/1.2 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--dim)}
.tl-event{position:absolute;top:50%;height:2px;margin-top:-1px;background:var(--line-2)}
.tl-moment{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none}
.tl-moment b{width:10px;height:10px;border-radius:50%;background:var(--text);border:2px solid var(--bg-2)}
.tl-moment.is-stage b{background:var(--gold)}
.tl-moment em{position:absolute;bottom:14px;font:500 10px/1.1 var(--sans);font-style:normal;color:var(--muted);white-space:nowrap;letter-spacing:0}
.tl-moment.is-low em{bottom:auto;top:14px}
.tl-band{position:absolute;top:5px;bottom:5px;background:var(--gold);transition:left .45s var(--ease),width .45s var(--ease);overflow:hidden;min-width:4px}
.tl-band span{position:absolute;left:8px;top:50%;transform:translateY(-50%);font:600 10px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--gold-ink);white-space:nowrap}
.tl-band.is-second{background:transparent;border:1.5px solid var(--gold)}
.tl-band.is-second span{color:var(--gold-2)}
.tl-band.is-review{background:transparent;border:1.5px dashed var(--dim)}
.tl-band.is-review span{color:var(--muted)}
.tl-band.is-station{background:repeating-linear-gradient(135deg,rgba(212,175,55,.35) 0 6px,rgba(212,175,55,.12) 6px 12px);border:1px solid var(--gold-deep)}
.tl-band.is-station span{color:var(--gold-2)}
.tl-legend{list-style:none;margin:16px 0 0;padding:12px 0 0;border-top:1px solid var(--line);display:grid;gap:6px;font-size:13px;color:var(--muted)}
.tl-legend li{display:flex;gap:12px}
.tl-legend .mono{width:72px;flex:none;color:var(--gold-2);font-size:10px;padding-top:3px}

/* ================= plan ================= */
.plan-hero{padding:clamp(40px,6vw,88px) var(--gutter) clamp(32px,4vw,56px);background:radial-gradient(ellipse at 80% 0%,#1d1a12 0%,rgba(10,10,10,0) 60%),var(--bg);border-bottom:1px solid var(--line)}
.plan-hero h1{font:700 clamp(40px,5.6vw,88px)/1 var(--display);letter-spacing:-.055em;margin:22px 0 14px;outline:none}
.plan-for{margin:0 0 32px;color:var(--muted);font-size:17px}
.plan-headline{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:28px}
.plan-headline>div{background:var(--bg-2);padding:18px 20px;min-width:0}
.plan-headline .mono{margin:0;color:var(--dim);font-size:10px}
.plan-tier{margin:10px 0 0;font:700 clamp(22px,2.2vw,30px)/1.1 var(--display);letter-spacing:-.035em;color:var(--gold-2)}
.plan-stat{margin:10px 0 0;font:600 17px/1.3 var(--display);letter-spacing:-.015em}
.timeline-lg{--label-w:120px;padding:22px;border:1px solid var(--line);background:var(--bg-2)}
.tl-large .tl-lane{height:40px}
.tl-large .tl-lane:nth-child(2){height:64px}
.tl-large .tl-moment em{font-size:12px}

.plan-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:clamp(28px,4vw,72px);align-items:start;padding:clamp(40px,5vw,72px) var(--gutter);background:var(--paper);color:var(--ink)}
.plan-body :focus-visible{outline-color:var(--ink)}
.plan-section{padding-bottom:36px;margin-bottom:36px;border-bottom:1px solid var(--paper-line)}
.plan-section:last-child{border-bottom:0;margin-bottom:0}
.plan-section h2{display:flex;align-items:baseline;gap:14px;margin:0 0 20px;font:700 clamp(24px,2.3vw,32px)/1.15 var(--display);letter-spacing:-.035em}
.plan-section h2 .mono{color:var(--gold-text);font-size:12px}
.why p{margin:0 0 14px;font-size:18px;line-height:1.6;color:var(--ink-2);max-width:68ch}
.why p:first-child{font:500 clamp(20px,1.8vw,24px)/1.45 var(--display);letter-spacing:-.02em;color:var(--ink)}
.priorities{margin:0;padding:0;list-style:none;counter-reset:p}
.priorities li{counter-increment:p;display:grid;grid-template-columns:44px 1fr;gap:8px;padding:14px 0;border-top:1px solid var(--paper-line);font-size:16.5px;color:var(--ink-2)}
.priorities li::before{content:counter(p,decimal-leading-zero);font:500 12px/1.8 var(--mono);color:var(--gold-text)}
.included{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 28px}
.included li{position:relative;padding-left:22px;font-size:15.5px;color:var(--ink-2)}
.included li::before{content:"";position:absolute;left:0;top:.55em;width:10px;height:1.5px;background:var(--gold-deep)}
.consider{display:grid;gap:16px}
.consider-card{border:1px solid var(--paper-line);background:#fff;padding:20px;margin:0;min-width:0}
.consider-card legend,.consider-card h3{font:700 17px/1.3 var(--display);letter-spacing:-.015em;padding:0;margin:0 0 6px}
.consider-card legend{float:left;width:100%}
.consider-card p{clear:both;margin:0 0 14px;color:var(--ink-muted);font-size:15px}
.plan-body .segments{background:var(--paper-line);border-color:var(--paper-line)}
.plan-body .segment{background:var(--paper)}
.plan-body .segment:hover{background:#fff}
.plan-body .segment:has(input:checked){background:#fff}
.plan-body .segment:has(input:checked)>span{border-top-color:var(--gold-deep)}
.plan-body .segment:has(input:checked) strong{color:var(--ink)}
.plan-body .segment small{color:var(--ink-muted)}
.plan-body .btn-ghost{color:var(--ink);border-color:var(--ink)}

.invest{position:sticky;top:20px}
.invest-card{background:var(--ink);color:var(--text);padding:clamp(22px,2.4vw,32px)}
.invest-card :focus-visible{outline-color:var(--gold)}
.invest-card h2{margin:0;color:var(--gold-2)}
.invest-headline{margin:12px 0 18px;font:700 22px/1.2 var(--display);letter-spacing:-.03em}
.lines{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.lines li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.lines strong{display:block;font-weight:600;font-size:15px}
.lines small{display:block;margin-top:4px;color:var(--dim);font-size:13px;line-height:1.4}
.lines b{font:600 15px/1.3 var(--display);white-space:nowrap;color:var(--gold-2)}
.invest-total{padding:18px 0 6px}
.invest-total .mono{color:var(--dim);font-size:10px}
.invest-total strong{display:block;font:700 clamp(40px,4vw,54px)/1 var(--display);letter-spacing:-.05em;color:var(--gold);margin-top:8px}
.invest-total small{display:block;margin-top:10px;color:var(--muted);font-size:13.5px}
.invest-custom{margin:0;color:var(--text);font-size:15px;line-height:1.55}
.quoted{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}
.quoted li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px;border:1px dashed var(--line-2)}
.quoted strong{font-size:14px}
.quoted span{font:500 10px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gold-2);text-align:right}
.quoted small{grid-column:1/-1;color:var(--dim);font-size:12.5px;line-height:1.4}
.invest-fine{margin:18px 0 20px;color:var(--dim);font-size:12.5px;line-height:1.55}
.invest-handoff{margin:12px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.invest-secondary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;margin-top:12px;padding-top:8px;border-top:1px solid var(--line)}

.next{padding:clamp(40px,5vw,72px) var(--gutter);background:var(--paper-2);color:var(--ink)}
.next h2{margin:0 0 24px;color:var(--gold-text)}
.next ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--paper-line);border:1px solid var(--paper-line)}
.next li{background:var(--paper);padding:22px;font-size:14.5px;color:var(--ink-muted);line-height:1.5}
.next li .mono{display:block;color:var(--gold-text);margin-bottom:14px}
.next li strong{display:block;font:700 17px/1.25 var(--display);letter-spacing:-.02em;color:var(--ink);margin-bottom:6px}
.plan-id{margin:22px 0 0;color:var(--ink-muted);font-size:10px}

.dialog{border:1px solid var(--line-2);background:var(--panel);color:var(--text);padding:28px;max-width:420px;width:calc(100% - 32px)}
.dialog::backdrop{background:rgba(0,0,0,.7)}
.dialog h2{margin:0 0 8px;font:700 22px/1.2 var(--display)}
.dialog p{margin:0 0 20px;color:var(--muted)}
.dialog-actions{display:flex;gap:10px;flex-wrap:wrap}

.quick{display:none}
.handoff-error{margin-top:14px;padding:16px;border:1px solid var(--err);background:rgba(255,155,140,.06);outline:none}
.handoff-error p{margin:0 0 12px;font-size:14px;line-height:1.5}
.handoff-error textarea{width:100%;background:var(--bg-2);color:var(--text);border:1px solid var(--line-2);padding:10px;font:13px/1.45 var(--mono);resize:vertical}
.handoff-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.plan-body .invest-card .btn-ghost{color:var(--text);border-color:var(--line-2)}
.plan-body .invest-card .btn-ghost:hover{border-color:var(--gold)}
/* ================= responsive ================= */
@media (max-width:1100px){
  .builder-grid{grid-template-columns:minmax(0,1fr) 360px}
  .plan-headline{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .intro{grid-template-columns:1fr;min-height:0}
  .intro h1{max-width:14ch}
  .builder-grid{grid-template-columns:1fr}
  .monitor{position:static;order:-1;padding:16px}
  .monitor .readout{grid-template-columns:repeat(4,minmax(0,1fr))}
  .monitor .readout div:first-child,.monitor .ro-money{grid-column:auto}
  .monitor .ro-money dd{font-size:18px}
  .monitor-why{min-height:0}
  .plan-body{grid-template-columns:1fr}
  .quick{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 24px;padding:16px;border:1px solid var(--gold-deep);background:var(--bg-2)}
  .quick .mono{margin:0;color:var(--dim);font-size:10px}
  .quick-amount{margin:6px 0 0;font:700 24px/1.1 var(--display);letter-spacing:-.03em;color:var(--gold-2)}
  .quick .btn{flex:1 1 220px}
  .invest{position:static}
  .next ol{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  :root{--label-w:78px}
  .bar{grid-template-columns:1fr auto}
  .bar-label{display:none}
  .intro{padding-top:36px}
  .intro-actions .btn{width:100%;min-width:0}
  .intro-note{max-width:none}
  .sample-track{--label-w:74px}
  .sample-block{font-size:10px;padding:0 5px}
  .sample-readout{grid-template-columns:1fr}
  .row-3,.row-2{grid-template-columns:1fr}
  .row-3{gap:0}
  .tiles{grid-template-columns:1fr 1fr}
  .tile-body{padding:12px 12px 12px 38px}
  .tile-body::before{left:13px}
  .tile strong{font-size:14px}
  .moments{grid-template-columns:1fr}
  .segments,.segments.three{grid-template-columns:1fr}
  .segments.four{grid-template-columns:1fr 1fr}
  .monitor .readout{grid-template-columns:1fr 1fr}
  .monitor .readout div:first-child,.monitor .ro-money{grid-column:1/-1}
  .monitor-why{display:none}
  .monitor-head{padding-bottom:10px}
  .monitor .timeline{padding-top:12px}
  .monitor .timeline{--label-w:74px}
  .tl-moment em{display:none}
  .tl-lane:nth-child(2){height:30px}
  .flow-actions{flex-direction:column-reverse}
  .flow-actions .btn{width:100%}
  .save-note{text-align:left}
  .plan-headline{grid-template-columns:1fr}
  .timeline-lg{--label-w:74px;padding:14px}
  .tl-large .tl-lane:nth-child(2){height:34px}
  .included{grid-template-columns:1fr}
  .next ol{grid-template-columns:1fr}
  .quoted li{grid-template-columns:1fr}
  .quoted span{text-align:left}
}
@media (max-width:380px){
  .tiles{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media print{
  .bar,.skip-link,.invest-secondary,#proposal-button,.invest-handoff,.consider,#consider-section{display:none!important}
  body,.plan-hero,.plan-body,.next,.invest-card{background:#fff!important;color:#000!important}
  .plan-hero *,.invest-card *{color:#000!important}
  .tl-band{background:#bbb!important;print-color-adjust:exact}
  .plan-body{grid-template-columns:1fr 320px}
}
