
:root{
  --paper:#faf9f6;
  --ink:#1a1a1a;
  --mut:#69655d;
  --faint:#8f8b82;
  --hair:#e5e2da;
  --wash:#f2efe8;
  --accent:#7c2f2a;
  --serif:Georgia,"Times New Roman","Iowan Old Style",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
  --h1:clamp(2.4rem,5vw,4rem);
  --h2:clamp(1.8rem,3.2vw,2.6rem);
  --h3:clamp(1.35rem,2.2vw,1.7rem);
  --p:17.5px;
  --lh-body:1.55;
  --gutter:clamp(22px,5.5vw,64px);
  --maxw:1140px;
  --sec-pad:clamp(68px,10vw,128px);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .035 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  color:var(--ink);
  font-family:var(--sans);
  font-size:var(--p);
  line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15;letter-spacing:-0.01em}
h1{font-size:var(--h1)}
h2{font-size:var(--h2)}
h3{font-size:var(--h3)}
p{max-width:62ch}
a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(124,47,42,.35);transition:border-color .25s ease,color .25s ease}
a:hover{border-bottom-color:var(--accent)}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
::selection{background:#e9ddd0;color:var(--ink)}

/* ---------- skip link ---------- */
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:8px 14px;z-index:1000;border:0;font-family:var(--sans)}
.skip:focus{left:12px;top:12px}

/* ---------- header / nav ---------- */
header.site{
  position:sticky;top:0;z-index:90;
  background:rgba(250,249,246,.94);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border-bottom:1px solid var(--hair);
}
.mast{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:16px;flex-wrap:wrap;
  padding-top:16px;padding-bottom:14px;
}
.mast{align-items:center}
.brand{display:flex;align-items:center;gap:13px;min-width:0;border-bottom:none}
.brand .mark{
  width:34px;height:34px;position:relative;flex:none;
  display:flex;align-items:center;justify-content:center;
}
.brand .mark svg.ring{
  position:absolute;inset:0;width:100%;height:100%;
  color:var(--accent);
  transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.brand:hover .mark svg.ring{transform:rotate(-14deg)}
.brand .mark b{
  font-family:var(--serif);font-weight:400;font-size:.68rem;
  letter-spacing:.06em;color:var(--ink);
}
.brand .nametag{display:flex;flex-direction:column;min-width:0}
.brand .name{
  font-family:var(--serif);font-size:1.14rem;letter-spacing:.01em;line-height:1.2;
  color:var(--ink);white-space:nowrap;
}
.brand:hover .name{color:var(--accent)}
.brand .tag{
  font-size:.66rem;color:var(--faint);letter-spacing:.16em;text-transform:uppercase;
  white-space:nowrap;margin-top:2px;
}
nav.prime ul{display:flex;list-style:none;gap:clamp(8px,1.8vw,18px);flex-wrap:wrap;align-items:baseline}
nav.prime a{
  font-size:.82rem;letter-spacing:.06em;color:var(--mut);
  border-bottom:none;padding:6px 3px 9px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 8' preserveAspectRatio='none'%3E%3Cpath d='M1.5 5.5C6 2.5 10 7 15 4.5 20 2 24 7 29 4.5 34 2 38.5 6.5 42.5 4' fill='none' stroke='%237c2f2a' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:left calc(100% - 1px);
  background-size:0% 7px;
  transition:color .25s ease,background-size .4s cubic-bezier(.22,1,.36,1);
}
nav.prime a:hover{color:var(--ink);background-size:100% 7px}
nav.prime a.active{color:var(--ink);background-size:100% 7px}
nav.prime a.ext{color:var(--accent)}
@media (max-width:560px){
  .brand .tag{display:none}
  .brand .mark{width:29px;height:29px}
  nav.prime ul{gap:6px 12px}
  nav.prime a{padding:4px 2px 8px}
}

/* ---------- hero ---------- */
.hero{padding-top:calc(var(--sec-pad)*.72);padding-bottom:var(--sec-pad);position:relative}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(0,.82fr);
  grid-template-areas:"head portrait" "body portrait";
  column-gap:clamp(30px,4.5vw,68px);row-gap:0;
  align-items:start;
}
.hero-head{grid-area:head}
.hero-body{grid-area:body}
.hero-portrait{grid-area:portrait;align-self:center;justify-self:end;position:relative;margin:0;width:100%;max-width:392px}

