/* The 66th. Author page (Liam Lytton). Layered on top of /assets/the66th.css. */

:root{
  --bg:#0A0A0B;
  --bg-2:#0E0E10;
  --ink:#EDE8DE;
  --ink-soft:rgba(237,232,222,.7);
  --ink-dim:#8A857A;
  --ink-mute:#55524C;
  --line:rgba(237,232,222,.08);
  --line-2:rgba(237,232,222,.14);
  --accent: oklch(78% 0.12 72);
  --accent-2: oklch(88% 0.06 72);
  --glow: oklch(78% 0.12 72 / 0.35);
  --ease-out: cubic-bezier(.22,1,.36,1);
  --ease-spring: cubic-bezier(.32,.72,0,1);
}

.auth-wrap{max-width:1280px;margin:0 auto;padding:0 40px}
@media (max-width:800px){.auth-wrap{padding:0 22px}}

.auth-mono{font-family:'Geist Mono',monospace;font-weight:400;letter-spacing:0.14em;text-transform:uppercase;font-size:11px;color:var(--ink-dim)}
.auth-serif{font-family:'Instrument Serif',serif;font-weight:400;font-style:italic;letter-spacing:-0.01em}
.auth-grain{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/></svg>")}

/* ============ HERO ============ */
.auth-hero{
  position:relative;
  padding:160px 0 80px;
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.auth-hero-bg{position:absolute;inset:0;pointer-events:none;z-index:0}
.auth-hero-bg::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 60% 50% at 18% 75%, oklch(78% 0.12 72 / 0.10), transparent 60%),
    radial-gradient(circle 600px at 85% 15%, oklch(78% 0.12 72 / 0.05), transparent);
}
.auth-hero-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(to right, var(--line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--line) 1px, transparent 1px);
  background-size:140px 140px;
  mask-image:radial-gradient(ellipse 100% 70% at 50% 70%, black 20%, transparent 80%);
  opacity:.4;
}
.auth-hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 380px;gap:80px;align-items:end}
@media (max-width:1100px){.auth-hero-inner{grid-template-columns:1fr;gap:56px}}

.auth-hero-side{display:flex;flex-direction:column;gap:36px}
.auth-portrait{position:relative}
.auth-portrait-frame{
  position:relative;
  border:1px solid var(--line-2);
  border-radius:14px;
  overflow:hidden;
  background:var(--bg-2);
  aspect-ratio:1/1;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.7), 0 0 0 1px rgba(0,0,0,.4);
}
.auth-portrait-frame::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(10,10,11,.55) 100%);
  z-index:1;pointer-events:none;
}
.auth-portrait-frame::after{
  content:"";position:absolute;inset:0;
  box-shadow:inset 0 1px 0 rgba(237,232,222,.08);
  border-radius:inherit;pointer-events:none;
}
.auth-portrait-frame img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(0.18) contrast(1.04)}
.auth-portrait-caption{
  position:absolute;
  left:14px;right:14px;bottom:14px;
  z-index:2;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:10px;
  letter-spacing:.18em;
  color:var(--ink-soft);
}

.auth-meta-link{
  color:inherit;
  text-decoration:underline;
  text-decoration-color:rgba(237,232,222,.2);
  text-underline-offset:3px;
  transition:text-decoration-color .25s ease;
}
.auth-meta-link:hover{text-decoration-color:var(--accent)}

.auth-social{display:flex;flex-direction:column;gap:14px;padding-top:8px}
.auth-social-row{display:flex;flex-wrap:wrap;gap:8px}
.auth-social-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:9px 14px 9px 13px;
  border:1px solid var(--line-2);
  border-radius:999px;
  background:rgba(237,232,222,.025);
  font-family:'Geist Mono',monospace;
  font-size:11px;
  letter-spacing:.06em;
  color:var(--ink-dim);
  text-decoration:none;
  transition:all .25s var(--ease-out);
}
.auth-social-link svg{flex:0 0 auto;transition:transform .3s var(--ease-out)}
.auth-social-link:hover{
  color:var(--ink);
  border-color:rgba(200,168,92,.5);
  background:rgba(200,168,92,.06);
}
.auth-social-link:hover svg{transform:translateY(-1px)}

.auth-hero-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:36px}
.auth-hero-eyebrow .dot{
  width:8px;height:8px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 16px var(--glow);
  animation:auth-pulse 2.4s ease-in-out infinite;
}
@keyframes auth-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.82)}}
.auth-hero-eyebrow .sep{width:24px;height:1px;background:var(--line-2)}

.auth-hero h1{
  font-family:'Geist',sans-serif;
  font-weight:300;
  font-size:clamp(64px,9.2vw,148px);
  line-height:.88;
  letter-spacing:-0.045em;
  color:var(--ink);
}
.auth-hero h1 .it{
  font-family:'Instrument Serif',serif;
  font-style:italic;
  font-weight:400;
  color:var(--accent-2);
  letter-spacing:-0.02em;
}

