:root{
    --paper:#F4F1EA;
    --stone:#CBC4B2;
    --warm-gray:#DFD8C7;
    --concrete:#A9A297;
    --charcoal:#242018;
    --ink:#141210;
    --green:#1E3D2C;

    --ink-70: rgba(20,18,16,.68);
    --ink-45: rgba(20,18,16,.44);
    --ink-25: rgba(20,18,16,.22);
    --ink-14: rgba(20,18,16,.13);

    --paper-70: rgba(244,241,234,.7);
    --paper-45: rgba(244,241,234,.44);
    --paper-25: rgba(244,241,234,.24);
    --paper-14: rgba(244,241,234,.14);

    --max:1160px;
    --ease:cubic-bezier(.22,.61,.36,1);
  }
  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion:reduce){
    html{ scroll-behavior:auto; }
    *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  }
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'IBM Plex Sans', sans-serif;
    font-weight:400;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    font-size:16px;
  }
  ::selection{ background:var(--green); color:var(--paper); }
  body::after{
    content:''; position:fixed; inset:0; z-index:999; pointer-events:none;
    opacity:.045; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }
  a{ color:inherit; }
  img,svg{ display:block; max-width:100%; }
  h1,h2,h3{ font-family:'Fraunces', serif; font-weight:440; margin:0; letter-spacing:-0.01em; }
  p{ margin:0; }

  .eyebrow{
    font-family:'IBM Plex Sans', sans-serif;
    font-size:11px;
    letter-spacing:0.17em;
    text-transform:uppercase;
    color:var(--ink-70);
    font-weight:500;
    display:inline-flex; align-items:center; gap:10px;
  }
  .eyebrow::before{ content:''; width:6px; height:6px; background:var(--ink); flex-shrink:0; }
  .on-dark .eyebrow{ color:var(--paper-70); }
  .on-dark .eyebrow::before{ background:var(--green); }

  .wrap{ max-width:var(--max); margin:0 auto; padding:0 40px; position:relative; }
  @media (max-width:720px){ .wrap{ padding:0 24px; } }

  a:focus-visible, button:focus-visible{ outline:1.5px solid var(--green); outline-offset:4px; }

  .reveal{ opacity:0; transform:translateY(20px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* seam mark: small architectural corner at a section's top edge */
  .seam{ position:relative; }
  .seam::before{
    content:''; position:absolute; top:-1px; left:40px; width:26px; height:1px; background:var(--green);
  }
  .seam::after{
    content:''; position:absolute; top:-1px; left:40px; width:1px; height:14px; background:var(--green);
  }
  @media (max-width:720px){ .seam::before,.seam::after{ left:24px; } }

  /* ---------- NAV ---------- */
  header.site-nav{ position:fixed; top:0; left:0; right:0; z-index:200; background:rgba(244,241,234,.88); backdrop-filter:blur(5px); }
  .nav-inner{ max-width:var(--max); margin:0 auto; padding:28px 40px; display:flex; align-items:center; justify-content:space-between; }
  @media (max-width:720px){ .nav-inner{ padding:20px 24px; } }
  .nav-name{ font-family:'Fraunces', serif; font-weight:440; font-size:15px; letter-spacing:0.01em; text-decoration:none; color:var(--ink); display:flex; align-items:center; gap:10px; }
  .nav-name::before{ content:''; width:8px; height:8px; border:1.4px solid var(--green); flex-shrink:0; }
  .nav-links{ display:flex; gap:32px; }
  .nav-links a{ font-family:'IBM Plex Sans', sans-serif; font-size:11px; letter-spacing:0.14em; font-weight:500; text-transform:uppercase; color:var(--ink-70); text-decoration:none; padding-bottom:5px; border-bottom:1px solid transparent; transition:color .2s, border-color .2s; }
  .nav-links a:hover{ color:var(--ink); }
  .nav-links a.active{ color:var(--ink); border-color:var(--green); }
  @media (max-width:880px){ .nav-links{ display:none; } }
  .nav-toggle-wrap{ display:none; align-items:center; gap:14px; }
  @media (max-width:880px){ .nav-toggle-wrap{ display:flex; } }
  .nav-label{ font-family:'IBM Plex Sans', sans-serif; font-size:10.5px; letter-spacing:0.18em; font-weight:500; text-transform:uppercase; color:var(--ink); }
  .nav-toggle{ width:18px; height:18px; position:relative; background:none; border:none; cursor:pointer; padding:0; }
  .nav-toggle::before,.nav-toggle::after{ content:''; position:absolute; top:50%; left:50%; background:var(--ink); transition:transform .35s var(--ease), background .25s; }
  .nav-toggle::before{ width:16px; height:1px; transform:translate(-50%,-50%); }
  .nav-toggle::after{ width:1px; height:16px; transform:translate(-50%,-50%); }
  .nav-toggle:hover::before,.nav-toggle:hover::after{ background:var(--green); }
  .nav-toggle.open::before{ transform:translate(-50%,-50%) rotate(45deg); background:var(--green); }
  .nav-toggle.open::after{ transform:translate(-50%,-50%) rotate(135deg); background:var(--green); }

  .menu-overlay{ position:fixed; inset:0; background:var(--paper); z-index:300; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:40px; opacity:0; visibility:hidden; transition:opacity .45s var(--ease); }
  .menu-overlay.open{ opacity:1; visibility:visible; }
  .menu-close{ position:absolute; top:28px; right:40px; background:none; border:none; cursor:pointer; font-family:'IBM Plex Sans', sans-serif; font-size:10.5px; letter-spacing:0.18em; font-weight:500; text-transform:uppercase; color:var(--ink); display:flex; align-items:center; gap:10px; }
  .menu-links{ list-style:none; margin:0; padding:0; }
  .menu-links li{ margin:6px 0; display:flex; align-items:baseline; gap:18px; }
  .menu-links li::before{ content:''; width:18px; height:1px; background:var(--green); flex-shrink:0; margin-bottom:14px; }
  .menu-links a{ font-family:'Fraunces', serif; font-style:italic; font-weight:400; font-size:clamp(32px,7vw,60px); text-decoration:none; color:var(--ink); transition:color .3s; }
  .menu-links a:hover{ color:var(--green); }
  .menu-foot{ position:absolute; bottom:40px; left:40px; right:40px; display:flex; justify-content:space-between; font-family:'IBM Plex Sans', sans-serif; font-size:10.5px; letter-spacing:0.1em; color:var(--ink-45); flex-wrap:wrap; gap:8px; }
  @media (max-width:640px){ .menu-close{ right:24px; top:24px; } .menu-foot{ left:24px; right:24px; } .menu-links li::before{ display:none; } }

  /* ---------- HERO ---------- */
  .hero{ min-height:100svh; display:flex; flex-direction:column; justify-content:center; position:relative; padding:150px 0 60px; overflow:hidden; }
  @media (max-width:860px){ .hero{ min-height:auto; padding:130px 0 60px; } }

  .hero-portrait{ width:100%; aspect-ratio:4/5; position:relative; overflow:hidden; margin-top:44px; z-index:1; }
  .hero-portrait img{ width:100%; height:100%; object-fit:cover; object-position:56% 20%; display:block; }
  .hero-portrait::after{ content:''; position:absolute; inset:0; border:1px solid var(--ink-14); pointer-events:none; }
  @media (min-width:861px){
    .hero-portrait{ position:absolute; top:6%; right:2%; width:45%; height:84%; margin-top:0; }
  }

  .hero-plates{ position:absolute; inset:0; pointer-events:none; z-index:2; display:none; }
  @media (min-width:861px){ .hero-plates{ display:block; } }
  .plate{ position:absolute; }
  .plate-outline{ top:2%; right:-1.5%; width:47%; height:88%; border:1px solid var(--ink-14); z-index:0; }
  .plate-stone{ bottom:9%; left:52%; width:9%; height:12%; background:var(--stone); z-index:3; }
  .frag-line{ position:absolute; height:1px; background:var(--green); transform-origin:0 0; z-index:3; }
  .frag-line-a{ top:53%; left:45%; width:230px; opacity:.75; transform:rotate(-7deg); }
  .frag-line-b{ top:11%; right:1%; width:150px; opacity:.5; transform:rotate(19deg); }
  .frag-line-c{ bottom:12%; right:26%; width:190px; opacity:.35; transform:rotate(11deg); }
  .frag-tri{ position:absolute; bottom:6%; right:3%; width:38px; height:26px; z-index:3; }
  .frag-tri polygon{ fill:none; stroke:var(--green); stroke-width:1; opacity:.6; }

  .hero-content{ position:relative; z-index:2; max-width:44%; padding-left:56px; }
  @media (max-width:860px){ .hero-content{ max-width:100%; padding-left:24px; padding-right:24px; } }
  @media (min-width:641px) and (max-width:860px){ .hero-content{ padding-left:40px; padding-right:40px; } }
  .hero h1{ font-size:clamp(54px, 9.6vw, 140px); line-height:0.96; font-weight:440; margin-top:26px; }
  .hero .tagline{ margin-top:34px; font-family:'Fraunces', serif; font-style:italic; font-weight:400; font-size:clamp(17px, 1.8vw, 21px); color:var(--ink-70); max-width:420px; padding-left:20px; border-left:2px solid var(--green); }
  .hero-cta{ margin-top:38px; display:inline-flex; align-items:center; gap:9px; font-family:'IBM Plex Sans', sans-serif; font-size:11.5px; letter-spacing:0.14em; font-weight:500; text-transform:uppercase; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--ink-25); padding-bottom:5px; transition:border-color .25s, color .25s; }
  .hero-cta:hover{ border-color:var(--green); color:var(--green); }
  .hero-cta svg{ width:11px; height:11px; }
  .hero-cta svg path{ stroke:currentColor; }
  .hero-keywords{ margin-top:46px; font-family:'IBM Plex Sans', sans-serif; font-size:10.5px; letter-spacing:0.13em; text-transform:uppercase; color:var(--ink-45); }
  @media (max-width:860px){ .hero-keywords{ margin-top:32px; } }
  .scroll-cue{ position:absolute; bottom:40px; left:40px; font-family:'IBM Plex Sans', sans-serif; font-size:10.5px; letter-spacing:0.16em; font-weight:500; text-transform:uppercase; color:var(--ink-45); display:flex; align-items:center; gap:10px; z-index:2; }
  @media (max-width:640px){ .scroll-cue{ left:24px; bottom:26px; } }
  .scroll-cue .bar{ width:1px; height:30px; background:linear-gradient(to bottom, var(--ink-45) 0 40%, var(--ink-14) 40% 100%); }

  /* ---------- SECTION SCAFFOLD ---------- */
  section{ padding:min(18vw,150px) 0; border-top:1px solid var(--ink-14); }
  @media (max-width:640px){ section{ padding:88px 0; } }
  .section-head{ margin-bottom:72px; max-width:640px; }
  .section-head .eyebrow{ margin-bottom:18px; }
  .section-head h2{ font-size:clamp(32px,4.4vw,52px); font-weight:440; }

  /* ---------- INTRO ---------- */
  .intro{ background:var(--paper); border-top:none; }
  .intro-panel{ background:var(--warm-gray); padding:76px 56px; }
  @media (max-width:720px){ .intro-panel{ padding:52px 24px; } }
  .intro-grid{ display:grid; grid-template-columns:0.9fr 1.6fr; gap:60px; align-items:start; }
  @media (max-width:820px){ .intro-grid{ grid-template-columns:1fr; gap:22px; } }
  .intro-grid p{ font-size:clamp(19px,2.2vw,26px); font-family:'Fraunces', serif; font-weight:400; line-height:1.5; color:var(--ink); max-width:640px; }

  /* ---------- CURRENT PRACTICE (asymmetric editorial grid) ---------- */
  .practice{ background:var(--ink); color:var(--paper); position:relative; overflow:hidden; }
  .practice .eyebrow{ color:var(--paper-70); }
  .practice .eyebrow::before{ background:var(--green); }
  .cp-line{ position:absolute; height:1px; background:var(--green); opacity:.3; transform-origin:0 0; }
  .cp-line-a{ top:4%; left:2%; width:46vw; transform:rotate(6deg); }
  .cp-line-b{ bottom:8%; right:0; width:38vw; transform:rotate(-9deg); }
  .cp-grid{
    display:grid; grid-template-columns:repeat(12,1fr); gap:0 32px; margin-top:80px;
  }
  .cp-item{ text-decoration:none; color:var(--paper); display:flex; flex-direction:column; padding-top:26px; border-top:1px solid var(--paper-14); position:relative; }
  .cp-item .num{ font-family:'IBM Plex Sans', sans-serif; font-size:11px; letter-spacing:.14em; color:var(--green); margin-bottom:18px; }
  .cp-item h3{ font-family:'Fraunces', serif; font-weight:440; line-height:1.02; margin-bottom:18px; }
  .cp-item p{ font-family:'IBM Plex Sans', sans-serif; font-size:14px; color:var(--paper-70); line-height:1.6; max-width:32ch; margin:0 0 20px; }
  .cp-item .arr{ margin-top:auto; width:15px; height:15px; opacity:.6; transition:opacity .3s, transform .3s; }
  .cp-item .arr path{ stroke:var(--paper); }
  .cp-item:hover .arr{ opacity:1; transform:translate(3px,-3px); }
  .cp-item:hover{ border-color:var(--green); }
  .cp-1{ grid-column:1 / 8; grid-row:1 / 3; }
  .cp-1 h3{ font-size:clamp(38px,4.6vw,64px); }
  .cp-2{ grid-column:8 / 13; grid-row:1 / 2; margin-top:0; }
  .cp-2 h3{ font-size:clamp(26px,2.8vw,36px); }
  .cp-3{ grid-column:8 / 11; grid-row:2 / 3; margin-top:64px; }
  .cp-3 h3{ font-size:clamp(22px,2.2vw,28px); }
  .cp-4{ grid-column:11 / 13; grid-row:2 / 3; margin-top:64px; }
  .cp-4 h3{ font-size:clamp(20px,2vw,24px); }
  @media (max-width:980px){
    .cp-grid{ grid-template-columns:1fr 1fr; gap:0 28px; }
    .cp-1{ grid-column:1/3; grid-row:auto; } .cp-1 h3{ font-size:clamp(34px,6vw,52px); }
    .cp-2{ grid-column:1/2; grid-row:auto; margin-top:56px; } .cp-2 h3{ font-size:28px; }
    .cp-3{ grid-column:2/3; grid-row:auto; margin-top:56px; } .cp-3 h3{ font-size:24px; }
    .cp-4{ grid-column:1/2; grid-row:auto; margin-top:32px; } .cp-4 h3{ font-size:22px; }
  }
  @media (max-width:640px){
    .cp-grid{ grid-template-columns:1fr; }
    .cp-item{ grid-column:1/2 !important; margin-top:40px !important; }
  }

  /* ---------- ABOUT ---------- */
  .about{ background:var(--paper); }
  .about-grid{ display:grid; grid-template-columns:0.85fr 1.4fr; gap:70px; }
  @media (max-width:860px){ .about-grid{ grid-template-columns:1fr; gap:36px; } }
  .about-copy p{ margin:0 0 22px; color:var(--ink-70); font-size:16.5px; max-width:60ch; }
  .about-copy p:last-child{ margin-bottom:0; }
  .about-side{ position:sticky; top:120px; align-self:start; }
  .facts-panel{ padding:0 0 0 22px; border-left:2px solid var(--green); }
  .facts-panel .label{ font-family:'IBM Plex Sans', sans-serif; font-size:10.5px; letter-spacing:0.16em; font-weight:500; text-transform:uppercase; color:var(--ink-45); margin-bottom:20px; }
  .facts-panel .facts{ list-style:none; margin:0; padding:0; font-size:14px; }
  .facts-panel .facts li{ padding:15px 0; display:flex; justify-content:space-between; gap:12px; color:var(--ink); }
  .facts-panel .facts li span:first-child{ color:var(--ink-45); }

  .statement{ margin-top:96px; }
  .statement-panel{ background:var(--charcoal); color:var(--paper); padding:72px 56px; position:relative; }
  @media (max-width:720px){ .statement-panel{ padding:52px 24px; } }
  .statement blockquote{ margin:0; max-width:800px; }
  .statement blockquote p{ font-family:'Fraunces', serif; font-style:italic; font-weight:400; font-size:clamp(19px,2.4vw,25px); line-height:1.62; color:var(--paper); margin:0 0 24px; }
  .statement cite{ display:block; margin-top:26px; font-style:normal; font-family:'IBM Plex Sans', sans-serif; font-size:10.5px; letter-spacing:0.16em; font-weight:500; text-transform:uppercase; color:var(--paper-45); }
  .statement .eyebrow{ color:var(--paper-70); margin-bottom:26px; }
  .statement .eyebrow::before{ background:var(--green); }

  /* ---------- PRACTICE DETAIL ---------- */
  .detail{ background:var(--paper); }
  .detail-dark{ background:var(--charcoal); color:var(--paper); }
  .detail-grid{ display:grid; grid-template-columns:1.5fr 1fr; gap:64px; align-items:start; }
  @media (max-width:860px){ .detail-grid{ grid-template-columns:1fr; gap:36px; } }
  .detail-copy p{ color:var(--ink-70); font-size:16.5px; max-width:60ch; margin:0 0 22px; }
  .detail-dark .detail-copy p{ color:var(--paper-70); }
  .detail-copy p:last-child{ margin-bottom:0; }
  .detail-mark{ width:64px; height:32px; margin-bottom:26px; }
  .detail-mark path,.detail-mark circle{ stroke:var(--green); }
  .detail-title{ font-size:clamp(38px,6.2vw,66px); margin-bottom:28px; font-weight:440; }
  .detail-dark .detail-title{ color:var(--paper); }
  .meta-list{ padding:0 0 0 22px; border-left:2px solid var(--green); }
  .detail-dark .meta-list{ border-left:2px solid var(--green); }
  .meta-list dl{ margin:0; }
  .meta-list .row{ padding:15px 0; }
  .meta-list dt{ font-family:'IBM Plex Sans', sans-serif; font-size:10px; letter-spacing:0.16em; font-weight:500; text-transform:uppercase; color:var(--ink-45); margin-bottom:6px; }
  .detail-dark .meta-list dt{ color:var(--paper-45); }
  .meta-list dd{ margin:0; font-size:14.5px; color:var(--ink); }
  .detail-dark .meta-list dd{ color:var(--paper); }

  /* ---------- MANG ROPE — EXHIBITION COMPOSITION ---------- */
  .mr-intro{ max-width:62ch; }
  .mr-intro p{ color:var(--ink-70); font-size:16.5px; margin:0; }
  .mr-strip{ display:flex; flex-wrap:wrap; gap:24px 44px; margin-top:26px; padding-top:20px; border-top:1px solid var(--ink-14); }
  .mr-strip dt{ font-family:'IBM Plex Sans', sans-serif; font-size:10px; letter-spacing:0.15em; font-weight:500; text-transform:uppercase; color:var(--ink-45); margin-bottom:5px; }
  .mr-strip dd{ margin:0; font-size:13.5px; color:var(--ink); }

  .mr-photos{ margin-top:70px; }
  .mr-frame{ position:relative; border:1px solid var(--ink-14); overflow:hidden; background:var(--stone); }
  .mr-frame img{ display:block; width:100%; height:auto; }

  .mr-row{ display:flex; gap:4%; margin-top:64px; }
  .mr-row:first-child{ margin-top:0; }

  .mr-row-a{ align-items:flex-end; position:relative; }
  .mr-new{ width:36%; }
  .mr-dominant{ width:46%; }
  .mr-line{ position:absolute; height:1px; background:var(--green); opacity:.6; z-index:2; }

  .mr-row-b{ justify-content:center; }
  .mr-wide{ width:78%; }

  .mr-row-c{ align-items:flex-end; }
  .mr-band{ width:50%; }
  .mr-singer{ width:32%; }
  .mr-line-2{ flex:1; min-width:40px; height:1px; margin-bottom:60px; opacity:.4; }

  @media (max-width:860px){
    .mr-row{ flex-wrap:wrap; gap:20px; margin-top:44px; }
    .mr-new{ width:100%; }
    .mr-dominant{ width:82%; margin-left:auto; }
    .mr-wide{ width:100%; }
    .mr-band{ width:100%; }
    .mr-singer{ width:56%; }
    .mr-line-2{ display:none; }
  }
  @media (max-width:560px){
    .mr-dominant{ width:100%; margin-left:0; }
  }

  /* ---------- FIRST FLUSH — CONTEMPLATIVE COMPOSITION ---------- */
  .ff-intro{ max-width:60ch; }
  .ff-intro p{ color:var(--paper-70); font-size:16.5px; margin:0; }
  .ff-strip{ display:flex; flex-wrap:wrap; gap:24px 44px; margin-top:26px; padding-top:20px; border-top:1px solid var(--paper-14); }
  .ff-strip dt{ font-family:'IBM Plex Sans', sans-serif; font-size:10px; letter-spacing:0.15em; font-weight:500; text-transform:uppercase; color:var(--paper-45); margin-bottom:5px; }
  .ff-strip dd{ margin:0; font-size:13.5px; color:var(--paper); }

  .ff-photos{ margin-top:70px; }
  .ff-frame{ border:1px solid var(--paper-14); overflow:hidden; background:rgba(244,241,234,.04); flex-shrink:0; }
  .ff-frame img{ display:block; width:100%; height:auto; }

  /* 1 portrait, 2 landscape, 3 portrait, 4 portrait, 5 landscape (dominant), 6 portrait, 7 portrait, 8 portrait */
  .ff-row{ display:flex; gap:5%; margin-top:64px; }
  .ff-row:first-child{ margin-top:0; }

  .ff-row-a{ align-items:flex-end; }
  .ff-1{ width:36%; }
  .ff-2{ width:59%; }

  .ff-row-b{ align-items:flex-start; }
  .ff-3{ width:30%; }
  .ff-4{ width:22%; margin-top:56px; }
  .ff-row-b .ff-note{ flex:1; align-self:center; max-width:30ch; margin:0; text-align:left; padding-left:4%; }
  .ff-note p{ font-family:'Fraunces', serif; font-style:italic; font-size:clamp(16px,1.5vw,19px); color:var(--paper-70); line-height:1.55; }

  .ff-row-c{ justify-content:center; }
  .ff-5{ width:62%; }

  .ff-row-d{ align-items:flex-end; }
  .ff-6{ width:30%; }
  .ff-7{ width:33%; }
  .ff-8{ width:30%; }

  @media (max-width:860px){
    .ff-row{ flex-wrap:wrap; gap:24px; margin-top:44px; }
    .ff-1{ width:100%; } .ff-2{ width:100%; }
    .ff-3{ width:56%; } .ff-4{ width:36%; margin-top:0; }
    .ff-row-b .ff-note{ flex-basis:100%; padding-left:0; margin-top:12px; }
    .ff-5{ width:100%; }
    .ff-6{ width:47%; } .ff-7{ width:47%; } .ff-8{ width:70%; }
  }

  /* ---------- JAZZ & IMPROVISATION — EDITORIAL DIPTYCH ---------- */
  .jz-intro{ max-width:62ch; }
  .jz-intro p{ color:var(--ink-70); font-size:16.5px; margin:0; }
  .jz-strip{ display:flex; flex-wrap:wrap; gap:24px 44px; margin-top:26px; padding-top:20px; border-top:1px solid var(--ink-14); }
  .jz-strip dt{ font-family:'IBM Plex Sans', sans-serif; font-size:10px; letter-spacing:0.15em; font-weight:500; text-transform:uppercase; color:var(--ink-45); margin-bottom:5px; }
  .jz-strip dd{ margin:0; font-size:13.5px; color:var(--ink); }

  .jz-frame{ border:1px solid var(--ink-14); overflow:hidden; background:var(--stone); }
  .jz-frame img{ display:block; width:100%; height:auto; }

  .jz-row-a{ display:flex; align-items:flex-end; gap:6%; margin-top:90px; }
  .jz-1{ width:56%; }
  .jz-note{ flex:1; max-width:26ch; padding-bottom:6px; }
  .jz-note p{ font-family:'Fraunces', serif; font-style:italic; font-size:clamp(17px,1.7vw,21px); color:var(--ink-70); line-height:1.55; }

  .jz-row-b{ display:flex; align-items:flex-end; gap:6%; margin-top:130px; }
  .jz-plate{ width:22%; align-self:stretch; position:relative; border:1px solid var(--ink-14); }
  .jz-plate::before{ content:''; position:absolute; width:56%; height:1px; background:var(--green); top:38%; left:-14%; opacity:.7; transform:rotate(-14deg); transform-origin:0 0; }
  .jz-2{ width:34%; margin-left:auto; }

  @media (max-width:860px){
    .jz-row-a{ flex-direction:column; align-items:stretch; gap:24px; margin-top:56px; }
    .jz-1{ width:100%; }
    .jz-note{ max-width:none; }
    .jz-row-b{ margin-top:56px; gap:20px; }
    .jz-plate{ display:none; }
    .jz-2{ width:60%; margin-left:auto; }
  }

  /* ---------- ELECTRONIC MUSIC — SOUND INSTALLATION ---------- */
  .em-intro{ max-width:62ch; }
  .em-intro p{ color:var(--ink-70); font-size:16.5px; margin:0; }
  .em-strip{ display:flex; flex-wrap:wrap; gap:24px 44px; margin-top:26px; padding-top:20px; border-top:1px solid var(--ink-14); }
  .em-strip dt{ font-family:'IBM Plex Sans', sans-serif; font-size:10px; letter-spacing:0.15em; font-weight:500; text-transform:uppercase; color:var(--ink-45); margin-bottom:5px; }
  .em-strip dd{ margin:0; font-size:13.5px; color:var(--ink); }

  .em-frame{ border:1px solid var(--ink-14); overflow:hidden; background:var(--stone); }
  .em-frame img{ display:block; width:100%; height:auto; }

  .em-spread{ display:flex; align-items:flex-end; gap:3.5%; margin-top:60px; flex-wrap:wrap; }
  .em-2{ width:21%; }
  .em-3{ width:21%; }
  .em-signal{ position:relative; align-self:stretch; width:32px; flex-shrink:0; min-height:160px; }
  .em-signal::before{ content:''; position:absolute; left:50%; top:8%; bottom:8%; width:1px; background:var(--green); opacity:.6; }
  .em-signal .word{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) rotate(-90deg); white-space:nowrap; font-family:'IBM Plex Sans', sans-serif; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-45); }
  .em-1{ width:29%; }
  .em-note{ flex:1; min-width:150px; max-width:22ch; padding-bottom:10px; }
  .em-note p{ font-family:'Fraunces', serif; font-style:italic; font-size:clamp(16px,1.5vw,19px); color:var(--ink-70); line-height:1.5; }

  @media (max-width:860px){
    .em-spread{ gap:20px; margin-top:44px; }
    .em-2{ width:44%; } .em-3{ width:44%; }
    .em-signal{ display:none; }
    .em-1{ width:56%; }
    .em-note{ flex-basis:100%; max-width:none; padding-bottom:0; }
  }
  @media (max-width:560px){
    .em-2{ width:60%; margin:0 auto; } .em-3{ width:60%; margin:0 auto; }
    .em-1{ width:64%; margin:0 auto; }
  }

  /* ---------- PERFORMANCES ---------- */
  .performances{ background:var(--paper); }
  .performances .body-text{ max-width:660px; }
  .performances .body-text p{ color:var(--ink-70); font-size:17px; margin:0 0 20px; }
  .context-list{ list-style:none; margin:52px 0 0; padding:0; max-width:760px; }
  .context-list li{ padding:22px 0 22px 16px; border-top:1px solid var(--ink-14); border-left:1px solid var(--ink-14); color:var(--ink-70); font-size:14.5px; }
  .context-list li:last-child{ border-bottom:1px solid var(--ink-14); }
  .context-list strong{ display:block; font-family:'Fraunces', serif; font-style:italic; color:var(--ink); font-size:18px; font-weight:400; margin-bottom:5px; }
  .note{ margin-top:36px; font-family:'IBM Plex Sans', sans-serif; font-size:11.5px; color:var(--ink-45); letter-spacing:.04em; }

  /* ---------- MEDIA ---------- */
  .media{ background:var(--paper); }
  .media-links{ display:flex; gap:44px; flex-wrap:wrap; margin-top:40px; }
  .media-link{ display:inline-flex; align-items:baseline; gap:9px; text-decoration:none; color:var(--ink); font-family:'IBM Plex Sans', sans-serif; font-size:12.5px; letter-spacing:0.12em; font-weight:500; text-transform:uppercase; padding-bottom:6px; border-bottom:1px solid var(--ink-25); transition:border-color .25s, color .25s; }
  .media-link:hover{ border-color:var(--green); color:var(--green); }
  .media-link svg{ width:10px; height:10px; }

  /* ---------- CV ---------- */
  .cv{ background:var(--paper); }
  .cv-block{ margin-bottom:56px; }
  .cv-block:last-child{ margin-bottom:0; }
  .cv-block h3{ font-family:'IBM Plex Sans', sans-serif; font-size:11px; letter-spacing:0.16em; font-weight:500; text-transform:uppercase; color:var(--ink-45); margin-bottom:24px; }
  .cv-row{ display:flex; align-items:baseline; gap:14px; padding:18px 0; border-top:1px solid var(--ink-14); }
  .cv-row:first-child{ border-top:none; padding-top:0; }
  .cv-row .role{ font-family:'Fraunces', serif; font-size:19px; flex-shrink:0; font-weight:440; }
  .cv-row .filler{ flex:1; border-bottom:1px dotted var(--ink-25); margin-bottom:6px; }
  .cv-row .date{ font-family:'IBM Plex Sans', sans-serif; font-size:12px; font-weight:500; letter-spacing:.03em; color:var(--ink-45); white-space:nowrap; }
  .cv-row .sub{ display:block; font-size:13.5px; color:var(--ink-45); margin-top:5px; font-family:'IBM Plex Sans',sans-serif; font-weight:400; }
  @media (max-width:640px){ .cv-row{ flex-wrap:wrap; } .cv-row .filler{ display:none; } }
  .skills-flow{ color:var(--ink-70); font-size:15.5px; line-height:2.1; max-width:70ch; }
  .cv-columns{ display:grid; grid-template-columns:1fr 1fr; gap:64px; }
  @media (max-width:720px){ .cv-columns{ grid-template-columns:1fr; gap:36px; } }

  /* ---------- CONTACT ---------- */
  .contact{ background:var(--ink); color:var(--paper); border-top:none; }
  .contact .eyebrow{ color:var(--paper-70); }
  .contact .eyebrow::before{ background:var(--green); }
  .contact h2{ color:var(--paper); font-size:clamp(32px,5.6vw,64px); max-width:780px; margin-bottom:52px; font-weight:440; }
  .contact-links{ display:flex; flex-wrap:wrap; gap:16px 44px; margin-bottom:70px; }
  .contact-links a{ text-decoration:none; color:var(--paper); font-family:'IBM Plex Sans', sans-serif; font-size:13.5px; letter-spacing:.03em; font-weight:500; border-bottom:1px solid var(--paper-25); padding-bottom:5px; transition:border-color .25s, color .25s; }
  .contact-links a:hover{ border-color:var(--green); color:#4E8A6C; }
  footer{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; padding-top:30px; border-top:1px solid var(--paper-14); font-family:'IBM Plex Sans', sans-serif; font-size:10.5px; color:var(--paper-45); letter-spacing:.06em; }
