/* =====================================================================
   NIJME BERDUGO — Ceramics & Analog Photography
   Design system + all page styles. Mobile-first. No build step.
   ===================================================================== */

:root{
  /* palette pulled from the tiles + the card */
  --bg:#F6F1EA;
  --bg-2:#EDE5DA;
  --paper:#FBF8F3;
  --ink:#2A221E;
  --ink-2:#6E6057;
  --ink-3:#9C8E84;
  --terra:#C4826E;
  --terra-2:#A5624C;
  --sand:#D9B784;
  --ochre:#C3904C;
  --rose:#DCC0B3;
  --clay-dark:#7A5548;
  --line:rgba(42,34,30,.14);
  --dark:#191512;
  --dark-2:#241E1A;
  --dark-ink:#EFE7DD;

  --serif:"Instrument Serif", Georgia, "Times New Roman", serif;
  --sans:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;
  --mono:"IBM Plex Mono", "SFMono-Regular", Menlo, monospace;

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --gutter:clamp(18px, 5vw, 64px);
  --nav-h:64px;
  --radius:4px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  min-height:100vh;
}
body.is-dark{background:var(--dark);color:var(--dark-ink)}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
input,textarea,select{font:inherit;color:inherit}
::selection{background:var(--terra);color:#fff}

/* ---------- type ---------- */
.t-display{
  font-family:var(--serif);font-weight:400;line-height:.95;letter-spacing:-.01em;
  font-size:clamp(3rem, 11vw, 9.5rem);
}
.t-h1{font-family:var(--serif);font-weight:400;line-height:1;letter-spacing:-.01em;font-size:clamp(2.6rem,7.5vw,6.5rem)}
.t-h2{font-family:var(--serif);font-weight:400;line-height:1.02;font-size:clamp(2rem,5.2vw,4.4rem)}
.t-h3{font-family:var(--serif);font-weight:400;line-height:1.1;font-size:clamp(1.5rem,3vw,2.4rem)}
.t-lead{font-family:var(--serif);font-size:clamp(1.25rem,2.2vw,1.7rem);line-height:1.35}
.t-mono{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}
.t-mono-lc{font-family:var(--mono);font-size:.8rem;letter-spacing:.02em}
.t-body{font-size:clamp(1rem,1.2vw,1.125rem);line-height:1.7}
em,.it{font-style:italic}
.terra{color:var(--terra)}
.t-display em,.t-h1 em,.t-h2 em,.t-h3 em,.t-lead em{color:var(--terra)}
.cta em{color:#fff;opacity:.85}
.muted{color:var(--ink-2)}
.is-dark .muted{color:rgba(239,231,221,.6)}

/* ---------- layout ---------- */
.wrap{padding-inline:var(--gutter);max-width:1600px;margin-inline:auto}
.section{padding-block:clamp(64px,10vw,140px)}
.section--tight{padding-block:clamp(40px,6vw,80px)}
.grid{display:grid;gap:var(--gutter)}
@media(min-width:820px){
  .grid-2{grid-template-columns:1fr 1fr}
  .grid-3{grid-template-columns:repeat(3,1fr)}
  .grid-12{grid-template-columns:repeat(12,1fr)}
}
.hr{height:1px;background:var(--line);border:0;margin:0}
.is-dark .hr{background:rgba(239,231,221,.15)}

/* ---------- the mark ---------- */
.mark{display:inline-block;width:1em;height:1em;vertical-align:middle}
.mark svg{width:100%;height:100%;display:block;overflow:visible}
.mark--emboss svg{
  filter:
    drop-shadow(-1px -1px 1px rgba(255,255,255,.9))
    drop-shadow(2px 3px 3px rgba(60,40,30,.18))
    drop-shadow(6px 10px 14px rgba(60,40,30,.10));
}
.mark--emboss .mark-fill{fill:#ECE8E3}
.is-dark .mark--emboss .mark-fill{fill:#2C2521}
.is-dark .mark--emboss svg{
  filter:drop-shadow(-1px -1px 1px rgba(255,255,255,.08)) drop-shadow(3px 4px 6px rgba(0,0,0,.5));
}

/* ---------- loader ---------- */
.loader{
  position:fixed;inset:0;z-index:1000;background:var(--bg);
  display:grid;place-items:center;transition:opacity .8s var(--ease),visibility .8s;
}
.loader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.loader .mark{width:min(38vw,180px);height:min(38vw,180px)}
.loader .draw{fill:none;stroke:var(--terra);stroke-width:36;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw 1.6s var(--ease-io) forwards}
.loader .draw.dot{stroke-dasharray:130;stroke-dashoffset:130;animation-delay:1.2s;animation-duration:.6s}
@keyframes draw{to{stroke-dashoffset:0}}
.loader .word{position:absolute;bottom:clamp(24px,6vh,48px);left:0;right:0;text-align:center;color:var(--ink-2)}

/* ---------- page curtain (transitions) ---------- */
.curtain{position:fixed;inset:0;z-index:900;background:var(--bg);pointer-events:none;opacity:0;transition:opacity .45s var(--ease)}
.is-dark .curtain{background:var(--dark)}
.curtain.is-on{opacity:1;pointer-events:auto}
html.is-entering .curtain{opacity:1}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:600;height:var(--nav-h);
  display:flex;align-items:center;justify-content:space-between;
  padding-inline:var(--gutter);
  transition:background .4s,backdrop-filter .4s,box-shadow .4s;
}
.nav.is-scrolled{background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.is-dark .nav.is-scrolled{background:rgba(25,21,18,.75)}
.nav__brand{display:flex;align-items:center;gap:12px}
.nav__brand .mark{width:34px;height:34px}
.nav__name{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.nav__name small{display:block;font-size:.62rem;letter-spacing:.12em;color:var(--terra);margin-top:1px}
.nav__links{display:none;gap:clamp(16px,2.2vw,36px)}
.nav__links a{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;position:relative;padding:6px 0}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--terra);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.nav__links a:hover::after,.nav__links a.is-active::after{transform:scaleX(1)}
@media(min-width:900px){.nav__links{display:flex}}
.burger{display:flex;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;align-items:flex-end;margin-right:-8px}
.burger span{display:block;height:1.5px;background:currentColor;width:26px;transition:transform .5s var(--ease),width .3s,opacity .3s}
.burger span:nth-child(2){width:18px}
.burger.is-open span:nth-child(1){transform:translateY(7.5px) rotate(45deg);width:26px}
.burger.is-open span:nth-child(2){opacity:0;width:0}
.burger.is-open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);width:26px}
@media(min-width:900px){.burger{display:none}}

/* fullscreen menu */
.menu{
  position:fixed;inset:0;z-index:590;background:var(--terra);color:#fff;
  clip-path:circle(0 at calc(100% - 40px) 32px);transition:clip-path .8s var(--ease);
  display:flex;flex-direction:column;justify-content:flex-end;padding:var(--gutter);padding-bottom:max(var(--gutter),env(safe-area-inset-bottom));
  overflow:hidden;
}
.menu.is-open{clip-path:circle(150% at calc(100% - 40px) 32px)}
.menu__bg{position:absolute;inset:-10%;opacity:.28;pointer-events:none}
.menu__bg svg{width:100%;height:100%}
.menu__links{position:relative;display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}
.menu__links a{font-family:var(--serif);font-size:clamp(2.4rem,9.5vw,5rem);line-height:1.05;display:inline-flex;align-items:baseline;gap:14px;transform:translateY(30px);opacity:0;transition:transform .7s var(--ease),opacity .6s}
.menu.is-open .menu__links a{transform:none;opacity:1}
.menu__links a i{font-family:var(--mono);font-style:normal;font-size:.7rem;letter-spacing:.1em;opacity:.7}
.menu__links li:nth-child(1) a{transition-delay:.15s}.menu__links li:nth-child(2) a{transition-delay:.2s}
.menu__links li:nth-child(3) a{transition-delay:.25s}.menu__links li:nth-child(4) a{transition-delay:.3s}
.menu__links li:nth-child(5) a{transition-delay:.35s}.menu__links li:nth-child(6) a{transition-delay:.4s}
.menu__foot{position:relative;margin-top:28px;display:flex;flex-wrap:wrap;gap:8px 24px;font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;opacity:0;transition:opacity .6s .45s}
.menu.is-open .menu__foot{opacity:.9}

/* ---------- buttons & pills ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
  padding:14px 22px;border:1px solid currentColor;border-radius:999px;
  position:relative;overflow:hidden;isolation:isolate;transition:color .35s,border-color .35s;
  -webkit-tap-highlight-color:transparent;
}
.btn::before{content:"";position:absolute;inset:0;background:var(--terra);z-index:-1;transform:translateY(101%);transition:transform .45s var(--ease)}
.btn:hover{color:#fff;border-color:var(--terra)}
.btn:hover::before{transform:none}
.btn--solid{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn--solid::before{background:var(--terra)}
.btn--terra{background:var(--terra);color:#fff;border-color:var(--terra)}
.btn--terra::before{background:var(--terra-2)}
.btn--terra:hover{border-color:var(--terra-2)}
.btn .arr{display:inline-block;transition:transform .4s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn[disabled]{opacity:.45;pointer-events:none}
.link{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;display:inline-flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding-bottom:4px}
.link:hover{border-color:var(--terra);color:var(--terra)}

.pills{display:flex;gap:8px;flex-wrap:wrap}
.pill{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
  padding:9px 14px;border:1px solid var(--line);border-radius:999px;transition:all .3s;
  white-space:nowrap;
}
.pill:hover{border-color:var(--terra);color:var(--terra)}
.pill.is-active{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.is-dark .pill{border-color:rgba(239,231,221,.25)}
.is-dark .pill.is-active{background:var(--dark-ink);color:var(--dark);border-color:var(--dark-ink)}
.pills--scroll{min-width:0;flex:1 1 0;flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scrollbar-width:none}
.pills--scroll::-webkit-scrollbar{display:none}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform 1s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
.reveal--clip{opacity:1;transform:none;display:block}
.reveal--clip>*{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s var(--ease)}
.reveal--clip.is-in>*{clip-path:inset(0 0 0 0)}
.reveal--line .word{display:inline-block;overflow:hidden;vertical-align:bottom}
.reveal--line .word>span{display:inline-block;transform:translateY(110%);transition:transform .9s var(--ease)}
.reveal--line.is-in .word>span{transform:none}
[data-delay="1"]{transition-delay:.1s}[data-delay="2"]{transition-delay:.2s}[data-delay="3"]{transition-delay:.3s}[data-delay="4"]{transition-delay:.4s}
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal--clip{opacity:1;transform:none;transition:none}
  .reveal--clip>*{clip-path:none;transition:none}
  .reveal--line .word>span{transform:none}
  *{animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;display:grid;grid-template-rows:1fr auto;
  padding-top:var(--nav-h);overflow:hidden;
}
.hero__contours{position:absolute;inset:-10%;z-index:0;pointer-events:none;opacity:.9}
.hero__contours svg{width:100%;height:100%}
.hero__contours path{fill:none;stroke:var(--terra);stroke-width:1;stroke-opacity:.35;stroke-dasharray:4000;stroke-dashoffset:4000;animation:draw 6s var(--ease) forwards}
.hero__contours path:nth-child(odd){stroke:var(--ochre)}
.hero__center{position:relative;z-index:1;display:grid;place-items:center;padding:clamp(24px,4vw,48px) var(--gutter)}
.hero__mark{width:min(64vw,420px);height:min(64vw,420px);will-change:transform;transform-style:preserve-3d}
.hero__mark .mark{width:100%;height:100%}
.hero__mark .mark svg{transition:transform .12s linear}
.hero__foot{position:relative;z-index:1;display:grid;gap:18px;padding:0 var(--gutter) clamp(28px,5vh,56px);align-items:end}
@media(min-width:820px){.hero__foot{grid-template-columns:1fr auto 1fr}}
.hero__title{font-family:var(--serif);font-size:clamp(2.2rem,6vw,4.6rem);line-height:.95;letter-spacing:-.01em;margin:0}
.hero__title em{color:var(--terra)}
.hero__sub{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
@media(min-width:820px){.hero__sub{text-align:center}}
.hero__side{font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;color:var(--ink-2);display:flex;gap:18px;justify-content:flex-end;flex-wrap:wrap}
@media(max-width:819px){.hero__side{justify-content:flex-start}}
.scroll-hint{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:1px;height:56px;background:var(--line);overflow:hidden;display:none}
.scroll-hint::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:var(--terra);animation:hint 2.2s var(--ease-io) infinite}
@keyframes hint{0%{top:-100%}60%,100%{top:100%}}
@media(min-width:820px){.scroll-hint{display:block}}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;white-space:nowrap;border-block:1px solid var(--line);padding-block:14px;user-select:none}
.marquee__track{display:inline-flex;gap:0;animation:marq 40s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee span{font-family:var(--serif);font-size:clamp(1.4rem,3vw,2.4rem);padding-inline:1.6em;display:inline-flex;align-items:center;gap:1.6em}
.marquee span::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--terra);display:inline-block}
@keyframes marq{to{transform:translateX(-50%)}}
.marquee--dark{background:var(--dark);color:var(--dark-ink);border-color:transparent}

/* ---------- image frames & placeholders ---------- */
.ph{position:relative;background:var(--bg-2);overflow:hidden;border-radius:var(--radius)}
.ph::before{content:"";display:block;padding-top:calc(100% / var(--r,1))}
.ph>img,.ph>.ph__svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ph>.ph__svg{background-size:cover;background-position:center}
.ph--zoom img,.ph--zoom .ph__svg{transition:transform 1.4s var(--ease)}
.ph--zoom:hover img,.ph--zoom:hover .ph__svg{transform:scale(1.04)}
.ph__tag{position:absolute;left:12px;bottom:12px;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;background:rgba(246,241,234,.85);padding:6px 9px;border-radius:2px;backdrop-filter:blur(6px)}
.ph--grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

/* ---------- featured (home) ---------- */
.feature{display:grid;gap:clamp(24px,4vw,56px)}
@media(min-width:900px){.feature{grid-template-columns:5fr 7fr;align-items:end}}
.feature__text{display:grid;gap:22px;align-content:end}
.feature__meta{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;color:var(--ink-2);border-top:1px solid var(--line);padding-top:16px}
.feature__meta dt{text-transform:uppercase;letter-spacing:.1em;font-size:.64rem;padding-top:2px}
.feature__meta dd{margin:0}

/* horizontal strip */
.strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-inline:var(--gutter);margin-inline:calc(var(--gutter) * -1);scrollbar-width:none;cursor:grab;padding-bottom:8px}
.strip::-webkit-scrollbar{display:none}
.strip.is-dragging{cursor:grabbing;scroll-snap-type:none}
.strip>*{flex:0 0 auto;scroll-snap-align:start}
.strip .ph{height:clamp(240px,42vh,440px);background:var(--bg-2)}
.strip .ph::before{display:none}
.strip .ph>img,.strip .ph>.ph__svg{position:static;height:100%;width:auto;aspect-ratio:var(--r,1.5)}
.strip figure{margin:0}
.strip figcaption{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-top:10px;display:flex;justify-content:space-between}

/* ---------- practices ---------- */
.practices{display:grid;gap:0;border-top:1px solid var(--line)}
.practice{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:clamp(22px,3vw,36px) 0;border-bottom:1px solid var(--line);position:relative;transition:padding-left .5s var(--ease)}
.practice:hover{padding-left:12px}
.practice__n{grid-column:1;grid-row:1;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;color:var(--terra)}
.practice__t{grid-column:2;grid-row:1;font-family:var(--serif);font-size:clamp(1.9rem,5vw,4rem);line-height:1;margin:0}
.practice__d{grid-column:2;grid-row:2;font-size:.95rem;color:var(--ink-2);max-width:52ch;margin:4px 0 0}
.practice__arr{grid-column:3;grid-row:1/3;font-family:var(--serif);font-size:2rem;transition:transform .5s var(--ease)}
.practice:hover .practice__arr{transform:translateX(8px) rotate(-45deg)}
.practice__img{position:fixed;width:min(38vw,320px);pointer-events:none;z-index:5;opacity:0;transform:scale(.9) rotate(-3deg);transition:opacity .4s,transform .6s var(--ease);display:none}
.practice__img.is-on{opacity:1;transform:none}
@media(min-width:900px) and (hover:hover){.practice__img{display:block}}

/* ---------- cta band ---------- */
.cta{position:relative;overflow:hidden;background:var(--terra);color:#fff;padding:clamp(56px,9vw,120px) var(--gutter);border-radius:8px}
.cta__bg{position:absolute;inset:-20%;opacity:.25;pointer-events:none}
.cta__bg svg{width:100%;height:100%}
.cta__bg path{fill:none;stroke:#fff;stroke-width:1}
.cta__in{position:relative;display:grid;gap:26px;max-width:900px}
.cta .btn{color:#fff;border-color:#fff}
.cta .btn::before{background:#fff}
.cta .btn:hover{color:var(--terra)}

/* ---------- footer ---------- */
.footer{border-top:1px solid var(--line);padding:clamp(48px,7vw,96px) var(--gutter) max(28px,env(safe-area-inset-bottom));display:grid;gap:40px}
.is-dark .footer{border-color:rgba(239,231,221,.15)}
@media(min-width:900px){.footer{grid-template-columns:1.2fr 1fr 1fr 1fr}}
.footer h4{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra);margin:0 0 14px}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.footer a{border-bottom:1px solid transparent;transition:border-color .3s}
.footer a:hover{border-color:currentColor}
.footer__brand{display:grid;gap:14px}
.footer__brand .mark{width:64px;height:64px}
.footer__bottom{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding-top:24px;border-top:1px solid var(--line)}

/* ---------- page header ---------- */
.page-head{padding-top:calc(var(--nav-h) + clamp(40px,8vw,110px));padding-bottom:clamp(24px,4vw,56px);display:grid;gap:18px}
.page-head__row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px}
.page-head p{max-width:60ch;margin:0}

/* ---------- catalogue ---------- */
.cat-toolbar{position:sticky;top:var(--nav-h);z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding-block:12px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:14px}
.cat-toolbar .count{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;color:var(--ink-2);white-space:nowrap}
.cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,2.5vw,32px) clamp(12px,2vw,24px);padding-block:clamp(28px,4vw,56px)}
@media(min-width:700px){.cat-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.cat-grid{grid-template-columns:repeat(4,1fr)}}
.card{display:grid;gap:10px;cursor:pointer;transition:opacity .5s var(--ease),transform .6s var(--ease);-webkit-tap-highlight-color:transparent}
.card.is-out{opacity:0;transform:scale(.96);pointer-events:none}
.card.is-gone{display:none}
.card--wide{grid-column:span 2}
.card--tall .ph{--r:.8}
.card__t{font-family:var(--serif);font-size:clamp(1.15rem,1.8vw,1.5rem);line-height:1.15;margin:0}
.card__m{display:flex;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.card__price{color:var(--ink)}
.card__price.is-out{color:var(--ink-3)}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--terra)}
.tag+.tag::before{content:"· ";color:var(--ink-3)}
.empty{grid-column:1/-1;text-align:center;padding:60px 0;color:var(--ink-2);font-family:var(--serif);font-size:1.6rem}

