/* =========================================================================
   ILLICIUM — Design System
   Intelligence, applied to allurement.
   Ad lucem ex tenebris.
   ========================================================================= */

/* ---- Tokens ---------------------------------------------------------- */
:root{
  /* Core palette */
  --obsidian:   #0A0C0F;
  --smoke:      #12171C;
  --smoke-2:    #171E24;
  --bone:       #EDE7D9;
  --bone-dim:   #C9C3B6;
  --ash:        #8A867E;
  --ash-dim:    #5A574F;

  /* Gold — the allurement */
  --amber:      #C9A24B;
  --amber-lt:   #E4C878;
  --bronze:     #8A6A2B;

  /* House signatures */
  --oxblood:    #6E2126;   /* Compliance */
  --lumen:      #F2D98A;   /* Studio      */
  --verum:      #2E4A3B;   /* Verum       */
  --verum-lt:   #3E6350;

  /* Signature is re-pointed per page via body class */
  --signature:  var(--amber);
  --signature-soft: rgba(201,162,75,.14);

  /* Type */
  --serif: "Fraunces", "Cormorant Garamond", Georgia, serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono:  "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Scale */
  --step--1: clamp(.78rem, .74rem + .2vw, .86rem);
  --step-0:  clamp(1rem, .96rem + .2vw, 1.08rem);
  --step-1:  clamp(1.2rem, 1.1rem + .5vw, 1.5rem);
  --step-2:  clamp(1.5rem, 1.3rem + 1vw, 2.1rem);
  --step-3:  clamp(2rem, 1.6rem + 2vw, 3.2rem);
  --step-4:  clamp(2.6rem, 1.9rem + 3.4vw, 5rem);
  --step-5:  clamp(3.2rem, 2rem + 5.4vw, 7rem);

  /* Space & motion */
  --gutter: clamp(1.25rem, 5vw, 5rem);
  --maxw: 1240px;
  --ease: cubic-bezier(.19,1,.22,1);
  --ease-soft: cubic-bezier(.4,0,.1,1);
  --dur: .8s;

  --line: rgba(237,231,217,.12);
  --line-soft: rgba(237,231,217,.07);
}

/* ---- Reset ----------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  background:var(--obsidian);
  color:var(--bone);
  font-family:var(--sans);
  font-size:var(--step-0);
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:none; cursor:pointer; }
::selection{ background:var(--amber); color:var(--obsidian); }

/* Film grain — chiaroscuro depth */
body::after{
  content:""; position:fixed; inset:0; z-index:9; pointer-events:none;
  opacity:.035; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---- Layout ---------------------------------------------------------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(4.5rem,9vw,9rem); position:relative; }
.section--tight{ padding-block:clamp(3rem,6vw,5rem); }
.divider{ height:1px; background:var(--line); border:0; }

/* ---- Typography ------------------------------------------------------ */
h1,h2,h3,h4{ font-family:var(--serif); font-weight:400; line-height:1.05; letter-spacing:-.01em; color:var(--bone); }
.display{ font-size:var(--step-5); line-height:.98; letter-spacing:-.02em; }
h1{ font-size:var(--step-4); }
h2{ font-size:var(--step-3); }
h3{ font-size:var(--step-2); }
.lede{ font-size:var(--step-1); line-height:1.5; color:var(--bone-dim); font-weight:300; max-width:60ch; }
p{ max-width:68ch; }
.muted{ color:var(--ash); }
em,.italic{ font-style:italic; }

/* Eyebrow / mono label */
.eyebrow{
  font-family:var(--mono); font-size:var(--step--1); letter-spacing:.28em;
  text-transform:uppercase; color:var(--signature); display:inline-flex;
  align-items:center; gap:.7em; font-weight:500;
}
.eyebrow::before{ content:""; width:2rem; height:1px; background:currentColor; opacity:.6; }
.eyebrow--plain::before{ display:none; }

.serif-accent{ font-family:var(--serif); font-style:italic; color:var(--amber); }
.gold{ color:var(--amber); }

