/* ==========================================================================
   Isabel Robson — theme stylesheet
   Design system: black-on-white, achromatic chrome, capsules not cards.
   Tokens and component styles derive 1:1 from the Isabel Robson Design System.
   ========================================================================== */

/* ---- Fonts: Hanken Grotesk, self-hosted (GDPR: no external font requests) --- */
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/hanken-300-1.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/hanken-300-2.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:300;font-display:swap;src:url('../fonts/hanken-300-3.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/hanken-400-4.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/hanken-400-5.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/hanken-400-6.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/hanken-500-7.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/hanken-500-8.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/hanken-500-9.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/hanken-600-10.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/hanken-600-11.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/hanken-600-12.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ------------------------------- Tokens ---------------------------------- */
:root{
  /* base ramp */
  --ir-white:#FFFFFF;--ir-gray-050:#FAFAFA;--ir-gray-100:#F4F4F4;--ir-gray-200:#EAEAEA;
  --ir-gray-300:#E0E0E0;--ir-gray-400:#C9C9C9;--ir-gray-500:#9B9B9B;--ir-gray-600:#6B6B6B;
  --ir-gray-700:#3D3D3D;--ir-gray-800:#1F1F1F;--ir-gray-900:#111111;--ir-black:#000000;
  --ir-white-a72:rgba(255,255,255,0.72);--ir-white-a88:rgba(255,255,255,0.88);
  --ir-black-a04:rgba(0,0,0,0.04);--ir-black-a08:rgba(0,0,0,0.08);
  --ir-black-a12:rgba(0,0,0,0.12);--ir-black-a60:rgba(0,0,0,0.60);
  /* surfaces */
  --surface-page:var(--ir-white);--surface-panel:var(--ir-gray-100);--surface-card:var(--ir-white);
  --surface-sunken:var(--ir-gray-050);--surface-capsule:var(--ir-white-a72);--surface-inverse:var(--ir-black);
  --surface-hover:var(--ir-gray-100);--surface-active:var(--ir-gray-200);--surface-media:var(--ir-gray-200);
  /* text */
  --text-primary:var(--ir-black);--text-secondary:var(--ir-gray-600);--text-muted:var(--ir-gray-500);
  --text-inverse:var(--ir-white);--text-on-media:var(--ir-white);--text-link:var(--ir-black);--text-link-hover:var(--ir-gray-600);
  /* lines */
  --border-hairline:var(--ir-gray-200);--border-subtle:var(--ir-gray-300);--border-strong:var(--ir-black);--border-capsule:var(--ir-black-a08);
  /* controls */
  --control-fg:var(--ir-black);--control-bg:transparent;--control-bg-hover:var(--ir-gray-100);--control-bg-active:var(--ir-gray-200);
  --control-fg-inverse:var(--ir-white);--control-bg-inverse:var(--ir-black);--control-bg-inverse-hover:var(--ir-gray-800);--control-fg-disabled:var(--ir-gray-400);
  --focus-ring:var(--ir-black);
  /* neon accent — the one striking colour (citrus/neon) */
  --ir-neon:#D8FF00;--ir-neon-hover:#C6E800;--ir-neon-ink:#0A0A0A;
  /* type */
  --font-sans:'Hanken Grotesk','IR Sans',-apple-system,'Helvetica Neue',Arial,sans-serif;
  --font-display:var(--font-sans);--font-body:var(--font-sans);--font-label:var(--font-sans);
  --fw-light:300;--fw-regular:400;--fw-medium:500;
  --fs-micro:11px;--fs-caption:13px;--fs-small:15px;--fs-body:17px;--fs-body-lg:19px;--fs-lead:22px;
  --fs-h3:20px;--fs-h2:32px;--fs-h1:44px;--fs-display:64px;--fs-display-lg:88px;
  --lh-tight:1.05;--lh-snug:1.25;--lh-normal:1.45;--lh-relaxed:1.62;
  --ls-display:-0.022em;--ls-heading:-0.012em;--ls-body:0em;--ls-label:0.12em;--ls-wordmark:0.08em;
  --type-display:var(--fw-light) var(--fs-display)/var(--lh-tight) var(--font-display);
  --type-h1:var(--fw-light) var(--fs-h1)/var(--lh-snug) var(--font-display);
  --type-h2:var(--fw-light) var(--fs-h2)/var(--lh-snug) var(--font-display);
  --type-h3:var(--fw-regular) var(--fs-h3)/var(--lh-snug) var(--font-display);
  --type-lead:var(--fw-light) var(--fs-lead)/var(--lh-normal) var(--font-body);
  --type-body:var(--fw-regular) var(--fs-body)/var(--lh-relaxed) var(--font-body);
  --type-small:var(--fw-regular) var(--fs-small)/var(--lh-relaxed) var(--font-body);
  --type-caption:var(--fw-regular) var(--fs-caption)/var(--lh-normal) var(--font-body);
  --type-label:var(--fw-regular) var(--fs-micro)/1.2 var(--font-label);
  /* spacing */
  --sp-0:0px;--sp-1:2px;--sp-2:4px;--sp-3:6px;--sp-4:8px;--sp-5:12px;--sp-6:16px;--sp-7:20px;
  --sp-8:24px;--sp-9:32px;--sp-10:40px;--sp-11:48px;--sp-12:64px;--sp-13:80px;--sp-14:96px;--sp-15:120px;--sp-16:160px;
  /* radius */
  --radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:14px;--radius-2xl:20px;--radius-full:999px;
  --radius-capsule:var(--radius-xs);--radius-control:var(--radius-xs);--radius-card:var(--radius-xs);
  --radius-media:var(--radius-xs);--radius-avatar:var(--radius-full);
  /* elevation */
  --shadow-none:none;--shadow-hairline:0 0 0 1px var(--border-hairline);
  --shadow-capsule:0 1px 2px var(--ir-black-a04),0 12px 32px var(--ir-black-a08);
  --shadow-raised:0 2px 4px var(--ir-black-a04),0 20px 48px var(--ir-black-a12);
  --scrim-top:linear-gradient(to bottom,rgba(0,0,0,0.28),rgba(0,0,0,0) 55%);
  --scrim-bottom:linear-gradient(to top,rgba(0,0,0,0.34),rgba(0,0,0,0) 60%);
  --blur-capsule:saturate(140%) blur(18px);
  /* motion */
  --dur-instant:90ms;--dur-fast:160ms;--dur-base:280ms;--dur-slow:520ms;--dur-reveal:800ms;
  --ease-out:cubic-bezier(0.22,0.61,0.36,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-entrance:cubic-bezier(0.16,1,0.3,1);
  --transition-control:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out);
  --transition-media:transform var(--dur-slow) var(--ease-out),opacity var(--dur-base) var(--ease-out);
  --transition-panel:transform var(--dur-base) var(--ease-entrance),opacity var(--dur-base) var(--ease-out);
  /* layout */
  --content-max:620px;--split-media:62%;--grid-gap:6px;
  --capsule-inset:20px;--nav-z:80;--overlay-z:90;--tap-min:44px;
}

/* ------------------------------- Base ------------------------------------ */
*,*::before,*::after{box-sizing:border-box}
:where(html){-webkit-text-size-adjust:100%}
body.ir-theme{margin:0;background:var(--surface-page);color:var(--text-primary);
  font:var(--type-body);letter-spacing:var(--ls-body);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
body.ir-theme :where(h1,h2,h3,h4,p,figure,ul,ol){margin:0}
body.ir-theme a{color:var(--text-link);text-decoration:none}
body.ir-theme img{max-width:100%;display:block}
body.ir-theme button{font-family:inherit}
.ir-label{font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label)}
.ir-muted{color:var(--text-muted)}
.ir-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
:where(body.ir-theme) svg{display:block}
.ir-glyph{width:18px;height:18px;flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ir-glyph--sm{width:15px;height:15px}
.ir-glyph--brand{fill:currentColor;stroke:none}

/* ------------------------------ Capsule ---------------------------------- */
.ir-capsule{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);
  border-radius:var(--radius-capsule);background:var(--surface-capsule);color:var(--text-primary);
  border:1px solid var(--border-capsule);box-shadow:var(--shadow-capsule);
  -webkit-backdrop-filter:var(--blur-capsule);backdrop-filter:var(--blur-capsule)}
.ir-capsule--solid{background:var(--surface-card);border-color:var(--border-hairline)}

/* ------------------------------- Chrome ---------------------------------- */
/* Nav capsule: fixed top-centre */
.ir-nav{position:fixed;top:var(--capsule-inset);left:50%;transform:translateX(-50%);
  z-index:var(--nav-z);gap:var(--sp-11)}
.ir-wordmark{font:var(--type-label);font-size:var(--fs-caption);text-transform:uppercase;
  letter-spacing:var(--ls-wordmark);padding:0 var(--sp-5);white-space:nowrap;color:var(--text-primary)}
/* Icon button */
.ir-iconbtn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  border:none;border-radius:var(--radius-control);cursor:pointer;transition:var(--transition-control);
  background:var(--surface-panel);color:var(--control-fg)}
