/* =============================================================================
   SECOND BELL — "The Broadsheet"
   A warm, editorial, school-newspaper take on a teacher's desk.
   Palette pulled from the desk photo: cream paper, mahogany, brass, and a
   single schoolhouse red for every action and every red-pen mark.
   ----------------------------------------------------------------------------
   Type:  Fraunces (display, self-hosted) · Source Sans 3 (body, self-hosted)
          Caveat (hand, self-hosted)       · Space Mono (ledger/PA, Google)
   ========================================================================== */

/* ---------- self-hosted variable fonts ---------- */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/fraunces.woff2') format('woff2');}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:100 900;font-display:swap;src:url('assets/fonts/fraunces-italic.woff2') format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:200 900;font-display:swap;src:url('assets/fonts/sourcesans3.woff2') format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:italic;font-weight:200 900;font-display:swap;src:url('assets/fonts/sourcesans3-italic.woff2') format('woff2');}
@font-face{font-family:'Caveat';font-style:normal;font-weight:400 700;font-display:swap;src:url('assets/fonts/caveat.woff2') format('woff2');}

/* =============================================================================
   TOKENS
   ========================================================================== */
:root{
  /* paper / cream */
  --paper:      #f3eada;
  --paper-2:    #ece0cb;
  --paper-3:    #e0d1b8;
  --cream:      #fbf6ec;

  /* wood / espresso — the dark feature surfaces */
  --wood-900:   #1d0e07;
  --wood-800:   #2a160d;
  --wood-700:   #3a2014;
  --wood-600:   #532e1c;

  /* ink — text */
  --ink:        #2b1c12;
  --ink-soft:   #6a5746;
  --ink-faint:  #9b876f;
  --on-wood:    #f6ecdb;
  --on-wood-soft:#d7c3a6;

  /* brass + metals */
  --brass:      #b9843e;
  --brass-bright:#dcb05c;
  --brass-deep: #8a5f2a;

  /* schoolhouse red — the single action color */
  --red:        #b23a2a;
  --red-bright: #cc4836;
  --red-deep:   #8c2c1f;

  /* hairlines */
  --line:       rgba(43,28,18,.18);
  --line-soft:  rgba(43,28,18,.10);

  /* type */
  --display: 'Fraunces','Iowan Old Style',Georgia,serif;
  --body:    'Source Sans 3',system-ui,-apple-system,sans-serif;
  --hand:    'Caveat','Bradley Hand',cursive;
  --mono:    'Space Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;

  /* rhythm */
  --maxw: 1180px;
  --gutter: clamp(20px,5vw,56px);
  --radius: 4px;

  /* tactile letterpress shadow (warm) */
  --press:    5px 5px 0 var(--ink);
  --press-lg: 7px 7px 0 var(--ink);
  --shadow-sm: 0 1px 2px rgba(29,14,7,.08), 0 3px 8px rgba(29,14,7,.07);
  --shadow-md: 0 6px 16px rgba(29,14,7,.12), 0 18px 40px rgba(29,14,7,.14);
}

/* evening mode — pull the lamp chain to dim the room */
[data-theme="night"]{
  --paper:   #271a12;
  --paper-2: #2f2016;
  --paper-3: #3a281b;
  --cream:   #2c1e14;
  --ink:     #f0e2cd;
  --ink-soft:#c6ad8d;
  --ink-faint:#9a8166;
  --line:    rgba(240,226,205,.16);
  --line-soft:rgba(240,226,205,.08);
  --press:   5px 5px 0 #100804;
  --press-lg:7px 7px 0 #100804;
  --brass-deep:#b98a44;
}

/* =============================================================================
   BASE
   ========================================================================== */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-padding-top:88px;}
body{
  margin:0;font-family:var(--body);color:var(--ink);background:var(--paper);
  font-size:18px;line-height:1.65;overflow-x:hidden;
  transition:background .5s ease,color .5s ease;
}
img{max-width:100%;display:block;}
a{color:inherit;}
button{font-family:inherit;cursor:pointer;color:inherit;}
::selection{background:var(--red);color:var(--on-wood);}
:focus-visible{outline:3px solid var(--brass);outline-offset:3px;border-radius:2px;}
h1,h2,h3,h4{
  font-family:var(--display);font-weight:600;line-height:1.04;letter-spacing:-.014em;margin:0;
  font-optical-sizing:auto;font-variation-settings:"SOFT" 30;text-wrap:balance;
}
p{text-wrap:pretty;margin:0;}

/* =============================================================================
   LAYOUT HELPERS
   ========================================================================== */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);}
.wrap>*{min-width:0;}
.section{position:relative;padding:clamp(64px,9vw,128px) 0;}
.section.tight{padding:clamp(48px,6vw,84px) 0;}

/* paper grain — laid over light sections */
.grain::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;mix-blend-mode:multiply;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
}
[data-theme="night"] .grain::before{mix-blend-mode:screen;opacity:.03;}

.cream-bg{background:var(--cream);}
.deep-bg{background:var(--wood-900);color:var(--on-wood);}

/* the broadsheet double rule */
.rule{height:0;border:0;border-top:3px double var(--ink);opacity:.55;margin:0;}