/* ---------- drawer (piece detail) ---------- */
.drawer{position:fixed;inset:0;z-index:700;visibility:hidden;pointer-events:none}
.drawer.is-open{visibility:visible;pointer-events:auto}
.drawer__bg{position:absolute;inset:0;background:rgba(25,21,18,.55);opacity:0;transition:opacity .5s}
.drawer.is-open .drawer__bg{opacity:1}
.drawer__panel{position:absolute;right:0;top:0;bottom:0;width:min(100%,600px);background:var(--paper);color:var(--ink);overflow-y:auto;overscroll-behavior:contain;transform:translateX(100%);transition:transform .7s var(--ease);-webkit-overflow-scrolling:touch}
.drawer.is-open .drawer__panel{transform:none}
@media(max-width:700px){
  .drawer__panel{top:6vh;width:100%;border-radius:18px 18px 0 0;transform:translateY(100%)}
}
.drawer__close{position:sticky;top:0;z-index:2;display:flex;justify-content:flex-end;padding:14px 18px 0;background:linear-gradient(var(--paper),transparent)}
.drawer__close button{width:44px;height:44px;border-radius:50%;background:var(--paper);border:1px solid var(--line);display:grid;place-items:center;transition:background .3s,color .3s}
.drawer__close button:hover{background:var(--ink);color:var(--bg)}
.drawer__body{padding:0 clamp(18px,4vw,40px) 40px;display:grid;gap:24px}
.drawer__gal{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin-inline:calc(clamp(18px,4vw,40px) * -1);padding-inline:clamp(18px,4vw,40px);scrollbar-width:none}
.drawer__gal::-webkit-scrollbar{display:none}
.drawer__gal .ph{flex:0 0 88%;scroll-snap-align:start}
.drawer__gal .ph:only-child{flex-basis:100%}
.drawer__dots{display:flex;gap:6px;justify-content:center;margin-top:-12px}
.drawer__dots i{width:6px;height:6px;border-radius:50%;background:var(--line);transition:background .3s}
.drawer__dots i.is-on{background:var(--terra)}
.drawer h2{margin:0}
.spec{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-family:var(--mono);font-size:.74rem;letter-spacing:.03em;border-top:1px solid var(--line);padding-top:16px;margin:0}
.spec dt{color:var(--ink-3);text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;padding-top:2px}
.spec dd{margin:0}
.buy{display:grid;gap:14px;border:1px solid var(--line);border-radius:8px;padding:18px}
.buy__row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.buy__price{font-family:var(--serif);font-size:2rem;line-height:1}
.buy__stock{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.buy__stock.is-out{color:var(--terra-2)}
.buy__stock::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#7FA37A;margin-right:8px;vertical-align:middle}
.buy__stock.is-out::before{background:var(--terra)}
.buy__stock.is-low::before{background:var(--ochre)}

/* ---------- forms ---------- */
.form{display:grid;gap:16px}
.field{display:grid;gap:6px}
.field label{font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.field input,.field textarea,.field select{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);padding:10px 0;border-radius:0;outline:0;transition:border-color .3s;font-size:1rem;-webkit-appearance:none;appearance:none}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--terra)}
.field select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' fill='none' stroke='%236E6057' stroke-width='1.5'/></svg>");background-repeat:no-repeat;background-position:right 2px center;padding-right:22px}
.is-dark .field input,.is-dark .field textarea{border-color:rgba(239,231,221,.25);color:var(--dark-ink)}
.form__row{display:grid;gap:16px}
@media(min-width:600px){.form__row{grid-template-columns:1fr 1fr}}
.form__note{font-family:var(--mono);font-size:.66rem;letter-spacing:.04em;color:var(--ink-3);line-height:1.6}
.form__ok{display:none;padding:18px;border:1px solid var(--terra);border-radius:8px;font-family:var(--serif);font-size:1.3rem}
.form.is-sent .form__ok{display:block}

