/* ============================================================
   INTERWOVEN — a student-made scrapbook, not a startup page.
   Palette drawn from the watercolor logo: deep story-blue ink,
   watercolor blue / terracotta / leaf-green / marigold accents.
   ============================================================ */
:root{
  --paper:#F7FAFA;
  --paper-soft:#EBF1F2;
  --wash-blue:#E3EDF0;
  --ink:#2A3B50;            /* deep blue ink, like the logo script */
  --ink-soft:#56677B;
  --blue:#33628C;           /* logo script blue */
  --sky:#5B8FB5;
  --terracotta:#C1603C;
  --marigold:#D9A441;
  --leaf:#5F8A57;
  --red:#AC4A50;
  --line:rgba(42,59,80,.18);
  --serif:"Fraunces", Georgia, serif;
  --book:"Lora", Georgia, serif;
  --hand:"Caveat", cursive;
  --sans:"Instrument Sans", "Helvetica Neue", sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--book);
  font-size:18px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body::before{ /* soft paper grain */
  content:"";position:fixed;inset:0;pointer-events:none;z-index:2000;opacity:.3;mix-blend-mode:multiply;
  transform:translateZ(0);will-change:transform;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .43 0 0 0 0 .46 0 0 0 .04 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
::selection{background:#F3DFA5;color:var(--ink);}
img{max-width:100%;display:block;}
a{color:var(--blue);text-decoration-thickness:1px;text-underline-offset:3px;}
a:hover{color:var(--terracotta);}

.wrap{max-width:1060px;margin:0 auto;padding:0 clamp(20px,4vw,44px);}

/* ---------- NAV : quiet, like a book's running head ---------- */
header{
  background:var(--paper);
  border-bottom:1px solid var(--line);
  position:relative;
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px clamp(20px,4vw,44px);max-width:1160px;margin:0 auto;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);}
.brand svg{width:34px;height:34px;}
.brand img.mark{width:40px;height:40px;object-fit:contain;}
.brand span{font-family:var(--serif);font-weight:560;font-size:1.4rem;letter-spacing:.01em;color:var(--blue);}
nav.links{display:flex;gap:clamp(12px,2vw,26px);font-size:1rem;flex-wrap:wrap;}
nav.links a{text-decoration:none;color:var(--ink-soft);padding:4px 0;border-bottom:2px solid transparent;}
nav.links a:hover{color:var(--blue);border-bottom-color:var(--marigold);}
nav.links a[style]{color:var(--blue) !important;border-bottom-color:var(--terracotta);}
.nav-cta{
  font-family:var(--hand);font-size:1.25rem;font-weight:600;
  color:var(--terracotta);text-decoration:underline;text-decoration-style:wavy;text-decoration-thickness:1.5px;text-underline-offset:5px;
  background:none;padding:0;border-radius:0;
}
.nav-cta:hover{color:var(--blue);}
@media(max-width:820px){nav.links{order:3;width:100%;justify-content:flex-start;gap:14px;font-size:.95rem;}}

/* ---------- HERO ---------- */
.hero{position:relative;padding:clamp(40px,7vh,80px) 0 clamp(30px,5vh,60px);}
.hero-grid{display:grid;grid-template-columns:1fr .9fr;gap:clamp(28px,5vw,64px);align-items:center;}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;}}
.hero-logo{display:flex;justify-content:center;}
.hero-logo img{width:min(100%,480px);height:auto;}
.hero-kicker{
  font-family:var(--hand);font-size:1.4rem;font-weight:500;color:var(--terracotta);
  margin-bottom:18px;display:inline-block;
}
.hero-kicker::before{content:"~ ";}
.hero-kicker::after{content:" ~";}
h1{
  font-family:var(--serif);
  font-size:clamp(2.3rem,5.4vw,3.9rem);
  line-height:1.1;
  font-weight:420;
  letter-spacing:-.01em;
  color:var(--ink);
}
h1 .thread-word{font-style:italic;font-weight:520;}
.tw-ar{color:var(--terracotta);}
.tw-us{color:var(--blue);}
.tw-cn{color:var(--red);}
.hero-sub{
  max-width:54ch;margin-top:22px;font-size:1.08rem;color:var(--ink-soft);
}
.hero-actions{display:flex;gap:26px;margin-top:30px;flex-wrap:wrap;align-items:center;}