/* =============================================================================
   SHARED EDITORIAL BITS
   ========================================================================== */
.kicker{
  font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--red);
}
.kicker::before{content:"";width:26px;height:2px;background:currentColor;display:inline-block;vertical-align:middle;margin-right:10px;margin-bottom:3px;}
.kicker.on-dark{color:var(--brass-bright);}
.kicker.center{display:block;text-align:center;}

.hand{font-family:var(--hand);font-weight:600;color:var(--red);line-height:1;}

.sec-head{max-width:760px;}
.sec-head .display{font-size:clamp(30px,5vw,54px);margin-top:14px;}
.sec-head .lead{margin-top:20px;}
.lead{font-size:clamp(18px,2vw,22px);color:var(--ink-soft);line-height:1.6;}

/* a struck-through word (the red pen) */
.strike{position:relative;white-space:nowrap;}
.strike::after{
  content:"";position:absolute;left:-2%;right:-2%;top:54%;height:3px;background:var(--red);
  border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.7,.2,1);
}
.in .strike::after,.strike.go::after{transform:scaleX(1);}

/* hand-drawn ink annotations (circle / underline) drawn on scroll */
.annot{position:relative;display:inline-block;}
.annot .ink{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:128%;height:150%;
  color:var(--red);pointer-events:none;overflow:visible;}
.annot.annot-underline .ink{top:auto;bottom:-12px;transform:translateX(-50%);height:18px;width:108%;}
.annot .ink path{stroke-dasharray:1;stroke-dashoffset:1;}
.annot.drawn .ink path{animation:inkDraw 1s ease forwards;}
@keyframes inkDraw{to{stroke-dashoffset:0;}}

/* =============================================================================
   BUTTONS
   ========================================================================== */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--red);color:var(--on-wood);
  font-family:var(--display);font-weight:600;font-size:16px;letter-spacing:.005em;
  padding:14px 24px;border:none;border-radius:var(--radius);text-decoration:none;white-space:nowrap;
  box-shadow:0 2px 0 var(--red-deep),var(--shadow-sm);
  transition:transform .14s ease,box-shadow .14s ease,background .2s ease;
}
.btn:hover{transform:translateY(-2px);background:var(--red-bright);box-shadow:0 4px 0 var(--red-deep),var(--shadow-md);}
.btn:active{transform:translateY(1px);box-shadow:0 1px 0 var(--red-deep);}
.btn .arr{transition:transform .2s ease;}
.btn:hover .arr{transform:translateX(4px);}

.btn.ghost{background:transparent;color:var(--ink);border:1.6px solid var(--line);box-shadow:none;}
.btn.ghost:hover{background:rgba(43,28,18,.05);border-color:var(--ink);transform:translateY(-2px);box-shadow:none;}
.btn.on-dark{color:var(--on-wood);border-color:rgba(246,236,219,.32);}
.btn.on-dark:hover{background:rgba(246,236,219,.08);border-color:var(--brass-bright);}
.btn.lg{font-size:18px;padding:17px 30px;}

/* =============================================================================
   MASTHEAD / NAV
   ========================================================================== */
.masthead{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:blur(10px) saturate(1.1);border-bottom:1px solid var(--line);}
.masthead-inner{max-width:var(--maxw);margin:0 auto;padding:12px var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:18px;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);}
.brand-mark{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;
  background:var(--wood-900);border-radius:9px;color:var(--brass-bright);box-shadow:var(--shadow-sm);}
.brand-mark svg{width:22px;height:22px;}
.brand-name{display:flex;flex-direction:column;line-height:.96;}
.brand-name b{font-family:var(--display);font-weight:700;font-size:21px;letter-spacing:-.02em;}
.brand-name small{font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin-top:3px;}
.nav-links{display:flex;align-items:center;gap:24px;}
.nav-links a{font-family:var(--body);font-weight:600;font-size:15px;text-decoration:none;color:var(--ink-soft);
  transition:color .15s ease;position:relative;}
.nav-links a:hover{color:var(--ink);}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:var(--red);
  transform:scaleX(0);transform-origin:left;transition:transform .2s ease;}
.nav-links a:hover::after{transform:scaleX(1);}
.nav-cta{display:flex;align-items:center;gap:14px;}
.nav-pill{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11.5px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);
  border:1px solid var(--line);border-radius:999px;padding:7px 13px;text-decoration:none;background:var(--cream);}
.nav-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 var(--red);animation:pulse 2.4s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(178,58,42,.5);}70%{box-shadow:0 0 0 7px rgba(178,58,42,0);}100%{box-shadow:0 0 0 0 rgba(178,58,42,0);}}
.nav-toggle{display:none;background:none;border:1.5px solid var(--line);border-radius:8px;padding:9px;}
.nav-toggle svg{width:20px;height:20px;display:block;}

/* =============================================================================
   PA ANNOUNCEMENT MARQUEE
   ========================================================================== */
.pa{background:var(--wood-900);color:var(--on-wood);overflow:hidden;
  border-top:2px solid var(--wood-900);border-bottom:2px solid var(--brass-deep);}