.hero-eyebrow{
  display:flex;align-items:center;gap:9px;
  font-family:var(--sans);font-size:.72rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-bottom:20px;
}
.hero-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}
.js:not(.static) .hero-eyebrow .dot{animation:pulseDot 2.8s ease-in-out infinite}
@keyframes pulseDot{0%,100%{box-shadow:0 0 0 0 rgba(124,47,42,.4)}55%{box-shadow:0 0 0 5px rgba(124,47,42,0)}}

.hero h1{margin-bottom:2px;font-size:clamp(2.6rem,6vw,4.4rem)}
.h1-scribble{display:block;width:min(300px,76%);height:12px;margin:6px 0 0;color:var(--accent);overflow:visible}
.h1-scribble path{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.js:not(.static) .h1-scribble path{animation:drawScribble .9s cubic-bezier(.4,0,.2,1) .8s both}
@keyframes drawScribble{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}

.roles{
  font-family:var(--serif);font-size:clamp(1.18rem,2.3vw,1.5rem);
  color:var(--ink);letter-spacing:.005em;line-height:1.5;margin:0 0 22px;
}
.roles .role{display:inline-block;will-change:transform,opacity}
.roles .sep{display:inline-block;color:var(--faint);padding:0 .45em}
.hero .lede{font-size:1.06rem;color:var(--mut);max-width:52ch;line-height:1.66}
.hero .lede em{font-style:normal;color:var(--ink)}
.hero-now{
  margin-top:22px;font-family:var(--sans);font-size:.82rem;letter-spacing:.02em;
  color:var(--faint);display:flex;flex-wrap:wrap;align-items:center;gap:6px 11px;line-height:1.5;
}
.hero-now b{color:var(--mut);font-weight:600}
.hero-now .now-tag{
  font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
}

/* portrait */
.portrait-frame{
  position:relative;aspect-ratio:4/5;overflow:hidden;
  border:1px solid var(--hair);border-radius:5px;background:var(--wash);
  box-shadow:0 24px 48px -26px rgba(46,34,22,.5),0 3px 10px -5px rgba(46,34,22,.28);
}
.portrait-frame img{
  width:100%;height:100%;object-fit:cover;object-position:50% 13%;
  display:block;filter:saturate(.97) contrast(1.02);
}
.hero-portrait .pin{
  position:absolute;top:-11px;right:15px;width:26px;height:26px;color:var(--faint);
  opacity:.55;transform:rotate(10deg);pointer-events:none;z-index:2;
}
.hero-portrait figcaption{
  margin-top:12px;display:flex;align-items:center;gap:8px;
  font-family:var(--serif);font-style:italic;font-size:.86rem;color:var(--faint);
}
.hero-portrait figcaption .doodle{width:19px;height:19px;color:var(--accent);opacity:.75}
.js:not(.static) .hero-portrait{animation:risePhoto 1s cubic-bezier(.22,1,.36,1) .15s both}
@keyframes risePhoto{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}

.hero-rule{height:1px;background:var(--hair);border:0;margin-top:clamp(44px,6vw,64px);transform-origin:left center}

/* enacting moment: four scattered roles converge into one line (CSS-only, runs once) */
.js:not(.static) .roles .role{animation:converge .95s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--d,0s)}
.js:not(.static) .roles .sep{animation:fadeIn .6s ease both;animation-delay:1.05s}
.js:not(.static) .hero-rule{animation:drawRule 1.1s cubic-bezier(.22,1,.36,1) both;animation-delay:1.2s}
@keyframes converge{from{opacity:0;transform:translate(var(--sx,0),var(--sy,0));filter:blur(3px)}to{opacity:1;transform:translate(0,0);filter:blur(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes drawRule{from{transform:scaleX(0)}to{transform:scaleX(1)}}

@media (max-width:760px){
  .hero-grid{grid-template-columns:1fr;grid-template-areas:"head" "portrait" "body";column-gap:0}
  .hero-portrait{max-width:288px;justify-self:start;margin:22px 0 4px}
  .hero-eyebrow{margin-bottom:16px}
}
@media (max-width:400px){.hero-portrait{max-width:100%}}

/* ---------- sections ---------- */
section{padding-top:var(--sec-pad);padding-bottom:0}
section:last-of-type{padding-bottom:var(--sec-pad)}
.kicker{
  font-family:var(--sans);font-size:.72rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--faint);
  display:flex;align-items:center;gap:12px;margin-bottom:18px;
}
.kicker::before{
  content:"";width:26px;height:8px;flex:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 8' preserveAspectRatio='none'%3E%3Cpath d='M1.5 5.5C6 2.5 10 7 15 4.5 20 2 24 7 29 4.5 34 2 38.5 6.5 42.5 4' fill='none' stroke='%237c2f2a' stroke-width='1.7' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%;
}
section h2{margin-bottom:14px}
.section-lede{color:var(--mut);margin-bottom:40px;max-width:58ch}

/* ---------- hand-drawn doodles (inline SVG sprite) ---------- */
.doodle{
  width:26px;height:26px;flex:none;color:var(--faint);
  transition:color .3s ease,transform .35s cubic-bezier(.22,1,.36,1);
}

/* ---------- spine (four identities) ---------- */
.spine{
  display:grid;grid-template-columns:1fr 1fr;
  gap:0;border-top:1px solid var(--hair);
}
.spine article{
  padding:30px 28px 34px 0;border-bottom:1px solid var(--hair);
}
.spine article:nth-child(odd){border-right:1px solid var(--hair);padding-right:34px}
.spine article:nth-child(even){padding-left:34px;padding-right:0}
.spine h3{margin-bottom:10px}
.spine h3 .num{
  font-family:var(--sans);font-size:.68rem;font-weight:600;color:var(--mut);
  letter-spacing:.14em;margin-right:10px;
  display:inline-block;padding:4px 9px;vertical-align:middle;transform:translateY(-2px);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 22' preserveAspectRatio='none'%3E%3Cpath d='M15 2C23 1.8 28.5 5.5 28.3 11c-.2 5.5-6 9-13.5 9C7 20 1.6 16.4 1.8 10.9 2 5.6 7.5 2.2 15 2z' fill='none' stroke='%237c2f2a' stroke-width='1.3' opacity='.55'/%3E%3C/svg%3E") no-repeat center/100% 100%;
}
.spine p{color:var(--mut);font-size:.97rem;line-height:1.6}
@media (max-width:680px){
  .spine{grid-template-columns:1fr}
  .spine article:nth-child(odd){border-right:0;padding-right:0}
  .spine article:nth-child(even){padding-left:0}
}

/* ---------- venture rows ---------- */
.rows{list-style:none;border-top:1px solid var(--hair)}
.rows li{border-bottom:1px solid var(--hair)}
.vrow{
  display:grid;grid-template-columns:46px minmax(0,1fr) auto;
  gap:6px 16px;align-items:baseline;
  padding:22px 14px 24px;margin:0 -14px;
  border-radius:3px;
  transition:background-color .3s ease;
}
.rows li:hover .vrow{background:var(--wash)}
.vicon{grid-column:1;grid-row:1 / span 3;align-self:start;padding-top:6px}
.vicon .doodle{width:30px;height:30px}
.rows li:hover .doodle,
.inv-list li:hover .doodle,
.essays li:hover .doodle{color:var(--accent);transform:rotate(-6deg)}
.vname{grid-column:2}
.vrow .vyears{grid-column:3}
.vrow .vrole,.vrow .vdesc{grid-column:2 / -1}
.vname{
  font-family:var(--serif);font-size:var(--h3);line-height:1.25;color:var(--ink);
}
.vname .u{
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0% 1px;background-repeat:no-repeat;background-position:0 100%;
  transition:background-size .4s cubic-bezier(.22,1,.36,1);
  padding-bottom:2px;
}
.rows li:hover .vname .u{background-size:100% 1px}
.vname a{color:inherit;border-bottom:none}
.vname a:hover{color:var(--accent)}
.vname .arrow{
  display:inline-block;font-family:var(--sans);font-size:.78em;color:var(--accent);
  transform:translate(0,0);transition:transform .3s ease;margin-left:.3em;
}
.rows li:hover .vname .arrow{transform:translate(3px,-3px)}
.vyears{
  font-family:var(--sans);font-size:.78rem;letter-spacing:.1em;color:var(--faint);
  text-align:right;white-space:nowrap;
}
.vdesc{grid-column:1 / -1;color:var(--mut);font-size:.96rem;line-height:1.6;max-width:66ch}
.vrole{
  font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);grid-column:1 / -1;margin-top:2px;
}
.earlier{
  color:var(--faint);font-size:.9rem;margin-top:26px;font-style:italic;
  font-family:var(--serif);
}
@media (max-width:560px){
  .vrow{grid-template-columns:40px 1fr}
  .vrow .vyears{grid-column:2;text-align:left}
  .vicon .doodle{width:26px;height:26px}
}

/* ---------- investing ---------- */
.inv-list{list-style:none;border-top:1px solid var(--hair)}
.inv-list li{
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  padding:16px 14px;margin:0 -14px;border-bottom:1px solid var(--hair);
  border-radius:3px;transition:background-color .3s ease;flex-wrap:wrap;
}
.inv-list li:hover{background:var(--wash)}
.inv-left{display:flex;align-items:center;gap:14px;min-width:0}
.inv-left .doodle{width:24px;height:24px}
.inv-name{font-family:var(--serif);font-size:1.2rem}
.inv-out{font-size:.88rem;color:var(--mut);letter-spacing:.02em}
.inv-out b{color:var(--ink);font-weight:600}
.inv-note{margin-top:26px;color:var(--mut);font-size:.96rem;max-width:60ch}

/* ---------- teaching ---------- */
.courses{display:grid;grid-template-columns:1fr 1fr;gap:28px;border-top:1px solid var(--hair);padding-top:34px}
.courses article .doodle{width:30px;height:30px;display:block;margin-bottom:14px;color:var(--mut)}
.courses article:hover .doodle{color:var(--accent);transform:rotate(-6deg)}
.courses article h3{margin-bottom:10px;font-style:italic}
.courses article .level{
  font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);display:block;margin-bottom:12px;font-style:normal;
}
.courses p{color:var(--mut);font-size:.96rem;line-height:1.6}
@media (max-width:680px){.courses{grid-template-columns:1fr}}