/* ---- Buttons --------------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; gap:.7em; font-family:var(--sans);
  font-size:var(--step--1); letter-spacing:.04em; font-weight:500;
  padding:1.05em 1.8em; border-radius:2px; position:relative;
  transition:transform .5s var(--ease), background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.btn--primary{ background:var(--amber); color:var(--obsidian); }
.btn--primary:hover{ background:var(--amber-lt); transform:translateY(-2px); }
.btn--ghost{ border:1px solid var(--line); color:var(--bone); }
.btn--ghost:hover{ border-color:var(--amber); color:var(--amber); }
.btn__arrow{ transition:transform .5s var(--ease); }
.btn:hover .btn__arrow{ transform:translateX(4px); }
.cta-reassure{ font-family:var(--mono); font-size:var(--step--1); letter-spacing:.12em; color:var(--ash); text-transform:uppercase; }

.textlink{ color:var(--amber); border-bottom:1px solid rgba(201,162,75,.35); padding-bottom:1px; transition:border-color .4s; }
.textlink:hover{ border-color:var(--amber); }

/* ---- Header ---------------------------------------------------------- */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem var(--gutter); transition:background .5s var(--ease), backdrop-filter .5s, border-color .5s;
  border-bottom:1px solid transparent;
}
.site-header.scrolled{ background:rgba(10,12,15,.78); backdrop-filter:blur(14px) saturate(120%); border-bottom-color:var(--line-soft); }
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand .anise-star{ width:26px; height:26px; color:var(--amber); }
.brand__word{ font-family:var(--serif); font-size:1.15rem; letter-spacing:.42em; padding-left:.42em; text-transform:uppercase; }
.nav{ display:flex; align-items:center; gap:2rem; }
.nav a{ font-size:var(--step--1); letter-spacing:.06em; color:var(--bone-dim); transition:color .4s; position:relative; }
.nav a:hover,.nav a[aria-current]{ color:var(--bone); }
.nav a[aria-current]::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:var(--signature); }
.nav__cta{ padding:.7em 1.3em; border:1px solid var(--line); border-radius:2px; }
.nav__cta:hover{ border-color:var(--amber); color:var(--amber)!important; }
.nav-toggle{ display:none; width:34px; height:34px; align-items:center; justify-content:center; }
.nav-toggle span{ display:block; width:20px; height:1.5px; background:var(--bone); position:relative; transition:.4s; }
.nav-toggle span::before,.nav-toggle span::after{ content:""; position:absolute; left:0; width:20px; height:1.5px; background:var(--bone); transition:.4s; }
.nav-toggle span::before{ top:-6px; } .nav-toggle span::after{ top:6px; }

/* ---- Hero ------------------------------------------------------------ */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; }
.hero__glow{
  position:absolute; z-index:0; width:120vmax; height:120vmax; left:50%; top:38%;
  transform:translate(-50%,-50%); pointer-events:none;
  background:radial-gradient(circle at center,
     var(--signature-soft) 0%, rgba(201,162,75,.05) 22%, transparent 55%);
}
.hero__vignette{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(120% 90% at 50% 40%, transparent 40%, rgba(0,0,0,.55) 100%); }
.hero .wrap{ position:relative; z-index:2; }
.hero__star{ width:clamp(90px,13vw,150px); height:auto; color:var(--amber); margin-bottom:2.4rem; }
.hero h1{ max-width:16ch; }
.hero .lede{ margin-top:1.8rem; }
.hero__descriptor{ margin-top:2.2rem; font-family:var(--mono); font-size:var(--step--1); letter-spacing:.18em; color:var(--bone-dim); text-transform:uppercase; }
.hero__actions{ margin-top:2.6rem; display:flex; flex-wrap:wrap; gap:1.1rem 1.6rem; align-items:center; }
.scroll-cue{ position:absolute; bottom:2rem; left:50%; transform:translateX(-50%); z-index:2;
  font-family:var(--mono); font-size:.68rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ash); text-align:center; }
.scroll-cue span{ display:block; width:1px; height:44px; margin:.8rem auto 0; background:linear-gradient(var(--amber),transparent); }