.ir-iconbtn:hover{background:var(--control-bg-active)}
.ir-iconbtn--sm{width:34px;height:34px}
.ir-iconbtn--bare{background:transparent;color:var(--text-secondary)}
.ir-iconbtn--bare:hover{background:var(--control-bg-hover);color:var(--text-primary)}
.ir-iconbtn--inverse{background:var(--control-bg-inverse);color:var(--control-fg-inverse)}
.ir-iconbtn--inverse:hover{background:var(--control-bg-inverse-hover)}

/* Menu overlay */
.ir-menu{position:fixed;top:calc(var(--capsule-inset) + 56px);left:50%;margin-left:-190px;
  z-index:var(--overlay-z);width:380px;max-width:calc(100vw - var(--sp-10));
  background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-capsule);
  box-shadow:var(--shadow-raised);overflow:hidden;opacity:0;transform:translateY(-8px);
  pointer-events:none;transition:var(--transition-panel)}
.ir-menu.is-open{opacity:1;transform:translateY(0);pointer-events:auto}
.ir-menu__head{padding:var(--sp-7) var(--sp-7) var(--sp-5);border-bottom:1px solid var(--border-hairline)}
.ir-menu__title{font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label)}
.ir-menu__sub{font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-muted);margin-top:3px}
.ir-menu__nav{display:grid;gap:var(--sp-1);padding:var(--sp-5) var(--sp-5) var(--sp-5)}
.ir-menu__item{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);
  min-height:40px;padding:0 var(--sp-5);border:none;cursor:pointer;border-radius:var(--radius-control);
  background:transparent;color:var(--text-secondary);font:var(--type-label);text-transform:uppercase;
  letter-spacing:var(--ls-label);transition:var(--transition-control);text-align:left;text-decoration:none;width:100%}