/* ---------- writing ---------- */
.essays{list-style:none;border-top:1px solid var(--hair)}
.essays li{
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  padding:20px 14px;margin:0 -14px;border-bottom:1px solid var(--hair);
  border-radius:3px;transition:background-color .3s ease;flex-wrap:wrap;
}
.essays li:hover{background:var(--wash)}
.essay-left{display:flex;align-items:center;gap:14px;min-width:0}
.essay-left .doodle{width:24px;height:24px}
.essay-title{font-family:var(--serif);font-size:1.25rem;line-height:1.3}
.essays li:hover .essay-title{color:var(--accent)}
.essay-src{font-family:var(--sans);font-size:.78rem;letter-spacing:.1em;color:var(--faint);white-space:nowrap}
.writing-note{margin-top:26px;color:var(--mut);font-size:.96rem;max-width:60ch}

/* ---------- about ---------- */
.about-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:48px;border-top:1px solid var(--hair);padding-top:36px}
.about-grid .bio p{color:var(--mut);font-size:.98rem;line-height:1.65;margin-bottom:18px}
.about-grid .bio p:last-child{margin-bottom:0}
.links h3{font-size:1.05rem;margin-bottom:16px;display:flex;align-items:center;gap:10px}
.links h3 .doodle{width:17px;height:17px;color:var(--accent);opacity:.8}
.links ul{list-style:none}
.links li{padding:9px 0;border-bottom:1px solid var(--hair);font-size:.92rem}
.links li:first-child{border-top:1px solid var(--hair)}
.links li span.lbl{color:var(--faint);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;display:inline-block;width:86px}
@media (max-width:680px){.about-grid{grid-template-columns:1fr}}

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--hair);margin-top:var(--sec-pad)}
.foot{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;
  padding-top:30px;padding-bottom:44px;
}
.foot .sig{font-family:var(--serif);font-size:1rem;color:var(--mut);display:flex;align-items:center;gap:13px}
.foot .sig .doodle{width:30px;height:30px;color:var(--faint)}
.foot .sig:hover .doodle{color:var(--accent)}
.foot{align-items:flex-start}
.foot .fine{font-size:.78rem;color:var(--faint);letter-spacing:.04em;text-align:right;line-height:1.7}
.foot .fine a{color:var(--faint);border-bottom-color:var(--hair)}
.foot .fine a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.foot .credit{font-size:.7rem;opacity:.85;display:inline-block;margin-top:2px}
@media (max-width:560px){.foot .fine{text-align:left}}