/* ---------- about ---------- */
.about-hero{padding-top:calc(var(--nav-h) + clamp(40px,8vw,110px));display:grid;gap:clamp(28px,4vw,56px)}
@media(min-width:900px){.about-hero{grid-template-columns:7fr 5fr;align-items:end}}
.about-hero .t-display{margin:0}
.about-hero .t-display span{display:block}
.about-hero .t-display span:nth-child(2){padding-left:.8em;color:var(--terra)}
.about-hero .t-display span:nth-child(3){padding-left:1.6em}
.about-portrait{position:relative}
.about-portrait .ph{--r:.8}
.about-portrait figcaption{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-top:10px;display:flex;justify-content:space-between}
.prose{display:grid;gap:1.4em;max-width:64ch}
.prose p{margin:0}
.prose .drop::first-letter{font-family:var(--serif);font-size:3.6em;float:left;line-height:.8;padding-right:.12em;color:var(--terra)}
.aside-list{display:grid;gap:14px;font-family:var(--mono);font-size:.74rem;letter-spacing:.04em;color:var(--ink-2)}
.aside-list li{list-style:none;padding-left:18px;position:relative}
.aside-list li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:1px;background:var(--terra)}
.aside-list ul{padding:0;margin:0;display:grid;gap:10px}
.process{display:grid;gap:2px;border-top:1px solid var(--line)}
.step{display:grid;grid-template-columns:auto 1fr;gap:20px;padding:clamp(22px,3vw,34px) 0;border-bottom:1px solid var(--line);align-items:start}
.step__n{font-family:var(--serif);font-size:clamp(2rem,4vw,3.2rem);line-height:1;color:var(--terra)}
.step h3{margin:0 0 8px}
.step p{margin:0;color:var(--ink-2);max-width:56ch}
.step__ico{width:56px;height:56px;margin-top:6px}
.step__ico svg{width:100%;height:100%;fill:none;stroke:var(--ink);stroke-width:1}
@media(min-width:700px){.step{grid-template-columns:auto auto 1fr}}

