
@font-face{font-family:'Second String';src:url(/assets/second-string.woff2) format('woff2');font-weight:400;font-display:swap;}
@font-face{font-family:'Jelly Habit';src:url(/assets/jelly-habit.woff2) format('woff2');font-weight:400;font-display:swap;}

:root{
  --paper:#ece9e0; --paper-lift:#f3f1ea; --paper-2:#e4e0d5;
  --denim:#29536c; --denim-deep:#1e3d50; --denim-line:#3a6883;
  --brick:#df3924; --charcoal:#2b2723; --ink:#37332c; --ink-soft:#6a6459;
  --rule:#d5cfc2; --rule-2:#c8c1b1; --rule-dark:rgba(236,233,224,.18);
  --disp:'Second String','Arial Narrow',sans-serif;
  --hand:'Jelly Habit',cursive;
  --body:'IBM Plex Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --serif:'IBM Plex Serif',Georgia,serif;
  --read:39rem; --wide:66rem; --gut:clamp(1.4rem,5vw,3rem);
  --ease:cubic-bezier(.2,.6,.2,1);
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);
  font-size:1.15rem;line-height:1.72;font-weight:400;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;}
::selection{background:var(--brick);color:#fff;}
img{max-width:100%;display:block;}
a{color:inherit;}
p{margin:0 0 1.15em;}
strong,b{font-weight:600;}
em{font-style:italic;}

/* ---- rhythm + containers ---- */
.wrap{max-width:var(--read);margin-inline:auto;padding-inline:var(--gut);}
.wide{max-width:var(--wide);margin-inline:auto;padding-inline:var(--gut);}
section{padding-block:clamp(4.5rem,10vw,8.5rem);position:relative;}
.tight{padding-block:clamp(3.5rem,7vw,5.5rem);}

/* ---- display / labels / headlines ---- */
.label{font-family:var(--disp);font-size:.82rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--brick);margin:0 0 1.6rem;display:block;font-weight:400;}
.label .n{color:var(--denim);}
.on-dark .label{color:#e8916f;}
.statement{font-family:var(--disp);font-weight:400;line-height:1.02;letter-spacing:-.005em;
  font-size:clamp(2.3rem,5.4vw,4rem);color:var(--charcoal);margin:0;text-wrap:balance;}
.on-dark .statement{color:var(--paper);}
h2.headline{font-family:var(--body);font-weight:600;letter-spacing:-.012em;line-height:1.12;
  font-size:clamp(1.55rem,3vw,2.35rem);color:var(--charcoal);margin:0 0 1.5rem;text-wrap:balance;}
.on-dark h2.headline{color:var(--paper);}
h3.sub{font-family:var(--body);font-weight:600;font-size:1.12rem;line-height:1.3;margin:0 0 .35rem;color:var(--charcoal);}
.lede{font-size:1.32rem;line-height:1.6;color:var(--ink);}
.lede.on-dark,.on-dark .lede{color:#dfe6ea;}
.hand{font-family:var(--hand);color:var(--brick);font-size:1.5rem;line-height:1.2;transform:rotate(-2.5deg);display:inline-block;}
.dim{color:var(--ink-soft);}
.serif-q{font-family:var(--serif);font-style:italic;}

/* ---- section grounds ---- */
.s-denim{background:var(--denim);color:#dfe6ea;}
.s-denim-deep{background:var(--denim-deep);color:#dfe6ea;}
.s-dark{background:var(--charcoal);color:#e8e4da;}
.s-lift{background:var(--paper-lift);}
.on-dark{color:#dfe6ea;}
.on-dark h3.sub{color:#fff;}
.hairline{height:1px;background:var(--rule);border:0;margin:0;}

/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:50;background:rgba(236,233,224,.88);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid transparent;transition:border-color .3s,background .3s;}
.nav.scr{border-bottom-color:var(--rule);}
.nav-in{max-width:var(--wide);margin-inline:auto;padding:.85rem var(--gut);
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;}
.nav .mark{height:26px;width:auto;}
.nav-links{display:flex;align-items:center;gap:1.7rem;font-family:var(--body);font-weight:500;font-size:.94rem;}
.nav-links a{text-decoration:none;color:var(--ink);opacity:.82;transition:opacity .2s,color .2s;}
.nav-links a:hover{opacity:1;color:var(--brick);}
.nav .begin{font-family:var(--disp);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
  border:1.5px solid var(--charcoal);border-radius:2px;padding:.5em 1em;color:var(--charcoal);
  text-decoration:none;transition:.2s;white-space:nowrap;}
.nav .begin:hover{background:var(--charcoal);color:var(--paper);}
@media(max-width:760px){.nav-links a:not(.begin){display:none;}}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--disp);font-weight:400;
  font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;
  padding:.85em 1.5em;border-radius:2px;transition:.22s var(--ease);cursor:pointer;}
.btn-fill{background:var(--brick);color:#fff;border:1.5px solid var(--brick);}
.btn-fill:hover{background:#c5301f;border-color:#c5301f;}
.btn-line{border:1.5px solid var(--charcoal);color:var(--charcoal);}
.btn-line:hover{background:var(--charcoal);color:var(--paper);}
.on-dark .btn-line{border-color:rgba(236,233,224,.55);color:var(--paper);}
.on-dark .btn-line:hover{background:var(--paper);color:var(--charcoal);}
.textlink{font-family:var(--body);font-weight:500;font-size:1rem;text-decoration:none;
  color:var(--denim);border-bottom:1.5px solid var(--brick);padding-bottom:2px;transition:.2s;}
.textlink:hover{color:var(--brick);}
.on-dark .textlink{color:#cfe0ea;}
.btn-row{display:flex;flex-wrap:wrap;gap:1rem 1.4rem;align-items:center;margin-top:2.4rem;}

/* ---- image placeholders (two-ink screenprint, printer's marks) ---- */
.ph{margin:0;}
.ph-frame{position:relative;background:
    repeating-linear-gradient(45deg,transparent,transparent 9px,rgba(41,83,108,.045) 9px,rgba(41,83,108,.045) 10px),
    var(--paper-lift);
  border:1px solid var(--denim);outline:1px solid var(--brick);outline-offset:4px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:2.2rem 1.8rem;min-height:100%;gap:.8rem;}
.on-dark .ph-frame{background:
    repeating-linear-gradient(45deg,transparent,transparent 9px,rgba(236,233,224,.05) 9px,rgba(236,233,224,.05) 10px),
    rgba(255,255,255,.03);
  border-color:var(--denim-line);}
.ph-frame::before,.ph-frame::after{content:"";position:absolute;width:11px;height:11px;
  background:
    linear-gradient(var(--brick),var(--brick)) center/100% 1.5px no-repeat,
    linear-gradient(var(--brick),var(--brick)) center/1.5px 100% no-repeat;}
.ph-frame::before{top:7px;left:7px;} .ph-frame::after{bottom:7px;right:7px;}
.ph-kind{font-family:var(--disp);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--denim);}
.on-dark .ph-kind{color:#8fb4c9;}
.ph-note{font-family:var(--serif);font-style:italic;font-size:.98rem;line-height:1.5;color:var(--ink-soft);margin:0;max-width:34ch;}
.on-dark .ph-note{color:#aeb8bd;}
.ph--wide .ph-frame{aspect-ratio:16/7;}
.ph--band .ph-frame{aspect-ratio:16/5;}
.ph--tall .ph-frame{aspect-ratio:4/5;}
.ph--sq .ph-frame{aspect-ratio:1/1;}
.ph--ui .ph-frame{aspect-ratio:16/10;}
.ph--page .ph-frame{aspect-ratio:17/22;}

/* ---- hero ---- */
.hero{padding-top:clamp(3rem,7vw,5.5rem);padding-bottom:0;}
.hero-word{font-family:var(--disp);font-size:.9rem;letter-spacing:.3em;text-transform:uppercase;color:var(--denim);margin:0 0 1.1rem;}
.hero-h{font-family:var(--disp);font-weight:400;line-height:.94;letter-spacing:-.01em;
  font-size:clamp(3.4rem,10vw,7rem);color:var(--charcoal);margin:0 0 2rem;}
.hero-h .amp{color:var(--brick);}
.hero-lede{max-width:33rem;font-size:1.28rem;line-height:1.55;color:var(--ink);}
.hero-bee{position:absolute;width:clamp(58px,7vw,86px);opacity:.9;right:clamp(1rem,10vw,7rem);top:clamp(4rem,12vw,7rem);transform:rotate(8deg);}
.hero-photo{margin-top:clamp(3rem,6vw,4.5rem);}
.hero-photo .ph-frame{aspect-ratio:20/6;border-bottom:0;outline:none;border-left:0;border-right:0;}
.scrollcue{display:inline-flex;align-items:center;gap:.5em;font-family:var(--body);font-weight:500;
  font-size:.95rem;color:var(--ink-soft);text-decoration:none;margin-top:1.6rem;}
.scrollcue:hover{color:var(--brick);}

/* ---- two-column editorial ---- */
.col2{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:clamp(1.6rem,5vw,4.5rem);align-items:start;}
.col2 .aside{position:sticky;top:6rem;}
@media(max-width:820px){.col2{grid-template-columns:1fr;gap:1.4rem;}.col2 .aside{position:static;}}
.body-copy p{max-width:40rem;}
.body-copy p+p{margin-top:0;}

/* ---- "we find things like" list ---- */
.findlist{list-style:none;margin:2rem 0 0;padding:0;max-width:42rem;}
.findlist li{position:relative;padding:1rem 0 1rem 2.4rem;border-top:1px solid var(--rule);line-height:1.5;}
.findlist li:last-child{border-bottom:1px solid var(--rule);}
.findlist li::before{content:"—";position:absolute;left:0;top:1rem;color:var(--brick);font-family:var(--disp);}

/* ---- lens diagram ---- */
.lens{margin:2.5rem 0 0;padding:2rem 0;border-block:1px solid var(--rule);}
.lens-axis{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1rem;
  font-family:var(--disp);font-size:clamp(1rem,2vw,1.5rem);letter-spacing:.04em;color:var(--denim);text-transform:uppercase;text-align:center;}
.lens-axis .x{color:var(--brick);font-size:.9em;}
.lens-q{list-style:none;margin:2.4rem 0 0;padding:0;columns:2;column-gap:3rem;max-width:44rem;}
.lens-q li{break-inside:avoid;margin-bottom:1rem;padding-left:1.3rem;position:relative;line-height:1.45;}
.lens-q li::before{content:"?";position:absolute;left:0;color:var(--brick);font-family:var(--disp);}
@media(max-width:620px){.lens-q{columns:1;}}

/* ---- method ---- */
.method-vis{display:flex;flex-direction:column;align-items:center;margin:1rem 0 3rem;}
.method-vis svg{width:100%;max-width:640px;height:auto;overflow:visible;}
.draw{stroke-dasharray:1;stroke-dashoffset:1;pathLength:1;transition:stroke-dashoffset 1.4s var(--ease);}
.in .draw{stroke-dashoffset:0;}
.mnode{font-family:var(--disp);letter-spacing:.06em;text-transform:uppercase;}
.steps{counter-reset:none;margin:0;padding:0;list-style:none;}
.step{display:grid;grid-template-columns:auto 1fr;gap:1.2rem 1.4rem;padding:1.5rem 0;border-top:1px solid var(--rule);align-items:baseline;}
.step:last-child{border-bottom:1px solid var(--rule);}
.step .num{font-family:var(--disp);font-size:2.1rem;line-height:1;color:var(--brick);}
.step h3{margin:0 0 .3rem;font-family:var(--body);font-weight:600;font-size:1.12rem;color:var(--charcoal);}
.step p{margin:0;max-width:42rem;}

/* ---- what we build ---- */
.build-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2.2rem 3rem;margin-top:2.5rem;}
@media(max-width:720px){.build-grid{grid-template-columns:1fr;gap:1.8rem;}}
.build-item{border-top:2px solid var(--charcoal);padding-top:1rem;}
.build-item h3{margin:0 0 .35rem;font-family:var(--body);font-weight:600;font-size:1.1rem;color:var(--charcoal);}
.build-item p{margin:0;font-size:1.05rem;color:var(--ink-soft);line-height:1.55;}

/* ---- case study ---- */
.case{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:clamp(1.6rem,5vw,4rem);align-items:start;}
@media(max-width:820px){.case{grid-template-columns:1fr;}}
.case .meta{font-family:var(--disp);}
.case .meta .big{font-size:clamp(1.6rem,3.5vw,2.4rem);line-height:1;letter-spacing:0;color:var(--charcoal);text-transform:uppercase;display:block;margin-bottom:.7rem;}
.case .meta .sm{font-family:var(--body);font-weight:500;color:var(--ink-soft);font-size:1rem;line-height:1.4;}
.fbb{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2.2rem 0 .5rem;}
.fbb .cell{border:1px solid var(--rule-2);padding:1rem;text-align:center;}
.fbb .cell span{font-family:var(--disp);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--denim);}

/* ---- artifacts (dark) ---- */
.arts{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-top:2.6rem;}
@media(max-width:820px){.arts{grid-template-columns:repeat(2,1fr);}}
.art .ph-frame{aspect-ratio:17/22;}
.art .cap{font-family:var(--disp);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#9fbccd;margin-top:.7rem;text-align:center;}

/* ---- not-a-fit / owner ---- */
.stack p{max-width:40rem;}

/* ---- discovery offer (work order) ---- */
.workorder{border:2px solid var(--charcoal);position:relative;background:var(--paper-lift);}
.workorder .wo-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;
  border-bottom:2px solid var(--charcoal);padding:.7rem 1.4rem;font-family:var(--disp);
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--denim);}
.workorder .wo-body{padding:clamp(1.6rem,4vw,2.8rem);}

/* ---- final cta ---- */
.final{text-align:center;}
.final .line-svg{width:min(560px,80%);height:40px;margin:0 auto 2.5rem;display:block;overflow:visible;}
.final-bee{width:52px;margin:0 auto 2rem;opacity:.9;}
.final .sign{font-family:var(--disp);font-size:.85rem;letter-spacing:.3em;text-transform:uppercase;color:#8fb4c9;margin-top:3rem;}

/* ---- footer ---- */
.ftr{background:var(--charcoal);color:#b7b1a4;padding-block:3rem 2.5rem;}
.ftr-in{max-width:var(--wide);margin-inline:auto;padding-inline:var(--gut);
  display:flex;flex-wrap:wrap;gap:1.4rem 2.5rem;align-items:center;justify-content:space-between;}
.ftr .fmark{font-family:var(--disp);font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase;color:var(--paper);}
.ftr .fmark small{display:block;font-size:.62rem;letter-spacing:.28em;color:var(--brick);margin-top:.15rem;}
.ftr nav{display:flex;flex-wrap:wrap;gap:1.2rem;font-size:.92rem;}
.ftr a{color:#cfcabd;text-decoration:none;}.ftr a:hover{color:#fff;}

/* ---- reveal ---- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.rv.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none;}
  .draw{stroke-dashoffset:0;transition:none;}
  html{scroll-behavior:auto;}
}

/* ---- cleaned image slots (description lives in aria-label / title) ---- */
.ph-mark{width:15px;height:15px;opacity:.45;background:
  linear-gradient(var(--denim),var(--denim)) center/100% 1.5px no-repeat,
  linear-gradient(var(--denim),var(--denim)) center/1.5px 100% no-repeat;}
.on-dark .ph-mark{opacity:.4;background:
  linear-gradient(#8fb4c9,#8fb4c9) center/100% 1.5px no-repeat,
  linear-gradient(#8fb4c9,#8fb4c9) center/1.5px 100% no-repeat;}
.ph-frame{align-items:center;}
/* ---- lens (three questions) ---- */
.lens3{list-style:none;margin:0;padding:0;max-width:40rem;}
.lens3 li{font-family:var(--body);font-weight:500;font-size:clamp(1.25rem,2.8vw,1.85rem);
  line-height:1.3;color:var(--charcoal);padding:1.15rem 0;border-top:1px solid var(--rule);}
.lens3 li:first-child{border-top:0;}
/* ---- method: four movements ---- */
.moves{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:clamp(1.6rem,5vw,4rem);align-items:start;margin-top:1rem;}
@media(max-width:760px){.moves{grid-template-columns:1fr;}}
.moves svg{width:100%;max-width:260px;height:auto;overflow:visible;display:block;margin-inline:auto;}
.move{padding:1.25rem 0;border-top:1px solid var(--rule);}
.move:first-child{border-top:0;padding-top:0;}
.move .mv{font-family:var(--disp);font-size:1.5rem;letter-spacing:.03em;text-transform:uppercase;color:var(--charcoal);}
.move .sub{display:block;font-family:var(--disp);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brick);margin:.15rem 0 .5rem;}
.move p{margin:0;font-size:1.05rem;color:var(--ink-soft);max-width:38rem;}
/* ---- what we build (problem-paired) ---- */
.build2{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 3rem;margin-top:2.4rem;}
@media(max-width:720px){.build2{grid-template-columns:1fr;gap:1.7rem;}}
.build2 .bi{border-top:2px solid var(--charcoal);padding-top:.9rem;}
.build2 .prob{display:block;font-family:var(--disp);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brick);margin-bottom:.4rem;}
.build2 h3{margin:0 0 .3rem;font-family:var(--body);font-weight:600;font-size:1.12rem;color:var(--charcoal);}
.build2 p{margin:0;font-size:1.02rem;color:var(--ink-soft);line-height:1.5;}
/* ---- case study: three-part proof ---- */
.proof3{display:grid;gap:1.3rem;margin-top:.5rem;}
.panel{border:1px solid var(--rule-2);background:var(--paper);padding:clamp(1.4rem,3.5vw,2.2rem);}
.panel.found{background:#f6ece7;border-color:#e7c3b6;}
.panel .plabel{font-family:var(--disp);font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;color:var(--denim);display:block;margin-bottom:.4rem;}
.panel.found .plabel{color:var(--brick);}
.panel .pintro{color:var(--ink-soft);margin:0 0 1.3rem;font-size:1.02rem;}
.flow-chain{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .45rem;font-family:var(--disp);font-size:.9rem;letter-spacing:.02em;text-transform:uppercase;}
.flow-chain .stage{border:1px solid var(--denim);color:var(--denim);padding:.45em .75em;border-radius:2px;background:#fff;}
.flow-chain .arr{color:var(--ink-soft);}
.findings{list-style:none;margin:0;padding:0;columns:2;column-gap:2.6rem;}
.findings li{break-inside:avoid;padding:.5rem 0 .5rem 1.6rem;position:relative;line-height:1.4;font-size:1.02rem;color:var(--charcoal);}
.findings li::before{content:"\2715";position:absolute;left:0;top:.62rem;color:var(--brick);font-size:.8em;}
@media(max-width:600px){.findings{columns:1;}}
.arch{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:1.6rem;font-family:var(--disp);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft);}
.arch .node{border:1px solid var(--denim);color:var(--denim);background:#fff;padding:.4em .7em;border-radius:2px;}
.arch .node.src{border-color:var(--brick);color:var(--brick);}
.trace{width:100%;border-collapse:collapse;}
.trace td{padding:.65rem .2rem;border-bottom:1px solid var(--rule);vertical-align:top;font-size:1rem;line-height:1.4;}
.trace td.p{color:var(--ink-soft);width:47%;padding-right:1rem;}
.trace td.a{color:var(--charcoal);font-weight:500;}
.trace td.a::before{content:"\2192 ";color:var(--brick);font-weight:600;}
/* ---- artifacts: document wall + lightbox ---- */
.docwall{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.6rem;}
@media(max-width:820px){.docwall{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.docwall{grid-template-columns:1fr;}}
.doc{cursor:zoom-in;background:none;border:0;padding:0;margin:0;text-align:left;font:inherit;color:inherit;display:block;width:100%;}
.doc-page{aspect-ratio:17/22;background:#faf8f2;border:1px solid #cfc7b7;
  box-shadow:5px 6px 0 -1px rgba(43,39,35,.10);padding:1rem;display:flex;flex-direction:column;gap:.5rem;overflow:hidden;transition:transform .2s var(--ease),box-shadow .2s var(--ease);}
.doc:hover .doc-page,.doc:focus-visible .doc-page{transform:translateY(-4px);box-shadow:7px 10px 0 -1px rgba(43,39,35,.14);}
.doc-hd{display:flex;justify-content:space-between;font-family:var(--disp);font-size:.5rem;letter-spacing:.1em;text-transform:uppercase;color:#a49c8b;border-bottom:1px solid #e3dccd;padding-bottom:.4rem;}
.doc-ttl{font-family:var(--disp);font-size:.98rem;line-height:1;color:var(--charcoal);text-transform:uppercase;letter-spacing:.01em;margin-top:.1rem;}
.bar{height:6px;background:#e7e1d3;border-radius:1px;}
.bar.s{width:55%;} .bar.m{width:82%;} .bar.br{background:#f0c9be;width:70%;}
.doc-mini{display:flex;gap:.3rem;align-items:center;margin:.2rem 0;font-family:var(--disp);font-size:.42rem;text-transform:uppercase;color:#8a836f;}
.doc-mini b{border:1px solid #cfc7b7;padding:.25em .4em;border-radius:1px;background:#fff;}
.doc-mini .a{color:#c98b78;}
.doc-cap{font-family:var(--disp);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--denim);margin-top:.75rem;display:block;}
.on-dark .doc-cap{color:#9fbccd;}
.lb{position:fixed;inset:0;background:rgba(20,17,14,.88);display:none;align-items:center;justify-content:center;z-index:100;padding:6vh 6vw;cursor:zoom-out;}
.lb.on{display:flex;}
.lb .lb-slot .doc-page{width:min(500px,86vw);cursor:default;box-shadow:0 24px 70px rgba(0,0,0,.55);}
.lb .lb-slot .doc-ttl{font-size:1.6rem;} .lb .lb-slot .doc-hd{font-size:.68rem;} .lb .lb-slot .bar{height:9px;}
/* ---- contact form ---- */
.contact-panel{background:var(--paper-lift);border:2px solid var(--charcoal);padding:clamp(1.5rem,4vw,2.6rem);margin-top:2rem;}
.form{display:grid;gap:1.05rem;}
.form label{display:block;font-family:var(--disp);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--denim);margin-bottom:.35rem;}
.form input,.form textarea{width:100%;font-family:var(--body);font-size:1.02rem;color:var(--ink);background:#fff;border:1px solid var(--rule-2);border-radius:2px;padding:.65em .75em;}
.form textarea{min-height:5rem;resize:vertical;}
.form input:focus,.form textarea:focus{outline:2px solid var(--denim);outline-offset:0;border-color:var(--denim);}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:1.05rem;}
@media(max-width:560px){.form .row2{grid-template-columns:1fr;}}
.contact-note{font-family:var(--serif);font-style:italic;color:var(--ink-soft);margin-top:1.2rem;}


/* ---- writing index ---- */
.writings{list-style:none;margin:2.2rem 0 0;padding:0;max-width:44rem;}
.writings li{display:grid;grid-template-columns:auto 1fr;gap:1.1rem 1.4rem;padding:1.5rem 0;border-top:1px solid var(--rule);align-items:baseline;}
.writings li:first-child{border-top:0;}
.writings .wn{font-family:var(--disp);font-size:1.5rem;line-height:1;color:var(--brick);}
.writings h3{margin:0 0 .3rem;font-family:var(--body);font-weight:600;font-size:1.2rem;line-height:1.25;color:var(--charcoal);}
.writings p{margin:0;color:var(--ink-soft);font-size:1.02rem;line-height:1.5;}