/* ---------- scroll reveal ---------- */
.js:not(.static) .rv{
  opacity:0;transform:translateY(16px);
  transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1);
  transition-delay:var(--d,0s);
}
.js:not(.static) .rv.on{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .js .rv{opacity:1 !important;transform:none !important;transition:none !important}
  .js .roles .role,.js .roles .sep,.js .hero-rule{animation:none !important;opacity:1 !important;transform:none !important;filter:none !important}
  .js .h1-scribble path{animation:none !important;stroke-dashoffset:0 !important}
  .js .hero-portrait{animation:none !important;opacity:1 !important;transform:none !important}
  .js .hero-eyebrow .dot{animation:none !important;box-shadow:none !important}
  .doodle,.brand .mark svg.ring{transition:none !important}
}
.static .rv{opacity:1;transform:none}

/* ---------- storyboard ribbon ---------- */
.ribbon{
  position:fixed;left:12px;bottom:12px;top:auto;z-index:998;
  font:500 .68rem/1 var(--sans);letter-spacing:.08em;
  color:var(--mut);background:rgba(250,249,246,.9);
  border:1px solid var(--hair);border-radius:4px;
  padding:6px 10px;pointer-events:none;
}
.ribbon b{letter-spacing:.14em}



/* ===== production additions (siblings + go-live layers) ===== */
body{padding-bottom:46px}          /* clear the fixed disclaimer strip */
.portrait-frame a.portrait-link{display:block;width:100%;height:100%;border-bottom:none}
.hero-portrait .portrait-frame{cursor:pointer}
.vname a .arrow{margin-left:.28em}
.inv-name a{color:inherit;border-bottom:none}
.inv-list li:hover .inv-name a{color:var(--accent)}
.inv-out a{color:var(--mut);border-bottom:1px solid rgba(124,47,42,.28)}
.inv-out a:hover{color:var(--accent);border-bottom-color:var(--accent)}
.inv-out a b{color:inherit}
.vdesc a{color:var(--accent);border-bottom:1px solid rgba(124,47,42,.3)}
.more{margin-top:26px;font-size:.96rem}
.more a{color:var(--accent);font-family:var(--sans);border-bottom:1px solid rgba(124,47,42,.3)}
.more a:hover{border-bottom-color:var(--accent)}

