/* Shared by every page. Page-specific CSS lives in home.css / releases.css. */
:root{
  --serif:var(--wp--preset--font-family--serif);
  --sans:var(--wp--preset--font-family--sans);
  --mono:var(--wp--preset--font-family--mono);
  --bg:#EEF1F5; --fg:#0E1120; --muted:#565D70; --accent:#C81E63;
  --gutter:clamp(16px,4vw,56px);
  --ease:cubic-bezier(.22,1,.36,1);
}
.theme-sentinel{--bg:#EEF1F5;--fg:#0E1120;--muted:#565D70;--accent:#C81E63}
.theme-prealpha{--bg:#2A1719;--fg:#F6E1DA;--muted:#C7A29C;--accent:#EE9A6C}
.theme-alpha   {--bg:#14215A;--fg:#EDF1FF;--muted:#A9B5E0;--accent:#F3D65A}
.theme-freedom {--bg:#E9E9E5;--fg:#0A0A0A;--muted:#4A4A48;--accent:#C21D15}
.theme-monk    {--bg:#E49A2B;--fg:#330C08;--muted:#5E2413;--accent:#7A1410}
.theme-spectre {--bg:#0B1118;--fg:#DDE4EC;--muted:#8D9AAD;--accent:#F0443C}
.theme-ink     {--bg:#0F1224;--fg:#ECEEFA;--muted:#9CA2C0;--accent:#AFA2FF}
.theme-paper   {--bg:#E9E9E5;--fg:#0A0A0A;--muted:#4A4A48;--accent:#C21D15}
.theme-maroon  {--bg:#2A1719;--fg:#F6E1DA;--muted:#C7A29C;--accent:#EE9A6C}
.theme-night   {--bg:#0B0D18;--fg:#EEF1F5;--muted:#9097AE;--accent:#FF4D8D}

/* reset (WordPress core adds margins to a few blocks) */
.dm, .dm *{box-sizing:border-box}
.dm :where(h1,h2,h3,h4,p,ul,ol,li,figure,figcaption){margin:0;padding:0}
.dm figure.wp-block-image{margin:0}
.dm .wp-block-image img{height:auto;vertical-align:bottom}
.dm ul.wp-block-list{list-style:none}
.dm .wp-element-caption{margin:0;text-align:left}
html body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:clamp(17px,1.15vw,19px);line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased}
.dm img{display:block;max-width:100%}
.dm a{color:inherit}
::selection{background:var(--accent);color:var(--bg)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* rooms: without JS each paints itself, with JS the page cross-fades between them */
.room{background:var(--bg);color:var(--fg);position:relative;padding:clamp(90px,14vh,170px) 0}
.js .room{background:transparent;color:inherit}
.wrap{max-width:1360px;margin:0 auto;padding:0 var(--gutter)}

/* film grain */
.dm::after{content:"";position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.06;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:dm-grain 1s steps(6) infinite}
@keyframes dm-grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}}

/* shared type */
.eyebrow{font-family:var(--mono);font-size:13px;color:var(--muted)}
.lede{font-size:clamp(20px,1.7vw,26px);line-height:1.45}
.pull{font-family:var(--serif);font-size:clamp(32px,4.4vw,72px);line-height:1.04;letter-spacing:-.02em}
.pull em{font-style:normal;color:var(--accent)}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.w > span{display:inline-block}

/* fixed header */
.top{position:fixed;inset:0 0 auto 0;z-index:80;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px var(--gutter);pointer-events:none}
.top > *{pointer-events:auto}
.admin-bar .top{top:32px}
@media (max-width:782px){.admin-bar .top{top:46px}}
.top .brand{font-family:var(--serif);font-size:22px;line-height:1.2;white-space:nowrap}
.top .brand a{text-decoration:none}
.badge{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;line-height:1.3;padding:8px 14px 8px 12px;border-radius:99px;
  background:color-mix(in oklab,var(--bg) 70%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid color-mix(in oklab,var(--fg) 16%,transparent);white-space:nowrap}
.badge::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.badge a{text-decoration:none}
.badge strong{font-weight:600}
@media (max-width:700px){
  .top{padding:12px var(--gutter);background:color-mix(in oklab,var(--bg) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in oklab,var(--fg) 10%,transparent)}
  .top .brand{font-size:19px}
}

/* icons: CSS masks so the markup stays plain core blocks */
[class^="i-"]::before,[class*=" i-"]::before{background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.i-loop{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M31 14a12 12 0 1 0 1 10'/%3E%3Cpath d='M32 7v8h-8'/%3E%3C/svg%3E")}
.i-one{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='9' r='2.5'/%3E%3Ccircle cx='20' cy='9' r='2.5'/%3E%3Ccircle cx='31' cy='9' r='2.5'/%3E%3Ccircle cx='9' cy='20' r='2.5'/%3E%3Ccircle cx='20' cy='20' r='2.5'/%3E%3Ccircle cx='9' cy='31' r='2.5'/%3E%3Ccircle cx='20' cy='31' r='2.5'/%3E%3Ccircle cx='31' cy='31' r='2.5'/%3E%3Ccircle cx='31' cy='20' r='5' fill='black'/%3E%3C/svg%3E")}
.i-search{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='17' cy='17' r='10'/%3E%3Cpath d='M25 25l9 9'/%3E%3Cpath d='M14 14a4 4 0 0 1 6 1'/%3E%3C/svg%3E")}
.i-swap{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 14h24l-5-5M34 26H10l5 5'/%3E%3C/svg%3E")}
.i-tick{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 18l8 8L29 7'/%3E%3C/svg%3E")}
.i-check{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.2 3L13 4.5'/%3E%3C/svg%3E")}
.i-pulse{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 19h7l3-8 5 16 4-11 2 3h9'/%3E%3C/svg%3E")}
.i-org{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='9' r='4'/%3E%3Ccircle cx='7' cy='27' r='3.5'/%3E%3Ccircle cx='18' cy='27' r='3.5'/%3E%3Ccircle cx='29' cy='27' r='3.5'/%3E%3Cpath d='M18 13v10M18 18l-11 6M18 18l11 6'/%3E%3C/svg%3E")}
.i-eye{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 18s6-10 16-10 16 10 16 10-6 10-16 10S2 18 2 18z'/%3E%3Ccircle cx='18' cy='18' r='5'/%3E%3C/svg%3E")}
.i-warn{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 4l15 27H5z'/%3E%3Cpath d='M20 15v8M20 27.5v.5'/%3E%3C/svg%3E")}
.i-filter{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 20h24'/%3E%3Cpath d='M8 12h16M8 28h10'/%3E%3Cpath d='M29 25l6 6M35 25l-6 6'/%3E%3C/svg%3E")}
.i-trend{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 30l9-9 6 6 13-13'/%3E%3Cpath d='M26 14h8v8'/%3E%3C/svg%3E")}
.i-moto{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='5.5' cy='16.5' r='3.5'/%3E%3Ccircle cx='18.5' cy='16.5' r='3.5'/%3E%3Cpath d='M5.5 16.5l4-7h5l4 7M12 9.5L10 6H7.5M14.5 9.5l2-3h2'/%3E%3C/svg%3E")}
.i-pin{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E")}
.i-leaf{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-8 5-13 15-14-1 10-6 15-14 15'/%3E%3Cpath d='M5 19l7-7'/%3E%3C/svg%3E")}
.i-globe{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20'/%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3C/svg%3E")}
.i-arrow{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 20h28M24 10l10 10-10 10'/%3E%3C/svg%3E")}
.i-down{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v12M3 9l5 5 5-5'/%3E%3C/svg%3E")}
.i-right{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 8h12M9 3l5 5-5 5'/%3E%3C/svg%3E")}

/* generic pages (posts, other pages) */
.dm-plain{max-width:760px;margin:0 auto;padding:140px var(--gutter) 100px}
.dm-plain h1,.dm-plain .wp-block-post-title{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,72px);line-height:1;letter-spacing:-.02em;margin-bottom:.6em}
.dm-plain h2{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3vw,40px);line-height:1.1;margin:1.4em 0 .5em}
.dm-plain p,.dm-plain ul,.dm-plain ol{margin-bottom:1.1em}
.dm-plain ul,.dm-plain ol{padding-left:1.3em}
.dm-plain a{color:var(--accent)}
.dm-plain .wp-block-post-template{list-style:none;padding:0}
.dm-plain .wp-block-post-template li{padding:24px 0;border-top:1px solid color-mix(in oklab,var(--fg) 14%,transparent)}
.dm-plain .wp-block-post-template h2{margin:0 0 .3em}
.dm-plain .wp-block-post-template h2 a{color:inherit;text-decoration:none}
.dm-plain .wp-block-post-date{font-family:var(--mono);font-size:13px;color:var(--muted)}
.dm-plainfoot{max-width:1360px;margin:0 auto;padding:26px var(--gutter) 30px;border-top:1px solid color-mix(in oklab,var(--fg) 15%,transparent);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--muted)}
.dm-plainfoot a{text-decoration:none}

@media (prefers-reduced-motion:reduce){
  .dm::after{animation:none}
  .dm *{transition-duration:.01ms !important}
}