.ir-menu__item:hover{background:var(--surface-hover);color:var(--text-primary)}
.ir-menu__item.is-active{background:var(--surface-active);color:var(--text-primary)}
.ir-menu__item .ir-menu__meta{color:var(--text-muted)}
.ir-menu__foot{display:grid;gap:var(--sp-5);padding:var(--sp-6) var(--sp-7) var(--sp-7);border-top:1px solid var(--border-hairline)}

/* Identity + socials, bottom-left */
.ir-corner-bl{position:fixed;left:var(--capsule-inset);bottom:var(--capsule-inset);z-index:var(--nav-z);
  display:flex;gap:var(--sp-3);align-items:center}
.ir-identity{padding:var(--sp-3);gap:var(--sp-5)}
.ir-identity__avatar{width:34px;height:34px;border-radius:var(--radius-avatar);overflow:hidden;
  background:var(--surface-media);flex:0 0 auto;display:block}
.ir-identity__avatar img{width:100%;height:100%;object-fit:cover}
.ir-identity__text{display:grid;gap:2px;padding-right:var(--sp-3)}
.ir-identity__name{font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label)}
.ir-identity__role{font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-muted)}
.ir-social{display:inline-flex;gap:var(--sp-1)}
.ir-social--capsule{padding:var(--sp-2)}