/* sibling page hero */
.page-hero{padding-top:calc(var(--sec-pad)*.6);padding-bottom:0}
.page-hero .kicker{margin-bottom:16px}
.page-hero h1{font-size:var(--h2);margin-bottom:14px}
.page-hero .lede{color:var(--mut);max-width:60ch;font-size:1.06rem;line-height:1.6}
.backhome{margin:0 0 6px;font-size:.8rem;letter-spacing:.04em}
.backhome a{color:var(--faint);font-family:var(--sans);border-bottom:none}
.backhome a:hover{color:var(--accent)}
.prose p{color:var(--mut);font-size:1rem;line-height:1.66;margin-bottom:18px;max-width:64ch}
.prose p:last-child{margin-bottom:0}
.prose a{color:var(--accent);border-bottom:1px solid rgba(124,47,42,.3)}
.subhead{font-family:var(--serif);font-size:var(--h3);margin:0 0 16px}
.studio-list{list-style:none;display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:6px}
.studio-list li{font-family:var(--sans);font-size:.86rem;letter-spacing:.02em;color:var(--mut);
  border:1px solid var(--hair);border-radius:999px;padding:7px 14px;background:var(--wash)}
.pubs{list-style:none;display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:8px}
.pubs li{font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--mut);
  border-bottom:1px solid var(--hair);padding-bottom:2px}
