
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --cream:#f0ece3;
  --cream2:#e8e2d8;
  --cream3:#ddd6c8;
  --ink:#1a1814;
  --ink2:#3a3530;
  --muted:#7a7268;
  --dim:#a89e90;
  --border:#d4ccc0;
  --border-l:#e4ddd4;
  --navy:#1e3448;
  --navy-l:#2c5080;
  --blue:#1e6ab4;
  --blue-l:#3a8fd4;
  --blue-ll:#6ab4f0;
  --purple:#6244a8;
  --purple-l:#8060c8;
  --purple-ll:#a888e8;
  --teal:#1a8a78;
  --teal-l:#24a890;
  --feat-p:#6244a8;
  --feat-b:#1e6ab4;
  --feat-t:#1a8a78;
  --card:#ffffff;
  --card2:#f8f4ee;
  --gains-t:#1a7a50;
  --loses-t:#8a2020;
}
html{font-size:17px;scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:'Cormorant Garamond',Georgia,serif;line-height:1.7;min-height:100vh;display:flex;flex-direction:column}

/* HEADER */
header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 2rem;border-bottom:1px solid var(--border);background:rgba(240,236,227,0.97);position:sticky;top:0;z-index:200;backdrop-filter:blur(6px)}
.brand-name{font-size:12px;letter-spacing:0.22em;color:var(--purple);text-transform:uppercase;font-weight:400;display:block}
.brand-sub{font-size:10px;letter-spacing:0.14em;color:var(--muted);text-transform:uppercase;display:block}
.header-r{font-size:14px;color:var(--muted);font-style:italic}

/* LAYOUT */
.app{display:flex;flex:1;min-height:0}

/* SIDEBAR */
.sidebar{width:272px;flex-shrink:0;background:var(--card2);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:57px;height:calc(100vh - 57px);overflow-y:auto}
.sidebar-title{padding:1.125rem 1.25rem 0.75rem;font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border)}
.axis-indicators{padding:0.875rem 1.25rem;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:5px}
.axis-ind{font-size:13px;color:var(--muted);line-height:1.4}
.axis-ind strong{color:var(--blue);font-weight:400}
.axis-ind span{color:var(--ink)}

/* PESTLE */
.pestle-cat{border-bottom:1px solid var(--border-l)}
.pestle-btn{width:100%;background:none;border:none;padding:0.8rem 1.25rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--ink2);transition:background 0.15s;text-align:left}
.pestle-btn:hover{background:var(--cream2)}
.pestle-btn.open{background:var(--cream2);color:var(--ink)}
.pestle-letter{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--purple);margin-right:8px;min-width:16px}
.pestle-chev{font-size:13px;color:var(--muted);transition:transform 0.2s}
.pestle-chev.open{transform:rotate(180deg)}
.pestle-forces{display:none;flex-direction:column;gap:4px;padding:4px 0.875rem 0.875rem}
.pestle-forces.open{display:flex}

.force-item{border:1px solid var(--border);border-radius:5px;overflow:hidden;background:var(--card)}
.force-item.sel-x{border-color:var(--blue);background:rgba(30,106,180,0.05)}
.force-item.sel-y{border-color:var(--purple);background:rgba(98,68,168,0.05)}
.force-hdr{display:flex;align-items:flex-start;justify-content:space-between;padding:8px 10px;cursor:pointer;gap:6px}
.force-hdr:hover{background:var(--cream2)}
.force-name{font-size:13px;color:var(--ink2);line-height:1.35;flex:1}
.force-item.sel-x .force-name{color:var(--blue)}
.force-item.sel-y .force-name{color:var(--purple)}
.force-icon{font-size:11px;color:var(--dim);flex-shrink:0;transition:transform 0.15s;margin-top:2px}
.force-icon.open{transform:rotate(180deg)}
.force-detail{display:none;padding:0 10px 10px;border-top:1px solid var(--border-l)}
.force-detail.open{display:block}
.force-desc-text{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:8px;padding-top:8px;font-style:italic}
.axis-btns{display:flex;gap:5px}
.abtn{flex:1;border-radius:3px;padding:5px 6px;font-family:'Cormorant Garamond',serif;font-size:12px;cursor:pointer;transition:all 0.15s;text-align:center;line-height:1.2;border:1px solid var(--border)}
.abtn.x{color:var(--blue);background:none}
.abtn.x:hover,.abtn.x.active{background:rgba(30,106,180,0.1);border-color:var(--blue)}
.abtn.y{color:var(--purple);background:none}
.abtn.y:hover,.abtn.y.active{background:rgba(98,68,168,0.1);border-color:var(--purple)}