/* buttons become plain, bookish links */
.btn{
  font-family:var(--book);font-style:italic;font-size:1.05rem;
  background:none;border:none;padding:0;border-radius:0;box-shadow:none;
  color:var(--blue);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;
}
.btn::after{content:" →";}
.btn:hover{color:var(--terracotta);background:none;transform:none;}
.btn-primary{color:var(--terracotta);}
.btn-primary:hover{color:var(--blue);}
.btn-ghost{border:none;}

.hero-weave{margin-top:clamp(36px,6vh,64px);opacity:.85;}
.hero-weave svg{width:100%;height:auto;display:block;overflow:visible;}
.hero-weave path{
  stroke-dasharray:1600;stroke-dashoffset:1600;
  animation:draw 2.4s cubic-bezier(.6,0,.2,1) forwards;
}
.hero-weave path:nth-child(1){stroke:#C1603C;}
.hero-weave path:nth-child(2){stroke:#5B8FB5;animation-delay:.25s;}
.hero-weave path:nth-child(3){stroke:#5F8A57;animation-delay:.5s;}
@keyframes draw{to{stroke-dashoffset:0;}}
.hero-legend{
  display:flex;gap:clamp(16px,4vw,44px);margin-top:14px;flex-wrap:wrap;
  font-family:var(--hand);font-size:1.2rem;color:var(--ink-soft);
}
.hero-legend span{display:flex;align-items:center;gap:8px;}
.dot{width:10px;height:10px;border-radius:50%;}
.hero-legend span:nth-child(2) .dot{background:var(--blue) !important;}
.hero-legend span:nth-child(3) .dot{background:var(--red) !important;}

/* ---------- STATS -> a quiet, hand-noted line ---------- */
.stats{border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);background:var(--paper-soft);}
.stats-grid{
  display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(14px,4vw,54px);
  max-width:1060px;margin:0 auto;padding:18px clamp(20px,4vw,44px);
}
.stat{display:flex;align-items:baseline;gap:8px;padding:0;text-align:left;}
.stat + .stat{border-left:none;}
.stat .num{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.25rem;color:var(--terracotta);}
.stat .stat-label{font-family:var(--hand);font-size:1.15rem;color:var(--ink-soft);margin-top:0;text-transform:none;letter-spacing:0;}

/* ---------- SECTION SCAFFOLD ---------- */
section{padding:clamp(56px,9vh,100px) 0;position:relative;}
.eyebrow{
  font-family:var(--hand);font-size:1.45rem;font-weight:500;color:var(--terracotta);
  display:flex;align-items:baseline;gap:10px;margin-bottom:12px;flex-wrap:wrap;
  text-transform:none;letter-spacing:0;
}
.eyebrow::before{content:"✿";color:var(--marigold);font-size:1rem;}
.eyebrow .trans{color:var(--ink-soft);font-family:var(--hand);font-weight:400;font-size:1.15rem;font-style:normal;}
h2{
  font-family:var(--serif);font-weight:440;letter-spacing:-.005em;
  font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.15;max-width:26ch;color:var(--ink);
}
h3{color:var(--ink);}
.lede{font-size:1.06rem;color:var(--ink-soft);max-width:62ch;margin-top:16px;}

.stitch{border:none;border-top:2px dashed rgba(42,59,80,.3);margin:0 auto;max-width:1060px;width:calc(100% - 48px);}

/* ---------- STORY ---------- */
.story-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,64px);align-items:start;margin-top:22px;}
@media(max-width:900px){.story-grid{grid-template-columns:1fr;}}
.story-copy p{margin-bottom:1.15em;color:var(--ink-soft);}
.story-copy p strong{color:var(--ink);font-weight:600;}

/* photos become taped-in snapshots */
.story-media{position:relative;transform:rotate(1.2deg);}
.story-media::before{display:none;}
.story-media img{
  border-radius:2px;border:10px solid #fff;border-bottom-width:14px;
  box-shadow:0 8px 22px -8px rgba(42,59,80,.35);
}
.story-media::after{ /* tape */
  content:"";position:absolute;top:-12px;left:50%;transform:translateX(-50%) rotate(-2deg);
  width:110px;height:26px;background:rgba(217,164,65,.45);
  box-shadow:0 1px 3px rgba(42,59,80,.15);
}
.story-media figcaption{
  font-family:var(--hand);font-size:1.25rem;color:var(--ink-soft);margin-top:10px;text-align:center;
}