.pa-track{display:flex;width:max-content;animation:marquee 34s linear infinite;
  font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;padding:11px 0;}
.pa-track span{display:inline-flex;align-items:center;}
.pa-track .star{color:var(--brass-bright);margin:0 .9em;}
.pa-track .ding{color:var(--red-bright);margin:0 .9em;}
.pa:hover .pa-track{animation-play-state:paused;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* =============================================================================
   HERO
   ========================================================================== */
.hero{position:relative;background:var(--wood-900);color:var(--on-wood);overflow:hidden;isolation:isolate;}
.hero-photo{position:absolute;top:-9%;left:0;right:0;height:118%;z-index:0;will-change:transform;
  background-image:image-set(url('assets/desk-hero.avif') type('image/avif'),url('assets/desk-hero.jpg') type('image/jpeg'));
  background-size:cover;background-position:center 38%;}
.hero-photo::after{content:"";position:absolute;inset:0;
  background:
    radial-gradient(120% 90% at 28% 28%,rgba(29,14,7,.18),rgba(29,14,7,.72) 70%,rgba(29,14,7,.92)),
    linear-gradient(180deg,rgba(29,14,7,.55),rgba(29,14,7,.35) 30%,rgba(29,14,7,.8));}
.hero-glow{position:absolute;z-index:1;width:60vw;height:60vw;max-width:680px;max-height:680px;
  left:18%;top:6%;background:radial-gradient(circle,rgba(220,176,92,.22),transparent 62%);pointer-events:none;
  filter:blur(8px);}
.hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:clamp(40px,7vw,84px) var(--gutter) clamp(48px,7vw,92px);}
.hero-edition{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--on-wood-soft);border-bottom:1px solid rgba(246,236,219,.18);
  padding-bottom:14px;margin-bottom:clamp(30px,6vw,56px);}
.hero-edition .e-sep{opacity:.4;}
.hero-edition .e-red{color:var(--brass-bright);}
.hero-grid{display:grid;grid-template-columns:1.32fr .68fr;gap:clamp(28px,4vw,56px);align-items:center;}
.hero-eyebrow{color:var(--brass-bright);}
.hero-eyebrow::before{background:var(--brass-bright);}
.hero h1{font-size:clamp(44px,8vw,92px);font-weight:600;line-height:.98;letter-spacing:-.03em;margin:22px 0 0;}
.hero h1 .em{font-style:italic;color:var(--brass-bright);}
.hero h1 .strike{color:var(--on-wood-soft);}
.hero h1 .strike::after{background:var(--red-bright);height:4px;}
.hero-sub{font-size:clamp(18px,2.1vw,22px);line-height:1.55;color:var(--on-wood-soft);max-width:36ch;margin:26px 0 0;}
.hero-sub b{color:var(--on-wood);font-weight:600;}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:34px;}
.hero-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:30px;font-family:var(--mono);
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--on-wood-soft);}
.hero-foot .star{color:var(--brass);}

/* the bell, centerpiece of the hero right column */
.hero-bell{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;}
.bell-stage{position:relative;display:grid;place-items:center;padding:14px;}
.bell-stage::before{content:"";position:absolute;width:128%;height:128%;border-radius:50%;
  background:radial-gradient(circle,rgba(220,176,92,.20),transparent 60%);}
.bell-note{font-family:var(--hand);font-size:23px;color:var(--brass-bright);line-height:1.1;max-width:15ch;}
.bell-note .u{text-decoration:underline;text-decoration-color:rgba(220,176,92,.5);text-underline-offset:3px;}

/* the ringable brass bell button (shared) */
.bell-btn{position:relative;background:none;border:none;padding:0;display:inline-grid;place-items:center;
  transform-origin:50% 8%;line-height:0;-webkit-tap-highlight-color:transparent;}
.bell-btn .bell-ico{display:block;width:100%;height:100%;filter:drop-shadow(0 14px 18px rgba(0,0,0,.45));}
.bell-btn .bell-ico img{width:100%;height:100%;object-fit:contain;}
.bell-btn:hover{transform:translateY(-2px) rotate(-1deg);}
.bell-btn.ringing{animation:bellShake .7s cubic-bezier(.36,.07,.19,.97);}
@keyframes bellShake{10%{transform:rotate(-9deg);}20%{transform:rotate(8deg);}35%{transform:rotate(-6deg);}
  50%{transform:rotate(5deg);}65%{transform:rotate(-3deg);}80%{transform:rotate(2deg);}100%{transform:rotate(0);}}
.bell-wave{position:absolute;left:50%;top:46%;width:40%;height:40%;border:2px solid var(--brass-bright);
  border-radius:50%;transform:translate(-50%,-50%) scale(.5);opacity:.7;pointer-events:none;
  animation:bellWave 1s ease-out forwards;}
@keyframes bellWave{to{transform:translate(-50%,-50%) scale(2.4);opacity:0;}}
.bell-toast{position:absolute;left:50%;bottom:-14px;transform:translateX(-50%);white-space:nowrap;
  font-family:var(--hand);font-size:21px;color:var(--red);animation:toast 2.6s ease forwards;pointer-events:none;}