.pubs{display:grid;gap:clamp(24px,4vw,48px)}
@media(min-width:700px){.pubs{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.pubs{grid-template-columns:repeat(3,1fr)}}
.pub{display:grid;gap:16px;align-content:start}
.pub>a,.pub>div{display:block}
.pub .ph{box-shadow:0 18px 40px -18px rgba(60,40,30,.35)}
.pub__body{display:grid;gap:8px}
.pubs:has(.pub:only-child) .pub{grid-column:1/-1;grid-template-columns:minmax(200px,320px) 1fr;align-items:end;gap:clamp(20px,4vw,48px)}
@media(max-width:600px){.pubs:has(.pub:only-child) .pub{grid-template-columns:1fr}}
.rubble{background:var(--dark);color:var(--dark-ink);position:relative;overflow:hidden}
.rubble__shards{position:absolute;inset:0;pointer-events:none}
.rubble__shards svg{width:100%;height:100%}
.rubble__shards polygon{fill:var(--terra);opacity:.14;transform-origin:center;transform-box:fill-box;transition:transform 2.4s var(--ease-io)}
.rubble.is-in polygon{transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}
.rubble__in{position:relative;display:grid;gap:clamp(28px,4vw,56px)}
@media(min-width:900px){.rubble__in{grid-template-columns:1fr 1fr}}
.rubble .t-h2{margin:0}
.rubble .t-h2 em{color:var(--terra)}
.rubble .prose{color:rgba(239,231,221,.82)}
.rubble .prose .drop::first-letter{color:var(--terra)}
.rubble-imgs{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.rubble-imgs .ph{background:var(--dark-2)}
.rubble-imgs .ph:nth-child(2){margin-top:32px}
.rubble-imgs .cap{grid-column:1/-1;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(239,231,221,.5)}

/* ---------- photography (dark) ---------- */
.photo-hero{padding-top:calc(var(--nav-h) + clamp(40px,8vw,100px));padding-bottom:clamp(24px,4vw,56px);display:grid;gap:22px;position:relative}
.photo-hero .t-display{margin:0}
.photo-hero .t-display em{color:var(--terra)}
.photo-hero__row{display:flex;flex-direction:column;gap:22px}
@media(min-width:900px){.photo-hero__row{flex-direction:row;justify-content:space-between;align-items:flex-end}.photo-hero__row .pills--scroll{flex:0 1 auto;margin-inline:0;padding-inline:0}}
.photo-hero p{max-width:56ch;margin:0;color:rgba(239,231,221,.7)}
.pseries{padding-block:clamp(20px,4vw,48px)}
.pseries.is-hidden{display:none}
.pseries__h{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-inline:var(--gutter);margin-bottom:clamp(16px,2.5vw,28px)}
.pseries__h .t-h2{margin:0}
.pseries__h .t-mono{color:rgba(239,231,221,.45)}
/* justified rows: each item grows with its aspect ratio, so every row fills the width at a shared height */
.pgrid{display:flex;flex-wrap:wrap;gap:6px;padding-inline:var(--gutter);--row:200px}
.pgrid::after{content:"";flex:1000 1 0}
.pgrid__i{flex:calc(var(--r,1.5) * 100) 1 calc(var(--r,1.5) * var(--row));aspect-ratio:var(--r,1.5);display:block;background:var(--dark-2);overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pgrid__i img,.pgrid__i .ph__svg{display:block;width:100%;height:100%;object-fit:cover;transition:opacity .4s}
.pgrid__i:hover img{opacity:.85}
@media(min-width:700px){.pgrid{gap:8px;--row:300px}}
@media(min-width:1300px){.pgrid{--row:360px}}

/* lightbox */
.lb{position:fixed;inset:0;z-index:800;background:rgba(14,11,9,.96);display:grid;grid-template-rows:auto 1fr auto;opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s;color:var(--dark-ink)}
.lb.is-open{opacity:1;visibility:visible}
.lb__top{display:flex;justify-content:space-between;align-items:center;padding:14px var(--gutter);font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(239,231,221,.6)}
.lb__top button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(239,231,221,.25);display:grid;place-items:center;color:var(--dark-ink)}
.lb__stage{position:relative;display:grid;place-items:center;padding:0 var(--gutter);touch-action:pan-y;overflow:hidden;min-height:0}
.lb__box{width:100%;height:100%;min-height:0;display:grid;place-items:center}
.lb__img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transition:opacity .35s,transform .5s var(--ease)}
.lb__img.is-swap{opacity:0;transform:scale(.98)}
.lb__stage .ph__svg{width:100%;max-width:min(900px,calc(66vh * var(--r,1.5)));aspect-ratio:var(--r,1.5);background-size:cover;border-radius:2px}
.lb__nav{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;border:1px solid rgba(239,231,221,.25);display:none;place-items:center;color:var(--dark-ink);transition:background .3s}
.lb__nav:hover{background:rgba(239,231,221,.12)}
.lb__nav--prev{left:var(--gutter)}.lb__nav--next{right:var(--gutter)}
@media(min-width:900px){.lb__nav{display:grid}}
.lb__cap{display:grid;gap:6px;padding:18px var(--gutter) max(18px,env(safe-area-inset-bottom));border-top:1px solid rgba(239,231,221,.12)}
.lb__cap h3{margin:0;font-family:var(--serif);font-size:1.5rem;font-weight:400}
.lb__cap .m{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(239,231,221,.55);display:flex;flex-wrap:wrap;gap:6px 18px}
.lb__cap .row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.lb .btn{color:var(--dark-ink);border-color:rgba(239,231,221,.4)}

/* ---------- contact ---------- */
.contact-grid{display:grid;gap:clamp(40px,6vw,80px)}
@media(min-width:900px){.contact-grid{grid-template-columns:5fr 7fr}}
.contact-info{display:grid;gap:26px;align-content:start;position:sticky;top:calc(var(--nav-h) + 24px)}
.contact-info .big{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.1;word-break:break-word}
.contact-info .big a{border-bottom:1px solid var(--line)}
.contact-info .big a:hover{border-color:var(--terra);color:var(--terra)}
.contact-block{display:grid;gap:6px}
.contact-block h4{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra);margin:0}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:28px}
.tab{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:14px 0;margin-right:28px;position:relative;color:var(--ink-3);transition:color .3s}
.tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--terra);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.tab.is-active{color:var(--ink)}
.tab.is-active::after{transform:scaleX(1)}
.panel{display:none}
.panel.is-active{display:block;animation:fadeup .6s var(--ease)}
@keyframes fadeup{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.commission-steps{display:grid;gap:12px;font-family:var(--mono);font-size:.74rem;color:var(--ink-2);margin:0 0 28px;padding:0;list-style:none;counter-reset:s}
.commission-steps li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:baseline}
.commission-steps li::before{counter-increment:s;content:"0" counter(s);font-family:var(--serif);font-size:1.4rem;color:var(--terra)}