.timeline{margin-top:clamp(44px,7vh,68px);display:grid;grid-template-columns:repeat(4,1fr);gap:26px;position:relative;}
@media(max-width:900px){.timeline{grid-template-columns:1fr 1fr;}}
@media(max-width:540px){.timeline{grid-template-columns:1fr;}}
.timeline::before{display:none;}
.tl-item{padding:0 6px 0 16px;border-left:2px solid var(--marigold);}
.tl-item:nth-child(2){border-left-color:var(--terracotta);}
.tl-item:nth-child(3){border-left-color:var(--sky);}
.tl-item:nth-child(4){border-left-color:var(--leaf);}
.tl-item .tl-dot{display:none;}
.tl-item h3{font-family:var(--serif);font-size:1.15rem;font-weight:560;margin-bottom:6px;}
.tl-item .tl-date{font-family:var(--hand);font-size:1.2rem;color:var(--terracotta);margin-bottom:4px;text-transform:none;letter-spacing:0;filter:none;}
.tl-item p{font-size:.95rem;color:var(--ink-soft);}

/* ---------- MISSION : soft watercolor wash, not a dark slab ---------- */
.mission{
  background:linear-gradient(180deg,var(--wash-blue),#EAF0EB);
  color:var(--ink);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.mission .eyebrow{color:var(--terracotta);}
.mission .eyebrow .trans{color:var(--ink-soft) !important;}
.mission h2{color:var(--ink);}
.mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,3.5vw,40px);margin-top:40px;}
@media(max-width:820px){.mv-grid{grid-template-columns:1fr;}}
.mv-card{
  border:none;border-radius:0;padding:0 0 0 22px;
  background:none;position:relative;overflow:visible;
  border-left:3px solid var(--sky);
  transition:none;
}
.mv-card:nth-child(2){border-left-color:var(--leaf);}
.mv-card:hover{transform:none;background:none;}
.mv-card::after{display:none;}
.mv-card h3{font-family:var(--serif);font-size:1.45rem;font-weight:520;margin-bottom:10px;font-style:italic;color:var(--blue);}
.mv-card p{color:var(--ink-soft);font-size:1.04rem;}
.mission-quote{margin-top:clamp(44px,7vh,68px);text-align:center;}
.mission-quote p{
  font-family:var(--serif);font-style:italic;font-weight:420;
  font-size:clamp(1.25rem,2.6vw,1.8rem);line-height:1.45;max-width:30ch;margin:0 auto;
  color:var(--ink);
}
.mission-quote p em{color:var(--terracotta);}

/* ---------- GALLERY : snapshots on the page ---------- */
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,40px);margin-top:44px;}
@media(max-width:760px){.gallery{grid-template-columns:1fr;}}
.g-item{
  position:relative;border-radius:2px;overflow:visible;background:#fff;
  padding:10px 10px 6px;box-shadow:0 8px 22px -8px rgba(42,59,80,.3);
}
.g-item:nth-child(odd){transform:rotate(-1deg);}
.g-item:nth-child(even){transform:rotate(1deg);}
.g-item:hover{transform:rotate(0deg);}
.g-item img{width:100%;height:auto;object-fit:cover;transition:none;border-radius:1px;}
.g-item:hover img{transform:none;opacity:1;}
.g-item figcaption{
  position:static;padding:8px 4px 6px;background:none;
  color:var(--ink-soft);font-family:var(--hand);font-size:1.2rem;text-align:center;font-weight:400;
}
.g-wide{grid-column:span 2;aspect-ratio:auto;}
.g-wide img{aspect-ratio:16/6;object-fit:cover;}
.g-half{grid-column:span 1;aspect-ratio:auto;}
.g-half img{aspect-ratio:4/3.2;object-fit:cover;}
@media(max-width:760px){
  .g-wide{grid-column:span 1;}
  .g-wide img{aspect-ratio:16/9;}
}

.subjects{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:30px;}
.subject{
  font-family:var(--hand);font-size:1.25rem;font-weight:400;padding:0;border-radius:0;
  border:none;color:var(--ink-soft);background:none;
}
.subject b{color:var(--terracotta);font-weight:600;margin-right:4px;}
.subject:not(:last-child)::after{content:"  ·";color:var(--marigold);}