[data-theme="night"] .bell-toast,.deep-bg .bell-toast{color:var(--brass-bright);}
@keyframes toast{0%{opacity:0;translate:0 6px;}14%{opacity:1;translate:0 0;}80%{opacity:1;}100%{opacity:0;translate:0 -10px;}}

/* founding-cohort ticket stub, pinned in the hero */
.ticket{position:relative;background:var(--cream);color:var(--ink);border-radius:6px;padding:16px 20px;
  box-shadow:var(--press),var(--shadow-md);transform:rotate(-1.5deg);max-width:260px;margin-top:8px;}
.ticket::before,.ticket::after{content:"";position:absolute;top:50%;width:18px;height:18px;border-radius:50%;
  background:var(--wood-900);transform:translateY(-50%);}
.ticket::before{left:-9px;}.ticket::after{right:-9px;}
.ticket .t-top{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);
  display:flex;justify-content:space-between;border-bottom:1px dashed var(--line);padding-bottom:8px;}
.ticket .t-row{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;}
.ticket .t-row b{font-family:var(--display);font-size:22px;}
.ticket .t-row span{font-family:var(--mono);font-size:12px;color:var(--red);}

/* =============================================================================
   PROBLEM — "Period Zero"
   ========================================================================== */
.problem{background:var(--paper);}
.problem .big{font-family:var(--display);font-size:clamp(26px,4.4vw,46px);font-weight:500;line-height:1.16;
  letter-spacing:-.018em;max-width:20ch;}
.problem .big .struck{position:relative;}
.problem .big .struck::after{content:"";position:absolute;left:-2%;right:-2%;top:55%;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .6s ease .2s;}
.problem.in .big .struck::after,.problem .big .struck.go::after{transform:scaleX(1);}
.problem .big .muted{color:var(--ink-faint);}
.problem .big .hl{background:linear-gradient(transparent 58%,rgba(220,176,92,.42) 58%);padding:0 .05em;}
.problem .turn{margin-top:26px;}
.problem-foot{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:end;margin-top:48px;}
.problem-note{position:relative;justify-self:end;text-align:right;}
.problem-note .pn-text{font-family:var(--hand);font-size:30px;color:var(--red);display:inline-block;transform:rotate(-3deg);}
.problem-note .pn-arrow{position:absolute;right:-6px;top:-78px;width:200px;height:100px;color:var(--red);}
.problem-note .pn-arrow path{stroke-dasharray:1;stroke-dashoffset:1;}
.problem.in .pn-arrow path{animation:inkDraw 1.1s ease .3s forwards;}

/* =============================================================================
   GUT-CHECK — "Is this for you?"
   ========================================================================== */
.checklist{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:42px;}
.check-card{background:var(--cream);border:1.5px solid var(--ink);border-radius:6px;padding:26px 28px;box-shadow:var(--press);position:relative;}
.check-card .cc-label{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:9px;}
.check-card.yes .cc-label{color:var(--red);}
.check-card.no .cc-label{color:var(--ink-faint);}
.check-list{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:14px;}
.check-list li{display:flex;gap:12px;align-items:flex-start;font-size:16.5px;line-height:1.45;color:var(--ink);}
.check-list li svg{flex:0 0 auto;margin-top:3px;}
.check-card.yes li svg{color:var(--red);}
.check-card.no li svg{color:var(--ink-faint);}
.cc-foot{margin-top:22px;padding-top:18px;border-top:1px dashed var(--line);font-size:15.5px;color:var(--ink-soft);}
.cc-foot b{color:var(--ink);}

/* =============================================================================
   COURSE CATALOG — "What you'll build" (lanes)
   ========================================================================== */
.lanes{background:var(--cream);}
.lanes-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;margin-top:44px;align-items:start;}
.lane-list{display:flex;flex-direction:column;gap:14px;}
.lane-card{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;text-align:left;width:100%;
  background:var(--paper);border:1.5px solid var(--ink);border-radius:6px;padding:18px 20px;
  box-shadow:3px 3px 0 var(--ink);transition:transform .14s ease,box-shadow .14s ease,background .2s ease;}
.lane-card:hover,.lane-card:focus-visible{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink);}
.lane-card.active{background:var(--wood-900);color:var(--on-wood);border-color:var(--wood-900);box-shadow:6px 6px 0 var(--brass-deep);}
.lane-n{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--brass-deep);letter-spacing:.05em;}
.lane-card.active .lane-n{color:var(--brass-bright);}
.lane-main h3{font-size:clamp(19px,2.2vw,23px);}
.lane-sub{display:block;font-family:var(--body);font-size:14.5px;line-height:1.4;color:var(--ink-soft);margin-top:5px;font-weight:400;}
.lane-card.active .lane-sub{color:var(--on-wood-soft);}
.lane-tag{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:5px 10px;color:var(--ink-soft);}
.lane-card.active .lane-tag{border-color:rgba(220,176,92,.5);color:var(--brass-bright);}

.lane-detail{position:sticky;top:104px;background:var(--wood-900);color:var(--on-wood);border-radius:8px;
  padding:34px 32px;box-shadow:var(--press-lg),var(--shadow-md);overflow:hidden;min-height:300px;}
