/* =========================================================
   EQUICONSCISM® — equiconscism.org
   Visual identity of the LP3 / Octocracy / SALTER / D. Fiorucci family
   Palette: black, white, greys, LP3 red (fine outlines)
   ========================================================= */
:root{
  --black:#0a0a0a; --ink:#111111; --grey-900:#1a1a1a; --grey-700:#3a3a3a; --grey-500:#6f6f6f;
  --grey-300:#cccccc; --grey-200:#e6e6e6; --grey-100:#f4f4f4; --white:#ffffff;
  --red:#e30613; --red-dark:#b40410; --sky:#2f7fd8; --gold:#e8b44a;
  --outline:1.5px solid var(--ink);
  --sans:'Helvetica Neue','HelveticaNeue',Helvetica,Arial,sans-serif;
  --serif:Georgia,'Times New Roman',serif;
  --maxw:1200px; --radius:2px;
  --shadow-soft:0 6px 22px rgba(0,0,0,.08); --shadow-med:0 10px 36px rgba(0,0,0,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--white);line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:17px}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--red)}
p a:not(.btn), li a:not(.btn), .prose a:not(.btn){border-bottom:1px solid var(--grey-300)}
p a:not(.btn):hover, li a:not(.btn):hover, .prose a:not(.btn):hover{border-bottom-color:var(--red)}
h1,h2,h3,h4{font-family:var(--sans);font-weight:700;letter-spacing:-.02em;line-height:1.12;color:var(--ink);margin:0 0 .6em}
h1{font-size:clamp(2.3rem,5vw,4.2rem);letter-spacing:-.03em}
h2{font-size:clamp(1.7rem,3.4vw,2.6rem);letter-spacing:-.025em}
h3{font-size:1.32rem;letter-spacing:-.015em}
p{margin:0 0 1em}
.container{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}
.narrow{max-width:820px;margin:0 auto}
.lead{font-size:1.18rem;color:var(--grey-700)}
.muted{color:var(--grey-500)}
.small{font-size:.88rem}
.red{color:var(--red)}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.5rem 1rem;z-index:100}
.skip:focus{left:1rem}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.96);backdrop-filter:saturate(160%) blur(8px);border-bottom:1px solid var(--grey-200)}
.nav{display:flex;align-items:center;gap:1.4rem;padding:.8rem 1.5rem;max-width:var(--maxw);margin:0 auto;position:relative}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.12rem;letter-spacing:.03em;white-space:nowrap}
.brand svg,.brand img{width:40px;height:40px;flex:none}
.brand sup{font-size:.55em;color:var(--red)}
.nav-links{display:flex;gap:1.15rem;margin-left:auto;font-size:.93rem;align-items:center}
.nav-links a{padding:.35rem 0;border-bottom:1.5px solid transparent;transition:color .2s,border-color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--red);border-bottom-color:var(--red)}
.nav-links .btn-sm{border:var(--outline);padding:.38rem .8rem;background:var(--red);color:#fff;border-radius:var(--radius)}
.nav-links .btn-sm:hover{background:var(--red-dark);color:#fff}
.lang-switcher{display:flex;border:var(--outline);border-radius:var(--radius);overflow:hidden;margin-left:.4rem}
.lang-switcher a{padding:.32rem .6rem;font-size:.76rem;font-weight:700;border-left:var(--outline)}
.lang-switcher a:first-child{border-left:0}
.lang-switcher a.active{background:var(--ink);color:#fff}
.mobile-toggle{display:none;background:none;border:var(--outline);padding:.35rem .6rem;cursor:pointer;border-radius:var(--radius);font-size:1.1rem;margin-left:auto}
@media (max-width:1060px){
  .mobile-toggle{display:inline-flex}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--grey-200);padding:.5rem 1.5rem 1rem;box-shadow:var(--shadow-soft)}
  .nav-links.open{display:flex}
  .nav-links a{padding:.7rem 0;border-bottom:1px solid var(--grey-100)}
  .nav-links .btn-sm{margin-top:.6rem;text-align:center}
  .lang-switcher{margin:.7rem 0 0;align-self:flex-start}
}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.45rem;font-weight:600;font-size:.95rem;border-radius:var(--radius);cursor:pointer;font-family:var(--sans);transition:all .25s ease;border:var(--outline);line-height:1.2}
.btn-primary{background:var(--red);color:#fff}
.btn-primary:hover{background:var(--red-dark);color:#fff;transform:translateY(-1px)}
.btn-ghost{background:#fff;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--red);color:#fff}
.btn-row{display:flex;flex-wrap:wrap;gap:.8rem}
.btn small{font-weight:400;opacity:.8}

/* ---------- Sections ---------- */
section{padding:5rem 0}
section.tight{padding:3.2rem 0}
.bg-grey{background:var(--grey-100)}
.bg-ink{background:var(--ink);color:#fff}
.bg-ink h2,.bg-ink h3{color:#fff}
.bg-ink .muted,.bg-ink .lead{color:#c9c9c9}
.eyebrow{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin-bottom:.8rem}
.section-head{max-width:780px;margin-bottom:2.6rem}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.rule{width:48px;height:3px;background:var(--red);margin:1rem 0 1.4rem}
.center .rule{margin-left:auto;margin-right:auto}

/* ---------- Hero ---------- */
.hero{position:relative;padding:4.2rem 0 4rem;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(900px 600px at 80% 0%,rgba(47,127,216,.10),transparent 60%),radial-gradient(700px 500px at 0% 100%,rgba(227,6,19,.05),transparent 60%),linear-gradient(180deg,#fff 0%,var(--grey-100) 100%)}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:3rem;align-items:center}
.hero h1{font-size:clamp(2.6rem,6vw,5rem);letter-spacing:.02em;margin-bottom:.3rem}
.hero h1 sup{font-size:.35em;color:var(--red);vertical-align:super}
.hero .subtitle{font-size:clamp(1.1rem,1.9vw,1.45rem);font-weight:500;color:var(--grey-700);margin-bottom:1.4rem;letter-spacing:-.01em}
.hero .motto{font-family:var(--serif);font-style:italic;font-size:1.2rem;border-left:3px solid var(--red);padding-left:1rem;margin:0 0 1.8rem;color:var(--ink)}
.hero .gift{font-size:.9rem;color:var(--grey-500);margin-top:1.4rem}
.hero-visual img{filter:drop-shadow(0 18px 30px rgba(0,0,0,.08))}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr}.hero{padding-top:2.5rem}}

/* ---------- Cards / grids ---------- */
.grid{display:grid;gap:1.4rem}
.g2{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(3,1fr)} .g4{grid-template-columns:repeat(4,1fr)} .g5{grid-template-columns:repeat(5,1fr)}
@media (max-width:1000px){.g4,.g5{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.g2,.g3,.g4,.g5{grid-template-columns:1fr}}
.card{background:#fff;border:var(--outline);border-radius:var(--radius);padding:1.6rem;position:relative;transition:box-shadow .25s,transform .25s}
a.card:hover{box-shadow:var(--shadow-med);transform:translateY(-2px);color:var(--ink)}
.card .num{font-size:2.4rem;font-weight:700;color:var(--red);line-height:1;margin-bottom:.6rem}
.card h3{margin-bottom:.45rem}
.card p:last-child{margin-bottom:0}
.card.flat{border:1px solid var(--grey-200)}
.card .more{display:inline-block;margin-top:.8rem;font-weight:600;color:var(--red);font-size:.92rem}
.bg-ink .card{background:var(--grey-900);border-color:#444;color:#eee}
.bg-ink .card h3{color:#fff}

/* definition */
.definition{font-family:var(--serif);font-size:clamp(1.25rem,2.2vw,1.65rem);line-height:1.5;border-left:4px solid var(--red);padding:.4rem 0 .4rem 1.6rem;margin:0}
.definition strong{font-family:var(--sans)}
.cite-src{font-size:.85rem;color:var(--grey-500);margin-top:1rem}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
.split.r{grid-template-columns:1fr 1.1fr}
@media (max-width:900px){.split,.split.r{grid-template-columns:1fr;gap:2rem}}

/* emblem legend */
.legend{list-style:none;padding:0;margin:0}
.legend li{display:grid;grid-template-columns:120px 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--grey-200)}
.legend li b{font-size:.95rem}
@media (max-width:520px){.legend li{grid-template-columns:1fr;gap:.2rem}}

/* dimensions */
.dim{border-top:4px solid var(--ink)}
.dim:nth-child(1){border-top-color:var(--gold)} .dim:nth-child(2){border-top-color:var(--red)} .dim:nth-child(3){border-top-color:#2f9e5b}

/* questions grid */
.qcard{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.2rem 1rem}
.qcard img{height:110px;width:auto;object-fit:contain;margin:0 auto .8rem}
.qcard .qn{font-size:.78rem;font-weight:700;letter-spacing:.14em;color:var(--red)}
.qcard h3{font-size:1.02rem;margin:.25rem 0 0}
.qfull{display:grid;grid-template-columns:200px 1fr;gap:2.2rem;padding:2.4rem 0;border-bottom:1px solid var(--grey-200);align-items:start;scroll-margin-top:90px}
.qfull img{width:180px;max-height:220px;object-fit:contain}
.qfull .qn{font-weight:700;color:var(--red);letter-spacing:.12em;font-size:.82rem}
.qfull blockquote{font-family:var(--serif);font-size:1.32rem;line-height:1.45;margin:.3rem 0 1rem;border:0;padding:0}
@media (max-width:700px){.qfull{grid-template-columns:1fr}.qfull img{width:130px}}

/* cycle */
.cycle{display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:c;border:var(--outline);border-radius:var(--radius);overflow:hidden}
.cycle div{padding:1.4rem 1.1rem;border-left:var(--outline);position:relative;background:#fff}
.cycle div:first-child{border-left:0}
.cycle b{display:block;font-size:1.08rem;margin-bottom:.35rem}
.cycle b::before{counter-increment:c;content:counter(c);display:inline-flex;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--red);color:#fff;font-size:.85rem;align-items:center;justify-content:center;margin-right:.5rem}
.cycle p{font-size:.92rem;margin:0;color:var(--grey-700)}
@media (max-width:900px){.cycle{grid-template-columns:1fr}.cycle div{border-left:0;border-top:var(--outline)}.cycle div:first-child{border-top:0}}

/* lists */
.checklist{list-style:none;padding:0;margin:0}
.checklist li{padding:.55rem 0 .55rem 2rem;position:relative;border-bottom:1px solid var(--grey-200)}
.checklist li::before{content:"";position:absolute;left:0;top:1.05rem;width:12px;height:12px;border:2px solid var(--red);border-radius:50%}
ol.roman{list-style:none;padding:0;margin:0;counter-reset:r}
ol.roman li{padding:1rem 0 1rem 3.4rem;position:relative;border-bottom:1px solid var(--grey-200);font-size:1.06rem}
ol.roman li::before{position:absolute;left:0;top:.95rem;font-weight:700;color:var(--red);width:2.6rem;text-align:right;font-size:1rem}
ol.roman li:nth-child(1)::before{content:"I."}ol.roman li:nth-child(2)::before{content:"II."}ol.roman li:nth-child(3)::before{content:"III."}ol.roman li:nth-child(4)::before{content:"IV."}ol.roman li:nth-child(5)::before{content:"V."}ol.roman li:nth-child(6)::before{content:"VI."}ol.roman li:nth-child(7)::before{content:"VII."}ol.roman li:nth-child(8)::before{content:"VIII."}ol.roman li:nth-child(9)::before{content:"IX."}ol.roman li:nth-child(10)::before{content:"X."}

/* table */
.table-wrap{overflow-x:auto;border:var(--outline);border-radius:var(--radius)}
table{border-collapse:collapse;width:100%;font-size:.95rem;background:#fff}
th,td{text-align:left;padding:.75rem .9rem;border-bottom:1px solid var(--grey-200);vertical-align:top}
th{background:var(--ink);color:#fff;font-weight:600}
tr:last-child td{border-bottom:0}

/* page header */
.page-head{padding:3.6rem 0 2.6rem;background:linear-gradient(180deg,var(--grey-100),#fff);border-bottom:1px solid var(--grey-200)}
.page-head h1{font-size:clamp(2.1rem,4.4vw,3.4rem)}
.breadcrumb{font-size:.82rem;color:var(--grey-500);margin-bottom:1rem}
.breadcrumb a{color:var(--grey-500)}

/* prose */
.prose{max-width:780px}
.prose h2{margin-top:2.4rem}
.prose h3{margin-top:1.8rem}
.prose ul,.prose ol{padding-left:1.3rem}
.prose li{margin-bottom:.4rem}
.box{border:var(--outline);border-radius:var(--radius);padding:1.4rem 1.6rem;margin:1.8rem 0;background:#fff}
.box.red{border-color:var(--red);border-left-width:5px}
.box h3{margin-top:0}
.quote{font-family:var(--serif);font-style:italic;font-size:1.3rem;line-height:1.5;margin:0}
.quote-by{font-size:.88rem;color:var(--grey-500);margin-top:.6rem;font-style:normal;font-family:var(--sans)}

/* downloads */
.dl{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}
.dl .card{display:flex;flex-direction:column;gap:.8rem}
.dl .meta{font-size:.86rem;color:var(--grey-500)}
@media (max-width:760px){.dl{grid-template-columns:1fr}}
.cite-box{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;background:var(--grey-100);border:1px solid var(--grey-200);padding:1rem;white-space:pre-wrap;word-break:break-word;border-radius:var(--radius)}

/* author */
.author-photo{border-radius:var(--radius);box-shadow:var(--shadow-soft)}
.credit{font-size:.75rem;color:var(--grey-500);margin-top:.4rem}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:2rem 0}
.facts div{border-top:2px solid var(--ink);padding-top:.6rem}
.facts b{display:block;font-size:1.8rem;line-height:1.1}
@media (max-width:700px){.facts{grid-template-columns:repeat(2,1fr)}}

/* scorecard tool */
.tool{display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:start}
@media (max-width:960px){.tool{grid-template-columns:1fr}}
.sq{padding:1.1rem 0;border-bottom:1px solid var(--grey-200)}
.sq label{display:block;font-weight:600;margin-bottom:.15rem}
.sq .qtext{font-size:.9rem;color:var(--grey-700);margin-bottom:.6rem}
.scale{display:flex;gap:.4rem;flex-wrap:wrap}
.scale button{width:42px;height:42px;border:var(--outline);background:#fff;border-radius:var(--radius);font-weight:700;cursor:pointer;font-family:var(--sans);font-size:1rem}
.scale button:hover{background:var(--grey-100)}
.scale button[aria-pressed="true"]{background:var(--ink);color:#fff}
.scale-legend{display:flex;justify-content:space-between;font-size:.75rem;color:var(--grey-500);max-width:240px;margin-top:.3rem}
.result{position:sticky;top:90px;border:var(--outline);border-radius:var(--radius);padding:1.5rem;background:#fff}
.result .avg{font-size:3rem;font-weight:700;line-height:1}
.zone{display:inline-block;padding:.25rem .7rem;border-radius:var(--radius);font-weight:700;font-size:.85rem;color:#fff;background:var(--grey-500)}
.zone.z1{background:#b40410}.zone.z2{background:#d9821f}.zone.z3{background:#2f7fd8}.zone.z4{background:#2f9e5b}
#radar{width:100%;max-width:380px;margin:1rem auto;display:block}
.tips li{margin-bottom:.5rem}

/* share + ai */
.share{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.share a,.share button{display:inline-flex;align-items:center;gap:.4rem;border:var(--outline);border-radius:var(--radius);padding:.45rem .8rem;font-size:.85rem;font-weight:600;background:#fff;cursor:pointer;font-family:var(--sans);color:var(--ink)}
.share a:hover,.share button:hover{background:var(--ink);color:#fff}
.ai-ask{border:var(--outline);border-radius:var(--radius);padding:1.4rem 1.6rem;background:linear-gradient(135deg,#fff,var(--grey-100))}

/* comments */
.comments{border-top:1px solid var(--grey-200);padding-top:2.5rem;margin-top:1rem}
.comments-gate{border:1.5px dashed var(--grey-300);padding:1.4rem;border-radius:var(--radius);background:var(--grey-100)}
.prompts{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
@media (max-width:760px){.prompts{grid-template-columns:1fr}}
.prompts .card{padding:1.2rem}

/* footer */
.site-footer{background:var(--ink);color:#d0d0d0;padding:3.5rem 0 2rem;font-size:.92rem}
.site-footer a{color:#fff}
.site-footer a:hover{color:var(--red)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem}
.site-footer h4{color:#fff;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.9rem}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.45rem}
.foot-bottom{border-top:1px solid #333;margin-top:2.5rem;padding-top:1.4rem;font-size:.8rem;color:#9a9a9a;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* panorama band */
.pano{min-height:420px;background-size:cover;background-position:center 60%;position:relative;display:flex;align-items:center}
.pano::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,10,.72),rgba(10,10,10,.25) 60%,rgba(10,10,10,0))}
.pano .container{position:relative;z-index:1;color:#fff}
.pano h2{color:#fff}
.pano p{max-width:560px;color:#eee}

/* misc */
.tag{display:inline-block;font-size:.75rem;font-weight:700;border:1px solid var(--grey-300);padding:.15rem .5rem;border-radius:var(--radius);margin:0 .3rem .3rem 0;color:var(--grey-700)}
details{border-bottom:1px solid var(--grey-200);padding:1rem 0}
details summary{cursor:pointer;font-weight:700;font-size:1.08rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
details summary::after{content:"+";color:var(--red);font-size:1.4rem;line-height:1}
details[open] summary::after{content:"–"}
details > div{padding-top:.8rem;color:var(--grey-700)}
.toc-list{padding-left:1.4rem}
.toc-list li{margin-bottom:.3rem}
@media (max-width:700px){.toc-list{columns:1}}
.notice{font-size:.85rem;color:var(--grey-500)}
@media print{.site-header,.site-footer,.share,.comments,.ai-ask,.no-print{display:none!important}body{font-size:12pt}.result{position:static}}
.site-footer li a,.site-footer p a{border-bottom:0}
.nav-links .lang-switcher a{padding:.32rem .7rem;border-bottom:0}
.hero h1{font-size:clamp(1.9rem,8.2vw,4.4rem);letter-spacing:0;overflow-wrap:normal;word-break:normal;hyphens:manual;-webkit-hyphens:manual}
@media (min-width:901px){.hero h1{font-size:min(3.8rem,4.6vw)}}
@media (max-width:520px){section{padding:3.4rem 0}.page-head{padding:2.4rem 0 1.8rem}.definition{padding-left:1rem}}