/* ---- Anise star ------------------------------------------------------ */
.anise-star .petal{ transition:opacity .6s var(--ease); }
.anise-star .aperture{ transition:r .6s var(--ease), opacity .6s; transform-origin:center; }
.spin-slow{ animation:spin 90s linear infinite; transform-origin:center; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---- Reveal animation ------------------------------------------------ */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity 1s var(--ease), transform 1.1s var(--ease); }
.reveal.is-visible{ opacity:1; transform:none; }
.reveal[data-delay="1"]{ transition-delay:.12s; }
.reveal[data-delay="2"]{ transition-delay:.24s; }
.reveal[data-delay="3"]{ transition-delay:.36s; }
.reveal[data-delay="4"]{ transition-delay:.48s; }

/* ---- Section eyebrow numbering & headings ---------------------------- */
.section-head{ max-width:74ch; margin-bottom:clamp(2.5rem,5vw,4rem); }
.section-head h2{ margin-top:1.2rem; }
.section-head .lede{ margin-top:1.4rem; }

/* ---- Thesis / measure ------------------------------------------------ */
.measure{ max-width:46ch; }
.pull{ font-family:var(--serif); font-size:var(--step-2); line-height:1.25; color:var(--bone); font-style:italic; }

/* ---- Three houses ---------------------------------------------------- */
.houses{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.house{
  position:relative; padding:2.4rem 2rem 2.2rem; border:1px solid var(--line);
  background:linear-gradient(180deg, var(--smoke), rgba(10,12,15,.4));
  border-radius:3px; overflow:hidden; min-height:420px; display:flex; flex-direction:column;
  transition:transform .7s var(--ease), border-color .6s var(--ease);
}
.house::before{ content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background:radial-gradient(120% 60% at 50% -10%, var(--house-tint,transparent), transparent 60%); transition:opacity .7s; }
.house:hover{ transform:translateY(-6px); border-color:var(--house-line,var(--amber)); }
.house:hover::before{ opacity:.9; }
.house--compliance{ --house-tint:rgba(110,33,38,.35); --house-line:rgba(160,60,66,.6); }
.house--studio{ --house-tint:rgba(242,217,138,.16); --house-line:rgba(228,200,120,.6); }
.house--verum{ --house-tint:rgba(46,74,59,.4); --house-line:rgba(62,99,80,.7); }
.house__index{ font-family:var(--mono); font-size:.72rem; letter-spacing:.2em; color:var(--ash); }
.house__mark{ width:34px; height:34px; color:var(--amber); margin:1.4rem 0; }
.house h3{ font-size:var(--step-2); }
.house__latin{ font-family:var(--serif); font-style:italic; color:var(--amber); font-size:.95rem; margin-top:.3rem; }
.house p{ color:var(--bone-dim); font-size:var(--step--1); margin-top:1rem; flex:1; }
.house__tags{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1.4rem; }
.house__tags span{ font-family:var(--mono); font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ash); border:1px solid var(--line); padding:.3em .6em; border-radius:2px; }
.house__enter{ margin-top:1.6rem; font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--amber); display:inline-flex; gap:.5em; }
.house__enter .btn__arrow{ transition:transform .5s var(--ease); }
.house:hover .house__enter .btn__arrow{ transform:translateX(5px); }

/* ---- Work / case files ----------------------------------------------- */
.cases{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; }
.case{
  border:1px solid var(--line); border-radius:3px; padding:2rem; background:var(--smoke);
  position:relative; transition:border-color .6s, transform .6s var(--ease); overflow:hidden;
}
.case:hover{ border-color:var(--amber); transform:translateY(-4px); }
.case__tag{ font-family:var(--mono); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ash); display:flex; justify-content:space-between; }
.case__tag .state{ color:var(--amber); }
.case__tag .state--soon{ color:var(--ash-dim); }
.case h3{ font-size:var(--step-1); margin:1.2rem 0 .6rem; }
.case p{ color:var(--bone-dim); font-size:var(--step--1); }
.case__meta{ margin-top:1.4rem; display:flex; flex-wrap:wrap; gap:.5rem; }
.case__meta span{ font-family:var(--mono); font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ash); border:1px solid var(--line); padding:.3em .6em; border-radius:2px; }

/* Redaction reveal */
.redact{ position:relative; display:inline; }
.redact > span{ transition:opacity .1s; }
.redact::after{ content:""; position:absolute; inset:0 -.15em; background:linear-gradient(90deg,var(--bronze),var(--amber)); transform-origin:right; transition:transform .9s var(--ease); }
.redact.is-visible::after{ transform:scaleX(0); }

