@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght,SOFT@0,9..144,400..900,0..100;1,9..144,400..900,0..100&family=Nunito+Sans:wght@400;600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root {
  color-scheme: light;
  --ground:#E4E8DC; --ground-2:#D5DBCB; --ink:#23180F; --ink-2:#5E4E3E;
  --gold:#AA650A; --gold-deep:#86500A; --amber:#694007; --foam:#FFF9EA;
  --foam-shade:#EEDFB8; --glass-tint:rgba(255,255,255,.42); --glass-edge:rgba(35,24,15,.55);
  --line:rgba(35,24,15,.20); --bubble-hi:#FFFDF6; --bubble-mid:#FCE6A9; --bubble-edge:#E8B542;
  --card:rgba(255,255,255,.55); --shadow:0 18px 24px rgba(35,24,15,.2);
  --liquid-top:#F7C64A; --liquid-bot:#C97D12; --sheen:#FFFFFF;
  --button-ink:#FFF9EA; --button:#66410C; --good:#365936; --warn:#86500A;
}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --ground:#1A110B; --ground-2:#24170F; --ink:#F6EBD6; --ink-2:#C4B499;
  --gold:#F0B03A; --gold-deep:#EDB752; --amber:#694007; --foam:#FFF4DC;
  --foam-shade:#E7D3A6; --glass-tint:rgba(255,255,255,.07); --glass-edge:rgba(255,244,220,.55);
  --line:rgba(246,235,214,.23); --bubble-hi:#FFFBEE; --bubble-mid:#F8D98C; --bubble-edge:#D89A22;
  --card:rgba(255,244,220,.055); --shadow:0 24px 30px rgba(0,0,0,.4);
  --liquid-top:#F5B92E; --liquid-bot:#B0650A; --sheen:#FFFFFF;
  --button-ink:#23180F; --button:#EDB752; --good:#AAD09C; --warn:#EAC27C;
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --ground:#1A110B; --ground-2:#24170F; --ink:#F6EBD6; --ink-2:#C4B499;
  --gold:#F0B03A; --gold-deep:#EDB752; --amber:#694007; --foam:#FFF4DC;
  --foam-shade:#E7D3A6; --glass-tint:rgba(255,255,255,.07); --glass-edge:rgba(255,244,220,.55);
  --line:rgba(246,235,214,.23); --bubble-hi:#FFFBEE; --bubble-mid:#F8D98C; --bubble-edge:#D89A22;
  --card:rgba(255,244,220,.055); --shadow:0 24px 30px rgba(0,0,0,.4);
  --liquid-top:#F5B92E; --liquid-bot:#B0650A; --sheen:#FFFFFF;
  --button-ink:#23180F; --button:#EDB752; --good:#AAD09C; --warn:#EAC27C;
}
*{box-sizing:border-box} [hidden]{display:none!important}
body{margin:0;background:radial-gradient(100% 70% at 10% 0,var(--ground-2),var(--ground) 80%);color:var(--ink);font:1.0625rem/1.6 "Nunito Sans",system-ui,sans-serif;min-height:100vh}
a{color:var(--gold-deep);text-underline-offset:.22em} a:hover{text-decoration-thickness:2px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold-deep);outline-offset:4px}
button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}
.wrap{width:min(1120px,calc(100% - 64px));margin-inline:auto}
.skip{position:fixed;top:-100px;left:20px;background:var(--ground);padding:12px;z-index:10}.skip:focus{top:10px}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:24px;border-bottom:1px solid var(--line)}
.wordmark{font:800 italic 1.5rem/1.1 "Fraunces",Georgia,serif;color:var(--ink);text-decoration:none;white-space:nowrap}
nav{display:flex;gap:24px;align-items:center;flex-wrap:wrap}nav a{font-size:.9375rem;font-weight:700;text-decoration:none;color:var(--ink-2)}nav a[aria-current="page"]{color:var(--gold-deep);text-decoration:underline}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-variation-settings:"SOFT" 60;text-wrap:balance;line-height:1.15}
h1{font-size:clamp(2.5rem,5vw,4.5rem);margin:0 0 20px;font-weight:650}
h2{font-size:clamp(1.9rem,3vw,2.7rem);margin:0 0 16px}h3{font-size:1.55rem;margin:0 0 12px}p{margin:0 0 18px}
.eyebrow,.mono{font-family:"IBM Plex Mono",monospace}.eyebrow{font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:16px}
.muted,.caption{color:var(--ink-2)}.caption{font-size:.875rem}.lede{max-width:44ch;font-size:1.25rem;color:var(--ink-2)}
.hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:50px;align-items:center;padding-block:36px 48px}
.hero h1{font-size:clamp(4rem,8vw,6.5rem);line-height:.98;font-weight:900;font-style:italic;color:var(--gold);font-variation-settings:"SOFT" 100,"opsz" 144;letter-spacing:-.04em}
.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:28px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--button);color:var(--button-ink);border:1px solid var(--button);padding:10px 20px;border-radius:6px;text-decoration:none;font-weight:800}
.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}
.glass-wrap{display:flex;justify-content:center}.glass{width:100%;max-width:225px;aspect-ratio:320/640;position:relative;filter:drop-shadow(var(--shadow))}
.glass-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.foam{transform-origin:160px 118px}
.bubbles{position:absolute;inset:0;display:block}.bubble{position:absolute;left:var(--x);top:var(--y);width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;display:grid;place-items:center;color:var(--amber);font:800 18px "IBM Plex Mono",monospace;text-decoration:none;background:radial-gradient(circle at 34% 28%,var(--bubble-hi),var(--bubble-mid) 48%,var(--bubble-edge));border:1px solid var(--bubble-mid)}
.bubble .tag{position:absolute;left:120%;top:50%;transform:translateY(-50%);white-space:nowrap;background:var(--ground);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:3px 8px;font: .875rem "Nunito Sans",sans-serif;opacity:0;pointer-events:none}
.bubble:hover,.bubble:focus-visible{z-index:2}.bubble:hover .tag,.bubble:focus-visible .tag{opacity:1}
.section{padding-block:52px;border-top:1px solid var(--line);scroll-margin-top:24px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px}.section-heading h2{margin-bottom:0}.section-heading p{margin:0;max-width:36ch}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.project{background:var(--card);border:1px solid var(--line);border-radius:6px 24px 6px 24px;padding:28px;display:flex;flex-direction:column;min-width:0}.project.featured{padding-block:32px}.project p{color:var(--ink-2);max-width:50ch}.project .eyebrow{margin-bottom:18px}.project-links{display:flex;gap:20px;flex-wrap:wrap;margin-top:auto;padding-top:8px;font-weight:800}.project-stage{font-size:.875rem;margin-top:auto;color:var(--ink-2)}
.note{border-left:3px solid var(--gold);padding:4px 0 4px 20px;color:var(--ink-2);font-size:.9375rem}
.story-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:48px}.story{padding:28px;border:1px solid var(--line);background:var(--card);border-radius:6px 24px 6px 24px}.story p:last-child{margin-bottom:0}.story summary{cursor:pointer;color:var(--gold-deep);margin-top:20px}.story details p{padding-top:16px}
.contact{padding:32px;background:var(--card);border:1px solid var(--line);border-radius:6px 24px 6px 24px}.contact a{font-size:clamp(1rem,3vw,1.5rem);overflow-wrap:anywhere}
footer{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-block:28px;margin-top:32px;border-top:1px solid var(--line);font-size:.875rem;color:var(--ink-2)}footer p{margin:0}
.page-heading{padding-block:48px 28px}.page-heading h1{margin-bottom:12px}.page-heading p{max-width:70ch}.toolbar{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin-bottom:24px}.toolbar label{display:flex;flex-direction:column;font-size:.875rem;gap:5px}.toolbar select,.toolbar input{padding:9px 12px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:5px;min-height:44px}.toolbar .button{margin-left:auto}
.status-line{min-height:24px;margin-block:8px 24px;font-size:.875rem;color:var(--ink-2)}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-block:24px}.stat{border:1px solid var(--line);background:var(--card);padding:22px;border-radius:6px}.stat-value{font:600 2.2rem "Fraunces",serif;margin-block:8px}.stat-label{font-weight:800}.stat .caption{margin:0}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:var(--card)}table{border-collapse:collapse;width:100%;font-size:.9375rem;text-align:left}th,td{padding:18px 16px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.8125rem;letter-spacing:.025em;color:var(--ink-2);font-weight:800}tr:last-child td{border-bottom:0}td:first-child{min-width:165px}td .caption{display:block;margin-top:3px;font-size:.8125rem}td strong{font-size:1.15rem}.table-wrap a{font-weight:800}.empty{padding:28px;color:var(--ink-2)}
.source-detail{margin-block:20px}.source-detail summary{font-weight:800;cursor:pointer;padding-block:12px}.source-detail dl{display:grid;grid-template-columns:minmax(130px,1fr) 3fr;gap:8px 24px;font-size:.9375rem}dt{color:var(--ink-2)}dd{margin:0;overflow-wrap:anywhere}
.trend{margin-block:18px}.trend svg{width:100%;height:150px;display:block;stroke:var(--gold-deep);fill:none;stroke-width:2}.trend figcaption{font-size:.875rem;color:var(--ink-2)}.trend details{font-size:.875rem}.trend table{max-width:480px}.trend caption{text-align:left;padding:12px}
.pill{display:inline-block;border:1px solid var(--line);border-radius:30px;padding:2px 9px;font-size:.8125rem;color:var(--ink-2);margin-top:6px}.pill.ok{color:var(--good)}.pill.stale,.pill.error,.pill.partial{color:var(--warn)}
.owner-nav{margin-block:20px}.owner-nav a{padding:8px 0}.owner-panel{margin-block:32px}.owner-panel h2{font-size:1.8rem}.attention{padding:18px 22px;border:1px solid var(--line);background:var(--card);border-radius:6px;margin-bottom:20px}.attention ul{margin:0;padding-left:22px}.attention:empty{display:none}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.liquid{animation:pour 1.8s cubic-bezier(.2,.7,.2,1) both}.foam{animation:foam 1s .9s both}.bubble{animation:bob var(--bob,6s) ease-in-out infinite alternate;transition:scale .2s}.bubble:hover,.bubble:focus-visible{animation-play-state:paused;scale:1.1}a,button{transition:background .18s,color .18s}}
@keyframes pour{from{transform:translateY(430px)}}@keyframes foam{from{transform:scaleY(0);opacity:0}}@keyframes bob{from{translate:0 -2px}to{translate:0 2px}}
@media(max-width:720px){.wrap{width:calc(100% - 36px)}.site-header{padding-block:20px;gap:16px}.site-header nav{gap:15px}.site-header nav a{font-size:.875rem}.hero{grid-template-columns:minmax(0,1fr) 100px;gap:12px;padding-block:34px}.hero h1{font-size:clamp(3rem,11vw,4.75rem)}.hero .lede{font-size:1.0625rem}.hero .eyebrow{font-size:.75rem}.hero-actions{gap:16px;margin-top:20px}.hero-actions .button{padding:9px 12px}.glass{max-width:100px}.bubble{width:30px;height:30px;margin:-15px 0 0 -15px;font-size:13px}.bubble .tag{display:none}.section{padding-block:36px}.section-heading{align-items:start;flex-direction:column;gap:16px}.project-grid,.story-layout{grid-template-columns:1fr}.project,.project.featured{padding:24px}.story-layout{gap:20px}.stats-grid{grid-template-columns:1fr}.page-heading{padding-top:32px}.toolbar{gap:12px}.toolbar .button{margin-left:0}.source-detail dl{grid-template-columns:1fr;gap:4px}dd{margin-bottom:12px}.contact{padding:24px}.hero-actions a:not(.button){font-size:.9375rem}}
@media(max-width:390px){.wordmark{font-size:1.2rem}.site-header nav{gap:12px}.hero{grid-template-columns:minmax(0,1fr) 80px}.glass{max-width:80px}.bubble{width:26px;height:26px;margin:-13px 0 0 -13px;font-size:12px}.hero h1{font-size:3rem}}

.sr-caption{padding:12px 16px;text-align:left;font-size:.875rem;color:var(--ink-2)}.after-table{margin-top:16px}
