/* ============================================================================
   CANDY WRAPPER — "A LETTER FROM DORIAN" PAGE (layers on top of styles.css)
   Reuses ALL brand tokens + atoms from styles.css (palette, gradients, .btn,
   .rise, nav, footer). This file only adds the letter-specific furniture: the
   warm paper, the portrait + signature, the typeset letter body, the pop chips.
   Self-contained, no build, no deps.
   ========================================================================== */

/* ---- warm header / hero ---- */
#letter-hero{padding:64px 0 8px;position:relative;text-align:center}
#letter-hero .hero-head{max-width:760px;margin:0 auto}
#letter-hero h1{font-size:clamp(32px,5.4vw,56px);margin:18px 0 0;line-height:1.04}
#letter-hero .sub{margin:14px auto 0;font-family:var(--font-mono);font-size:clamp(13px,1.5vw,15px);
  letter-spacing:.04em;color:var(--ink-3);max-width:54ch}
#letter-hero .sub b{color:var(--grape)}

/* a warm kicker — orange/yellow, Dorian's accent, vs the page's pink default */
.kicker.warm{color:#b3601a;background:var(--orange-soft);border-color:#ffe0b8}

/* ---- the letter card: a real piece of premium stationery ---- */
.letter-wrap{max-width:760px;margin:38px auto 0;padding:0 20px}
.letter{position:relative;background:
    linear-gradient(180deg,#fffdfa,#fffaf4 60%,#fff8fc);
  border:1px solid var(--line);border-radius:var(--r-xl);
  box-shadow:var(--sh-lg);overflow:hidden;
  padding:clamp(30px,5vw,62px) clamp(24px,5vw,68px) clamp(34px,5vw,56px)}
/* soft candy caustics bleeding in from the corners of the paper */
.letter .glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.34;pointer-events:none;z-index:0}
.letter .glow.a{width:300px;height:300px;left:-90px;top:-110px;background:var(--orange);animation:drift 14s ease-in-out infinite}
.letter .glow.b{width:320px;height:320px;right:-110px;bottom:-130px;background:var(--pink);animation:drift 17s ease-in-out infinite reverse}
/* a faint gold rule down the binding edge, like letterhead */
.letter::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;
  background:var(--grad-warm);opacity:.9}
.letter>*{position:relative;z-index:1}

/* ---- letterhead: portrait + who this is from ---- */
.lhead{display:flex;align-items:center;gap:18px;padding-bottom:22px;margin-bottom:8px;
  border-bottom:1px solid var(--line)}
.lportrait{position:relative;width:84px;height:84px;flex:none}
.lportrait::after{content:"";position:absolute;inset:-7px;border-radius:50%;z-index:-1;
  background:var(--grad-warm);opacity:.20;filter:blur(10px)}
.lportrait img{width:84px;height:84px;border-radius:50%;background:#fff;border:3px solid #fff;
  box-shadow:0 12px 26px -12px rgba(255,159,67,.6),0 0 0 2px var(--orange) inset;object-fit:cover}
/* a little "the only one you talk to" badge clipped to the portrait */
.lportrait .lbadge{position:absolute;right:-6px;bottom:-6px;font-size:16px;background:#fff;
  border:2px solid #fff;border-radius:var(--r-pill);box-shadow:var(--sh-sm);width:30px;height:30px;
  display:flex;align-items:center;justify-content:center}
.lwho .nm{font-size:22px;font-weight:800;color:var(--ink-1);line-height:1.1;letter-spacing:-.01em}
.lwho .role{margin-top:4px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;font-weight:700;color:#b3601a}
.lwho .role .dim{color:var(--ink-faint)}
.lstamp{margin-left:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:7px;
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.05em;color:var(--ink-3);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);padding:6px 12px;white-space:nowrap}
@media(max-width:560px){.lstamp{display:none}}

/* ---- the letter body: serif, generous, readable line-length ---- */
.lbody{font-family:"New York","Iowan Old Style","Palatino Linotype",Georgia,"Times New Roman",serif;
  color:#2a2342;font-size:clamp(17px,1.85vw,20px);line-height:1.78;letter-spacing:.002em;
  max-width:60ch;margin:26px auto 0}