.auth-hero-lede{
  margin-top:44px;
  max-width:62ch;
  font-size:18px;
  line-height:1.55;
  color:var(--ink-soft);
  letter-spacing:-0.005em;
}
.auth-hero-lede strong{color:var(--ink);font-weight:500}

.auth-hero-meta{
  display:flex;
  flex-direction:column;
  gap:18px;
  padding-top:28px;
  border-top:1px solid var(--line);
}
.auth-hero-meta-row{
  display:grid;
  grid-template-columns:130px 1fr;
  gap:18px;
  align-items:baseline;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.auth-hero-meta-row:last-child{border-bottom:0;padding-bottom:0}
.auth-hero-meta-row dt{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-mute);
}
.auth-hero-meta-row dd{
  font-size:14.5px;
  color:var(--ink);
  letter-spacing:-0.005em;
  line-height:1.45;
}
.auth-hero-meta-row dd .chip{color:var(--ink-dim)}

/* ============ NUMERIC RESULTS STRIP ============ */
.auth-results{
  padding:90px 0;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(ellipse 80% 40% at 50% 0%, oklch(78% 0.12 72 / 0.04), transparent 70%);
}
.auth-results-label{margin-bottom:48px;text-align:center}
.auth-results-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
}
@media (max-width:980px){.auth-results-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.auth-results-grid{grid-template-columns:1fr}}
.auth-stat{
  background:var(--bg-2);
  padding:42px 28px;
  display:flex;
  flex-direction:column;
  gap:14px;
  position:relative;
}
.auth-stat::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  opacity:0;transition:opacity .4s ease;
}
.auth-stat:hover::before{opacity:.55}
.auth-stat-n{
  font-family:'Instrument Serif',serif;
  font-style:italic;
  font-size:clamp(46px,5.6vw,72px);
  line-height:.95;
  letter-spacing:-0.02em;
  color:var(--accent-2);
}
.auth-stat-n .small{font-size:.62em;font-style:normal;font-family:'Geist',sans-serif;color:var(--ink-dim);font-weight:400;margin-left:4px}
.auth-stat-label{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-dim);
}
.auth-stat-desc{font-size:13px;line-height:1.45;color:var(--ink-soft);letter-spacing:-0.005em}

/* ============ PERSPECTIVE PULL QUOTES ============ */
.auth-pov{padding:120px 0;border-bottom:1px solid var(--line)}
.auth-pov-head{display:grid;grid-template-columns:200px 1fr;gap:48px;align-items:baseline;margin-bottom:80px}
@media (max-width:860px){.auth-pov-head{grid-template-columns:1fr;gap:18px;margin-bottom:56px}}
.auth-pov-head h2{
  font-family:'Geist',sans-serif;
  font-weight:300;
  font-size:clamp(36px,4.2vw,60px);
  line-height:1.0;
  letter-spacing:-0.035em;
  color:var(--ink);
}
.auth-pov-head h2 .it{
  font-family:'Instrument Serif',serif;
  font-style:italic;
  color:var(--accent-2);
  font-weight:400;
}
.auth-pov-list{display:flex;flex-direction:column;gap:80px}
.auth-quote{
  display:grid;
  grid-template-columns:60px 1fr;
  gap:32px;
  align-items:start;
}
@media (max-width:760px){.auth-quote{grid-template-columns:1fr;gap:14px}}
.auth-quote-num{
  font-family:'Geist Mono',monospace;
  font-size:11px;
  letter-spacing:.14em;
  color:var(--ink-mute);
  padding-top:18px;
}
.auth-quote-body{
  font-family:'Instrument Serif',serif;
  font-weight:400;
  font-size:clamp(26px,3.4vw,42px);
  line-height:1.18;
  letter-spacing:-0.018em;
  color:var(--ink);
  max-width:30ch;
}
.auth-quote-body .em{font-style:italic;color:var(--accent-2)}

/* ============ METHODOLOGY ============ */
.auth-method{padding:120px 0;border-bottom:1px solid var(--line)}
.auth-method-head{margin-bottom:64px;max-width:60ch}
.auth-method-head .auth-mono{margin-bottom:18px}
.auth-method-head h2{
  font-family:'Geist',sans-serif;
  font-weight:300;
  font-size:clamp(34px,4vw,54px);
  line-height:1.05;
  letter-spacing:-0.035em;
  color:var(--ink);
}
.auth-method-head h2 .it{font-family:'Instrument Serif',serif;font-style:italic;color:var(--accent-2);font-weight:400}
.auth-method-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
}
@media (max-width:960px){.auth-method-grid{grid-template-columns:1fr}}
.auth-method-card{
  background:var(--bg-2);
  padding:36px 30px 40px;
  display:flex;
  flex-direction:column;
  gap:18px;
  min-height:220px;
}
.auth-method-card .num{
  font-family:'Geist Mono',monospace;
  font-size:11px;
  letter-spacing:.16em;
  color:var(--accent);
}
.auth-method-card h3{
  font-family:'Instrument Serif',serif;
  font-style:italic;
  font-weight:400;
  font-size:26px;
  line-height:1.15;
  letter-spacing:-0.012em;
  color:var(--ink);
}
.auth-method-card p{
  font-size:14px;
  line-height:1.55;
  color:var(--ink-soft);
  letter-spacing:-0.005em;
}