.cross{border-top:1px solid var(--hair);margin-top:clamp(48px,7vw,80px);padding-top:26px;
  display:flex;flex-wrap:wrap;gap:8px 22px;font-family:var(--sans);font-size:.9rem}
.cross a{color:var(--mut);border-bottom:none}
.cross a:hover{color:var(--accent)}
nav.prime a.active{color:var(--ink);background-size:100% 7px}

/* ===== disclaimer strip ===== */
.varv-disclaim{position:fixed;left:0;right:0;bottom:0;z-index:900;
  background:rgba(26,26,26,.92);color:#faf9f6;
  font-family:var(--sans);font-size:11.5px;line-height:1.45;letter-spacing:.01em;
  padding:8px 16px;text-align:center;
  -webkit-backdrop-filter:saturate(1.1) blur(6px);backdrop-filter:saturate(1.1) blur(6px);
  border-top:1px solid rgba(250,249,246,.16)}
.varv-disclaim a{color:#faf9f6;border-bottom:1px solid rgba(250,249,246,.4)}
.varv-disclaim a:hover{border-bottom-color:#faf9f6}
@media (max-width:520px){.varv-disclaim{font-size:11px;padding:7px 12px}}


/* ===== Keep Pivoting popup ===== */

  /* Default resting state = HIDDEN & static. The visible state lives only under
     #varv-popup.is-open, so headless/static renders are deterministic. */
  #varv-popup{
    position:fixed;
    right:20px; bottom:20px;
    z-index:2147483000;              /* above content + disclaimer strip, below nothing of ours */
    width:340px; max-width:calc(100vw - 32px);
    box-sizing:border-box;
    opacity:0; visibility:hidden; pointer-events:none;
    transform:translateY(14px);
    /* neutral, palette-aware surface — sits on light or dark pages */
    color:#14151a;
    background:rgba(252,252,251,.94);
    -webkit-backdrop-filter:saturate(1.1) blur(8px); backdrop-filter:saturate(1.1) blur(8px);
    border:1px solid rgba(20,21,26,.14);
    border-radius:16px;
    box-shadow:0 18px 50px -12px rgba(15,16,20,.34), 0 2px 8px -2px rgba(15,16,20,.18);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow:hidden;
  }
  /* subtle slide + fade — the ONLY motion, and it is transition-based (no rAF) */
  #varv-popup.is-open{
    opacity:1; visibility:visible; pointer-events:auto;
    transform:translateY(0);
    transition:opacity .5s ease, transform .5s cubic-bezier(.22,.61,.36,1);
  }
  /* STATIC MODE: snap, never animate */
  #varv-popup.varv-static{ transition:none !important; }
  #varv-popup.varv-static.is-open{ transition:none !important; }
  @media (prefers-reduced-motion:reduce){
    #varv-popup, #varv-popup.is-open{ transition:none !important; }
  }

  #varv-popup .vp-inner{ padding:14px 14px 16px; }

  /* --- (1) video --- */
  #varv-popup .vp-media{
    position:relative; margin:0 0 12px;
    border-radius:11px; overflow:hidden;
    background:rgba(20,21,26,.06);
    aspect-ratio:16/10;
  }
  #varv-popup .vp-media video{
    display:block; width:100%; height:100%;
    object-fit:cover; cursor:pointer; background:#0c0d10;
  }
  #varv-popup .vp-unmute{
    position:absolute; left:8px; bottom:8px;
    display:inline-flex; align-items:center; gap:5px;
    padding:5px 9px; border-radius:999px;
    font-size:11px; font-weight:600; letter-spacing:.01em;
    color:#fff; background:rgba(12,13,16,.62);
    -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
    cursor:pointer; user-select:none; border:0;
  }
  #varv-popup .vp-unmute[hidden]{ display:none; }

  /* --- (2) tagline --- */
  #varv-popup .vp-tag{
    margin:0 2px 12px; font-size:14px; line-height:1.4; font-weight:560;
    letter-spacing:-.005em; color:inherit;
  }

  /* --- (3) three AI launch buttons --- */
  #varv-popup .vp-ai{ display:grid; gap:7px; margin:0 0 11px; }
  #varv-popup .vp-ai a{
    display:flex; align-items:center; justify-content:center; gap:8px;
    text-decoration:none; text-align:center;
    padding:10px 12px; border-radius:10px;
    font-size:13px; font-weight:600; letter-spacing:-.005em;
    color:inherit;
    background:rgba(20,21,26,.035);
    border:1px solid rgba(20,21,26,.16);
    transition:background .15s ease, border-color .15s ease, transform .05s ease;
  }
  #varv-popup .vp-ai a:hover{ background:rgba(20,21,26,.075); border-color:rgba(20,21,26,.3); }
  #varv-popup .vp-ai a:active{ transform:translateY(.5px); }
  #varv-popup.varv-static .vp-ai a{ transition:none; }
  #varv-popup .vp-ai .vp-dot{ width:7px; height:7px; border-radius:50%; flex:none; }

  /* --- (4) primary book CTA (north star) --- */
  #varv-popup .vp-book{
    display:flex; align-items:center; justify-content:center; gap:6px;
    text-decoration:none; text-align:center;
    padding:12px 14px; border-radius:11px;
    font-size:14px; font-weight:700; letter-spacing:-.01em;
    color:#fcfcfb; background:#14151a;
    border:1px solid #14151a;
    transition:opacity .15s ease, transform .05s ease;
  }
  #varv-popup .vp-book:hover{ opacity:.9; }
  #varv-popup .vp-book:active{ transform:translateY(.5px); }
  #varv-popup.varv-static .vp-book{ transition:none; }

  /* --- close (X) --- */
  #varv-popup .vp-close{
    position:absolute; top:8px; right:8px; z-index:2;
    width:28px; height:28px; padding:0;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%; cursor:pointer;
    color:#fff; background:rgba(12,13,16,.5);
    border:0; font-size:15px; line-height:1;
  }
  #varv-popup .vp-close:hover{ background:rgba(12,13,16,.72); }

  #varv-popup a:focus-visible,
  #varv-popup button:focus-visible,
  #varv-popup video:focus-visible{
    outline:2px solid #4f7cff; outline-offset:2px;
  }

  /* --- dark-page adaptation --- */
  @media (prefers-color-scheme:dark){
    #varv-popup{
      color:#f2f3f5;
      background:rgba(24,25,29,.92);
      border-color:rgba(255,255,255,.14);
      box-shadow:0 18px 50px -12px rgba(0,0,0,.6), 0 2px 8px -2px rgba(0,0,0,.4);
    }
    #varv-popup .vp-media{ background:rgba(255,255,255,.05); }
    #varv-popup .vp-ai a{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.18); }
    #varv-popup .vp-ai a:hover{ background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.34); }
    #varv-popup .vp-book{ color:#14151a; background:#f2f3f5; border-color:#f2f3f5; }
  }

  @media (max-width:400px){
    #varv-popup{ right:12px; left:12px; bottom:12px; width:auto; }
  }
