/* Ellsworth Capitol free resources (roadmap, assessment, checklists, 90-day plan). Builds on ec.css tokens. */
.fr-hero{background:var(--navy);color:var(--on-dark);padding:calc(var(--sec)*.8) 0 calc(var(--sec)*.7);overflow:hidden;position:relative}
.fr-hero::before{content:"";position:absolute;inset:auto -10% -60% 40%;height:120%;background:radial-gradient(closest-side,rgba(201,169,110,.16),transparent);pointer-events:none}
.fr-hero .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s7);align-items:center;position:relative}
.fr-hero h1{color:#fff;max-width:15ch}.fr-hero .eyebrow{color:var(--gold)}
.fr-hero .lead{color:var(--on-dark);max-width:52ch}
.fr-hero .acts{margin-top:var(--s5)}
.fr-hero .go{color:var(--gold)}
.fr-meta{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);margin:var(--s4) 0 0;padding:0;list-style:none;font-size:var(--t-small);color:#9aa1b2}
.fr-meta li::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);margin-right:10px;vertical-align:middle}
/* Book cover */
.cover-wrap{perspective:1600px;display:flex;justify-content:center}
.cover{position:relative;width:min(100%,340px);aspect-ratio:8.5/11;border-radius:6px 14px 14px 6px;background:linear-gradient(160deg,#18284a,#0b1529 70%);box-shadow:inset 6px 0 0 rgba(255,255,255,.05),inset 9px 0 0 rgba(0,0,0,.25),0 40px 80px -20px rgba(0,0,0,.6),0 0 0 1px rgba(201,169,110,.28);padding:12% 11%;display:flex;flex-direction:column;color:#fff;transform:rotateY(-14deg) rotateX(4deg);transform-style:preserve-3d;transition:transform 1.2s var(--ease)}
.cover-wrap:hover .cover{transform:rotateY(-6deg) rotateX(2deg)}
.cover .ck{font:600 .62rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.cover .ct{font-family:var(--serif);font-weight:500;font-size:clamp(1.9rem,3vw,2.5rem);line-height:1;margin:auto 0 .4em}
.cover .cs{font-size:.8rem;color:#aab1c2;line-height:1.5}
.cover .cl{display:flex;gap:6px;margin-top:18%}
.cover .cl i{flex:1;height:3px;border-radius:2px;background:rgba(255,255,255,.14)}
.cover .cl i:nth-child(-n+5){background:linear-gradient(90deg,var(--gold),var(--gold-2))}
.cover .cb{margin-top:10%;font-size:.7rem;color:#8a92a6;letter-spacing:.04em}
.cover .ring{position:absolute;top:10%;right:11%;width:42px;height:42px;border:2px solid var(--gold);border-radius:50%}
.js-motion .cover{animation:coverIn 1.6s var(--ease) both .2s}
@keyframes coverIn{from{opacity:0;transform:rotateY(-35deg) rotateX(8deg) translateY(30px)}}

/* Reading progress under the sticky stage bar */
.rm-prog{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--gold);transform-origin:left;transform:scaleX(var(--rp,0))}
.subnav{position:sticky}
.subnav .wrap{position:static}

/* Letter */
.rm-letter{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s7);align-items:start}
.rm-letter .prose p:first-child{font-family:var(--serif);font-size:clamp(1.5rem,2.2vw,1.9rem);line-height:1.35;color:var(--ink)}
.rm-sign{margin-top:var(--s4);font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--ink)}
.rm-sign small{display:block;font-family:var(--sans);font-style:normal;font-size:var(--t-small);color:var(--muted);margin-top:2px}
.rm-how{list-style:none;margin:var(--s6) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);counter-reset:h}
.rm-how li{counter-increment:h;border-top:1px solid var(--line-2);padding-top:var(--s3)}
.rm-how li::before{content:"0" counter(h);display:block;font:500 var(--t-micro)/1 var(--sans);letter-spacing:.16em;color:var(--gold-ink);margin-bottom:var(--s3)}
.rm-how h3{margin-bottom:var(--s1)}.rm-how p{margin:0;color:var(--muted);font-size:var(--t-small)}

/* Stage chapters */
.rm-stage{padding:var(--sec) 0;border-top:1px solid var(--line)}
.rm-stage:nth-of-type(even){background:var(--white)}
.rm-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s5);align-items:end;margin-bottom:var(--s6)}
.rm-ill{width:96px;height:96px;fill:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.js-motion .rm-head .rm-ill [pathLength]{stroke-dasharray:1 1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease) .2s}
.js-motion .rm-head.in .rm-ill [pathLength]{stroke-dashoffset:0}
.js-motion .rm-head .rm-ill .k{opacity:0;transition:opacity .8s .6s}.js-motion .rm-head.in .rm-ill .k{opacity:1}
.rm-num{display:block;font:500 var(--t-micro)/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:var(--s2)}
.rm-head h2{font-size:clamp(2.75rem,5.4vw,4.5rem)}
.rm-tag{display:block;font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,1.8vw,1.5rem);color:var(--gold-ink);margin-top:var(--s1)}
.rm-goal{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,2.6vw,2.25rem);line-height:1.25;color:var(--ink);max-width:40ch;margin:0 0 var(--s6);padding-left:var(--s4);border-left:2px solid var(--gold);text-wrap:balance}
.rm-goal small{display:block;font:600 var(--t-micro)/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s2)}
.rm-body{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s7);align-items:start}
.rm-label{display:block;font:600 var(--t-micro)/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 var(--s3)}
.rm-moves{list-style:none;margin:0;padding:0;counter-reset:m}
.rm-moves li{counter-increment:m;display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 var(--s2);padding:var(--s4) 0;border-top:1px solid var(--line)}
.rm-moves li::before{content:counter(m,decimal-leading-zero);font:500 .8125rem/1.9 var(--sans);letter-spacing:.08em;color:var(--gold-ink);font-variant-numeric:tabular-nums}
.rm-moves h3{font-size:1.125rem;margin-bottom:6px}
.rm-moves p{margin:0;color:var(--text)}
.rm-moves .out{margin-top:var(--s1);font-size:var(--t-small);color:var(--muted)}
.rm-moves .out b{font-weight:600;color:var(--gold-ink);margin-right:.4em}
.rm-side>div{margin-bottom:var(--s5)}
.rm-list{list-style:none;margin:0;padding:0}
.rm-list li{position:relative;padding:12px 0 12px 28px;border-top:1px solid var(--line);font-size:var(--t-small);color:var(--text);line-height:1.55}
.rm-list li::before{content:"";position:absolute;left:2px;top:19px;width:7px;height:7px;border-radius:50%;border:1.5px solid var(--gold-2)}
.rm-list.traps li::before{border:0;width:10px;height:1.5px;top:22px;background:#a0563f;border-radius:0}
.rm-done{background:var(--navy);color:var(--on-dark);border-radius:var(--r);padding:var(--s4)}
.rm-done .rm-label{color:var(--gold)}
.rm-done .rm-list li{border-top-color:var(--line-d);color:#e6e8ee}
.rm-done .rm-list li::before{width:14px;height:14px;top:14px;left:0;border-radius:4px;border:1.5px solid var(--gold);background:none}
.rm-done .rm-list li::after{content:"";position:absolute;left:4.5px;top:17px;width:5px;height:8px;border:solid var(--gold);border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.rm-next{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:center;margin-top:var(--s5);padding-top:var(--s4);border-top:1px solid var(--line);font-size:var(--t-small);color:var(--muted)}
.rm-next .go{font-size:var(--t-small)}

/* Bands and gate cards */
.fr-band{background:var(--stone);padding:var(--s7) 0}
.fr-band .wrap{display:flex;gap:var(--s5);align-items:center;justify-content:space-between}
.fr-band h2{font-size:clamp(1.9rem,3vw,2.6rem);max-width:22ch}
.fr-band p{margin:var(--s2) 0 0;color:var(--muted);max-width:52ch}
.fr-band .acts{flex:none;margin:0}
.fr-gate{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:var(--s7);align-items:center}
.fr-gate .form-card{box-shadow:var(--shadow)}
.sec-dark .fr-gate .form-card{border-color:transparent}
.lead-form .opt{display:block;font-weight:400;color:var(--faint)}
.lead-form .consent{font-size:.78rem;line-height:1.55;color:var(--muted);margin:var(--s2) 0 0}
.lead-form .check{margin:var(--s1) 0 var(--s3);font-size:.8rem;line-height:1.5}
.lead-form button[type=submit]{width:100%;background:var(--gold);border-color:var(--gold);color:var(--navy)}
.lead-form button[type=submit]:hover{background:#d6b983}
.lead-done h3{font-family:var(--serif);font-weight:500;font-size:2rem;margin-bottom:var(--s2);color:var(--ink)}
.lead-done .dl{display:grid;gap:10px;margin:var(--s3) 0 0}
.lead-done .dl a{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding:14px 18px;border:1px solid var(--line-2);border-radius:var(--r-sm);text-decoration:none;color:var(--ink);font-weight:500;font-size:var(--t-small);transition:border-color .2s,background .2s}
.lead-done .dl a:hover{border-color:var(--gold);background:#fff}
.lead-done .dl a::after{content:"\2193";color:var(--gold-ink)}
.preview-note{margin-top:var(--s3);font-size:.75rem;color:#8a6d2c;background:#fbf3e2;border-radius:8px;padding:8px 12px}
dialog.gate{border:0;padding:0;border-radius:var(--r);width:min(100% - 32px,480px);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 40px 100px rgba(14,26,51,.35);background:var(--white)}
dialog.gate::backdrop{background:rgba(14,26,51,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
dialog.gate .gate-in{padding:var(--s5)}
dialog.gate h2{font-size:2.1rem;margin-bottom:var(--s1)}
dialog.gate .gate-sub{color:var(--muted);font-size:var(--t-small);margin-bottom:var(--s4)}
dialog.gate .x{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--paper);cursor:pointer;font-size:1.1rem;line-height:1;color:var(--ink)}
dialog.gate[open]{animation:gIn .45s var(--ease)}
@keyframes gIn{from{opacity:0;transform:translateY(16px) scale(.98)}}

/* Hub */
.fr-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s3)}
.fr-card{grid-column:span 2;position:relative;display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:var(--s5) var(--s5) var(--s4);transition:transform .5s var(--ease),box-shadow .5s var(--ease);text-decoration:none;color:inherit}
.fr-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.fr-card.feat{grid-column:span 6;background:var(--navy);color:var(--on-dark);border-color:transparent;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s6);align-items:center;padding:var(--s6)}
.fr-card.feat h2{color:#fff;font-size:clamp(2.2rem,3.6vw,3.2rem)}
.fr-card.feat .cover{width:min(100%,250px);margin-inline:auto}
.fr-card .kind{font:600 var(--t-micro)/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:var(--s3)}
.fr-card.feat .kind{color:var(--gold)}
.fr-card h2{font-size:clamp(1.9rem,2.6vw,2.4rem);margin-bottom:var(--s2)}
.fr-card p{color:var(--muted);margin:0 0 var(--s3)}.fr-card.feat p{color:var(--on-dark);max-width:48ch}
.fr-card .acts{margin-top:auto;padding-top:var(--s2)}
.fr-card.feat .acts{margin-top:var(--s4)}
.fr-card .fr-icon{width:52px;height:52px;margin-bottom:var(--s4);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.fr-card .fr-icon .c{stroke:var(--ink)}.fr-card .fr-icon .g{stroke:var(--gold-2)}
.fr-what{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.fr-what>div{border-top:1px solid var(--line-2);padding-top:var(--s3)}
.fr-what h3{margin-bottom:var(--s1)}.fr-what p{margin:0;color:var(--muted);font-size:var(--t-small)}

/* Assessment */
.qz{max-width:820px}
.qz-bar{position:sticky;top:var(--navh);z-index:30;background:rgba(251,250,247,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:14px 0;border-bottom:1px solid var(--line);margin-bottom:var(--s5)}
.qz-bar .wrap{display:flex;align-items:center;gap:var(--s3);font-size:var(--t-small);color:var(--muted)}
.qz-track{flex:1;height:4px;border-radius:2px;background:var(--line);overflow:hidden}
.qz-track i{display:block;height:100%;width:0;background:var(--gold);transition:width .5s var(--ease)}
.qz-group{margin:0 0 var(--s6)}
.qz-group>h2{font-size:clamp(1.8rem,2.6vw,2.3rem);margin-bottom:var(--s3)}
.qz-group>h2 span{font:500 var(--t-micro)/1 var(--sans);letter-spacing:.18em;color:var(--gold-ink);display:block;margin-bottom:var(--s2)}
.qz-q{border:0;margin:0;padding:var(--s3) 0;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s2) var(--s4);align-items:center}
.qz-q legend{float:left;padding:0;font-size:1.0625rem;color:var(--ink);line-height:1.5}
.qz-opts{display:inline-flex;background:var(--stone);border-radius:999px;padding:4px;gap:2px}
.qz-opts label{position:relative;cursor:pointer}
.qz-opts input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.qz-opts span{display:block;padding:9px 16px;border-radius:999px;font-size:.875rem;font-weight:500;color:var(--muted);white-space:nowrap;transition:background .25s,color .25s,box-shadow .25s}
.qz-opts input:checked+span{background:var(--navy);color:#fff;box-shadow:0 2px 8px rgba(14,26,51,.18)}
.qz-opts input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.qz-submit{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s4)}
.qz-res{scroll-margin-top:calc(var(--navh) + 24px)}
.qz-res .card-res{background:var(--navy);color:var(--on-dark);border-radius:var(--r);padding:var(--s6);display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:var(--s6);align-items:center}
.qz-res h2{color:#fff;font-size:clamp(2.6rem,5vw,4.2rem)}
.qz-res .rk{font:600 var(--t-micro)/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--s2)}
.qz-res .rt{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--gold);margin:var(--s1) 0 var(--s3)}
.qz-res .rg{color:var(--on-dark);margin:0}
.bars{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.bars li{display:grid;grid-template-columns:110px minmax(0,1fr) 34px;gap:12px;align-items:center;font-size:.8125rem;color:#c3c8d4}
.bars .bt{height:6px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}
.bars .bt i{display:block;height:100%;width:0;border-radius:3px;background:var(--gold);transition:width 1.1s var(--ease)}
.bars li.cur{color:#fff;font-weight:600}
.bars b{font-weight:500;text-align:right;font-variant-numeric:tabular-nums}
.qz-next{margin-top:var(--s5)}
.qz-moves{margin-top:var(--s4)}

/* Checklists + plan previews */
.ck-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s3)}
.ck-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--s4) var(--s3)}
.ck-card .n{font:500 var(--t-micro)/1 var(--sans);letter-spacing:.16em;color:var(--gold-ink)}
.ck-card h3{font-family:var(--serif);font-weight:500;font-size:1.7rem;margin:var(--s1) 0 var(--s2)}
.ck-card ul{list-style:none;margin:0;padding:0}
.ck-card li{position:relative;padding:8px 0 8px 24px;border-top:1px solid var(--line);font-size:.84rem;line-height:1.45;color:var(--text)}
.ck-card li::before{content:"";position:absolute;left:0;top:11px;width:13px;height:13px;border:1.5px solid var(--line-2);border-radius:3px}
.plan-sheet{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:var(--s5);box-shadow:var(--shadow);font-size:var(--t-small)}
.plan-sheet .ps-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:var(--s2);padding:12px 0;border-top:1px solid var(--line);color:var(--muted)}
.plan-sheet .ps-row b{color:var(--ink);font-weight:600}
.plan-sheet .ps-line{height:1px;background:var(--line-2);margin-top:14px}
.plan-sheet .wk{display:grid;grid-template-columns:repeat(13,1fr);gap:4px;margin-top:6px}
.plan-sheet .wk i{aspect-ratio:1;border:1.5px solid var(--line-2);border-radius:3px}

.fr-fine{font-size:.8125rem;color:var(--faint);max-width:70ch}
.stage-free{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:center;justify-content:space-between;margin-top:var(--s6);padding:var(--s4) var(--s4);border:1px solid var(--line);border-radius:var(--r);background:var(--white)}
.stage-free p{margin:0;color:var(--text)}.stage-free strong{color:var(--ink);font-weight:600}
.stage-free .acts{margin:0}

@media(max-width:1060px){
 .fr-hero .wrap,.rm-letter,.rm-body,.fr-gate,.qz-res .card-res,.fr-card.feat{grid-template-columns:1fr;gap:var(--s5)}
 .cover-wrap{justify-content:flex-start}.cover{width:min(70%,280px)}
 .ck-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fr-band .wrap{flex-direction:column;align-items:flex-start}
}
@media(max-width:700px){
 .rm-how,.fr-what{grid-template-columns:1fr;gap:var(--s3)}
 .rm-head{grid-template-columns:1fr;gap:var(--s3)}.rm-ill{width:72px;height:72px}
 .rm-goal{padding-left:var(--s3)}
 .fr-card,.fr-card.feat{grid-column:span 6;padding:var(--s4) var(--s3)}
 .fr-card.feat .cover-wrap{display:none}
 .ck-grid{grid-template-columns:1fr}
 .qz-q{grid-template-columns:1fr}
 .qz-opts{width:100%}.qz-opts label{flex:1}.qz-opts span{text-align:center;padding:10px 6px}
 .qz-res .card-res{padding:var(--s4) var(--s3)}
 .bars li{grid-template-columns:88px minmax(0,1fr) 30px}
 .plan-sheet{padding:var(--s3)}.plan-sheet .ps-row{grid-template-columns:1fr;gap:4px}
 dialog.gate .gate-in{padding:var(--s4) var(--s3)}
 .fr-hero .cover-wrap{display:none}
}
@media (prefers-reduced-motion:reduce){.cover,.js-motion .cover{animation:none;transform:none}}

.fr-card.feat .go{color:var(--gold)}
.sec-dark .form-card a.inline,.form-card a.inline{color:var(--ink)}
.qz-layout{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:var(--s7);align-items:start}
.qz-aside{position:sticky;top:calc(var(--navh) + 96px);background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4)}
.qz-aside h2{font-family:var(--sans);font-size:1rem;font-weight:600;margin-bottom:var(--s2)}
.qz-aside p,.qz-aside li{font-size:var(--t-small);color:var(--muted);margin:0 0 var(--s2)}
.qz-aside ul{list-style:none;padding:0;margin:0 0 var(--s2)}.qz-aside li{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:8px 0;margin:0}.qz-aside li b{color:var(--ink);font-weight:600}
@media(max-width:1060px){.fr-card{grid-column:span 6}.qz-layout{grid-template-columns:1fr;gap:var(--s4)}.qz-aside{position:static;order:-1}}
.lead-form .check[hidden]{display:none!important}