/* ---- Feature rows (image + text) ------------------------------------- */
.feature{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:center; }
.feature--flip .feature__visual{ order:2; }
.feature__visual{ aspect-ratio:4/5; border:1px solid var(--line); border-radius:3px; position:relative; overflow:hidden; background:var(--smoke); }
.artframe{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.artframe figcaption{ position:absolute; left:1rem; bottom:1rem; right:1rem; font-family:var(--mono); font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ash); }

/* ---- Stats / credentials --------------------------------------------- */
.strip{ display:flex; flex-wrap:wrap; gap:clamp(1.5rem,5vw,4rem); align-items:baseline; }
.stat .n{ font-family:var(--serif); font-size:var(--step-3); color:var(--amber); display:block; line-height:1; }
.stat .l{ font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ash); margin-top:.6rem; }
.frameworks{ display:flex; flex-wrap:wrap; gap:.6rem; }
.frameworks span{ font-family:var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--bone-dim); border:1px solid var(--line); padding:.5em .9em; border-radius:2px; }

/* ---- Services list --------------------------------------------------- */
.services{ border-top:1px solid var(--line); }
.service{ display:grid; grid-template-columns:auto 1fr auto; gap:1.5rem; align-items:center;
  padding:1.6rem 0; border-bottom:1px solid var(--line); transition:padding .5s var(--ease); }
.service:hover{ padding-inline:1rem; }
.service__no{ font-family:var(--mono); font-size:.72rem; color:var(--ash); letter-spacing:.1em; }
.service__name{ font-family:var(--serif); font-size:var(--step-1); }
.service__desc{ color:var(--ash); font-size:var(--step--1); justify-self:end; text-align:right; max-width:34ch; }

/* ---- Quote / manifesto ----------------------------------------------- */
.manifesto{ text-align:center; }
.manifesto .pull{ max-width:22ch; margin-inline:auto; font-size:var(--step-3); font-style:normal; }
.manifesto .pull em{ color:var(--amber); }

/* ---- Booking / forms ------------------------------------------------- */
.enquire{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,6vw,5rem); }
.field{ margin-bottom:1.4rem; }
.field label{ display:block; font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ash); margin-bottom:.6rem; }
.field input,.field select,.field textarea{
  width:100%; background:var(--smoke); border:1px solid var(--line); color:var(--bone);
  padding:.9em 1em; border-radius:2px; font-family:var(--sans); font-size:var(--step-0);
  transition:border-color .4s;
}
.field input:focus,.field select,.field textarea:focus{ outline:none; border-color:var(--amber); }
.field textarea{ resize:vertical; min-height:120px; }
.form-note{ font-family:var(--mono); font-size:.68rem; letter-spacing:.06em; color:var(--ash); margin-top:1rem; line-height:1.7; }
.form-success{ display:none; border:1px solid var(--amber); background:var(--signature-soft); padding:1.4rem; border-radius:3px; font-family:var(--mono); font-size:var(--step--1); color:var(--bone); letter-spacing:.04em; }
.form-success.show{ display:block; }

/* ---- Footer ---------------------------------------------------------- */
.site-footer{ border-top:1px solid var(--line); padding-block:clamp(3rem,6vw,5rem); }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2rem; }
.footer-grid h4{ font-family:var(--mono); font-weight:500; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ash); margin-bottom:1.2rem; }
.footer-grid a{ display:block; color:var(--bone-dim); font-size:var(--step--1); padding:.35em 0; transition:color .4s; }
.footer-grid a:hover{ color:var(--amber); }
.seal{ width:74px; height:74px; color:var(--amber); margin-bottom:1.2rem; }
.footer-motto{ font-family:var(--serif); font-style:italic; color:var(--bone-dim); font-size:1rem; }
.footer-base{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; margin-top:3rem; padding-top:1.6rem; border-top:1px solid var(--line-soft); font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ash); }