.lane-detail::before{content:"";position:absolute;top:-40px;right:-40px;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(220,176,92,.18),transparent 65%);}
.ld-label{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-bright);}
.lane-detail h3{font-size:clamp(24px,3vw,32px);margin-top:14px;color:var(--on-wood);}
.ld-ex{margin-top:22px;padding:18px 20px;background:rgba(246,236,219,.06);border-left:3px solid var(--brass);border-radius:0 6px 6px 0;}
.ld-ex em{display:block;font-family:var(--mono);font-style:normal;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-wood-soft);margin-bottom:7px;}
.ld-ex span{font-family:var(--display);font-style:italic;font-size:19px;line-height:1.4;color:var(--on-wood);}
.ld-good{margin-top:20px;font-size:16px;color:var(--on-wood-soft);}
.ld-good b{color:var(--brass-bright);}
.lane-detail.swapping .ld-ex,.lane-detail.swapping .ld-good,.lane-detail.swapping h3{opacity:0;transition:opacity .15s ease;}
.lane-detail .ld-ex,.lane-detail .ld-good,.lane-detail h3{transition:opacity .25s ease;}

/* =============================================================================
   BUILD WALL — cork board of shipped tools
   ========================================================================== */
.proof{background:var(--paper);}
.cork{margin-top:44px;border-radius:10px;padding:clamp(26px,4vw,48px) clamp(20px,3vw,40px);position:relative;
  background:#b2895c;
  background-image:
    radial-gradient(rgba(90,58,30,.5) 1px,transparent 1.4px),
    radial-gradient(rgba(120,82,46,.4) 1px,transparent 1.4px),
    linear-gradient(135deg,#b88f60,#a87c50);
  background-size:13px 13px,19px 19px,100% 100%;background-position:0 0,7px 9px,0 0;
  box-shadow:inset 0 0 0 6px rgba(72,46,22,.55),inset 0 0 40px rgba(50,30,14,.45),var(--shadow-md);}
.wall-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.4vw,26px);}
.pin-note{position:relative;background:var(--cream);border-radius:3px;padding:20px 18px 18px;
  box-shadow:var(--shadow-md);color:var(--ink);}
.pin-note:nth-child(3n+1){transform:rotate(-1.6deg);}
.pin-note:nth-child(3n+2){transform:rotate(.8deg);}
.pin-note:nth-child(3n+3){transform:rotate(-.6deg);}
.pin-note .pin{position:absolute;top:-9px;left:50%;transform:translateX(-50%);width:16px;height:16px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#e8675a,var(--red-deep));box-shadow:0 3px 5px rgba(0,0,0,.35);}
.pin-note .pn-cat{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--red);}
.pin-note b{display:block;font-family:var(--display);font-size:19px;font-weight:600;margin-top:6px;line-height:1.1;}
.pin-note .pn-meta{font-size:13.5px;color:var(--ink-soft);margin-top:6px;line-height:1.35;}
.wall-foot{display:flex;justify-content:flex-end;margin-top:18px;}
.wall-foot .hand{font-size:26px;transform:rotate(-2deg);color:var(--cream);}

/* =============================================================================
   SCHEDULE — "Today's Schedule" (the dark board)
   ========================================================================== */
.schedule{background:var(--wood-900);color:var(--on-wood);}
.board{border:2px solid var(--brass-deep);border-radius:10px;overflow:hidden;margin-top:40px;background:rgba(0,0,0,.16);}
.board-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  padding:20px 28px;border-bottom:2px dashed rgba(220,176,92,.35);}
.board-head h3{font-size:clamp(22px,3vw,30px);color:var(--on-wood);}
.board-head .bh-meta{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-bright);}
.period{display:grid;grid-template-columns:130px 1fr;align-items:stretch;border-bottom:1px solid rgba(246,236,219,.1);}
.period:last-child{border-bottom:none;}
.period-time{border-right:2px solid var(--red);padding:24px 22px;display:flex;flex-direction:column;justify-content:center;gap:4px;}
.period-time .pt-clock{font-family:var(--mono);font-size:12px;color:var(--on-wood-soft);}
.period-time .pt-n{font-family:var(--display);font-weight:600;font-size:40px;line-height:.9;color:var(--brass-bright);}
.period-body{padding:22px 28px;}
.period-body .pb-top{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;}
.period-body h4{font-family:var(--display);font-size:clamp(19px,2.2vw,25px);color:var(--on-wood);}
.period-body .pb-week{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  border:1px solid rgba(220,176,92,.4);color:var(--brass-bright);padding:4px 11px;border-radius:999px;}
.period-body p{margin-top:9px;color:var(--on-wood-soft);font-size:16px;line-height:1.5;max-width:62ch;}
.sched-note{margin-top:30px;display:grid;grid-template-columns:1.4fr 1fr;gap:26px;align-items:center;}
.sched-note .sn-text{font-size:17px;color:var(--on-wood-soft);line-height:1.6;}
.sched-note .sn-text b{color:var(--on-wood);}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.fact{display:flex;gap:12px;align-items:flex-start;background:rgba(246,236,219,.05);border:1px solid rgba(246,236,219,.1);
  border-radius:6px;padding:14px 16px;}