.lbody p{margin:0 0 1.05em}
.lbody p:last-of-type{margin-bottom:0}
/* the opening line — a touch larger, warmer, sets the tone */
.lbody .open{font-size:clamp(20px,2.3vw,25px);line-height:1.5;color:var(--ink-1);
  font-weight:600;margin-bottom:1.1em}
.lbody .open .grad{background:var(--grad-warm);-webkit-background-clip:text;background-clip:text;color:transparent}
/* emphasis inside the prose — bold reads as warm plum, not flat black */
.lbody b,.lbody strong{color:var(--ink-1);font-weight:700}
.lbody i,.lbody em{font-style:italic}

/* the marquee phrases — let them POP without breaking the letter's flow */
.pop{font-style:normal;font-weight:700;background:var(--grad-text);
  -webkit-background-clip:text;background-clip:text;color:transparent;white-space:nowrap}
.pop.warm{background:var(--grad-warm);-webkit-background-clip:text;background-clip:text;color:transparent}
@media(max-width:480px){.pop{white-space:normal}}

/* ---- the signature block ---- */
.lsign{margin:34px auto 0;max-width:60ch;padding-top:22px;border-top:1px solid var(--line)}
.lsign .smark{font-family:"Snell Roundhand","Apple Chancery","Brush Script MT",cursive;
  font-size:clamp(40px,6vw,58px);line-height:.9;color:var(--ink-1);
  background:var(--grad-warm);-webkit-background-clip:text;background-clip:text;color:transparent;
  display:inline-block;transform:rotate(-3deg);padding:6px 4px}
.lsign .scap{margin-top:8px;font-size:14.5px;color:var(--ink-2);font-family:var(--font-ui)}
.lsign .scap b{color:var(--ink-1)}

/* ---- "the magic, named" — the three marquee phrases pulled out as cards ---- */
.named{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:46px;text-align:left}
@media(max-width:760px){.named{grid-template-columns:1fr;max-width:480px;margin-left:auto;margin-right:auto}}
.ncard{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:22px 20px;box-shadow:var(--sh-sm);transition:var(--med);overflow:hidden}
.ncard:hover{transform:translateY(-5px);box-shadow:var(--sh-md);border-color:var(--line-2)}
.ncard::before{content:"";position:absolute;left:0;right:0;top:0;height:80px;pointer-events:none;
  background:linear-gradient(180deg,var(--nc-soft,var(--grape-soft)),transparent);opacity:.9}
.ncard>*{position:relative;z-index:1}
.ncard .nic{font-size:26px;line-height:1}
.ncard h3{margin-top:12px;font-size:17px;line-height:1.2;color:var(--ink-1)}
.ncard h3 .grad{background:var(--nc-grad,var(--grad-text));-webkit-background-clip:text;background-clip:text;color:transparent}
.ncard p{margin-top:8px;font-size:13.5px;color:var(--ink-2);line-height:1.6}
.ncard[data-accent="grape"] {--nc-soft:var(--grape-soft); --nc-grad:var(--grad-candy)}
.ncard[data-accent="orange"]{--nc-soft:var(--orange-soft);--nc-grad:var(--grad-warm)}
.ncard[data-accent="blue"]  {--nc-soft:var(--blue-soft);  --nc-grad:linear-gradient(120deg,#4c8dff,#34e5c4)}

/* the climb chips under the cards — V-Suite → Mogul ladder, compact */
.ladder{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:30px}
.rung{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:12px;
  letter-spacing:.02em;font-weight:700;color:var(--ink-2);background:#fff;border:1px solid var(--line);
  border-radius:var(--r-pill);padding:8px 14px;box-shadow:var(--sh-sm)}
.rung b{color:var(--ink-1)}
.rung .em{font-size:14px}
.ladder .arr{color:var(--ink-faint);font-family:var(--font-mono);font-size:13px;font-weight:700}

/* reduced motion — let the paper rest, kill the drifting caustics */
@media(prefers-reduced-motion:reduce){
  .letter .glow{animation:none}
}