/* Filter capsule / status capsule, bottom-centre */
.ir-corner-bc{position:fixed;left:50%;transform:translateX(-50%);bottom:var(--capsule-inset);z-index:var(--nav-z)}
.ir-filter{display:inline-grid;justify-items:center;gap:var(--sp-3)}
.ir-filter__toggle{display:inline-flex;align-items:center;gap:var(--sp-6);min-height:40px;
  padding:0 var(--sp-4) 0 var(--sp-6);border:none;background:transparent;cursor:pointer;
  font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:inherit}
.ir-filter__menu{display:none;grid-gap:var(--sp-1);gap:var(--sp-1);padding:var(--sp-2);min-width:200px;grid-auto-flow:row}
.ir-filter.is-open .ir-filter__menu{display:grid}
.ir-filter__opt{min-height:36px;padding:0 var(--sp-5);border:none;cursor:pointer;text-align:left;
  border-radius:var(--radius-control);background:transparent;color:var(--text-secondary);
  font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);transition:var(--transition-control)}
.ir-filter__opt:hover{background:var(--surface-hover);color:var(--text-primary)}
.ir-filter__opt.is-active{background:var(--surface-active);color:var(--text-primary)}
.ir-status{padding:var(--sp-2);gap:var(--sp-5)}
.ir-status__text{display:inline-flex;gap:var(--sp-5);align-items:center;padding:0 var(--sp-4) 0 var(--sp-6);
  font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label)}

/* ------------------------------- Index ----------------------------------- */
.ir-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  gap:calc(var(--grid-gap) / 2);padding:calc(var(--grid-gap) / 2);background:var(--surface-page)}
@media (max-width:1024px){.ir-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:600px){.ir-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ir-grid--empty{grid-template-columns:1fr;min-height:100vh;padding:0;place-content:center;place-items:center;text-align:center;gap:var(--sp-7)}
.ir-tile{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:var(--surface-media);border-radius:var(--radius-media);min-width:0}
.ir-tile img{width:100%;height:100%;object-fit:cover;transition:var(--transition-media)}
.ir-tile__scrim{position:absolute;inset:0;background:var(--scrim-bottom);opacity:0;
  transition:opacity var(--dur-base) var(--ease-out)}
.ir-tile__label{position:absolute;left:var(--sp-5);right:var(--sp-5);bottom:var(--sp-5);
  display:flex;align-items:baseline;gap:var(--sp-4);font:var(--fw-medium) var(--fs-caption)/1.2 var(--font-label);text-transform:uppercase;
  letter-spacing:var(--ls-wordmark);color:var(--text-on-media);opacity:0;transform:translateY(4px);
  transition:var(--transition-panel)}
.ir-tile__label .ir-tile__meta{opacity:.7}
.ir-tile:hover img{filter:saturate(1.06) contrast(1.02);transform:scale(1.03)}
.ir-tile:hover .ir-tile__scrim{opacity:1}
.ir-tile:hover .ir-tile__label{opacity:1;transform:translateY(0)}
.ir-tile.is-hidden{display:none}
.ir-tile__placeholder{width:100%;height:100%;background:
  repeating-linear-gradient(135deg,var(--ir-gray-100) 0 14px,var(--ir-gray-200) 14px 28px)}

/* A specific category = a finite selection (no repeats). Uniform square tiles that
   fit the width in 3 columns and scroll vertically. 3 laptop / 2 tablet / 1 phone. */
body.category .ir-grid,.ir-grid--cat{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1024px){body.category .ir-grid,.ir-grid--cat{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){body.category .ir-grid,.ir-grid--cat{grid-template-columns:repeat(1,minmax(0,1fr))}}

/* ------------------------------- Neon accent ----------------------------- */
/* One striking colour on the key interactive + active elements (black ink on neon). */
.ir-nav .ir-iconbtn{background:var(--ir-neon);color:var(--ir-neon-ink)}
.ir-nav .ir-iconbtn:hover{background:var(--ir-neon-hover)}
.ir-filter > .ir-capsule:not(.ir-filter__menu){background:var(--ir-neon);border-color:transparent}
.ir-filter__toggle{color:var(--ir-neon-ink);font-weight:var(--fw-medium)}
.ir-menu__item.is-active{background:var(--ir-neon);color:var(--ir-neon-ink)}
.ir-filter__opt.is-active{background:var(--ir-neon);color:var(--ir-neon-ink)}
.ir-btn--neon{background:var(--ir-neon);color:var(--ir-neon-ink)}
.ir-btn--neon:hover{background:var(--ir-neon-hover);color:var(--ir-neon-ink)}

/* ------------------------------- Home hero ------------------------------- */
.ir-hero{position:relative;height:100vh;height:100dvh;overflow:hidden;background:var(--ir-black)}
.ir-hero__video{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:100vw;height:56.25vw;min-height:100vh;min-width:177.78vh;pointer-events:none}
.ir-hero__video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ir-hero__scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0) 42%,rgba(0,0,0,.28))}
.ir-hero__content{position:absolute;left:0;right:0;bottom:var(--sp-14);z-index:2;
  display:grid;justify-items:center;gap:var(--sp-8);padding:0 var(--sp-8);text-align:center}