.fact svg{flex:0 0 auto;color:var(--brass-bright);margin-top:2px;}
.fact b{display:block;font-family:var(--display);font-size:16px;color:var(--on-wood);}
.fact span{font-size:13.5px;color:var(--on-wood-soft);}

/* =============================================================================
   FOUNDER — "From the Founder's Desk"
   ========================================================================== */
.founder{background:var(--cream);}
.founder-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(28px,4vw,52px);align-items:center;margin-top:20px;}
.polaroid{position:relative;background:#fbf6ec;padding:14px 14px 0;box-shadow:var(--press-lg),var(--shadow-md);
  transform:rotate(-2.2deg);max-width:360px;justify-self:center;border-radius:2px;}
.polaroid::before{content:"";position:absolute;top:-14px;left:50%;transform:translateX(-50%) rotate(-3deg);
  width:120px;height:30px;background:rgba(220,176,92,.5);border:1px dashed rgba(43,28,18,.2);}
.polaroid img{width:100%;border-radius:1px;filter:saturate(.96) contrast(1.02);}
.polaroid .p-cap{font-family:var(--hand);font-size:23px;text-align:center;padding:12px 0 16px;color:var(--ink);}
.ruled{position:relative;border:1.5px solid var(--ink);border-radius:6px;box-shadow:var(--press);
  padding:34px 38px 34px 64px;background:var(--paper);
  background-image:linear-gradient(90deg,transparent 46px,rgba(178,58,42,.3) 46px,rgba(178,58,42,.3) 48px,transparent 48px),
    repeating-linear-gradient(var(--paper),var(--paper) 33px,var(--line-soft) 33px,var(--line-soft) 34px);}
.ruled h2{font-size:clamp(26px,3.6vw,40px);margin-top:10px;}
.ruled blockquote{margin:18px 0 0;font-family:var(--display);font-style:italic;font-size:clamp(18px,2.1vw,22px);
  line-height:1.5;color:var(--ink);}
.ruled .f-sign{margin-top:20px;font-family:var(--hand);font-size:30px;color:var(--red);}
.ruled .f-role{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:4px;}
.cred-list{margin-top:24px;display:flex;flex-direction:column;gap:14px;}
.cred{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;line-height:1.5;color:var(--ink-soft);}
.cred .cd{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--red);margin-top:8px;}
.cred b{color:var(--ink);}
.stamp{position:absolute;top:22px;right:26px;width:92px;height:92px;border:3px solid var(--red);border-radius:50%;
  display:grid;place-items:center;text-align:center;color:var(--red);font-family:var(--mono);font-size:9.5px;font-weight:700;
  letter-spacing:.12em;line-height:1.35;transform:rotate(-13deg);opacity:.8;text-transform:uppercase;}

/* =============================================================================
   REPORT CARD — honest figures
   ========================================================================== */
.report{background:var(--paper);}
.report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:8px;}
.report-card{background:var(--cream);border:1.5px solid var(--ink);border-radius:6px;padding:24px 22px;text-align:center;box-shadow:var(--press);}
.report-card .rc-num{font-family:var(--display);font-weight:600;font-size:clamp(38px,5vw,54px);line-height:1;color:var(--red);letter-spacing:-.02em;}
.report-card:nth-child(2) .rc-num,.report-card:nth-child(4) .rc-num{color:var(--brass-deep);}
.report-card .rc-label{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px;line-height:1.4;}
.report-foot{text-align:center;margin-top:24px;font-size:15px;color:var(--ink-faint);font-style:italic;font-family:var(--display);}

/* =============================================================================
   TUITION — pricing
   ========================================================================== */
.tuition{background:var(--cream);}
.price-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;margin-top:44px;align-items:start;}
.price-card{border:1.5px solid var(--ink);border-radius:8px;padding:34px;position:relative;background:var(--paper);box-shadow:var(--press);}
.price-card.feature{background:var(--wood-900);color:var(--on-wood);border-color:var(--wood-900);box-shadow:var(--press-lg),var(--shadow-md);}
.price-flag{position:absolute;top:-14px;left:34px;background:var(--red);color:var(--on-wood);font-family:var(--mono);
  font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:6px 14px;border-radius:999px;box-shadow:var(--shadow-sm);}
