* { box-sizing: border-box; }
:root {
  color-scheme:dark;
  --bg:#0c0e12;
  --surface:#13161c;
  --surface-raised:#1b2029;
  --surface-inset:#101318;
  --surface-hover:#1d222b;
  --ink:#f2f3f5;
  --muted:#a6adb9;
  --quiet:#858e9d;
  --line:#2a2e37;
  --line-strong:#343b48;
  --accent:#efbc75;
  --accent-hover:#f7ce96;
  --accent-ink:#20180d;
  --accent-soft:#efbc7509;
  --accent-border:#efbc7526;
  --accent-border-hover:#efbc7566;
  --radius:5px;
}
html { scroll-padding-top:0; }
body { margin:0; background:radial-gradient(ellipse at 82% 0,#efbc7508,transparent 54%),var(--bg); color:var(--ink); font-family:Manrope,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; color:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
button:disabled { cursor:default; }
h1[tabindex="-1"]:focus { outline:none; }
[hidden] { display:none!important; }
::selection { background:var(--accent); color:var(--accent-ink); }
.container { width:calc(100% - 112px); max-width:1328px; margin-inline:auto; }
.skip-link { position:fixed; top:12px; left:15px; padding:15px 22px; z-index:100; color:var(--accent-ink); background:var(--accent); transform:translateY(-200%); }
.skip-link:focus { transform:translateY(0); }
.site-header { position:sticky; top:0; z-index:30; background:#0c0e12ee; backdrop-filter:blur(15px); }
.header-inner { display:flex; justify-content:space-between; align-items:center; gap:25px; height:103px; border-bottom:1px solid var(--line); }
.wordmark { display:inline-flex; align-items:center; gap:10px; font-size:31px; line-height:1; font-weight:800; letter-spacing:-1.8px; }
.brand-dot { color:var(--accent); margin-left:-10px; }
.brand-mark { display:block; width:54px; height:40px; object-fit:contain; flex-shrink:0; }
.desktop-nav { display:flex; align-items:center; gap:31px; font-size:16px; }
.desktop-nav a { color:var(--muted); padding-block:14px; }
.desktop-nav a:hover,.desktop-nav a[aria-current] { color:var(--accent); }
.desktop-nav a[aria-current]::before { content:''; display:inline-block; width:4px; height:4px; background:var(--accent); border-radius:50%; margin-right:8px; vertical-align:3px; }
.header-contact { border:1px solid var(--line); border-radius:var(--radius); padding:13px 18px; font-size:12px; }
.header-contact span { margin-left:23px; color:var(--accent); }
.header-contact:hover { border-color:var(--quiet); }
.menu-button { display:none; width:44px; height:44px; padding:11px; background:transparent; border:1px solid var(--line); border-radius:4px; }
.menu-button span { display:block; height:1px; background:var(--ink); margin:6px 0; }
.mobile-menu { padding-block:8px 20px; }
.mobile-menu a { display:flex; justify-content:space-between; padding:17px 0; font-size:14px; border-bottom:1px solid var(--line); }
.mobile-menu a[aria-current] { color:var(--accent); }
.eyebrow { display:flex; align-items:center; gap:10px; font-size:10px; font-weight:600; letter-spacing:1.7px; line-height:1.7; margin:0; }
.status-point { width:5px; height:5px; background:var(--accent); border-radius:50%; }
.hero { position:relative; display:flex; align-items:center; min-height:590px; isolation:isolate; }
.hero-copy { position:relative; z-index:2; width:62%; padding-block:65px; }
h1 { font-size:clamp(46px,5.4vw,79px); line-height:1.1; letter-spacing:-4px; font-weight:600; margin:29px 0 25px; }
.hero h1 span { color:var(--accent); }
.hero-description { font-size:15px; line-height:1.9; color:var(--muted); margin:0 0 30px; }
.primary-button { display:inline-flex; align-items:center; justify-content:space-between; gap:35px; background:var(--accent); color:var(--accent-ink); border:1px solid var(--accent); border-radius:var(--radius); padding:17px 23px; font-size:12px; font-weight:700; min-height:50px; transition:background .18s,transform .18s; }
.primary-button span { font-size:20px; font-weight:400; line-height:1; }
.primary-button:hover { background:var(--accent-hover); transform:translateY(-2px); }
.hero-footnote { display:flex; align-items:center; gap:12px; font-size:8px; letter-spacing:1.2px; color:var(--muted); margin-top:40px; }
.hero-footnote > span { width:25px; height:1px; background:var(--quiet); }
.hero-art { position:absolute; z-index:-1; inset:15px -28px 0 24%; overflow:hidden; }
.hero-art img { display:block; width:100%; height:100%; object-fit:cover; object-position:80% center; }
.hero-art::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,var(--bg),transparent 35%,transparent 89%,var(--bg)),linear-gradient(0deg,var(--bg),transparent 16%,transparent 91%,var(--bg)); }
.art-index,.art-caption,.art-cross { position:absolute; z-index:1; color:var(--muted); font-size:9px; letter-spacing:1.8px; right:18px; }
.art-index { top:28px; }.art-caption { bottom:25px; }.art-cross { top:50%; font-size:22px; }
.category-rail { display:flex; justify-content:space-between; align-items:center; gap:25px; height:77px; border-block:1px solid var(--line); }
.category-rail > span { color:var(--muted); font-size:11px; }
.category-rail > div { display:flex; align-items:center; gap:31px; font-size:12px; }
.category-rail i { color:var(--accent); font-style:normal; font-size:16px; }
.category-rail > a { padding:15px 5px; font-size:22px; }
.projects { padding-block:78px 60px; scroll-margin-top:119px; }
.section-topline { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.section-counter { font-size:10px; color:var(--muted); letter-spacing:1px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin:25px 0 33px; }
h2 { font-size:clamp(37px,4vw,56px); line-height:1.15; letter-spacing:-2.2px; font-weight:500; margin:0; }
.section-heading p { font-size:13px; line-height:1.8; color:var(--muted); margin:0; }
.catalog-toolbar { display:flex; justify-content:space-between; align-items:center; gap:25px; border-bottom:1px solid var(--line); padding-bottom:23px; margin-bottom:28px; }
.filters { display:flex; flex-wrap:wrap; gap:5px; }
.filters button { border:1px solid transparent; border-radius:4px; background:transparent; color:var(--muted); padding:11px 15px; font-size:12px; min-height:43px; }
.filters sup { margin-left:5px; font-size:8px; }
.filters button[aria-pressed=true] { background:var(--accent); color:var(--accent-ink); }
.filters button:hover { border-color:var(--line); }
.search-field { display:flex; align-items:center; gap:10px; padding:11px 13px; width:230px; border:1px solid var(--line); border-radius:4px; }
.search-field > span { font-size:23px; line-height:1; color:var(--muted); }
.search-field input { color:var(--ink); background:transparent; border:0; width:100%; min-width:0; outline:0; font-size:12px; }
.search-field input::placeholder { color:var(--muted); opacity:1; }
.search-field:focus-within { outline:1px solid var(--accent); }
.search-field input:focus-visible { outline:0; }
.search-field kbd { border:1px solid var(--line); padding:1px 4px; font-size:10px; color:var(--quiet); }
.project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:31px 24px; }
.project-card { min-width:0; padding-bottom:25px; border-bottom:1px solid var(--line); }
.project-visual { display:block; width:100%; aspect-ratio:1.5; position:relative; border:1px solid var(--line); padding:0; background:var(--surface); border-radius:var(--radius); overflow:hidden; text-align:left; }
.project-visual img { display:block; width:100%; height:100%; object-fit:cover; object-position:70% center; transition:transform .45s; }
.project-visual:hover img { transform:scale(1.04); }
.project-visual::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,#0007,transparent 27%,transparent 85%,#0004); }
.cover-index { position:absolute; z-index:1; top:17px; left:17px; color:var(--ink); font-size:9px; letter-spacing:1.4px; }
.visual-arrow { position:absolute; z-index:1; right:13px; top:13px; width:26px; height:26px; display:grid; place-items:center; color:var(--ink); border:1px solid #f2f3f53d; border-radius:50%; font-size:15px; }
.project-meta { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:7px 12px; font-size:10px; line-height:1.6; letter-spacing:.7px; color:var(--muted); margin:20px 0 11px; }
.project-title-row { display:flex; justify-content:space-between; align-items:center; gap:12px; }
h3 { font-size:23px; font-weight:500; letter-spacing:-.8px; line-height:1.35; margin:0; }
.project-title-row h3 { min-width:0; }
.project-title-row h3 > button { border:0; padding:0; background:transparent; text-align:left; font:inherit; letter-spacing:inherit; }
.project-title-row h3 > button:hover { color:var(--accent); }
.round-button { width:40px; height:40px; flex-shrink:0; border:1px solid var(--line); border-radius:50%; background:transparent; font-size:21px; transition:background .18s,color .18s; }
.round-button:hover { background:var(--accent); color:var(--accent-ink); }
.project-card p { font-size:13px; line-height:1.85; color:var(--muted); margin:8px 0 0; }
.project-status { display:inline-flex; align-items:center; gap:7px; margin-top:15px; color:var(--muted); font-size:10px; line-height:1.6; border:1px solid var(--line); border-radius:3px; padding:4px 8px; }
.project-status::before { content:''; width:3px; height:3px; background:var(--quiet); border-radius:50%; }
.project-wide { grid-column:1/-1; display:grid; grid-template-columns:1fr 1.6fr; gap:40px; border:1px solid var(--line); border-radius:var(--radius); padding:0; overflow:hidden; align-items:center; background:var(--surface); }
.project-wide .project-visual { border:0; border-radius:0; aspect-ratio:1.7; min-height:235px; }
.project-wide-content { padding:25px 35px 25px 0; }
.project-wide .project-meta { margin-top:0; }
.project-wide h3 { font-size:30px; }
.empty-state { text-align:center; padding:65px 20px; color:var(--muted); border-bottom:1px solid var(--line); }
.empty-state > span { display:block; font-size:42px; color:var(--accent); margin-bottom:18px; }
.empty-state h3 { font-size:23px; color:var(--ink); margin-bottom:13px; }
.empty-state p { font-size:13px; }
.text-button { border:0; background:transparent; color:var(--accent); font-size:12px; padding:12px 0; border-bottom:1px solid var(--line); }
.catalog-end { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:24px; color:var(--muted); font-size:10px; letter-spacing:.7px; }
.catalog-end > span:last-child { font-size:8px; letter-spacing:1.4px; }
.catalog-end b { font-weight:400; font-size:20px; color:var(--ink); margin-left:18px; }
.home-news { display:grid; grid-template-columns:1.25fr 1fr; gap:70px; padding-block:43px 60px; border-top:1px solid var(--line); }
.home-news h2 { margin-top:25px; font-size:48px; }
.home-news-info { padding:20px 0 0 30px; border-left:1px solid var(--line); }
.home-news-info h3 { font-size:22px; margin:16px 0 12px; }
.home-news-info p { font-size:13px; line-height:1.85; color:var(--muted); margin:0 0 8px; }
.news-line-icon { font-size:24px; color:var(--accent); }
.text-link { display:inline-flex; justify-content:space-between; align-items:center; gap:48px; padding:13px 0; font-size:12px; border-bottom:1px solid var(--line); }
.text-link span { color:var(--accent); font-size:18px; }
.text-link:hover { border-color:var(--accent); }
.about-section { padding-block:37px 65px; border-top:1px solid var(--line); scroll-margin-top:119px; }
.section-cross { color:var(--accent); font-size:25px; }
.about-content { display:grid; grid-template-columns:1.2fr 1fr; gap:70px; margin-top:35px; }
.about-content h2 { font-size:clamp(39px,4.5vw,63px); }
.about-content em { font-style:normal; color:var(--accent); }
.about-content p { font-size:16px; line-height:1.8; margin:2px 0 22px; max-width:440px; }
.about-content .secondary-copy { font-size:13px; line-height:1.9; color:var(--muted); max-width:410px; }
.contact-banner { padding:39px 43px; display:flex; align-items:center; justify-content:space-between; gap:25px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.contact-banner .eyebrow { font-size:9px; color:var(--accent); }
.contact-banner h2 { font-size:45px; margin-top:14px; }
.large-round-link { display:grid; place-items:center; flex-shrink:0; width:76px; height:76px; border:1px solid var(--accent-border-hover); border-radius:50%; font-size:38px; color:var(--accent); }
.large-round-link:hover { background:var(--accent-soft); }
.site-footer { padding-top:50px; }
.footer-top { display:grid; grid-template-columns:1fr .7fr 1fr 1.2fr; align-items:start; gap:30px; padding-bottom:40px; }
.footer-top .wordmark { font-size:27px; }
.footer-top p { font-size:11px; line-height:1.9; color:var(--muted); margin:0; }
.footer-top nav { display:grid; grid-template-columns:1fr 1fr; gap:17px; font-size:11px; color:var(--muted); }
.footer-top nav a:hover { color:var(--ink); }
.footer-email { font-size:12px; justify-self:end; }
.footer-email span { font-size:17px; color:var(--accent); margin-left:15px; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-block:22px; border-top:1px solid var(--line); color:var(--quiet); font-size:9px; letter-spacing:.6px; }
.footer-bottom a { color:var(--muted); }

/* Shared inner-page rhythm. */
.page-intro { padding:43px 0 46px; border-bottom:1px solid var(--line); }
.breadcrumb { display:inline-flex; align-items:center; gap:13px; color:var(--muted); font-size:11px; margin-bottom:39px; }
.breadcrumb span { color:var(--quiet); }
.page-intro .eyebrow { color:var(--accent); }
.page-intro h1 { font-size:clamp(43px,5vw,69px); letter-spacing:-3.2px; margin:24px 0; font-weight:500; line-height:1.14; }
.lead { font-size:15px; line-height:1.9; max-width:600px; color:var(--muted); margin:0; }
.document-note { color:var(--quiet); font-size:11px; line-height:1.8; margin:18px 0 0; }
.news-empty { display:grid; grid-template-columns:1fr 1.2fr; gap:15px 65px; align-content:center; margin-block:55px 65px; padding:42px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.news-empty-graphic { grid-column:1; grid-row:1/5; min-height:270px; display:grid; place-items:center; position:relative; overflow:hidden; background:radial-gradient(ellipse at center,#efbc750d,transparent 68%); }
.news-empty-graphic::before,.news-empty-graphic::after { content:''; position:absolute; width:155px; height:190px; border:1px solid var(--accent-border-hover); border-radius:12px; transform:rotate(-13deg) translateX(-20px); }
.news-empty-graphic::after { transform:rotate(13deg) translateX(20px); border-color:var(--accent-border); }
.news-empty-graphic span { color:var(--accent); font-size:95px; position:relative; z-index:1; font-weight:400; }
.news-empty > .eyebrow { grid-column:2; align-self:end; color:var(--accent); font-size:9px; }
.news-empty h2 { grid-column:2; font-size:39px; align-self:end; margin:0; letter-spacing:-1.7px; }
.news-empty > p { grid-column:2; font-size:13px; line-height:1.9; color:var(--muted); margin:0; max-width:380px; }
.news-empty-actions { grid-column:2; display:flex; flex-wrap:wrap; align-items:center; gap:15px 26px; margin-top:7px; }
.news-empty-actions .primary-button { padding:14px 19px; min-height:46px; }
.news-empty-actions .text-link { font-size:11px; gap:20px; }
.rules-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:70px; padding-block:45px 55px; }
.rules-toc { position:sticky; top:133px; align-self:start; }
.rules-toc > .eyebrow { color:var(--quiet); margin-bottom:20px; font-size:9px; }
.rules-toc nav { display:flex; flex-direction:column; }
.rules-toc nav a { display:flex; gap:12px; font-size:12px; color:var(--muted); padding:12px 0; line-height:1.6; }
.rules-toc nav a span { color:var(--quiet); font-size:10px; }
.rules-toc nav a:hover,.rules-toc nav a[aria-current] { color:var(--ink); }
.rules-toc nav a[aria-current] span { color:var(--accent); }
.rules-question { display:flex; gap:20px; align-items:center; padding-top:25px; margin-top:17px; border-top:1px solid var(--line); color:var(--accent); font-size:11px; line-height:1.7; }
.rules-question span { font-size:18px; }
.rules-section { border-bottom:1px solid var(--line); padding-bottom:35px; margin-bottom:36px; scroll-margin-top:132px; }
.rules-section-number { color:var(--accent); font-size:9px; letter-spacing:1.1px; line-height:1.8; margin-bottom:17px; }
.rules-section h2 { font-size:29px; letter-spacing:-1px; line-height:1.3; margin-bottom:19px; }
.rules-section p { font-size:14px; line-height:1.95; color:var(--muted); margin:0 0 14px; max-width:710px; }
.rules-section p:last-child { margin-bottom:0; }
.rules-document-footer { color:var(--quiet); font-size:11px; line-height:1.9; }
.rules-document-footer p { margin:0 0 8px; }
.contact-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:70px; padding:45px 0 65px; align-items:start; }
.contact-channel { display:grid; grid-template-columns:44px minmax(0,1fr) 24px; gap:17px; align-items:start; padding:24px 0; border-bottom:1px solid var(--line); }
.contact-channel:first-child { padding-top:0; }
.channel-icon { display:grid; place-items:center; width:42px; height:42px; color:var(--accent); font-size:24px; background:var(--accent-soft); border:1px solid var(--accent-border); border-radius:5px; }
.channel-copy h2 { font-size:17px; line-height:1.5; letter-spacing:-.4px; margin:0 0 5px; }
.channel-address { display:block; font-size:13px; color:var(--accent); overflow-wrap:anywhere; line-height:1.7; }
.channel-copy p { color:var(--muted); font-size:11px; line-height:1.8; margin:7px 0 0; }
.channel-arrow { color:var(--muted); font-size:21px; padding-top:2px; }
.contact-channel:hover .channel-arrow { color:var(--accent); transform:translate(2px,-2px); }
.contact-help-note { margin-top:32px; padding:24px; background:var(--surface-inset); border:1px solid var(--line); border-radius:var(--radius); }
.contact-help-note h3 { font-size:16px; letter-spacing:-.4px; }
.contact-help-note p { font-size:12px; line-height:1.9; color:var(--muted); margin:11px 0 7px; }
.contact-help-note .text-link { gap:30px; font-size:11px; }
.contact-form { padding:33px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); }
.contact-form > .eyebrow { font-size:9px; color:var(--accent); }
.contact-form h2 { font-size:30px; letter-spacing:-1px; margin:18px 0 13px; }
.contact-form-intro { color:var(--muted); font-size:12px; line-height:1.8; margin:0 0 27px; overflow-wrap:anywhere; }
.form-field { margin-bottom:22px; }
.form-field label { display:block; font-size:12px; margin-bottom:10px; }
.form-field select,.form-field textarea { display:block; width:100%; min-width:0; background:var(--bg); color:var(--ink); border:1px solid var(--line-strong); border-radius:4px; padding:13px; font-size:13px; line-height:1.6; }
.form-field select { min-height:48px; }
.form-field textarea { resize:vertical; min-height:170px; }
.form-field textarea::placeholder { color:var(--quiet); opacity:1; }
.field-help,.contact-form-hint { font-size:10px; line-height:1.8; color:var(--muted); margin:9px 0 0; }
.contact-form .primary-button { width:100%; }
.contact-form-hint { margin-top:15px; }
#contact-feedback { font-size:12px; line-height:1.8; color:var(--accent); margin:15px 0 0; }
#contact-feedback:empty { display:none; }
dialog { background:var(--surface); color:var(--ink); border:1px solid var(--line-strong); border-radius:9px; width:calc(100% - 38px); max-width:540px; padding:44px; }
dialog::backdrop { background:#07090dc4; backdrop-filter:blur(9px); }
.dialog-close { position:absolute; right:10px; top:10px; width:40px; height:40px; font-size:26px; border:0; background:transparent; color:var(--muted); }
.dialog-close:hover { color:var(--ink); }
dialog .eyebrow { color:var(--accent); font-size:9px; margin-bottom:18px; }
dialog h2 { font-size:36px; letter-spacing:-1.5px; overflow-wrap:anywhere; }
.dialog-description { font-size:14px; line-height:1.9; color:var(--muted); margin:20px 0; }
.dialog-status { font-size:12px; color:var(--muted); line-height:1.9; padding-top:20px; margin:0; border-top:1px solid var(--line); }
.dialog-actions { display:grid; gap:12px; margin-top:24px; }
.dialog-open,.dialog-contact { display:inline-flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:48px; padding:12px 20px; border:1px solid var(--accent); border-radius:8px; background:var(--accent); color:var(--accent-ink); font-size:14px; font-weight:600; line-height:1.5; text-align:center; overflow-wrap:anywhere; transition:background .18s,border-color .18s; }
.dialog-open svg { flex-shrink:0; }
.dialog-open:hover { background:var(--accent-hover); border-color:var(--accent-hover); }
.dialog-contact { background:var(--surface-raised); border-color:var(--line-strong); color:var(--ink); }
.dialog-contact:hover { border-color:var(--accent-border-hover); background:var(--accent-soft); }
.noscript-message { padding:20px; background:var(--surface); color:var(--ink); font-size:14px; }

@media (min-width:1500px) { .hero { min-height:650px; }.hero-art { right:0; }.project-visual { aspect-ratio:1.6; } }
@media (max-width:1150px) {
  .container { width:calc(100% - 64px); }
  .header-inner { gap:20px; }.desktop-nav { gap:23px; font-size:12px; }.wordmark { font-size:29px; }
  .hero { min-height:555px; }.hero h1 { font-size:63px; letter-spacing:-3.5px; }.hero-art { left:19%; right:-15px; }
  .project-title-row h3 { font-size:20px; }.project-meta { font-size:9px; }.project-wide h3 { font-size:28px; }
  .home-news { gap:45px; }.home-news h2 { font-size:43px; }.about-content { gap:45px; }
  .footer-top { grid-template-columns:1fr .65fr 1fr; }.footer-email { grid-column:3; justify-self:start; }.footer-top nav { grid-column:3; grid-row:1; }
  .news-empty { gap:15px 35px; padding:32px; }.news-empty h2 { font-size:34px; }
  .rules-layout { grid-template-columns:225px minmax(0,1fr); gap:40px; }
  .contact-layout { gap:35px; }.contact-form { padding:26px; }
}
@media (max-width:900px) { .header-contact { display:none; }.project-grid { gap:30px 20px; }.project-title-row h3 { font-size:18px; }.project-card p { font-size:12px; }.project-meta { font-size:9px; }.news-empty { gap:15px 20px; }.news-empty-actions { gap:12px; }.news-empty-actions .text-link { gap:10px; } }
@media (max-width:760px) {
  html { scroll-padding-top:0; }
  .container { width:calc(100% - 40px); }
  .header-inner { height:77px; }.wordmark { font-size:28px; }.brand-mark { width:44px; height:34px; }
  .desktop-nav { display:none; }.menu-button { display:block; }
  .eyebrow { font-size:8px; letter-spacing:1.1px; gap:8px; }
  .hero { display:flex; flex-direction:column; align-items:stretch; min-height:0; padding-top:37px; }
  .hero-copy { width:100%; padding:0; }
  .hero h1 { font-size:clamp(43px,10.7vw,63px); letter-spacing:-2.6px; margin:27px 0 20px; line-height:1.1; }
  .hero-description { font-size:13px; line-height:1.85; margin-bottom:25px; }
  .primary-button { font-size:12px; padding:15px 20px; gap:35px; min-height:48px; }
  .hero-footnote { margin-top:29px; font-size:7px; letter-spacing:.7px; gap:9px; }
  .hero-art { position:relative; z-index:0; inset:auto; height:290px; width:100%; margin-top:17px; }
  .hero-art img { object-position:90% center; }
  .hero-art::after { background:linear-gradient(90deg,var(--bg),transparent 14%,transparent 95%,var(--bg)),linear-gradient(0deg,var(--bg),transparent 15%,transparent 90%,var(--bg)); }
  .art-index,.art-caption { font-size:7px; letter-spacing:1px; right:0; }.art-index { top:18px; }.art-caption { bottom:21px; }.art-cross { font-size:17px; right:0; }
  .category-rail { height:65px; gap:12px; }.category-rail > span { display:none; }.category-rail > div { gap:19px; font-size:11px; }.category-rail i { font-size:13px; }
  .projects { padding-block:43px 39px; scroll-margin-top:95px; }.section-counter { font-size:8px; letter-spacing:.5px; }
  .section-heading { display:block; margin:23px 0 26px; }h2 { font-size:40px; letter-spacing:-1.8px; }.section-heading p { font-size:12px; margin-top:15px; }
  .catalog-toolbar { flex-direction:column; align-items:stretch; gap:17px; padding-bottom:21px; margin-bottom:24px; }
  .filters { justify-content:space-between; gap:2px; }.filters button { font-size:11px; min-height:44px; padding:10px 12px; }.filters sup { font-size:7px; margin-left:3px; }
  .search-field { width:100%; min-height:45px; }.search-field input { font-size:16px; }.search-field input::placeholder { font-size:13px; }
  .project-grid { grid-template-columns:1fr; gap:29px; }.project-visual { aspect-ratio:1.45; }
  .project-meta { font-size:10px; letter-spacing:.4px; margin:18px 0 11px; }.cover-index { font-size:9px; top:16px; left:15px; }
  .project-title-row h3 { font-size:24px; }.round-button { width:44px; height:44px; }.project-card p { font-size:13px; margin-top:9px; }.project-card p br { display:none; }
  .project-status { font-size:10px; margin-top:16px; padding:5px 8px; }
  .project-wide { grid-column:auto; display:block; border:0; border-bottom:1px solid var(--line); border-radius:0; background:none; padding-bottom:25px; }
  .project-wide .project-visual { min-height:0; aspect-ratio:1.45; border:1px solid var(--line); border-radius:var(--radius); }.project-wide-content { padding:0; }.project-wide .project-meta { margin-top:18px; }.project-wide h3 { font-size:24px; }
  .catalog-end { font-size:9px; letter-spacing:.3px; gap:12px; }.catalog-end > span:last-child { font-size:6px; letter-spacing:.4px; }.catalog-end b { margin-left:7px; font-size:17px; }
  .empty-state { padding:45px 10px; }.empty-state h3 { font-size:22px; }
  .home-news { grid-template-columns:1fr; gap:28px; padding-block:32px 40px; }.home-news h2 { font-size:41px; margin-top:22px; }.home-news-info { padding:0; border:0; }.home-news-info h3 { font-size:21px; }.home-news-info p { font-size:13px; }.news-line-icon { display:none; }
  .about-section { padding-block:28px 43px; scroll-margin-top:95px; }.about-content { grid-template-columns:1fr; gap:25px; margin-top:25px; }.about-content h2 { font-size:43px; }.about-content p { font-size:15px; line-height:1.8; }.about-content .secondary-copy { font-size:13px; }.section-cross { font-size:22px; }
  .contact-banner { padding:27px 23px; gap:12px; }.contact-banner .eyebrow { font-size:7px; letter-spacing:.8px; }.contact-banner h2 { font-size:30px; letter-spacing:-1.4px; margin-top:13px; }.large-round-link { width:50px; height:50px; font-size:28px; }
  .site-footer { padding-top:36px; }.footer-top { grid-template-columns:1fr 1fr; gap:26px 20px; padding-bottom:27px; }.footer-top .wordmark { font-size:25px; }.footer-top p { font-size:10px; }.footer-top nav { grid-column:1/-1; grid-row:auto; grid-template-columns:repeat(4,1fr); gap:13px; font-size:10px; }.footer-email { grid-column:1/-1; font-size:12px; }.footer-bottom { flex-wrap:wrap; gap:16px; font-size:8px; padding-block:20px; }.footer-bottom > a { width:100%; font-size:10px; }
  .page-intro { padding:27px 0 31px; }.breadcrumb { font-size:10px; margin-bottom:33px; }.page-intro h1 { font-size:clamp(36px,9.5vw,49px); line-height:1.15; letter-spacing:-2px; margin:23px 0 20px; }.lead { font-size:13px; line-height:1.9; }.document-note { font-size:10px; line-height:1.9; margin-top:18px; }
  .news-empty { grid-template-columns:1fr; padding:26px 22px 31px; gap:17px; margin-block:29px 35px; }.news-empty-graphic { grid-column:1; grid-row:auto; min-height:180px; }.news-empty-graphic::before,.news-empty-graphic::after { width:110px; height:135px; }.news-empty-graphic span { font-size:69px; }.news-empty > .eyebrow,.news-empty h2,.news-empty > p,.news-empty-actions { grid-column:1; }.news-empty h2 { font-size:30px; letter-spacing:-1.3px; }.news-empty > p { font-size:13px; }.news-empty-actions { gap:14px 22px; }.news-empty-actions .primary-button { padding:13px 17px; }.news-empty-actions .text-link { font-size:11px; gap:20px; }
  .rules-layout { grid-template-columns:1fr; gap:32px; padding-block:28px 35px; }.rules-toc { position:static; padding:22px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }.rules-toc > .eyebrow { font-size:9px; margin-bottom:10px; }.rules-toc nav a { font-size:12px; padding-block:9px; }.rules-question { padding-top:19px; margin-top:14px; }.rules-section { padding-bottom:28px; margin-bottom:29px; scroll-margin-top:100px; }.rules-section-number { font-size:9px; margin-bottom:15px; }.rules-section h2 { font-size:26px; line-height:1.3; letter-spacing:-.8px; margin-bottom:16px; }.rules-section p { font-size:13px; line-height:1.95; margin-bottom:13px; }.rules-document-footer { font-size:11px; }
  .contact-layout { grid-template-columns:1fr; gap:33px; padding-block:29px 35px; }.contact-channel { grid-template-columns:40px minmax(0,1fr) 20px; gap:14px; padding-block:22px; }.channel-icon { width:39px; height:39px; font-size:22px; }.channel-copy h2 { font-size:16px; }.channel-address { font-size:13px; }.channel-copy p { font-size:11px; }.channel-arrow { font-size:20px; }.contact-help-note { margin-top:26px; padding:22px; }.contact-help-note p { font-size:12px; }.contact-form { padding:25px 22px; }.contact-form h2 { font-size:28px; }.contact-form-intro { font-size:12px; margin-bottom:25px; }.form-field select,.form-field textarea { font-size:16px; padding:12px; }.form-field textarea::placeholder { font-size:13px; }.field-help,.contact-form-hint { font-size:11px; }.form-field label { font-size:12px; }
  dialog { padding:42px 26px 30px; }dialog h2 { font-size:29px; letter-spacing:-1px; }.dialog-description { font-size:13px; }.dialog-status { font-size:12px; }.dialog-close { width:44px; height:44px; }
}
@media (max-width:360px) { .container { width:calc(100% - 32px); }.hero h1 { font-size:42px; letter-spacing:-2.5px; }.filters button { padding-inline:10px; font-size:10px; }.project-title-row h3 { font-size:22px; }.contact-banner { padding:25px 18px; }.contact-banner h2 { font-size:27px; }.footer-top nav { gap:8px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none!important; animation:none!important; } }

/* Project-first home: compact entry, direct links and a denser catalogue. */
.header-inner { height:84px; }
.desktop-nav { gap:27px; }
.header-search { display:flex; align-items:center; gap:10px; min-height:42px; padding:7px 12px; background:transparent; border:1px solid var(--line); border-radius:5px; font-size:13px; color:var(--muted); }
.header-search:hover { color:var(--ink); border-color:var(--quiet); }
.header-search-icon { font-size:23px; line-height:1; }
.header-search kbd { font-size:10px; padding:1px 5px; border:1px solid var(--line); color:var(--quiet); }
.launch-intro {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:55px;
  align-items:center;
  padding-block:10px 25px;
}
.launch-heading h1 { font-size:43px; line-height:1.16; letter-spacing:-1.9px; font-weight:500; margin:-7px 0 10px; }
.launch-heading > p:last-child { margin:0; font-size:13px; line-height:1.8; color:var(--muted); }
.launch-search .search-field { width:100%; min-height:52px; padding:4px 13px; background:var(--surface); border-color:var(--line-strong); }
.launch-search .search-field > span { font-size:25px; color:var(--accent); }
.launch-search .search-field input { min-height:40px; font-size:14px; }
.launch-search .search-field input::placeholder { font-size:12px; }
.launch-search input::-webkit-search-cancel-button { display:none; }
.launch-search > p { font-size:10px; line-height:1.7; color:var(--quiet); margin:8px 0 0; }
#clear-search { display:grid; place-items:center; width:34px; height:34px; flex-shrink:0; padding:0; border:0; border-radius:4px; background:transparent; color:var(--muted); font-size:22px; }
#clear-search:hover { background:var(--surface-raised); color:var(--ink); }
.quick-access { padding:0 0 26px; border-bottom:1px solid var(--line); }
.quick-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.quick-links .quick-link { display:flex; align-items:center; gap:13px; width:100%; min-width:0; min-height:67px; padding:12px 17px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:inherit; font:inherit; text-align:left; transition:border-color .18s,background .18s; }
.quick-links .quick-link:hover { border-color:var(--accent-border-hover); background:var(--surface-hover); }
.quick-symbol { display:grid; place-items:center; width:36px; height:36px; flex-shrink:0; border:1px solid var(--accent-border); border-radius:8px; background:var(--accent-soft); color:var(--accent); font-size:20px; font-weight:600; }
.quick-copy { min-width:0; display:flex; flex-direction:column; gap:4px; }
.quick-copy strong { font-weight:600; font-size:14px; letter-spacing:-.25px; overflow-wrap:anywhere; }
.quick-copy small { color:var(--muted); font-size:11px; line-height:1.5; }
.quick-arrow { margin-left:auto; color:var(--accent); font-size:21px; }
.projects { padding-block:27px 36px; scroll-margin-top:103px; }
.catalog-heading-row { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-bottom:16px; }
.catalog-heading-row h2 { font-size:27px; font-weight:500; line-height:1.2; letter-spacing:-1px; }
#result-count { font-size:11px; color:var(--muted); }
.catalog-toolbar { gap:15px; padding:0; margin-bottom:19px; border:0; min-height:39px; flex-wrap:wrap; }
.filters { gap:5px; }
.filters button { min-height:38px; padding:9px 14px; font-size:11px; }
.reset-filter { min-height:38px; border:0; background:transparent; color:var(--muted); font-size:11px; padding:8px 0 8px 14px; }
.reset-filter:hover { color:var(--ink); }
.project-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:stretch; }
.project-card { position:relative; display:flex; flex-direction:column; min-width:0; padding:0; border:1px solid var(--line); border-radius:7px; overflow:hidden; background:var(--surface); transition:border-color .18s,background .18s; }
.project-card.has-direct-link:hover { border-color:var(--accent-border-hover); background:var(--surface-hover); }
.project-card:focus-within { border-color:var(--accent); }
.project-card-main { flex:1; }
.project-thumb { display:block; width:100%; height:240px; object-fit:cover; object-position:50% 50%; border-bottom:1px solid var(--line); }
.project-copy { padding:15px 18px 12px; }
.project-copy .project-meta { margin:0 0 9px; font-size:9px; letter-spacing:.5px; line-height:1.6; }
.project-copy .project-meta span:last-child { text-transform:none; letter-spacing:0; color:var(--quiet); }
.project-copy h3 { font-size:21px; line-height:1.35; letter-spacing:-.7px; font-weight:500; }
.project-copy p { font-size:13px; line-height:1.7; margin:8px 0 0; color:var(--muted); }
.project-actions { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; margin:0 18px; padding:12px 0 14px; border-top:1px solid var(--line); min-height:70px; }
.project-card-link,.project-open { position:absolute; inset:0; z-index:1; border-radius:inherit; }
.project-card-link:focus-visible,.project-open:focus-visible { outline-offset:-3px; }
/* Keep the previous template usable until all Django workers have restarted. */
.project-open { font-size:0; color:transparent; }
.project-open > span { display:none; }
.project-details { position:relative; z-index:2; display:inline-flex; align-items:center; justify-content:center; gap:8px; min-width:152px; max-width:100%; min-height:44px; padding:10px 18px; border:1px solid var(--line-strong); border-radius:7px; background:var(--surface-raised); color:var(--ink); font-size:12px; font-weight:600; line-height:1.5; transition:border-color .18s,background .18s,color .18s; }
.project-details svg { flex-shrink:0; color:var(--accent); }
.project-details:hover { border-color:var(--accent-border-hover); background:var(--accent-soft); color:var(--accent); }
.project-unavailable { display:inline-flex; align-items:center; gap:7px; color:var(--quiet); font-size:10px; line-height:1.7; }
.project-unavailable::before { content:''; width:4px; height:4px; border-radius:50%; background:var(--quiet); flex-shrink:0; }
.empty-state { padding:40px 20px; border:1px solid var(--line); border-radius:7px; background:var(--surface); }
.network-links { display:grid; grid-template-columns:1fr 1fr; gap:25px; border-top:1px solid var(--line); }
.network-links a { display:flex; justify-content:space-between; align-items:center; gap:20px; padding-block:26px; }
.network-links a > span:first-child { display:flex; flex-direction:column; gap:7px; }
.network-links strong { font-size:14px; font-weight:500; }
.network-links small { color:var(--muted); font-size:12px; line-height:1.7; }
.network-links a > span:last-child { font-size:23px; color:var(--accent); }
.network-links a:hover strong { color:var(--accent); }
.about-section { padding-block:27px 35px; }
.about-content { margin-top:22px; grid-template-columns:1fr 1fr; gap:40px; }
.about-content h2 { font-size:37px; letter-spacing:-1.5px; }
.about-content p { font-size:14px; margin-bottom:15px; }
.about-content .secondary-copy { font-size:12px; }
.site-footer { padding-top:33px; border-top:1px solid var(--line); }
.rules-toc { top:111px; }
.rules-section { scroll-margin-top:111px; }
@media (max-width:1150px) {
  .header-inner { gap:20px; }.desktop-nav { gap:22px; }
  .launch-intro { gap:30px; grid-template-columns:1.15fr 1fr; }
  .launch-heading h1 { font-size:38px; letter-spacing:-1.6px; }
  .launch-heading > p:last-child { font-size:12px; }
  .quick-links .quick-link { padding:12px 14px; gap:10px; }.quick-copy small { font-size:10px; }
  .project-copy { padding-inline:15px; }.project-copy h3 { font-size:19px; }
  .project-actions { margin-inline:15px; }.project-unavailable { font-size:9px; }
}
@media (max-width:900px) {
  .header-search-label { display:none; }.header-search { min-width:43px; padding:7px 10px; }
  .header-search kbd { display:none; }
  .launch-heading h1 { font-size:34px; }
  .quick-copy strong { font-size:13px; }.quick-symbol { width:32px; height:32px; font-size:18px; }.quick-arrow { font-size:17px; }
  .project-copy h3 { font-size:18px; }.project-copy p { font-size:12px; }.project-thumb { height:240px; }
}
@media (max-width:760px) {
  .header-inner { height:72px; gap:12px; }.wordmark { font-size:27px; }
  .header-search { width:42px; height:44px; padding:7px; margin-left:auto; justify-content:center; }.header-search-icon { font-size:26px; }.header-search-label,.header-search kbd { display:none; }
  .launch-intro { grid-template-columns:1fr; gap:23px; padding-block:27px 22px; }
  .launch-heading h1 { font-size:32px; letter-spacing:-1.4px; margin:0 0 10px; }.launch-heading > p:last-child { font-size:12px; line-height:1.8; }
  .launch-search .search-field { min-height:50px; padding:2px 12px; gap:8px; }.launch-search .search-field input { font-size:16px; min-height:44px; }.launch-search .search-field input::placeholder { font-size:12px; }.launch-search > p { font-size:10px; margin-top:7px; }.launch-search .search-field kbd { display:none; }#clear-search { min-width:40px; min-height:44px; }
  .quick-access { padding-bottom:21px; }
  .quick-links { gap:7px; }.quick-links .quick-link { flex-direction:column; align-items:center; justify-content:center; gap:7px; min-height:104px; padding:10px 4px; text-align:center; position:relative; }
  .quick-symbol { width:28px; height:28px; font-size:17px; border-radius:6px; }
  .quick-copy { gap:4px; }.quick-copy strong { font-size:12px; }.quick-copy small { font-size:9px; line-height:1.4; }.quick-arrow { position:absolute; right:7px; top:7px; font-size:13px; }
  .projects { padding-block:23px 29px; scroll-margin-top:91px; }.catalog-heading-row { margin-bottom:13px; }.catalog-heading-row h2 { font-size:25px; letter-spacing:-.9px; }#result-count { font-size:10px; }
  .catalog-toolbar { flex-direction:row; align-items:center; gap:8px; margin-bottom:17px; min-height:44px; }.filters { width:100%; gap:2px; }.filters button { min-height:44px; font-size:11px; padding:9px 12px; }.reset-filter { padding:4px 0; min-height:36px; font-size:11px; }
  .project-grid { grid-template-columns:1fr; gap:13px; }.project-card { border-radius:7px; }
  .project-card-main { display:flex; gap:14px; padding:16px; align-items:start; }.project-thumb { width:86px; height:92px; object-fit:cover; object-position:50% 50%; flex-shrink:0; border:1px solid var(--line); border-radius:5px; }.project-copy { min-width:0; padding:0; }.project-copy .project-meta { font-size:10px; margin:0 0 7px; letter-spacing:.2px; gap:3px 8px; }.project-copy h3 { font-size:19px; line-height:1.3; letter-spacing:-.6px; overflow-wrap:anywhere; }.project-copy p { font-size:12px; line-height:1.7; margin-top:7px; }
  .project-actions { margin:0 16px; padding:12px 0 14px; }.project-unavailable { font-size:10px; }
  .empty-state { padding:33px 18px; }.empty-state h3 { font-size:21px; }
  .network-links { grid-template-columns:1fr; gap:0; }.network-links a { padding-block:22px; }.network-links a + a { border-top:1px solid var(--line); }.network-links strong { font-size:14px; }.network-links small { font-size:11px; }
  .about-section { padding-block:24px 30px; }.about-content { grid-template-columns:1fr; gap:21px; margin-top:20px; }.about-content h2 { font-size:32px; }.about-content p { font-size:14px; }.about-content .secondary-copy { font-size:12px; }.site-footer { padding-top:29px; }
  .rules-toc { top:auto; }.rules-section { scroll-margin-top:93px; }
}
@media (max-width:360px) {
  .wordmark,.footer-top .wordmark { font-size:22px; gap:7px; letter-spacing:-1px; }
  .launch-heading h1 { font-size:30px; letter-spacing:-1.3px; }.quick-copy strong { font-size:11px; }.filters button { padding-inline:10px; font-size:10px; }.project-card-main { padding:14px; gap:12px; }.project-thumb { width:74px; height:88px; }.project-copy h3 { font-size:18px; }.project-actions { margin-inline:14px; }
}

/* Server-rendered pages and rich news content. */
.news-list { display:grid; gap:24px; padding-block:45px 65px; }
.news-entry { min-width:0; padding:32px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.news-entry time { display:block; color:var(--quiet); font-size:11px; line-height:1.8; margin-bottom:14px; }
.news-entry h2 { font-size:29px; line-height:1.35; letter-spacing:-1px; overflow-wrap:anywhere; }
.news-content { color:var(--muted); font-size:14px; line-height:1.9; margin-top:23px; overflow-wrap:anywhere; }
.news-content > :first-child { margin-top:0; }
.news-content > :last-child { margin-bottom:0; }
.news-content h1,.news-content h2,.news-content h3,.news-content h4 { color:var(--ink); line-height:1.4; margin:24px 0 12px; letter-spacing:-.5px; }
.news-content h1 { font-size:30px; }.news-content h2 { font-size:26px; }.news-content h3 { font-size:22px; }.news-content h4 { font-size:18px; }
.news-content a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.news-content img,.news-content video,.news-content iframe { max-width:100%; }
.news-content img { height:auto!important; }
.news-content figure { max-width:100%; margin-inline:0; }
.news-content table { display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; }
.news-content th,.news-content td { border:1px solid var(--line); padding:9px 12px; text-align:left; }
.news-content blockquote { border-left:2px solid var(--accent); margin:20px 0; padding:1px 20px; }
.news-content pre { padding:16px; border:1px solid var(--line); background:var(--bg); overflow-x:auto; white-space:pre; }
.rules-accept { padding:25px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.rules-accept h3 { font-size:20px; letter-spacing:-.6px; }
.rules-accept p { color:var(--muted); font-size:13px; line-height:1.8; margin:12px 0 20px; }
.rules-accept .primary-button { gap:20px; }
.dialog-description { white-space:pre-line; }
.project-unavailable { min-width:0; overflow-wrap:anywhere; }
.project-copy .project-meta > span:first-child { text-transform:uppercase; }
.noscript-navigation { display:none; }
@media (max-width:760px) {
  .news-list { gap:17px; padding-block:29px 35px; }
  .news-entry { padding:23px 20px; }.news-entry h2 { font-size:25px; }
  .news-content { font-size:13px; margin-top:19px; }
  .rules-accept { padding:22px; }.rules-accept .primary-button { width:100%; text-align:left; white-space:normal; }
  .noscript-navigation { display:block; }
}