/* ---- Page hero (inner pages) ----------------------------------------- */
.page-hero{ position:relative; padding-top:clamp(9rem,16vw,12rem); padding-bottom:clamp(3rem,6vw,5rem); overflow:hidden; }
.page-hero__glow{ position:absolute; z-index:0; width:90vmax; height:90vmax; left:70%; top:-20%; transform:translate(-50%,0); pointer-events:none;
  background:radial-gradient(circle at center, var(--signature-soft), transparent 55%); }
.page-hero .wrap{ position:relative; z-index:2; }
.page-hero h1{ max-width:18ch; margin-top:1.4rem; }
.page-hero .lede{ margin-top:1.6rem; }

/* House theming (body class re-points --signature) */
body.house-compliance{ --signature:#B24048; --signature-soft:rgba(110,33,38,.22); }
body.house-studio{ --signature:#E4C878; --signature-soft:rgba(242,217,138,.14); }
body.house-verum{ --signature:#4E7C63; --signature-soft:rgba(46,74,59,.28); }

/* ---- Constellation canvas -------------------------------------------- */
.constellation{ position:absolute; inset:0; z-index:0; opacity:.5; pointer-events:none; }

/* ---- Responsive ------------------------------------------------------ */
@media (max-width:900px){
  .houses{ grid-template-columns:1fr; }
  .cases{ grid-template-columns:1fr; }
  .feature{ grid-template-columns:1fr; }
  .feature--flip .feature__visual{ order:0; }
  .enquire{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .service{ grid-template-columns:auto 1fr; }
  .service__desc{ display:none; }
  .nav{ position:fixed; inset:0 0 0 auto; width:min(80vw,320px); flex-direction:column; align-items:flex-start;
    justify-content:center; gap:1.6rem; padding:2rem 2.4rem; background:var(--smoke);
    border-left:1px solid var(--line); transform:translateX(100%); transition:transform .6s var(--ease); }
  .nav.open{ transform:none; }
  .nav-toggle{ display:flex; z-index:60; }
  body.nav-open .nav-toggle span{ background:transparent; }
  body.nav-open .nav-toggle span::before{ transform:rotate(45deg); top:0; }
  body.nav-open .nav-toggle span::after{ transform:rotate(-45deg); top:0; }
}
@media (max-width:560px){
  .footer-grid{ grid-template-columns:1fr; }
  .hero__actions{ flex-direction:column; align-items:flex-start; }
  .btn{ width:100%; justify-content:center; }
}

/* ---- Reduced motion -------------------------------------------------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; }
  .reveal{ opacity:1; transform:none; }
  .redact::after{ transform:scaleX(0); }
}

/* =======================================================================
   V1.1 additions — principle · methodology · credentials · research ·
   selected work · gating disclosure. (Inducted from V2, V1 tokens.)
   ======================================================================= */
.statement{ font-family:var(--serif); font-size:var(--step-3); line-height:1.12; letter-spacing:-.015em; max-width:22ch; }
.principle{ display:inline-block; font-family:var(--serif); font-style:italic; font-size:var(--step-2); color:var(--amber); border-bottom:2px solid var(--amber); padding-bottom:.1em; }

.method{ display:grid; grid-template-columns:auto 1fr; gap:clamp(2rem,5vw,5rem); margin-top:1rem; }
.method__rail{ position:relative; width:2px; background:var(--line); }
.method__fill{ position:absolute; top:0; left:0; width:100%; height:0; background:linear-gradient(var(--amber),var(--bronze)); transition:height .12s linear; }
.method__steps{ display:flex; flex-direction:column; gap:clamp(2rem,5vw,3.4rem); }
.mstep{ opacity:.32; transition:opacity .6s var(--ease); }
.mstep.on{ opacity:1; }
.mstep__no{ font-family:var(--mono); font-size:.8rem; letter-spacing:.2em; color:var(--amber); }
.mstep h3{ font-size:var(--step-2); margin-top:.4rem; }
.mstep p{ color:var(--bone-dim); margin-top:.5rem; max-width:52ch; }

.creds{ display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; }
.cred .n{ font-family:var(--serif); font-size:var(--step-4); color:var(--amber); line-height:1; display:block; }
.cred .l{ font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ash); margin-top:.8rem; line-height:1.5; }

.masthead{ display:flex; align-items:baseline; justify-content:space-between; border-bottom:2px solid var(--bone); padding-bottom:1rem; }
.masthead h2{ font-size:var(--step-2); }
.masthead .date{ font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ash); }
.rlist{ border-top:1px solid var(--line); }
.ritem{ display:grid; grid-template-columns:auto 1fr auto; gap:1.6rem; align-items:center; padding:1.8rem 0; border-bottom:1px solid var(--line); transition:padding .5s var(--ease); }
.ritem:hover{ padding-inline:1rem; }
.ritem__cat{ font-family:var(--mono); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--amber); }
.ritem__title{ font-family:var(--serif); font-size:var(--step-2); line-height:1.1; }
.ritem__read{ font-family:var(--mono); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ash); }