.pc-name{font-family:var(--display);font-size:clamp(24px,3vw,30px);font-weight:600;}
.price-card.feature .pc-name{color:var(--on-wood);}
.pc-sub{font-size:15px;color:var(--ink-soft);margin-top:8px;line-height:1.5;}
.price-card.feature .pc-sub{color:var(--on-wood-soft);}
.price-card.feature .pc-sub a{color:var(--brass-bright);}
.price-amt{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:22px 0 4px;}
.price-amt .now{font-family:var(--display);font-weight:600;font-size:58px;line-height:1;letter-spacing:-.02em;color:var(--brass-bright);}
.price-amt .was{font-family:var(--display);font-size:24px;color:var(--on-wood-soft);text-decoration:line-through;text-decoration-color:var(--red-bright);}
.price-amt .per{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--on-wood-soft);}
.price-founding{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--brass-bright);margin-bottom:22px;}
.price-list{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:13px;}
.price-list li{display:flex;gap:11px;align-items:flex-start;font-size:15.5px;line-height:1.45;}
.price-list li svg{flex:0 0 auto;margin-top:3px;color:var(--brass-bright);}
.price-card.quiet .price-list li svg{color:var(--red);}
.price-card.quiet .quote{font-family:var(--display);font-weight:600;font-size:30px;margin:20px 0 2px;color:var(--ink);}
.pc-fine{font-size:13.5px;color:var(--ink-faint);margin-top:14px;line-height:1.5;}
.price-card.feature .pc-fine{color:var(--on-wood-soft);}
.price-card.feature .pc-fine b{color:var(--on-wood);}
.price-card .btn{margin-top:22px;}
.pc-fine a{color:inherit;text-decoration:underline;text-underline-offset:2px;}

/* =============================================================================
   FAQ
   ========================================================================== */
.faq{background:var(--paper);}
.faq-list{max-width:840px;margin:38px auto 0;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:18px;align-items:center;
  padding:22px 4px;font-family:var(--display);font-weight:600;font-size:clamp(18px,2.2vw,22px);color:var(--ink);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .q-mark{flex:0 0 auto;width:26px;height:26px;border:1.5px solid var(--red);border-radius:50%;
  display:grid;place-items:center;color:var(--red);transition:transform .25s ease,background .25s ease,color .25s ease;}
.faq-item summary .q-mark svg{width:14px;height:14px;}
.faq-item[open] summary .q-mark{transform:rotate(45deg);background:var(--red);color:var(--on-wood);}
.faq-item .faq-a{padding:0 4px 24px;color:var(--ink-soft);font-size:16.5px;line-height:1.6;max-width:68ch;}
.faq-item .faq-a a{color:var(--red);text-decoration:underline;text-underline-offset:2px;}

/* =============================================================================
   HONESTY
   ========================================================================== */
.honesty{background:var(--cream);}
.honesty-box{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,4vw,56px);align-items:start;
  border:1.5px solid var(--ink);border-radius:10px;padding:clamp(30px,4vw,52px);background:var(--paper);box-shadow:var(--press-lg);position:relative;}
.honesty-box h3{font-size:clamp(28px,4vw,42px);}
.honesty-box .hn-hand{font-family:var(--hand);font-size:30px;color:var(--red);margin-top:10px;}
.honesty-list{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.hl-item{display:flex;gap:13px;align-items:flex-start;}
.hl-item .x{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:rgba(178,58,42,.12);color:var(--red);
  display:grid;place-items:center;margin-top:2px;}
.hl-item b{font-family:var(--display);font-size:17px;display:block;}
.hl-item p{font-size:14.5px;color:var(--ink-soft);margin-top:3px;line-height:1.45;}
.margin-note{font-family:var(--hand);font-size:21px;color:var(--red);display:inline-flex;align-items:center;gap:7px;}
.margin-note svg{width:26px;height:20px;color:var(--red);}
.margin-note svg path{stroke-dasharray:1;stroke-dashoffset:1;}
.in .margin-note svg path{animation:inkDraw .9s ease forwards;}

/* =============================================================================
   FINAL CTA
   ========================================================================== */
.finale{background:var(--wood-900);color:var(--on-wood);text-align:center;position:relative;overflow:hidden;}
.finale::before{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;
  background-image:radial-gradient(var(--on-wood) 1px,transparent 1.4px);background-size:28px 28px;}
.finale-inner{position:relative;z-index:1;max-width:720px;margin:0 auto;}
.finale h2{font-size:clamp(38px,7vw,72px);line-height:.98;margin-top:18px;}
.finale h2 .em{font-style:italic;color:var(--brass-bright);}
.finale p{margin:22px auto 0;max-width:46ch;color:var(--on-wood-soft);font-size:18px;}
.finale .bell-stage{margin:34px auto 28px;}
.finale .hero-cta{justify-content:center;}
.finale .fine{margin-top:18px;font-size:13.5px;color:var(--on-wood-soft);}
.finale .fine a{color:var(--brass-bright);}

/* =============================================================================
   FOOTER
   ========================================================================== */
.footer{background:var(--wood-900);color:var(--on-wood-soft);border-top:1px solid rgba(220,176,92,.25);}
.footer-inner{max-width:var(--maxw);margin:0 auto;padding:40px var(--gutter);
  display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:start;}
.footer .f-brand{display:flex;align-items:center;gap:12px;color:var(--on-wood);}
.footer .f-brand .brand-mark{background:rgba(246,236,219,.08);}
.footer .f-tag{margin-top:16px;font-size:14.5px;max-width:42ch;line-height:1.6;}
.footer .f-cols{display:flex;gap:60px;flex-wrap:wrap;justify-content:flex-end;}
.footer .f-col h5{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-bright);margin:0 0 12px;}
.footer .f-col a{display:block;text-decoration:none;color:var(--on-wood-soft);font-size:14.5px;padding:4px 0;transition:color .15s ease;}
.footer .f-col a:hover{color:var(--on-wood);}
.footer-base{border-top:1px solid rgba(246,236,219,.12);}
.footer-base-inner{max-width:var(--maxw);margin:0 auto;padding:18px var(--gutter);display:flex;justify-content:space-between;
  gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);}