.ir-hero__intro{font:var(--type-lead);color:var(--text-inverse);max-width:44ch;text-shadow:0 1px 24px rgba(0,0,0,.5)}
.ir-hero__intro p{margin:0}
.ir-btn--light{background:var(--ir-white);color:var(--ir-black)}
.ir-btn--light:hover{background:var(--ir-gray-200);color:var(--ir-black)}
@media (max-width:600px){.ir-hero__content{bottom:var(--sp-12)}.ir-hero__intro{font:var(--type-body);color:var(--text-inverse)}}

/* ------------------------------- Split ----------------------------------- */
.ir-split{display:grid;grid-template-columns:var(--split-media) minmax(0,1fr);min-height:100vh;background:var(--surface-page)}
.ir-split__media{position:sticky;top:0;align-self:start;height:100vh;overflow:hidden;background:var(--surface-media);min-width:0}
.ir-split__media img{width:100%;height:100%;object-fit:cover}
.ir-split__media--empty{background:var(--surface-media)}
.ir-split__body{padding:var(--sp-15) var(--sp-11) var(--sp-13);display:grid;gap:var(--sp-13);align-content:start;min-width:0}
.ir-split__stack{display:grid;gap:var(--sp-7);max-width:var(--content-max);min-width:0}
/* Media in project bodies stays inside the column */
.ir-title{overflow-wrap:break-word;hyphens:auto}
.ir-prose{min-width:0}
.ir-prose :where(iframe,video,embed,object,img,figure,.wp-block-embed__wrapper){max-width:100%}
.ir-prose :where(iframe){width:100%}
body.ir-theme :where(iframe){max-width:100%}

/* Page header */
.ir-header{display:grid;gap:var(--sp-7);max-width:var(--content-max)}
.ir-eyebrow{font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-muted)}
.ir-title{font:var(--type-display);letter-spacing:var(--ls-display)}
.ir-title--h1{font:var(--type-h1);letter-spacing:var(--ls-display)}
.ir-lead{font:var(--type-lead);color:var(--text-secondary)}
.ir-body p{font:var(--type-body)}
.ir-prose{display:grid;gap:var(--sp-7);max-width:var(--content-max)}
.ir-prose p{font:var(--type-body)}
.ir-prose > p:first-child{font:var(--type-lead);color:var(--text-secondary)}