/* ============ TOOL STACK CHIPS ============ */
.auth-stack{padding:64px 0;border-bottom:1px solid var(--line);background:var(--bg-2)}
.auth-stack-row{display:flex;align-items:center;flex-wrap:wrap;gap:24px}
.auth-stack-row .auth-mono{flex:0 0 auto}
.auth-stack-chips{display:flex;flex-wrap:wrap;gap:10px}
.auth-stack-chip{
  padding:8px 14px;
  border:1px solid var(--line-2);
  border-radius:999px;
  font-family:'Geist Mono',monospace;
  font-size:11px;
  letter-spacing:.06em;
  color:var(--ink-dim);
  background:rgba(237,232,222,.025);
}

/* ============ FIELD NOTES (AUTHOR POSTS) ============ */
.auth-posts{padding:120px 0;border-bottom:1px solid var(--line)}
.auth-posts-head{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:56px;flex-wrap:wrap}
.auth-posts-head h2{
  font-family:'Geist',sans-serif;
  font-weight:300;
  font-size:clamp(36px,4.2vw,60px);
  line-height:1.0;
  letter-spacing:-0.035em;
  color:var(--ink);
}
.auth-posts-head h2 .it{font-family:'Instrument Serif',serif;font-style:italic;color:var(--accent-2);font-weight:400}
.auth-posts-head .count{
  font-family:'Geist Mono',monospace;
  font-size:11px;
  letter-spacing:.16em;
  color:var(--ink-dim);
  text-transform:uppercase;
}
.auth-posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
@media (max-width:1000px){.auth-posts-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.auth-posts-grid{grid-template-columns:1fr}}
.auth-post-card{
  background:var(--bg-2);
  padding:28px 26px 30px;
  display:flex;
  flex-direction:column;
  gap:14px;
  text-decoration:none;
  color:var(--ink);
  transition:background .25s ease, transform .35s var(--ease-out);
  position:relative;
}
.auth-post-card::after{
  content:"→";
  position:absolute;
  top:28px;right:26px;
  font-size:14px;
  color:var(--ink-mute);
  transition:transform .3s var(--ease-out), color .25s ease;
}
.auth-post-card:hover{background:#121215}
.auth-post-card:hover::after{transform:translate(4px,-2px);color:var(--accent-2)}
.auth-post-pill{
  align-self:flex-start;
  font-family:'Geist Mono',monospace;
  font-size:9.5px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  padding:5px 9px;
  border:1px solid rgba(200,168,92,.25);
  border-radius:999px;
  background:rgba(200,168,92,.04);
}
.auth-post-card h3{
  font-family:'Geist',sans-serif;
  font-weight:400;
  font-size:18px;
  line-height:1.3;
  letter-spacing:-0.015em;
  color:var(--ink);
  padding-right:22px;
}
.auth-post-meta{
  margin-top:auto;
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:.12em;
  color:var(--ink-mute);
  text-transform:uppercase;
}
.auth-posts-empty{padding:60px;text-align:center;color:var(--ink-dim);font-family:'Instrument Serif',serif;font-style:italic;font-size:20px}
.auth-posts-loading{padding:60px;text-align:center;color:var(--ink-mute);font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase}

/* ============ CTA + FOOTER (re-use blog patterns) ============ */
.auth-cta{padding:120px 40px;text-align:center;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.auth-cta::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 70% at 50% 100%, oklch(78% 0.12 72 / 0.10), transparent 60%);
  pointer-events:none;
}
.auth-cta-inner{position:relative;z-index:1;max-width:760px;margin:0 auto}
.auth-cta .auth-mono{margin-bottom:24px}
.auth-cta h2{
  font-family:'Geist',sans-serif;
  font-weight:300;
  font-size:clamp(40px,5vw,72px);
  line-height:1.0;
  letter-spacing:-0.04em;
  color:var(--ink);
  margin-bottom:40px;
}
.auth-cta h2 .it{font-family:'Instrument Serif',serif;font-style:italic;color:var(--accent-2);font-weight:400}
.auth-cta-btn{
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:18px 30px;
  background:var(--ink);
  color:var(--bg);
  border-radius:999px;
  text-decoration:none;
  font-weight:500;
  font-size:15px;
  letter-spacing:-0.005em;
  transition:all .3s var(--ease-out);
}
.auth-cta-btn:hover{background:var(--accent);transform:translateY(-2px)}
.auth-cta-btn .arr{
  display:inline-grid;place-items:center;
  width:22px;height:22px;border-radius:50%;
  background:var(--bg);color:var(--ink);font-size:10px;
  transition:transform .3s var(--ease-out);
}
.auth-cta-btn:hover .arr{transform:translateX(2px)}

/* ============ REVEAL ============ */
.auth-reveal{opacity:0;transform:translateY(22px);transition:opacity .85s var(--ease-out), transform .85s var(--ease-out)}
.auth-reveal.in{opacity:1;transform:translateY(0)}