/* ---------- LEAF BY LEAF ---------- */
.lbl{background:var(--paper-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.lbl-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,6vw,80px);align-items:center;margin-top:10px;}
@media(max-width:900px){.lbl-grid{grid-template-columns:1fr;}}
.lbl-book{position:relative;max-width:400px;margin:0 auto;transform:rotate(-2deg);}
.lbl-book img{
  border-radius:3px;border:10px solid #fff;
  box-shadow:0 14px 30px -12px rgba(42,59,80,.4);
  transform:none;transition:transform .4s;
}
.lbl-book:hover img{transform:scale(1.01);}
.lbl-copy .eyebrow{margin-bottom:12px;}
.lbl-copy h2{margin-bottom:16px;}
.lbl-copy p{color:var(--ink-soft);margin-bottom:1.1em;}
.lbl-dedication{
  border-left:3px solid var(--marigold);padding:4px 0 4px 20px;margin:22px 0;
  font-family:var(--serif);font-style:italic;font-size:1.08rem;line-height:1.55;color:var(--ink);
}
.lbl-credits{font-size:.92rem;color:var(--ink-soft);}
.lbl-students{margin-top:clamp(40px,6vh,60px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);align-items:center;}
@media(max-width:820px){.lbl-students{grid-template-columns:1fr;}}
.lbl-students img{
  border-radius:2px;border:10px solid #fff;border-bottom-width:14px;
  box-shadow:0 8px 22px -8px rgba(42,59,80,.35);transform:rotate(1deg);
}
.lbl-students h3{font-family:var(--serif);font-size:1.4rem;font-weight:520;margin-bottom:10px;}
.lbl-students p{color:var(--ink-soft);}

/* ---------- TEAM : photos taped into an album ---------- */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,34px);margin-top:48px;}
@media(max-width:1000px){.team-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:540px){.team-grid{grid-template-columns:1fr;}}
.member{position:relative;}
.member:nth-child(odd) .photo{transform:rotate(-1.2deg);}
.member:nth-child(even) .photo{transform:rotate(1.2deg);}
.member .photo{
  border-radius:2px;overflow:visible;aspect-ratio:auto;background:#fff;position:relative;
  padding:8px 8px 10px;box-shadow:0 8px 20px -8px rgba(42,59,80,.3);
}
.member .photo img{width:100%;aspect-ratio:3/3.6;height:auto;object-fit:cover;transition:none;}
.member:hover .photo img{transform:none;}
.member .photo::after{ /* tape */
  content:"";position:absolute;top:-10px;left:50%;transform:translateX(-50%) rotate(-3deg);
  width:84px;height:22px;background:rgba(91,143,181,.35);
  box-shadow:0 1px 3px rgba(42,59,80,.15);border-radius:1px;
}
.member .role{
  position:absolute;top:auto;bottom:-12px;left:14px;
  font-family:var(--hand);font-size:1.15rem;font-weight:600;letter-spacing:0;text-transform:none;
  background:var(--marigold);color:#fff;padding:2px 14px;border-radius:2px;box-shadow:0 3px 8px rgba(42,59,80,.2);
  transform:rotate(-2deg);
}
.member .role.founder{background:var(--terracotta);color:#fff;}
.member h3{font-family:var(--serif);font-size:1.25rem;font-weight:560;margin:22px 0 2px;}
.member .meta{font-family:var(--hand);font-size:1.15rem;color:var(--terracotta);margin-bottom:8px;}
.member p{font-size:.95rem;color:var(--ink-soft);}

/* ---------- ADVISORS ---------- */
.advisors{background:var(--paper-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.adv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,4vw,48px);margin-top:48px;}
@media(max-width:900px){.adv-grid{grid-template-columns:1fr;}}
.adv-card{
  background:none;border:none;border-radius:0;
  padding:0;display:flex;flex-direction:column;gap:12px;
  transition:none;
}
.adv-card:hover{transform:none;box-shadow:none;}
.adv-init{
  width:58px;height:58px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--serif);font-weight:600;font-size:1.3rem;color:#fff;
}
.adv-photo{
  width:min(100%,300px);aspect-ratio:4/4.2;border-radius:2px;overflow:hidden;background:#fff;
  border:8px solid #fff;box-shadow:0 8px 20px -8px rgba(42,59,80,.3);
  transform:rotate(-1deg);
}
.adv-card:nth-child(even) .adv-photo{transform:rotate(1deg);}
.adv-photo img{width:100%;height:100%;object-fit:cover;object-position:center 22%;transition:none;}
.adv-card:hover .adv-photo img{transform:none;}
.adv-card h3{font-family:var(--serif);font-size:1.3rem;font-weight:560;margin-top:6px;}
.adv-tags{font-family:var(--hand);font-size:1.15rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--terracotta);}
.adv-card p{font-size:.97rem;color:var(--ink-soft);}