/* MAIN */
.main{flex:1;overflow-y:auto}

/* HERO */
.hero{max-width:820px;padding:3rem 2.5rem 2rem}
.hero-eyebrow{font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--blue);margin-bottom:0.875rem}
.hero h1{font-size:46px;font-weight:300;line-height:1.1;color:var(--navy);margin-bottom:0.75rem}
.hero h1 em{font-style:italic;color:var(--purple)}
.hero-desc{font-size:17px;color:var(--ink2);font-weight:300;line-height:1.8;max-width:640px}

/* GUIDE */
.guide{padding:0 2.5rem 2.5rem;max-width:980px}
.sec-eyebrow{font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);padding-bottom:0.75rem;border-bottom:1px solid var(--border);margin-bottom:1rem}
.guide-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.guide-box{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:1.125rem}
.guide-step{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--blue);margin-bottom:6px}
.guide-box h3{font-size:15px;font-weight:500;color:var(--navy);margin-bottom:5px;line-height:1.25}
.guide-box p{font-size:13px;color:var(--ink2);font-weight:300;line-height:1.6}

/* LEGEND */
.legend-bar{padding:0 2.5rem 1.5rem;display:flex;align-items:center;gap:2rem;flex-wrap:wrap}
.legend-label{font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted)}
.legend-items{display:flex;gap:1.75rem}
.legend-item{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink2)}
.lpip{width:9px;height:9px;border-radius:50%}
.lp{background:var(--feat-p)}.lb{background:var(--feat-b)}.lt{background:var(--feat-t)}