.cstudy{ padding:clamp(1.6rem,3vw,2.6rem) 0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr 2fr; gap:2rem; align-items:start; }
.cstudy__who{ font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--amber); }
.cstudy__out{ font-family:var(--serif); font-size:var(--step-1); line-height:1.3; }
.cstudy__meta{ margin-top:.8rem; color:var(--ash); font-size:var(--step--1); }

.gate-note{ border:1px solid var(--line); border-left:2px solid var(--amber); background:var(--smoke); padding:1.2rem 1.4rem; border-radius:2px; font-size:var(--step--1); color:var(--bone-dim); max-width:70ch; }
.gate-note strong{ color:var(--bone); font-weight:500; }

.foot-disclosure{ max-width:none; font-family:var(--mono); font-size:.64rem; line-height:1.7; letter-spacing:.04em; color:var(--ash); margin-top:2rem; padding-top:1.4rem; border-top:1px solid var(--line-soft); }

@media (max-width:1200px){
  .nav{ position:fixed; inset:0 0 0 auto; width:min(82vw,320px); flex-direction:column; align-items:flex-start; justify-content:center; gap:1.5rem; padding:2rem 2.4rem; background:var(--smoke); border-left:1px solid var(--line); transform:translateX(100%); transition:transform .6s var(--ease); }
  .nav.open{ transform:none; }
  .nav-toggle{ display:flex; }
}
@media (max-width:860px){
  .method{ gap:1.4rem; }
  .creds{ grid-template-columns:1fr 1fr; }
  .ritem{ grid-template-columns:1fr auto; } .ritem__cat{ display:none; }
  .cstudy{ grid-template-columns:1fr; gap:.6rem; }
}
@media (max-width:520px){ .creds{ grid-template-columns:1fr; } }

.houses--two{ grid-template-columns:repeat(2,1fr); max-width:900px; margin-inline:auto; }
@media (max-width:900px){ .houses--two{ grid-template-columns:1fr; } }

/* ============================================================
   GLOW-UP REFINEMENTS — measured pass (illicium.ai)
   DNA already strong; these are the targeted fixes.
   ============================================================ */
:root{ --ease-ui:cubic-bezier(.2,.6,.2,1); }

/* 1 — Unify radii (was 5 distinct: 2/3/6/8/14px → controls 2px / cards 3px) */
input,select,textarea,button,.btn{ border-radius:2px; }
.house,.case,.inst,.feature__visual,.gate-note,.artframe,.portrait{ border-radius:3px; }

/* 2 — Real touch targets (nav & footer links were ~22px tall) */
.nav a{ padding-block:.5rem; }
.footer-grid a{ padding:.5rem 0; }

/* 3 — Keyboard focus (was invisible) */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--amber); outline-offset:3px;
}

/* 4 — Contrast: lift the faint state label (2.5:1 → ~4.5:1) */
.state--soon,.inst__tag .soon,.case__tag .state--soon{ color:#8f8a7e; }

/* 5 — Headline polish: balanced wrapping + presence */
h1,h2,.display,.statement,.pull{ text-wrap:balance; }
.display{ letter-spacing:-.026em; }

/* 6 — Anchor offset under the fixed header (#houses etc. no longer hide) */
[id]{ scroll-margin-top:5.5rem; }

/* 7 — Warmer interactive feedback */
.textlink:hover{ color:var(--amber-lt); }
@media (prefers-reduced-motion:no-preference){
  .nav a,.textlink,.btn,.house,.case,.inst{ transition-timing-function:var(--ease-ui); }
}