/* ---------- JOIN ---------- */
.join{text-align:center;position:relative;overflow:hidden;}
.join h2{margin:0 auto;max-width:22ch;}
.join .lede{margin-left:auto;margin-right:auto;text-align:center;}
.join .eyebrow{justify-content:center;}
.join-actions{margin-top:30px;display:flex;gap:30px;justify-content:center;flex-wrap:wrap;}
.join-note{margin-top:22px;font-family:var(--hand);font-size:1.2rem;color:var(--ink-soft);}

/* ---------- FOOTER : quiet colophon ---------- */
footer{
  background:var(--paper-soft);color:var(--ink-soft);padding:36px 0;
  border-top:1px solid var(--line);
}
.foot{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;}
.foot .brand span{color:var(--blue);}
.foot img.mark{width:34px;height:34px;object-fit:contain;}
.foot small{font-size:.88rem;font-family:var(--book);}
.foot .langs{font-family:var(--hand);font-size:1.25rem;color:var(--ink-soft);}

/* ---------- REVEAL ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1;transform:none;}
.member.reveal.in:nth-child(odd),.g-item.reveal.in:nth-child(odd){transform:rotate(-1.2deg);}
.member.reveal.in:nth-child(even),.g-item.reveal.in:nth-child(even){transform:rotate(1.2deg);}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  .hero-weave path{animation:none;stroke-dashoffset:0;}
}

/* ---------- SUBPAGES ---------- */
.page-hero{padding:clamp(40px,6vh,64px) 0 clamp(26px,4vh,44px);border-bottom:1px dashed var(--line);background:var(--paper);}
.page-hero h1{font-size:clamp(2rem,4.6vw,3.2rem);max-width:24ch;}
.page-hero .lede{margin-top:14px;}
.crumb{font-family:var(--hand);font-size:1.15rem;color:var(--ink-soft);margin-bottom:16px;text-transform:none;letter-spacing:0;}
.crumb a{text-decoration:none;color:var(--terracotta);}
.crumb a:hover{text-decoration:underline;}

/* ---------- EVENTS ---------- */
.ev-theme{margin-top:clamp(42px,6vh,60px);}
.ev-theme:first-of-type{margin-top:8px;}
.ev-theme-head{display:flex;align-items:baseline;gap:14px;border-bottom:2px solid var(--blue);padding-bottom:10px;margin-bottom:4px;}
.ev-theme-head h3{font-family:var(--serif);font-weight:520;font-size:clamp(1.3rem,2.2vw,1.6rem);}
.ev-theme-head .count{font-family:var(--hand);font-size:1.2rem;font-weight:400;color:var(--terracotta);letter-spacing:0;}
.ev-row{display:grid;grid-template-columns:minmax(180px,1fr) 2fr auto;gap:16px;align-items:baseline;padding:16px 0;border-bottom:1px dashed rgba(42,59,80,.28);}
@media(max-width:700px){.ev-row{grid-template-columns:1fr;gap:4px;}}
.ev-row h4{font-family:var(--serif);font-size:1.1rem;font-weight:560;}
.ev-row .zh{font-weight:400;color:var(--ink-soft);}
.ev-row p{font-size:.95rem;color:var(--ink-soft);}
.ev-tag{
  font-family:var(--hand);font-size:1.1rem;font-weight:400;letter-spacing:0;text-transform:none;
  padding:0;border-radius:0;border:none;color:var(--sky);white-space:nowrap;justify-self:end;
}
@media(max-width:700px){.ev-tag{justify-self:start;margin-top:2px;}}
.ev-strip{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,4vw,40px);margin:clamp(30px,5vh,48px) 0 8px;}
@media(max-width:700px){.ev-strip{grid-template-columns:1fr;}}
.ev-strip figure{
  border-radius:2px;overflow:visible;position:relative;background:#fff;
  padding:9px 9px 6px;box-shadow:0 8px 20px -8px rgba(42,59,80,.3);
}
.ev-strip figure:nth-child(odd){transform:rotate(-1deg);}
.ev-strip figure:nth-child(even){transform:rotate(1deg);}
.ev-strip img{width:100%;aspect-ratio:16/8;object-fit:cover;}
.ev-strip figcaption{
  position:static;padding:8px 4px 4px;background:none;
  color:var(--ink-soft);font-family:var(--hand);font-size:1.2rem;text-align:center;font-weight:400;
}
.ev-highlight{
  margin-top:clamp(44px,7vh,64px);background:var(--wash-blue);color:var(--ink);
  border:1px solid var(--line);border-radius:4px;padding:clamp(26px,4vw,48px);
}
.ev-highlight .eyebrow{color:var(--terracotta);}
.ev-highlight h3{font-family:var(--serif);font-size:clamp(1.35rem,2.6vw,1.8rem);font-weight:480;margin-bottom:12px;}
.ev-highlight p{color:var(--ink-soft);max-width:66ch;}
.ev-highlight ul{list-style:none;margin-top:16px;display:flex;gap:8px 26px;flex-wrap:wrap;}
.ev-highlight li{font-family:var(--hand);font-size:1.25rem;padding:0;border-radius:0;border:none;color:var(--ink);}
.cta-strip{text-align:center;padding:clamp(48px,8vh,72px) 0;}
.cta-strip h2{margin:0 auto 12px;}