/* ---------- utilities ---------- */
.hide-m{display:none}
@media(min-width:900px){.hide-m{display:initial}}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.no-scroll{overflow:hidden!important;touch-action:none}

/* ---------- projects ---------- */
.prj-list{display:grid;gap:clamp(48px,8vw,120px);padding-block:clamp(24px,4vw,56px)}
.prj-row{display:grid;gap:clamp(20px,3vw,48px)}
@media(min-width:900px){.prj-row{grid-template-columns:7fr 5fr;align-items:end}.prj-row--flip{grid-template-columns:5fr 7fr}.prj-row--flip .ph{order:2}}
.prj-row__body{display:grid;gap:16px;align-content:end}
.prj-card{display:grid;gap:12px;align-content:start}
.prj-card__body{display:grid;gap:4px}
.prj-card__t{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.05;margin:0}
.prj-grid{display:grid;gap:clamp(20px,3vw,40px)}
@media(min-width:700px){.prj-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1100px){.prj-grid{grid-template-columns:repeat(3,1fr)}}
.prj-hero{padding-top:var(--nav-h);display:grid;gap:clamp(24px,4vw,56px)}
.prj-hero__img .ph{border-radius:0;--r:1.5}
@media(min-width:900px){.prj-hero__img .ph{--r:2.1}}
.prj-hero__in{display:grid;gap:18px;max-width:900px}
.prj-hero__in .feature__meta{max-width:560px}
.chapter{position:relative;overflow:hidden}
.chapter__in{position:relative}
.chapter--dark{background:var(--dark);color:var(--dark-ink)}
.chapter--dark .prose{color:rgba(239,231,221,.82)}
.chapter--dark .link{border-color:rgba(239,231,221,.3)}
.chapter__grid{display:grid;gap:14px}
@media(min-width:700px){.chapter__grid--2{grid-template-columns:1fr 1fr}.chapter__grid--3{grid-template-columns:repeat(3,1fr)}.chapter__grid--2 .chapter__fig:nth-child(2){margin-top:40px}}
.chapter__fig{margin:0;display:grid;gap:10px}
.chapter__fig figcaption{font-size:.62rem}
.chapter--dark .ph{background:var(--dark-2)}
.chapter__strip{margin-top:8px}
.prj-next{display:grid;gap:12px;padding:clamp(28px,4vw,48px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.prj-next__row{display:flex;justify-content:space-between;align-items:center;gap:20px}
.prj-next__arr{font-family:var(--serif);font-size:clamp(2.5rem,6vw,5rem);line-height:1;transition:transform .5s var(--ease)}
.prj-next:hover .prj-next__arr{transform:translateX(12px)}
.prj-next:hover h2{color:var(--terra)}
/* home: from the catalogue */
.home-cat{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,2.5vw,32px) clamp(12px,2vw,24px)}
@media(min-width:900px){.home-cat{grid-template-columns:repeat(4,1fr)}}
/* catalogue: spotlight (one piece in full) */
.spot{display:grid;gap:clamp(20px,3vw,40px);container-type:inline-size}
.spot__main{cursor:pointer;border-radius:var(--radius)}
.spot__main .ph{--r:.8}
.spot__main .ph>img{object-position:50% 62%}
.spot__side{display:grid;gap:clamp(20px,3vw,40px);align-content:space-between}
.spot__text{display:grid;gap:18px;max-width:56ch}
.spot__meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);border-top:1px solid var(--line);padding-top:16px}
.spot__stock::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#7FA37A;margin-right:8px;vertical-align:middle}
.spot__stock.is-out{color:var(--terra-2)}.spot__stock.is-out::before{background:var(--terra)}.spot__stock.is-low::before{background:var(--ochre)}
.spot__pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,2vw,24px)}
.spot__pair>div{cursor:pointer}
@media(min-width:900px){
  .spot{grid-template-columns:6fr 6fr;align-items:stretch}
  /* the main image fills the row (as tall as the text beside it) but never crops tighter than 0.55 */
  .spot__main .ph{height:100%;max-height:calc(50cqw / .55)}
  .spot__main .ph::before{padding-top:calc(100% / .75)}
  .spot__pair .ph{--r:1.1}
}
@media(min-width:1100px){.spot{grid-template-columns:5fr 7fr}.spot__main .ph{max-height:calc(41cqw / .55)}.spot__pair .ph{--r:1.2}}