/* MATRIX */
.matrix-section{padding:0 2.5rem 2rem}
.matrix-outer{display:grid;grid-template-columns:20px 1fr;gap:0}
.x-labels{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:6px;grid-column:2}
.x-label{font-size:12px;color:var(--muted);text-align:center;font-style:italic}
.y-axis-wrap{grid-column:1;grid-row:2;display:flex;align-items:center;justify-content:center}
.y-text{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px;color:var(--muted);font-style:italic;white-space:nowrap}
.matrix-grid{grid-column:2;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* QUADRANT */
.quadrant{background:var(--card);border:1.5px solid var(--border);border-radius:8px;padding:1.5rem 1.5rem 2.25rem;cursor:pointer;transition:all 0.2s;position:relative;min-height:200px}
.quadrant:hover{border-color:var(--purple-l);box-shadow:0 2px 12px rgba(98,68,168,0.08)}
.quadrant.active{border-color:var(--purple);box-shadow:0 0 0 3px rgba(98,68,168,0.08)}
.q-tag{font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.q-title{font-size:21px;font-weight:500;color:var(--navy);margin-bottom:8px;line-height:1.2}
.q-lead{font-size:14px;color:var(--ink2);font-weight:300;line-height:1.7;margin-bottom:12px}
.q-pills{display:flex;gap:6px;flex-wrap:wrap}
.pill{font-size:10px;padding:3px 10px;border-radius:20px;letter-spacing:0.03em}
.pp{background:rgba(98,68,168,0.08);color:var(--feat-p);border:1px solid rgba(98,68,168,0.2)}
.pb{background:rgba(30,106,180,0.08);color:var(--feat-b);border:1px solid rgba(30,106,180,0.2)}
.pt{background:rgba(26,138,120,0.08);color:var(--feat-t);border:1px solid rgba(26,138,120,0.2)}
.q-cta{position:absolute;bottom:12px;right:14px;font-size:12px;color:var(--purple);letter-spacing:0.06em}

/* DETAIL PANEL */
.detail-wrap{padding:0 2.5rem 3rem}
.detail-panel{display:none;background:var(--card);border:1.5px solid var(--border);border-radius:8px;overflow:hidden}
.detail-panel.visible{display:block}
.panel-head{padding:1.5rem 2rem;background:var(--card2);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.panel-title{font-size:30px;font-weight:400;color:var(--navy);line-height:1.15}
.panel-close{background:none;border:1px solid var(--border);border-radius:4px;color:var(--muted);cursor:pointer;font-size:13px;font-family:'Cormorant Garamond',serif;padding:5px 14px;letter-spacing:0.06em;transition:all 0.15s}
.panel-close:hover{border-color:var(--navy);color:var(--navy)}
.panel-context{padding:1.25rem 2rem;border-bottom:1px solid var(--border);font-size:16px;color:var(--ink2);font-weight:300;line-height:1.8;font-style:italic}

/* TABS */
.sec-tabs{display:flex;border-bottom:1px solid var(--border);overflow-x:auto;background:var(--card2)}
.sec-tab{background:none;border:none;padding:0.875rem 1.5rem;font-family:'Cormorant Garamond',serif;font-size:15px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:all 0.15s;letter-spacing:0.02em}
.sec-tab:hover{color:var(--ink)}
.sec-tab.active{color:var(--navy);border-bottom-color:var(--purple)}
.sec-body{padding:1.75rem 2rem}

/* FEATURES */
.feat{margin:1.25rem 0;padding-bottom:1.25rem;border-bottom:1px solid var(--border-l)}
.feat:last-child{border-bottom:none;padding-bottom:0}
.feat-label{display:block;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:0.1em;margin-bottom:6px}
.fl-p{color:var(--feat-p)}.fl-b{color:var(--feat-b)}.fl-t{color:var(--feat-t)}
.feat-text{font-size:16px;color:var(--ink2);line-height:1.8;font-weight:300}

/* SERVICE accordion */
.svc-list{display:flex;flex-direction:column;gap:7px}
.svc-item{background:var(--card2);border:1px solid var(--border);border-radius:6px;overflow:hidden}
.svc-toggle{width:100%;background:none;border:none;padding:0.875rem 1.125rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background 0.15s}
.svc-toggle:hover{background:var(--cream2)}
.svc-name{font-size:16px;font-weight:500;color:var(--navy);font-family:'Cormorant Garamond',serif;text-align:left}
.svc-chev{font-size:14px;color:var(--blue);transition:transform 0.2s}
.svc-chev.open{transform:rotate(180deg)}
.svc-body{display:none;padding:0 1.125rem 1.125rem;border-top:1px solid var(--border-l)}
.svc-body.open{display:block}
.svc-desc{font-size:15px;color:var(--ink2);line-height:1.8;font-weight:300;padding-top:0.875rem}

/* ACTORS */
.actors-g{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.actor{background:var(--card2);border-radius:6px;padding:1rem 1.125rem;border:1px solid var(--border)}
.actor-type{font-size:9px;text-transform:uppercase;letter-spacing:0.1em;margin-bottom:5px;display:block}
.at-g{color:var(--gains-t)}.at-l{color:var(--loses-t)}
.actor-who{font-size:16px;font-weight:500;color:var(--navy);margin-bottom:4px}
.actor-why{font-size:14px;color:var(--ink2);line-height:1.65;font-weight:300}

/* POLICY ACTIONS - clickable */
.policy-intro{font-size:15px;color:var(--muted);font-style:italic;margin-bottom:1rem;font-weight:300}
.policy-list{display:flex;flex-direction:column;gap:8px}
.policy-action{background:var(--card2);border:1.5px solid var(--border);border-radius:6px;overflow:hidden;transition:border-color 0.2s}
.policy-action.selected{border-color:var(--purple)}
.policy-action-hdr{display:flex;align-items:flex-start;gap:12px;padding:1rem 1.125rem;cursor:pointer;transition:background 0.15s}
.policy-action-hdr:hover{background:var(--cream2)}
.policy-num{font-size:13px;color:var(--blue);font-weight:500;min-width:20px;flex-shrink:0;padding-top:2px}
.policy-text{font-size:16px;color:var(--ink2);line-height:1.65;font-weight:300;flex:1}
.policy-action.selected .policy-text{color:var(--navy)}
.policy-chev{font-size:14px;color:var(--purple);transition:transform 0.2s;flex-shrink:0;margin-top:4px}
.policy-chev.open{transform:rotate(180deg)}
.policy-consequence{display:none;border-top:1px solid var(--border-l);background:var(--cream2)}
.policy-consequence.open{display:block}

/* CONSEQUENCE CONTENT */
.cons-loading{padding:1.5rem 1.5rem;font-size:15px;color:var(--muted);font-style:italic}
.cons-loading::after{content:'';animation:dots 1.4s infinite}
@keyframes dots{0%{content:''}33%{content:'.'}66%{content:'..'}100%{content:'...'}}
.cons-inner{padding:1.5rem}
.cons-horizon{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-l)}
.cons-horizon:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.cons-year{font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--blue);margin-bottom:6px}
.cons-headline{font-size:20px;font-weight:500;color:var(--navy);margin-bottom:8px;line-height:1.25}
.cons-narrative{font-size:15px;color:var(--ink2);font-weight:300;line-height:1.8;margin-bottom:1rem}
.cons-features{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:1rem}
.cons-feat{background:var(--card);border-radius:5px;padding:0.75rem 0.875rem;border:1px solid var(--border-l)}
.cons-feat-label{font-size:10px;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:4px}
.cons-feat-label.p{color:var(--feat-p)}.cons-feat-label.b{color:var(--feat-b)}.cons-feat-label.t{color:var(--feat-t)}
.cons-feat-text{font-size:13px;color:var(--ink2);font-weight:300;line-height:1.6}
.cons-q{padding:0.875rem 1rem;background:var(--card);border-left:3px solid var(--purple);border-radius:0 5px 5px 0;border:1px solid var(--border-l);border-left:3px solid var(--purple)}
.cons-q-label{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--purple);margin-bottom:4px}
.cons-q-text{font-size:15px;color:var(--ink2);font-weight:300;font-style:italic;line-height:1.7}

/* NEXT MOVES */
.next-moves-wrap{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border-l)}
.next-moves-label{font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);margin-bottom:0.75rem}
.next-moves-list{display:flex;flex-direction:column;gap:6px}
.next-move-btn{background:var(--card);border:1px solid var(--border);border-radius:5px;padding:0.75rem 1rem;cursor:pointer;font-family:'Cormorant Garamond',serif;font-size:15px;color:var(--ink2);text-align:left;line-height:1.5;transition:all 0.15s;display:flex;align-items:flex-start;gap:10px}
.next-move-btn:hover{border-color:var(--blue);color:var(--navy);background:var(--cream2)}
.next-move-btn.selected{border-color:var(--blue);background:rgba(30,106,180,0.05);color:var(--navy)}
.next-move-arrow{color:var(--blue);flex-shrink:0;font-size:13px;margin-top:2px}
.next-consequence{margin-top:1rem;background:var(--card);border:1px solid var(--border);border-radius:6px;overflow:hidden}
.next-consequence-head{padding:1rem 1.25rem;background:var(--navy);color:#fff}
.next-cons-label{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.55);margin-bottom:4px}
.next-cons-headline{font-size:18px;font-weight:400;color:#fff;line-height:1.25}
.next-consequence-body{padding:1.25rem}
.next-cons-text{font-size:15px;color:var(--ink2);font-weight:300;line-height:1.8}

/* QUESTIONS */
.q-list{display:flex;flex-direction:column;gap:8px}
.q-item{padding:1rem 1.25rem;background:var(--card2);border-left:3px solid var(--purple);border-radius:0 6px 6px 0}
.q-text{font-size:16px;color:var(--ink2);font-weight:300;font-style:italic;line-height:1.75}

footer{border-top:1px solid var(--border);padding:1.25rem 2.5rem;display:flex;justify-content:space-between;align-items:center;background:var(--card2)}
.footer-l{font-size:11px;letter-spacing:0.16em;color:var(--muted);text-transform:uppercase}
.footer-r{font-size:13px;color:var(--dim);font-style:italic}


/* ── V5 ADDITIONS ── */
.steps-row{display:flex;align-items:flex-start;gap:0;padding:0 2.5rem 2rem;max-width:980px}
.step-r-node{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0}
.step-r-dot{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--muted);flex-shrink:0;transition:all 0.3s;background:var(--card);font-weight:400}
.step-r-dot.active{background:var(--purple);border-color:var(--purple);color:#fff}
.step-r-dot.done{background:var(--navy);border-color:var(--navy);color:#fff}
.step-r-text{flex:1;min-width:0;padding-top:3px}
.step-r-title{display:block;font-size:15px;font-weight:500;color:var(--navy);margin-bottom:3px;line-height:1.25}
.step-r-desc{display:block;font-size:13px;color:var(--muted);font-weight:300;line-height:1.55}
.step-r-line{width:20px;height:1px;background:var(--border);margin:15px 6px 0;flex-shrink:0}
.step-r-line.done{background:var(--navy)}
.feat-spectrum{padding:0 2.5rem 2.5rem;max-width:980px}
.feat-spectrum-intro{font-size:15px;color:var(--ink2);font-weight:300;line-height:1.75;margin-bottom:1.25rem;max-width:720px}
.feat-spectrum-col{display:flex;flex-direction:column;gap:10px}
.fsc{background:var(--card);border:1px solid var(--border-l);border-radius:8px;padding:1.25rem 1.5rem;box-shadow:0 1px 4px rgba(26,20,14,0.07)}
.fsc-top{display:flex;align-items:baseline;gap:1rem;margin-bottom:10px}
.fsc-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:0.12em;white-space:nowrap}
.fsc-label.p{color:var(--feat-p)}.fsc-label.b{color:var(--feat-b)}.fsc-label.t{color:var(--feat-t)}
.fsc-tagline{font-size:14px;color:var(--ink3);font-style:italic;font-weight:300}
.fsc-bar{display:flex;height:7px;border-radius:4px;overflow:hidden;margin-bottom:12px}
.fsc-seg{flex:1}
.fsp1{background:rgba(98,68,168,0.12)}.fsp2{background:rgba(98,68,168,0.36)}.fsp3{background:rgba(98,68,168,0.64)}.fsp4{background:rgba(98,68,168,0.92)}
.fsb1{background:rgba(30,106,180,0.12)}.fsb2{background:rgba(30,106,180,0.36)}.fsb3{background:rgba(30,106,180,0.64)}.fsb4{background:rgba(30,106,180,0.92)}
.fst1{background:rgba(26,138,120,0.12)}.fst2{background:rgba(26,138,120,0.36)}.fst3{background:rgba(26,138,120,0.64)}.fst4{background:rgba(26,138,120,0.92)}
.fsc-ends{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fsc-end{background:var(--card2);border:1px solid var(--border-l);border-radius:6px;padding:0.875rem 1rem}
.fsc-end-dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-bottom:6px}
.fsc-end strong{display:block;font-size:15px;font-weight:500;color:var(--navy);margin-bottom:4px;line-height:1.2}
.fsc-end p{font-size:14px;color:var(--ink2);font-weight:300;line-height:1.65}
.pill{font-size:12px;padding:4px 11px;border-radius:20px;letter-spacing:0.02em;display:inline-flex;align-items:center;gap:5px}
.pdots{display:flex;gap:2px;align-items:center;flex-shrink:0}
.pdot{width:6px;height:6px;border-radius:50%;display:inline-block}
.feat-indicator{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.fi-dots{display:flex;gap:3px}
.fi-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.actor.gains-card{background:rgba(26,122,80,0.04);border-color:rgba(26,122,80,0.2)}
.actor.loses-card{background:rgba(138,32,32,0.04);border-color:rgba(138,32,32,0.2)}
.actor-detail{font-size:14px;color:var(--ink3);line-height:1.65;font-weight:300;margin-top:7px;padding-top:7px;border-top:1px solid var(--border-l);font-style:italic}

/* login */
.login-overlay{position:fixed;inset:0;background:var(--cream);display:flex;align-items:center;justify-content:center;z-index:500}
.login-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:2rem 2.25rem;max-width:340px;width:100%;text-align:center}
.login-card h2{font-size:22px;color:var(--navy);font-weight:400;margin-bottom:0.5rem}
.login-card p{font-size:14px;color:var(--muted);margin-bottom:1.25rem}
.login-card input{width:100%;padding:0.6rem 0.75rem;border:1px solid var(--border);border-radius:5px;font-family:inherit;font-size:15px;margin-bottom:0.75rem;background:var(--card2)}
.login-card button{width:100%;padding:0.6rem;border:1px solid var(--purple);background:var(--purple);color:#fff;border-radius:5px;font-family:inherit;font-size:14px;cursor:pointer;letter-spacing:0.04em}
.login-err{color:var(--loses-t);font-size:13px;min-height:18px;margin-bottom:0.5rem}
/* driver editing */
.force-edit{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.force-edit input{width:100%;padding:5px 7px;border:1px solid var(--border);border-radius:4px;font-family:inherit;font-size:12px;background:var(--card2)}
.force-edit-row{display:flex;gap:6px}
.force-edit-row button{flex:1;border-radius:4px;padding:5px;font-family:inherit;font-size:12px;cursor:pointer;border:1px solid var(--border);background:var(--card)}
.force-edit-row button.primary{border-color:var(--purple);color:var(--purple)}
.force-edit-row button.danger{border-color:var(--loses-t);color:var(--loses-t)}
.force-tools{display:flex;gap:6px;margin-top:6px}
.force-tools button{flex:1;background:none;border:1px solid var(--border);border-radius:4px;font-family:inherit;font-size:11px;color:var(--muted);cursor:pointer;padding:4px}
.add-force-btn{width:calc(100% - 1.75rem);margin:0 0.875rem 0.875rem;background:none;border:1px dashed var(--border);border-radius:5px;color:var(--muted);font-family:inherit;font-size:12px;cursor:pointer;padding:6px}
/* notes */
.notes-add{display:flex;flex-direction:column;gap:8px;margin-bottom:1.25rem}
.notes-add textarea{width:100%;min-height:64px;padding:0.6rem 0.75rem;border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:15px;background:var(--card2);resize:vertical}
.notes-add button{align-self:flex-start;border:1px solid var(--purple);background:var(--purple);color:#fff;border-radius:5px;font-family:inherit;font-size:13px;cursor:pointer;padding:6px 16px;letter-spacing:0.04em}
.note-item{background:var(--card2);border:1px solid var(--border);border-left:3px solid var(--purple);border-radius:0 6px 6px 0;padding:0.875rem 1rem;margin-bottom:8px}
.note-meta{font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;display:flex;justify-content:space-between}
.note-body{font-size:15px;color:var(--ink2);line-height:1.7;font-weight:300;white-space:pre-wrap}
.note-actions button{background:none;border:none;color:var(--muted);font-family:inherit;font-size:11px;cursor:pointer;margin-left:8px}
.note-actions button:hover{color:var(--navy)}
.regen-link{background:none;border:none;color:var(--blue);font-family:inherit;font-size:12px;cursor:pointer;letter-spacing:0.04em;padding:0}
.regen-link:hover{text-decoration:underline}
.panel-actions{display:flex;gap:1rem;align-items:center}

/* ── APP SHELL: top nav & views ── */
.top-nav{display:flex;gap:4px}
.nav-link{background:none;border:none;font-family:'Cormorant Garamond',serif;font-size:15px;color:var(--muted);cursor:pointer;padding:6px 14px;border-radius:4px;letter-spacing:0.04em;transition:all 0.15s;border-bottom:2px solid transparent}
.nav-link:hover{color:var(--navy);background:var(--cream2)}
.nav-link.active{color:var(--navy);border-bottom-color:var(--purple)}
body:not(.view-explorer) .sidebar{display:none}
.view{padding-bottom:1rem}

/* ── LANDING ── */
.hero-actions{display:flex;gap:12px;margin-top:1.5rem}
.cta-btn{border:1px solid var(--purple);background:var(--purple);color:#fff;border-radius:5px;font-family:'Cormorant Garamond',serif;font-size:15px;cursor:pointer;padding:9px 22px;letter-spacing:0.04em;transition:all 0.15s}
.cta-btn:hover{background:var(--purple-l);border-color:var(--purple-l)}
.cta-btn.ghost{background:none;color:var(--purple)}
.cta-btn.ghost:hover{background:rgba(98,68,168,0.07)}
.hero-compact{padding:2.25rem 2.5rem 1.5rem}
.hero-h-sm{font-size:34px !important}
.essay{padding:0.5rem 2.5rem 2.5rem;max-width:980px}
.essay-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem}
.essay-cols p{font-size:16px;color:var(--ink2);font-weight:300;line-height:1.85}
.essay-cols p::first-letter{color:var(--purple)}
.how{padding:0 0 2rem}
.how .sec-eyebrow{margin:0 2.5rem 1.25rem;max-width:915px}

/* functions x actors grid */
.fn-section{padding:0 2.5rem 2.75rem;max-width:1080px}
.fn-intro{font-size:15px;color:var(--ink2);font-weight:300;line-height:1.75;margin-bottom:1rem;max-width:720px}
.fn-legend{display:flex;gap:1.5rem;margin-bottom:0.875rem}
.fn-leg{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}
.fn-grid{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden}
.fn-row{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(6,1fr);align-items:center;border-bottom:1px solid var(--border-l);cursor:pointer;transition:background 0.15s}
.fn-row:hover{background:var(--cream2)}
.fn-row.fn-head{cursor:default;background:var(--card2)}
.fn-row.fn-head:hover{background:var(--card2)}
.fn-row.open{background:var(--cream2)}
.fn-actor{font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);text-align:center;padding:0.75rem 6px;line-height:1.4}
.fn-name-col{padding:0.875rem 1.125rem;display:flex;flex-direction:column;gap:2px}
.fn-name{font-size:17px;font-weight:500;color:var(--navy);line-height:1.2}
.fn-desc{font-size:12px;color:var(--muted);font-weight:300;line-height:1.5}
.fn-cell{text-align:center;padding:0.5rem 0}
.fn-dot{display:inline-block;width:13px;height:13px;border-radius:50%}
.fn-primary{background:var(--navy)}
.fn-shared{background:rgba(30,52,72,0.3)}
.fn-contested{background:rgba(98,68,168,0.08);border:2px solid var(--purple)}
.fn-agi{display:none;padding:0 1.125rem;font-size:14px;color:var(--ink2);font-weight:300;line-height:1.7;border-bottom:1px solid var(--border-l);background:var(--cream2)}
.fn-agi.open{display:block;padding:0.875rem 1.125rem 1.125rem}
.fn-agi-label{display:block;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--purple);margin-bottom:4px}

/* ── COMPARE ── */
.compare-section{padding:0 2.5rem 3rem}
.compare-empty{background:var(--card);border:1px dashed var(--border);border-radius:8px;padding:2rem;max-width:560px;display:flex;flex-direction:column;gap:1rem;align-items:flex-start}
.compare-empty p{font-size:16px;color:var(--ink2);font-weight:300;line-height:1.75}
.cmp-board{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow-x:auto}
.cmp-row{display:grid;grid-template-columns:150px repeat(4,minmax(180px,1fr));border-bottom:1px solid var(--border-l)}
.cmp-row:last-child{border-bottom:none}
.cmp-row.cmp-head{background:var(--card2)}
.cmp-cell{padding:0.875rem 1rem;border-left:1px solid var(--border-l);font-size:14px;color:var(--ink2);font-weight:300;line-height:1.6}
.cmp-cell:first-child{border-left:none}
.cmp-head-cell{display:flex;flex-direction:column;gap:3px}
.cmp-tag{font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted)}
.cmp-title{font-size:17px;font-weight:500;color:var(--navy);line-height:1.2}
.cmp-label{font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center}
.cmp-label.pp{color:var(--feat-p)}.cmp-label.pb{color:var(--feat-b)}.cmp-label.pt{color:var(--feat-t)}
.cmp-max{background:rgba(98,68,168,0.05)}
.cmp-essence{font-style:italic}
.cmp-signpost::before{content:'◇ ';color:var(--purple)}
.cmp-span{grid-column:2/6}
.div-list{display:flex;flex-direction:column;gap:12px;margin-top:0}
.div-card{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden}
.div-head{padding:0.875rem 1.25rem;background:var(--card2);border-bottom:1px solid var(--border-l);display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}
.div-name{font-size:18px;font-weight:500;color:var(--navy)}
.div-q{font-size:14px;color:var(--muted);font-style:italic;font-weight:300}
.div-worlds{display:grid;grid-template-columns:repeat(4,1fr)}
.div-world{padding:1rem 1.125rem;border-left:1px solid var(--border-l)}
.div-world:first-child{border-left:none}
.div-world-title{display:block;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--purple);margin-bottom:5px}
.div-world p{font-size:14px;color:var(--ink2);font-weight:300;line-height:1.65}
@media (max-width:900px){.div-worlds{grid-template-columns:1fr 1fr}.essay-cols{grid-template-columns:1fr}}
