/* Poster Grammar shared theme: modern type, glass surfaces, light + dark. Loaded last by every page. */
@font-face{font-family:Inter;src:url(/fonts/inter-400.ttf) format('truetype');font-weight:100 500;font-display:swap}
@font-face{font-family:Inter;src:url(/fonts/inter-700.ttf) format('truetype');font-weight:600 900;font-display:swap}
@font-face{font-family:'Plus Jakarta Sans';src:url(/fonts/plus-jakarta-sans-400.ttf) format('truetype');font-weight:100 500;font-display:swap}
@font-face{font-family:'Plus Jakarta Sans';src:url(/fonts/plus-jakarta-sans-700.ttf) format('truetype');font-weight:600 900;font-display:swap}

html[data-theme]{
  --font-ui:Inter,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-display:'Plus Jakarta Sans',Inter,system-ui,sans-serif;
  --r:16px; --blur:saturate(1.4) blur(18px);
}
html[data-theme=light]{
  color-scheme:light;
  --bg:#f7f6f3; --panel:rgba(255,255,255,.78); --panel-solid:#ffffff; --glass:rgba(255,255,255,.58); --glass-border:rgba(255,255,255,.75);
  --ink:#121620; --muted:#565e6c; --faint:#8a92a0; --line:rgba(18,22,32,.09); --soft:rgba(18,22,32,.05);
  --accent:#121620; --accent-soft:rgba(18,22,32,.08); --jade:#2f8f76; --work:rgba(229,227,221,.7);
  --strong:#121620; --on-strong:#ffffff;
  --work-bg:#eeede8 radial-gradient(circle,rgba(18,22,32,.06) 1px,transparent 1.3px) 0 0/34px 34px;  /* studio workspace: faint, sparse dots */
  --shadow:0 1px 2px rgba(16,24,40,.05),0 12px 32px rgba(16,24,40,.08);
  --hair:rgba(18,22,32,.16);
  /* warm paper white: one soft highlight at the top, a faint warm shade at the bottom, no colour wash */
  --bg-art:radial-gradient(1000px 520px at 50% -12%,rgba(255,255,255,.95),transparent 68%),radial-gradient(900px 600px at 100% 110%,rgba(236,230,219,.55),transparent 62%);
  --paper:var(--bg);
}
html[data-theme=dark]{
  color-scheme:dark;
  /* studio-quiet: near-black, hairlines, flat panels, one glow at the top of the page, no blur except sticky bars */
  --bg:#07080c; --panel:rgba(10,11,16,.86); --panel-solid:#0d0e13; --glass:rgba(255,255,255,.022); --glass-border:rgba(255,255,255,.09);
  --ink:#f3f3f5; --muted:#9a9aa6; --faint:#5f606b; --line:rgba(255,255,255,.08); --soft:rgba(255,255,255,.045);
  --accent:#f3f3f5; --accent-soft:rgba(255,255,255,.10); --jade:#5fd0b0; --work:rgba(8,10,16,.55);
  --strong:#f3f3f5; --on-strong:#07080c;
  --work-bg:#07090e;  /* studio workspace: plain black, no dots */
  --shadow:0 0 0 0 transparent;
  --blur:none;
  --bg-art:radial-gradient(1100px 620px at 30% -12%,rgba(60,160,220,.16),transparent 65%),radial-gradient(1000px 600px at 75% -10%,rgba(110,90,255,.18),transparent 62%);
  --paper:var(--bg);
}
@font-face{font-family:'Instrument Serif';src:url(/fonts/instrument-serif-400.ttf) format('truetype');font-display:swap}
html[data-theme=dark] body{background:var(--bg-art),var(--bg)!important;background-repeat:no-repeat!important}
html[data-theme=dark] body:not(:has(#cv))::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.05!important;mix-blend-mode:normal;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}
html[data-theme=dark] header,html[data-theme=dark] body>nav{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
html[data-theme=dark] h1,html[data-theme=dark] h2{letter-spacing:-.045em}
html[data-theme=light] h1 em,html[data-theme=light] h2 em{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.01em;background:none;-webkit-text-fill-color:currentColor;color:var(--ink)}
html[data-theme=light] h2 em{color:var(--muted)}
em.strike{text-decoration:line-through;text-decoration-thickness:.06em;text-decoration-color:currentColor;text-decoration-skip-ink:none}
html[data-theme=dark] h1 em,html[data-theme=dark] h2 em{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.01em;background:none;-webkit-text-fill-color:currentColor;color:#fff}
html[data-theme=dark] h2 em{color:var(--muted)}
html[data-theme=dark] .theme-btn{background:transparent}
html[data-theme] body{background:var(--bg-art) fixed,var(--bg)!important;color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01"}
html[data-theme] body::after{opacity:.08!important}
html[data-theme] h1,html[data-theme] h2,html[data-theme] h3,html[data-theme] h4,html[data-theme] .brand{font-family:var(--font-display);letter-spacing:-.02em}
html[data-theme] .brand{font-weight:700}
html[data-theme] .brand b{color:var(--accent)}

/* glass on the app chrome */
html[data-theme] header,html[data-theme] .rail,html[data-theme] .side,html[data-theme] .ctx,html[data-theme] .filters,html[data-theme] .strip,html[data-theme] .zoom{backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}
html[data-theme] .drop,html[data-theme] .pop,html[data-theme] .dlg,html[data-theme] .advfly{background:var(--panel-solid)}
html[data-theme] input[type=text],html[data-theme] input[type=search],html[data-theme] input[type=number],html[data-theme] select,html[data-theme] textarea{color:var(--ink)}
html[data-theme=dark] select option{background:var(--panel-solid);color:var(--ink)}

/* comfortable scrolling */
html[data-theme]{scroll-behavior:smooth}
html[data-theme] *{scrollbar-width:thin;scrollbar-color:var(--line) transparent}
html[data-theme] ::-webkit-scrollbar{width:10px;height:10px}
html[data-theme] ::-webkit-scrollbar-thumb{background:var(--line);border-radius:10px;border:2px solid transparent;background-clip:padding-box}
html[data-theme] ::-webkit-scrollbar-thumb:hover{background-color:var(--faint)}
html[data-theme] ::-webkit-scrollbar-track{background:transparent}

/* buttons follow the page text colour unless a component sets its own (zero specificity) */
:where(html[data-theme]) :where(button,select,input,textarea){color:inherit}

/* the Poster Grammar mark: one PNG used as a mask, so it takes the text colour in both themes */
:root{--logo:url(data:image/png;base64,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)}
.logo-mark{display:inline-block;flex:none;width:1.35em;height:1.35em;background:currentColor;-webkit-mask:var(--logo) center/contain no-repeat;mask:var(--logo) center/contain no-repeat}
.brand:has(.logo-mark){display:inline-flex;align-items:center;gap:.45em}

/* the light / dark switch */
.theme-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--glass);color:var(--ink);display:inline-grid;place-items:center;cursor:pointer;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);transition:transform .2s,background .2s;flex:none}
.theme-btn:hover{transform:rotate(-12deg)}
.theme-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html[data-theme] *{transition-property:background-color,border-color,color;transition-duration:.25s}
html[data-theme] canvas,html[data-theme] img{transition:none}
@media (prefers-reduced-motion:reduce){html[data-theme] *{transition:none!important}}
html[data-theme] h1 em,html[data-theme] h2 em{font-size:1.1em}  /* the serif runs small next to the sans */
/* native dropdown lists: solid colours (the translucent panel colours made white-on-white lists in dark mode) */
html[data-theme] select{background-color:var(--panel-solid);color:var(--ink);text-overflow:ellipsis}
html[data-theme] select option,html[data-theme] select optgroup{background-color:var(--panel-solid);color:var(--ink)}
html[data-theme] select optgroup{font-weight:700;font-style:normal;color:var(--muted)}
html[data-theme] select option:disabled{color:var(--faint)}