/* ---------- LOGO / PLACEHOLDERS ---------- */
.placeholder{
  border:2px dashed rgba(42,59,80,.3);border-radius:4px;
  padding:clamp(36px,6vw,64px);text-align:center;background:var(--paper-soft);
  margin-top:36px;
}
.placeholder h3{font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:500;margin-bottom:10px;}
.placeholder p{color:var(--ink-soft);max-width:54ch;margin:0 auto;}
.init-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,36px);margin-top:0;}
@media(max-width:900px){.init-grid{grid-template-columns:1fr;}}
.init-card{
  background:#fff;border:none;border-radius:2px;overflow:visible;
  padding:9px 9px 4px;box-shadow:0 8px 20px -8px rgba(42,59,80,.3);transition:none;
}
.init-card:nth-child(odd){transform:rotate(-1deg);}
.init-card:nth-child(even){transform:rotate(1deg);}
.init-card:hover{transform:rotate(0);box-shadow:0 10px 24px -8px rgba(42,59,80,.35);}
.init-card img{width:100%;aspect-ratio:16/10;object-fit:cover;}
.init-card .init-body{padding:14px 8px 16px;}
.init-card h3{font-family:var(--serif);font-size:1.2rem;font-weight:560;margin-bottom:6px;}
.init-card p{font-size:.94rem;color:var(--ink-soft);}
.init-card .init-links{margin-top:10px;font-size:.95rem;}
.init-card .init-links a{color:var(--terracotta);}

/* ---------- MATERIAL LINKS ---------- */
.ev-file{font-family:var(--hand);font-size:1.15rem;color:var(--blue);text-decoration-thickness:1px;white-space:nowrap;}
.ev-file:hover{color:var(--terracotta);}
.ev-row{grid-template-columns:minmax(200px,1.1fr) auto 1.6fr auto;}
@media(max-width:700px){.ev-row{grid-template-columns:1fr;}}
.stu-groups{margin-top:18px;display:grid;gap:16px;}
.stu-group h4{font-family:var(--serif);font-size:1.08rem;font-weight:560;margin-bottom:2px;}
.stu-group p{font-size:1rem;color:var(--ink-soft);}
.stu-group a{color:var(--blue);}
.stu-group a:hover{color:var(--terracotta);}

/* ---------- HOME TEASERS ---------- */
.teasers{grid-template-columns:repeat(3,1fr);}
@media(max-width:820px){.teasers{grid-template-columns:1fr;}}