.footer-base-inner a{color:var(--brass);text-decoration:none;}

/* =============================================================================
   FLOATING CONTROLS — lamp chain (evening) + sound toggle
   ========================================================================== */
.lamp-chain{position:fixed;top:0;right:34px;z-index:70;background:none;border:none;padding:0;display:flex;flex-direction:column;align-items:center;}
.lamp-cord{width:2px;height:48px;background:linear-gradient(var(--brass-deep),var(--brass));opacity:.8;}
.lamp-pull{width:14px;height:22px;border-radius:8px;background:radial-gradient(circle at 40% 30%,var(--brass-bright),var(--brass-deep));
  box-shadow:0 2px 4px rgba(0,0,0,.3);transition:transform .15s ease;}
.lamp-chain:hover .lamp-pull{transform:translateY(3px);}
.lamp-chain.tug .lamp-pull{animation:tug .5s ease;}
@keyframes tug{30%{transform:translateY(8px);}100%{transform:translateY(0);}}
.lamp-chain .lamp-label{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);
  margin-top:6px;opacity:0;transition:opacity .2s ease;writing-mode:vertical-rl;}
.lamp-chain:hover .lamp-label{opacity:1;}

.sound-toggle{position:fixed;left:20px;bottom:20px;z-index:70;width:42px;height:42px;border-radius:50%;
  background:var(--wood-900);color:var(--brass-bright);border:1px solid var(--brass-deep);display:grid;place-items:center;box-shadow:var(--shadow-md);}
.sound-toggle .st-off{display:none;}
.sound-toggle[aria-pressed="false"] .st-on{display:none;}
.sound-toggle[aria-pressed="false"] .st-off{display:block;}

/* =============================================================================
   REVEAL ON SCROLL
   ========================================================================== */
html.js .reveal{opacity:0;translate:0 24px;transition:opacity .7s cubic-bezier(.2,.7,.2,1),translate .7s cubic-bezier(.2,.7,.2,1);}
html.js .reveal.in{opacity:1;translate:none;}
html.js .reveal.d1{transition-delay:.07s;}
html.js .reveal.d2{transition-delay:.14s;}
html.js .reveal.d3{transition-delay:.21s;}
html.js .reveal.d4{transition-delay:.28s;}

/* =============================================================================
   RESPONSIVE
   ========================================================================== */
@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:38px;}
  .hero-bell{flex-direction:row;justify-content:flex-start;gap:24px;flex-wrap:wrap;}
  .lanes-grid{grid-template-columns:1fr;}
  .lane-detail{position:static;}
  .founder-grid{grid-template-columns:1fr;gap:36px;}
  .polaroid{justify-self:start;}
  .price-grid{grid-template-columns:1fr;}
  .honesty-box{grid-template-columns:1fr;gap:28px;}
  .sched-note{grid-template-columns:1fr;}
  .footer-inner{grid-template-columns:1fr;}
  .footer .f-cols{justify-content:flex-start;}
}
@media(max-width:760px){
  .nav-links,.nav-pill{display:none;}
  .masthead.open .nav-links{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    align-items:flex-start;gap:4px;background:var(--cream);border-bottom:1px solid var(--line);padding:14px var(--gutter) 20px;box-shadow:var(--shadow-md);}
  .masthead.open .nav-links a{padding:10px 0;font-size:18px;width:100%;border-bottom:1px solid var(--line-soft);}
  .nav-toggle{display:grid;place-items:center;}
  .checklist{grid-template-columns:1fr;}
  .wall-grid{grid-template-columns:1fr 1fr;}
  .report-grid{grid-template-columns:1fr 1fr;}
  .honesty-list{grid-template-columns:1fr;}
  .period{grid-template-columns:92px 1fr;}
  /* the lamp chain hangs from the top-right — same spot as the hamburger on
     mobile, so retire evening mode to desktop and free the corner. */
  .lamp-chain{display:none;}
  /* the bell only sounds on a deliberate tap on mobile, so a floating mute
     control isn't needed — and it would graze the hero CTA. Hide it. */
  .sound-toggle{display:none;}
  .problem-foot{grid-template-columns:1fr;gap:60px;}
  .problem-note{justify-self:start;text-align:left;}
  .problem-note .pn-arrow{display:none;}
}
@media(max-width:460px){
  body{font-size:17px;}
  .kicker{font-size:11px;letter-spacing:.12em;}
  .wall-grid{grid-template-columns:1fr;}
  .report-grid{grid-template-columns:1fr 1fr;}
  .hero h1{font-size:clamp(40px,13vw,60px);}
  .hero-edition{font-size:10.5px;gap:8px;}
}

/* =============================================================================
   MOTION / PRINT SAFETY
   ========================================================================== */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  html.js .reveal{opacity:1;translate:none;}
  .pa-track{animation:none;}
}