/* Accordion */
.ir-accordion{display:grid;gap:var(--sp-2)}
.ir-acc{display:grid;gap:var(--sp-2)}
.ir-acc__head{display:flex;gap:var(--sp-6);align-items:center;justify-content:space-between;
  min-height:44px;padding:0 var(--sp-7);border:none;cursor:pointer;border-radius:var(--radius-md);
  text-align:left;background:var(--surface-panel);color:var(--text-secondary);
  font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);
  transition:var(--transition-control);width:100%}
.ir-acc__head:hover,.ir-acc.is-open .ir-acc__head{background:var(--surface-active);color:var(--text-primary)}
.ir-acc__meta{color:var(--text-muted)}
.ir-acc__chev{transition:transform var(--dur-fast) var(--ease-out)}
.ir-acc.is-open .ir-acc__chev{transform:rotate(90deg)}
.ir-acc__body{display:none;font:var(--type-small);color:var(--text-secondary);padding:var(--sp-3) var(--sp-7) var(--sp-6)}
.ir-acc.is-open .ir-acc__body{display:block}

/* Buttons */
.ir-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-4);
  font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);
  border:1px solid transparent;border-radius:var(--radius-control);cursor:pointer;
  transition:var(--transition-control);text-decoration:none;white-space:nowrap;min-height:44px;padding:0 var(--sp-7)}
.ir-btn--primary{background:var(--control-bg-inverse);color:var(--control-fg-inverse)}
.ir-btn--primary:hover{background:var(--control-bg-inverse-hover);color:var(--control-fg-inverse)}
.ir-btn--outline{background:transparent;color:var(--control-fg);border-color:var(--border-subtle)}
.ir-btn--outline:hover{background:var(--control-bg-hover)}
.ir-btn--ghost{background:transparent;color:var(--text-secondary)}
.ir-btn--ghost:hover{background:var(--control-bg-hover);color:var(--text-primary)}
.ir-btn--block{width:100%}
.ir-btn-row{display:flex;gap:var(--sp-3);flex-wrap:wrap}

/* Legal sections */
.ir-legal{display:grid;gap:var(--sp-11)}
.ir-legal__section{display:grid;gap:var(--sp-5);max-width:var(--content-max)}
.ir-legal h3{font:var(--type-h3);letter-spacing:var(--ls-heading)}
.ir-legal h3 .ir-num{color:var(--text-muted);margin-right:var(--sp-4)}
.ir-legal p{font:var(--type-small);color:var(--text-secondary)}
.ir-legal ul{padding-left:var(--sp-7);display:grid;gap:var(--sp-3);font:var(--type-small);color:var(--text-secondary);margin:0}
/* Auto-numbered legal sections: page authored as H2 headings + prose. */
.ir-legal-auto{counter-reset:ir-sec;display:grid;gap:var(--sp-11)}
.ir-legal-auto :where(h2,h3){font:var(--type-h3);letter-spacing:var(--ls-heading);max-width:var(--content-max)}
.ir-legal-auto :where(h2)::before{counter-increment:ir-sec;content:counter(ir-sec) ". ";color:var(--text-muted)}
.ir-legal-auto :where(p,ul,ol){font:var(--type-small);color:var(--text-secondary);max-width:var(--content-max)}
.ir-legal-auto :where(p){margin-top:var(--sp-5)}
.ir-legal-auto :where(ul,ol){padding-left:var(--sp-7);display:grid;gap:var(--sp-3);margin-top:var(--sp-5)}

/* Generic page (kept-theme, non-split) */
.ir-page{max-width:var(--content-max);margin:0 auto;padding:var(--sp-15) var(--sp-8) var(--sp-13);display:grid;gap:var(--sp-9)}
.ir-page .ir-prose :where(p,ul,ol){margin-top:var(--sp-5)}
.ir-page h1{font:var(--type-h1);letter-spacing:var(--ls-display)}