/* ---------- TEAM FULL PROFILES ---------- */
.profile-row{
  display:grid;grid-template-columns:260px 1fr;gap:clamp(26px,4vw,52px);
  align-items:start;padding:clamp(28px,4vh,44px) 0;
}
.profile-row + .profile-row{border-top:1px dashed rgba(42,59,80,.28);}
@media(max-width:700px){.profile-row{grid-template-columns:1fr;max-width:340px;margin:0 auto;}}
.profile-photo{
  background:#fff;padding:8px 8px 6px;border-radius:2px;
  box-shadow:0 8px 20px -8px rgba(42,59,80,.3);position:relative;margin:0;
}
.profile-row:nth-child(odd) .profile-photo{transform:rotate(-1.2deg);}
.profile-row:nth-child(even) .profile-photo{transform:rotate(1.2deg);}
.profile-photo::before{ /* tape */
  content:"";position:absolute;top:-10px;left:50%;transform:translateX(-50%) rotate(-3deg);
  width:84px;height:22px;background:rgba(91,143,181,.35);box-shadow:0 1px 3px rgba(42,59,80,.15);
}
.profile-photo img{width:100%;aspect-ratio:3/3.5;object-fit:cover;}
.profile-photo figcaption{font-family:var(--hand);font-size:1.2rem;color:var(--terracotta);text-align:center;padding-top:6px;}
.profile-text h3{font-family:var(--serif);font-size:1.5rem;font-weight:560;margin-bottom:10px;}
.profile-text p{color:var(--ink-soft);margin-bottom:1em;max-width:64ch;}

/* ---------- LBL SPINACH PHOTO ---------- */
.lbl-photo{
  max-width:660px;margin:clamp(36px,5vh,56px) auto 0;
  background:#fff;padding:10px 10px 6px;border-radius:2px;
  box-shadow:0 8px 22px -8px rgba(42,59,80,.35);transform:rotate(-1deg);position:relative;
}
.lbl-photo::before{
  content:"";position:absolute;top:-12px;left:50%;transform:translateX(-50%) rotate(2deg);
  width:110px;height:26px;background:rgba(217,164,65,.4);box-shadow:0 1px 3px rgba(42,59,80,.15);
}
.lbl-photo img{width:100%;border:none;box-shadow:none;transform:none;border-radius:1px;}
.lbl-photo figcaption{font-family:var(--hand);font-size:1.25rem;color:var(--ink-soft);text-align:center;padding:8px 4px 4px;}

/* ---------- LBL BOOK-PAGE GALLERY ---------- */
.lbl-gallery{
  display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,2vw,22px);
  margin-top:clamp(36px,5vh,52px);
}
@media(max-width:820px){.lbl-gallery{grid-template-columns:1fr 1fr;}}
.lbl-gallery img{
  background:#fff;padding:7px;border-radius:2px;
  box-shadow:0 8px 20px -8px rgba(42,59,80,.3);
}
.lbl-gallery img:nth-child(odd){transform:rotate(-1.2deg);}
.lbl-gallery img:nth-child(even){transform:rotate(1.2deg);}
.lbl-gallery img.reveal.in:nth-child(odd){transform:rotate(-1.2deg);}
.lbl-gallery img.reveal.in:nth-child(even){transform:rotate(1.2deg);}

/* ---------- CONTACT PAGE ---------- */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(36px,6vw,80px);align-items:center;}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;}}
.contact-aside{text-align:center;}
.contact-aside img{width:min(100%,380px);margin:0 auto;}
.contact-motto{font-family:var(--hand);font-size:1.35rem;color:var(--ink-soft);margin-top:10px;}
.contact-notes{display:grid;gap:clamp(20px,3vh,30px);}
.contact-note{
  background:#fff;border-radius:2px;padding:22px 26px 20px;position:relative;
  box-shadow:0 8px 20px -8px rgba(42,59,80,.3);max-width:440px;
}
.contact-note:nth-child(odd){transform:rotate(-1deg);}
.contact-note:nth-child(even){transform:rotate(1deg);margin-left:clamp(0px,4vw,40px);}
.contact-note::before{
  content:"";position:absolute;top:-11px;left:26px;width:88px;height:22px;
  background:rgba(91,143,181,.35);box-shadow:0 1px 3px rgba(42,59,80,.15);transform:rotate(-2deg);
}
.contact-note:nth-child(even)::before{background:rgba(217,164,65,.4);transform:rotate(2deg);}
.contact-note .note-label{font-family:var(--hand);font-size:1.5rem;font-weight:600;color:var(--terracotta);margin-bottom:2px;}
.contact-note p{font-size:1.12rem;color:var(--ink);}
.contact-note a{color:var(--blue);}
.contact-weave{margin-top:clamp(44px,7vh,70px);opacity:.8;}
.contact-weave path:nth-child(1){stroke:#C1603C;}
.contact-weave path:nth-child(2){stroke:#5B8FB5;}
.contact-weave path:nth-child(3){stroke:#5F8A57;}