/* catalogue: studio reel */
.reel{display:grid;gap:clamp(28px,5vw,72px);align-items:center}
@media(min-width:900px){.reel{grid-template-columns:5fr 6fr}}
.reel__frame{margin:0;position:relative;width:min(100%,360px);margin-inline:auto;border-radius:12px;overflow:hidden;background:var(--dark);box-shadow:0 30px 60px -30px rgba(42,34,30,.45)}
@media(min-width:900px){.reel__frame{width:min(100%,400px);margin-inline:0 auto}}
.reel__video{display:block;width:100%;aspect-ratio:9/16;object-fit:cover;background:var(--dark)}
.reel__toggle{position:absolute;left:14px;bottom:52px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(25,21,18,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);transition:background .3s,transform .3s var(--ease)}
.reel__toggle:hover{background:var(--terra)}
.reel__toggle .reel__ico-play{display:none}
.reel__frame.is-paused .reel__ico-play{display:block}
.reel__frame.is-paused .reel__ico-pause{display:none}
.reel__cap{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:12px;padding:32px 16px 14px;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.85);background:linear-gradient(transparent,rgba(25,21,18,.7));pointer-events:none}
.reel__time{font-variant-numeric:tabular-nums}
.reel__text{display:grid;gap:22px;max-width:56ch}
.is-dark .reel__frame{box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}