/* Form fields */
.ir-form{display:grid;max-width:var(--content-max)}
.ir-field{display:grid;gap:var(--sp-4);padding:var(--sp-6) 0;border-bottom:1px solid var(--border-hairline);
  transition:var(--transition-control)}
.ir-field:focus-within{border-color:var(--border-strong)}
.ir-field__label{font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-muted)}
.ir-field:focus-within .ir-field__label{color:var(--text-primary)}
.ir-field input,.ir-field textarea{width:100%;border:none;background:transparent;padding:0;
  font:var(--type-body);color:var(--text-primary);outline:none;resize:none}
.ir-form__submit{padding-top:var(--sp-9)}
.ir-note{font:var(--type-small);color:var(--text-secondary)}

/* Footer */
.ir-footer{border-top:1px solid var(--border-hairline);padding:var(--sp-12) var(--sp-13);display:grid;gap:var(--sp-12)}
.ir-footer__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-11)}
.ir-footer__col{display:grid;gap:var(--sp-5);align-content:start}
.ir-footer__col h4{font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-muted)}
.ir-footer__links{display:grid;gap:var(--sp-2)}
.ir-pill{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-6);min-height:36px;
  padding:0 var(--sp-5);border-radius:var(--radius-control);background:transparent;color:var(--text-secondary);
  font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);transition:var(--transition-control)}
.ir-pill:hover{background:var(--surface-hover);color:var(--text-primary)}
.ir-pill__meta{color:var(--text-muted)}
.ir-footer__credit{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-7);
  flex-wrap:wrap;padding-top:var(--sp-7);border-top:1px solid var(--border-hairline);
  font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-muted)}

/* 404 */
.ir-404{position:relative;height:100vh;overflow:hidden;background:var(--surface-media)}
.ir-404 img{width:100%;height:100%;object-fit:cover}
.ir-404__scrim{position:absolute;inset:0;background:var(--scrim-bottom)}
.ir-404__capsule{position:absolute;left:50%;transform:translateX(-50%);bottom:var(--capsule-inset)}

/* -------------------------- Reveal on scroll ----------------------------- */
.js .ir-reveal{opacity:0;transform:translateY(10px)}
.js .ir-reveal.is-in{opacity:1;transform:translateY(0);transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out)}

/* ----------------------------- Responsive -------------------------------- */
/* The 62/38 split is a wide-desktop frame; below 1200 it stacks, media first. */
@media (max-width:1200px){
  .ir-split{grid-template-columns:1fr}
  .ir-split__media{position:relative;height:56vh}
  .ir-split__body{padding:var(--sp-13) var(--sp-9) var(--sp-12);gap:var(--sp-11);max-width:820px;margin:0 auto;width:100%}
}
@media (max-width:810px){
  .ir-split__media{height:50vh}
  .ir-split__body{padding:var(--sp-12) var(--sp-8) var(--sp-11)}
  .ir-title{font:var(--fw-light) 48px/var(--lh-tight) var(--font-display);letter-spacing:var(--ls-display)}
  .ir-footer{padding:var(--sp-11) var(--sp-8)}
  .ir-identity__text{display:none}
}
@media (max-width:600px){
  .ir-nav{gap:var(--sp-7)}
  .ir-menu{margin-left:0;left:var(--capsule-inset);right:var(--capsule-inset);width:auto;transform:translateY(-8px)}
  .ir-menu.is-open{transform:translateY(0)}
  .ir-title{font:var(--fw-light) 40px/var(--lh-tight) var(--font-display);letter-spacing:var(--ls-display)}
  .ir-corner-bl{left:var(--capsule-inset);right:auto}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .js .ir-reveal{opacity:1;transform:none}
  .ir-tile:hover img{transform:none}
}
