@font-face{font-family:Literata;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/literata-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/literata-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/literata-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-400-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-sans-600-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-sans-600-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-sans-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-mono-500-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-mono-500-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plex-mono-500-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#efeae6;--paper-raised:#f7f4f1;--ground:#212121;--ground-raised:#2e2a26;--ink:#212121;--ink-soft:#5c5346;--on-ground:#efeae6;--on-ground-soft:#b0a495;--accent:#524232;--accent-strong:#3a2f24;--sand:#c4aa85;--clay:#8f7b62;--profile-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12'%3E%3Cpath d='M0 3.5H44l7 6.5h18l7-6.5h44' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linejoin='miter'/%3E%3C/svg%3E") no-repeat center / contain;--line:#ddd5cc;--line-strong:#c5b9aa;--line-on-ground:#3b352e;--maxw:72rem;--maxw-text:65ch;--pad:clamp(1.25rem, 5vw, 4rem);--font-display:"Literata", Georgia, "Times New Roman", serif;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;color-scheme:light}*,:before,:after{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.65}main{min-height:60vh}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;font-weight:600;line-height:1.15}a{color:var(--accent)}img{max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.skip-link{z-index:10;background:var(--ground);color:var(--on-ground);padding:.75rem 1.25rem;text-decoration:none;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.scale-rule{background:var(--accent);width:7.5rem;height:.75rem;-webkit-mask:var(--profile-mask);mask:var(--profile-mask)}.scale-rule--on-ground,.site-header--overlay .scale-rule{background:var(--sand)}.eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 1rem;font-size:.75rem;font-weight:500}.lead{color:var(--ink-soft);max-width:58ch;font-size:1.15rem;line-height:1.6}.link-arrow{color:var(--accent);align-items:baseline;gap:.5rem;font-weight:600;text-decoration:none;display:inline-flex}.link-arrow:after{content:"→";transition:transform .15s}.link-arrow:hover:after{transform:translate(.25rem)}.link-arrow:hover{text-underline-offset:.25em;text-decoration:underline}.site-header{border-bottom:1px solid var(--line);background:var(--paper);position:relative}.site-header--overlay{z-index:2;color:var(--on-ground);background:0 0;border-bottom-color:#0000;position:absolute;inset:0 0 auto}.nav{max-width:var(--maxw);padding:1.1rem var(--pad);align-items:center;gap:.75rem 2rem;margin-inline:auto;display:flex}.brand{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:inherit;align-items:center;gap:.55rem;margin-right:auto;font-size:1.35rem;font-weight:600;text-decoration:none;display:flex}.brand-mark{flex:none;width:1.55em;height:1.55em}.site-header:not(.site-header--overlay) .brand{color:var(--ink)}.nav ul{flex-wrap:wrap;gap:.25rem 1.5rem;margin:0;padding:0;list-style:none;display:flex}.nav a{color:inherit;border-bottom:2px solid #0000;padding-bottom:.35rem;text-decoration:none}.site-header:not(.site-header--overlay) .nav a{color:var(--ink-soft)}.nav a:hover{border-bottom-color:currentColor}.nav a[aria-current=page]{border-bottom:2px solid var(--accent)}.site-header--overlay .nav a[aria-current=page]{border-bottom-color:var(--sand)}.site-header:not(.site-header--overlay) .nav a[aria-current=page]{color:var(--ink)}.lang-switch{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem}.lang-switch a[aria-current=true]{border-bottom-color:currentColor;font-weight:500}.site-header:not(.site-header--overlay) .lang-switch a[aria-current=true]{color:var(--ink)}.nav-menu-body{align-items:center;gap:.75rem 2rem;display:flex}.nav-menu>summary{display:none}@media (width>=56rem){.nav-menu::details-content{content-visibility:visible;block-size:auto}}@media (width<=55.99rem){.nav-menu>summary{width:2.75rem;height:2.75rem;margin-right:calc(var(--pad) * -.25);cursor:pointer;background-image:linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor);background-position:50% calc(50% - .4rem),50%,50% calc(50% + .4rem);background-repeat:no-repeat;background-size:1.5rem 2px;list-style:none;display:block}.nav-menu>summary::-webkit-details-marker{display:none}.nav-menu[open]>summary{background-image:linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor);background-position:50%;background-size:1.5rem 2px,2px 1.5rem;transform:rotate(45deg)}.nav-menu-body{z-index:3;padding:.5rem var(--pad) 1.25rem;background:var(--ground);color:var(--on-ground);border-top:1px solid var(--line-on-ground);flex-direction:column;align-items:stretch;gap:0;position:absolute;top:100%;left:0;right:0}.nav-menu-body ul{flex-direction:column;gap:0}.nav-menu-body li{border-bottom:1px solid var(--line-on-ground)}.nav-menu-body a{border-bottom:none;padding:.85rem 0;display:block}.site-header:not(.site-header--overlay) .nav-menu-body a{color:var(--on-ground)}.nav-menu-body a[aria-current=page],.site-header:not(.site-header--overlay) .nav-menu-body a[aria-current=page]{color:var(--on-ground);box-shadow:inset 3px 0 0 var(--sand);border-bottom:none;padding-left:.85rem}.nav-menu-body .lang-switch{flex-direction:row;gap:1.25rem;padding-top:1rem}.site-header:not(.site-header--overlay) .nav-menu-body .lang-switch a[aria-current=true]{color:var(--on-ground)}.nav-menu-body .lang-switch li{border-bottom:none}.nav-menu-body .lang-switch a{padding:0}}.hero{isolation:isolate;background:var(--ground);min-height:min(46rem,100svh);color:var(--on-ground);align-items:end;display:grid;position:relative;overflow:hidden}.hero-media,.hero-media img{object-fit:cover;z-index:-2;width:100%;height:100%;position:absolute;inset:0}.hero:after{content:"";z-index:-1;background:linear-gradient(#21212173 0%,#21212126 25%,#2121218c 62%,#212121eb 100%),linear-gradient(90deg,#212121bf 0%,#21212159 50%,#21212100 100%);position:absolute;inset:0}.hero-inner{max-width:var(--maxw);width:100%;padding:clamp(3rem, 12vh, 7rem) var(--pad) clamp(2rem, 5vh, 3.5rem);text-shadow:0 1px 12px #1414148c;margin-inline:auto}.hero .eyebrow{color:var(--on-ground);opacity:.85}.hero h1{max-width:18ch;margin:0 0 1.5rem;font-size:clamp(2.25rem,6vw,4.25rem)}.hero .scale-rule{margin-bottom:1.5rem}.hero .lead{color:var(--on-ground);opacity:.92;max-width:52ch;margin:0 0 2rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.hero-credit{right:var(--pad);max-width:16rem;font-family:var(--font-mono);letter-spacing:.04em;color:var(--on-ground-soft);text-align:right;margin:0;font-size:.7rem;line-height:1.5;position:absolute;bottom:clamp(2rem,5vh,3.5rem)}@media (width<=60rem){.hero-credit{display:none}}.cta{font:inherit;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:2px;padding:.8rem 1.6rem;font-weight:600;text-decoration:none;transition:background-color .15s;display:inline-block}.cta:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.cta--ghost{color:inherit;background:0 0;border-color:currentColor}.cta--ghost:hover{background:#ffffff1f;border-color:currentColor}.facts{background:var(--ground-raised);color:var(--on-ground)}.facts ul{max-width:var(--maxw);padding:clamp(2rem, 5vw, 3rem) var(--pad);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:2rem;margin-block:0;margin-inline:auto;list-style:none;display:grid}.facts li{border-left:1px solid var(--line-on-ground);gap:.35rem;padding-left:1.25rem;display:grid}.facts-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:clamp(2rem,4vw,2.75rem);font-weight:500;line-height:1}.facts-label{color:var(--on-ground-soft);font-size:.9rem}.section{max-width:var(--maxw);padding:clamp(3rem, 7vw, 5.5rem) var(--pad);margin-inline:auto}.section+.section{border-top:1px solid var(--line)}.section-head{margin-bottom:2.5rem}.section-head h2{margin:0 0 1rem;font-size:clamp(1.6rem,3.5vw,2.25rem)}.section-head .scale-rule{margin-bottom:1.25rem}.section-head .lead{margin:0}.section-foot{margin-top:2.5rem}.band{grid-template-columns:1fr;align-items:start;gap:clamp(2rem,5vw,3.5rem);display:grid}@media (width>=60rem){.band{grid-template-columns:1fr 1.1fr}}.band-media img{aspect-ratio:4/3;object-fit:cover;background:var(--ground-raised);width:100%;height:auto;display:block}@media (width>=60rem){.band-media{position:sticky;top:2rem}}@media (width<=60rem){.band-media img{aspect-ratio:16/9}}.dir-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.dir-list li{border-bottom:1px solid var(--line);gap:.25rem;padding:1.1rem 0;display:grid}.dir-list h3{margin:0;font-size:1.05rem}.dir-list p{color:var(--ink-soft);margin:0;font-size:.95rem}.prose{max-width:var(--maxw);padding:clamp(2rem, 5vw, 3.25rem) var(--pad) clamp(2.5rem, 6vw, 4rem);margin-inline:auto}.prose h1{margin:0 0 1.25rem;font-size:clamp(1.9rem,4vw,2.75rem)}.prose h2{margin-top:2.5rem;font-size:1.45rem}.prose h3{font-size:1.1rem}.prose p,.prose li{max-width:var(--maxw-text)}.prose .lead{max-width:60ch}.split{gap:.75rem;display:grid}@media (width>=56rem){.split{grid-template-columns:1fr 1.15fr;align-items:start;gap:clamp(2rem,5vw,4rem)}}.prose .split h2,.split>div>:first-child{margin-top:0}.page-head{background:var(--ground);color:var(--on-ground)}.page-head-inner{max-width:var(--maxw);padding:clamp(2.5rem, 6vw, 4rem) var(--pad);margin-inline:auto}@media (width>=56rem){.page-head-inner{grid-template-columns:1.15fr 1fr;align-items:end;gap:1.5rem clamp(2rem,5vw,4rem);display:grid}}.page-head .eyebrow{color:var(--on-ground-soft)}.page-head h1{max-width:20ch;margin:0 0 1.25rem;font-size:clamp(1.9rem,4.5vw,3rem)}.page-head .scale-rule{margin-bottom:0}.page-head .lead{color:var(--on-ground);opacity:.9;max-width:44ch;margin:1.5rem 0 0}@media (width>=56rem){.page-head .lead{margin:0;padding-bottom:.35rem}}.cards{background:var(--line);border:1px solid var(--line);counter-reset:card;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1px;margin:0;padding:0;list-style:none;display:grid}.cards li{background:var(--paper-raised);counter-increment:card;padding:1.75rem 1.5rem}.cards li:before{content:counter(card, decimal-leading-zero);font-family:var(--font-mono);letter-spacing:.12em;color:var(--accent);margin-bottom:.9rem;font-size:.75rem;font-weight:500;display:block}.cards h3{margin:0 0 .5rem;font-size:1.1rem}.cards p{color:var(--ink-soft);max-width:34ch;margin:0}.projects-total{font-family:var(--font-mono);color:var(--on-ground-soft);letter-spacing:.04em;margin:1.5rem 0 0;font-size:.85rem}.category-nav{background:var(--paper);border-bottom:1px solid var(--line)}.category-nav ul{max-width:var(--maxw);padding:.9rem var(--pad);flex-wrap:wrap;gap:.4rem;margin-inline:auto;list-style:none;display:flex}.category-nav a{border:1px solid var(--line-strong);background:var(--paper-raised);color:var(--ink);border-radius:2px;padding:.3rem .75rem;font-size:.85rem;text-decoration:none;display:inline-block}.category-nav a:hover{border-color:var(--accent);color:var(--accent)}.category-nav .count{font-family:var(--font-mono);color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:.75rem}.category{max-width:var(--maxw);padding:clamp(2.5rem, 5vw, 3.5rem) var(--pad) 0;margin-inline:auto;scroll-margin-top:1.5rem}.category h2{margin:0 0 .75rem;font-size:1.5rem}.category .scale-rule{width:4rem}.project-grid{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:2rem 1.5rem;margin:1.75rem 0 0;padding:0;list-style:none;display:grid}.project-card{grid-template-rows:subgrid;grid-row:span 3;align-content:start;row-gap:0;display:grid}.project-card a{color:inherit;text-decoration:none;display:block}.project-card h3{margin:.85rem 0 0;font-size:1.05rem;line-height:1.3}.project-card a:hover h3{color:var(--accent)}.project-cover{aspect-ratio:3/2;object-fit:contain;background:var(--ground-raised);width:100%;height:auto;display:block}.project-cover--empty{background-color:var(--ground-raised);background-image:repeating-linear-gradient(45deg,#0000 0 7px,#efeae609 7px 14px);border:none;place-items:center;display:grid}.project-cover--empty:after{content:"";opacity:.55;background:var(--sand);width:4.5rem;height:.7rem;-webkit-mask:var(--profile-mask);mask:var(--profile-mask)}.project-years{font-family:var(--font-mono);color:var(--ink-soft);letter-spacing:.04em;font-variant-numeric:tabular-nums;margin:.4rem 0 0;font-size:.8rem}.project-summary{color:var(--ink-soft);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:.5rem 0 0;font-size:.95rem;display:-webkit-box;overflow:hidden}.project{max-width:var(--maxw);padding:0 var(--pad);margin-inline:auto}.breadcrumb{padding:1.5rem 0 0}.breadcrumb a{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-soft);font-size:.8rem;text-decoration:none}.breadcrumb a:hover{color:var(--accent)}.project-header{padding-top:2.5rem}.project-header .eyebrow{flex-wrap:wrap;align-items:baseline;gap:.75rem;margin:0 0 .9rem;display:flex}.project-header .eyebrow a{color:var(--accent);text-decoration:none}.project-header .eyebrow a:hover{text-decoration:underline}.project-header .project-years{letter-spacing:.12em;margin:0;font-size:.75rem}.project-header h1{max-width:22ch;margin:0;font-size:clamp(1.9rem,4vw,2.75rem)}.project-header .lead{margin:1.25rem 0 0}.project .prose{padding-inline:0}.project .prose ul{max-width:var(--maxw-text);padding-left:1.25rem}.project .prose li{margin-bottom:.35rem}.notice{border:1px solid var(--line);border-left:3px solid var(--clay);background:var(--paper-raised);color:var(--ink-soft);max-width:var(--maxw-text);margin:1.5rem 0 0;padding:.85rem 1.15rem;font-size:.9rem}.project-hero{width:auto;max-width:100%;height:auto;max-height:min(62vh,30rem);margin-top:2rem;display:block}.project-author{font-family:var(--font-mono);color:var(--ink-soft);font-size:.8rem}.gallery{padding-bottom:clamp(3rem,7vw,5rem)}.gallery h2{margin:0 0 .75rem;font-size:1.5rem}.gallery .scale-rule{width:4rem;margin-bottom:1.5rem}.gallery ul{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.gallery img{aspect-ratio:4/3;object-fit:contain;background:var(--ground-raised);width:100%;height:auto;display:block}.zoomable{cursor:zoom-in;display:block}.zoomable--hero{width:fit-content;max-width:100%}.lightbox{display:none}.lightbox:target{z-index:20;background:#191919;grid-template-rows:1fr auto;justify-items:center;gap:1rem;padding:clamp(1rem,4vw,2.5rem);display:grid;position:fixed;inset:0}.lightbox-backdrop{cursor:zoom-out;position:absolute;inset:0}.lightbox img{object-fit:contain;place-self:center;width:auto;max-width:100%;height:auto;min-height:0;max-height:100%;position:relative}.lightbox-bar{width:min(100%,34rem);font-family:var(--font-mono);letter-spacing:.04em;color:var(--on-ground-soft);grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;margin:0;font-size:.8rem;display:grid;position:relative}.lightbox-bar a{color:var(--on-ground);text-decoration:none}.lightbox-bar a:hover{color:#fff;text-underline-offset:.3em;text-decoration:underline}.lightbox-bar a:last-child{justify-self:end}.lightbox-count{font-variant-numeric:tabular-nums}.lightbox-close{width:3rem;height:3rem;color:var(--on-ground);place-items:center;font-size:1.75rem;line-height:1;text-decoration:none;display:grid;position:absolute;top:0;right:0}.lightbox-close:hover{color:#fff}.contact-layout{align-items:start;gap:2.5rem;display:grid}@media (width>=56rem){.contact-layout{grid-template-columns:1fr 1.35fr;gap:clamp(2.5rem,6vw,5rem)}}.prose .contact-main h2{margin-top:0}.contacts{margin:0;display:grid}.contacts>div{border-bottom:1px solid var(--line);padding:0 0 1.1rem}.contacts>div+div{padding-top:1.1rem}.contacts dt{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:.75rem}.contacts dd{margin:.3rem 0 0}.contacts a{color:var(--accent)}.contact-form{gap:1.1rem;max-width:34rem;margin-top:1.5rem;display:grid}.contact-form .field{gap:.4rem;display:grid}.contact-form .field>span{font-size:.9rem;font-weight:600}.contact-form input,.contact-form textarea{font:inherit;border:1px solid var(--line-strong);background:var(--paper-raised);color:var(--ink);border-radius:2px;width:100%;padding:.65rem .8rem}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.contact-form textarea{resize:vertical}.contact-form .consent{align-items:start;gap:.6rem;font-size:.95rem;line-height:1.5;display:flex}.contact-form .consent input{width:auto;accent-color:var(--accent);margin-top:.3rem}.contact-form .consent a{color:var(--accent)}.contact-form .form-hint{font-family:var(--font-mono);color:var(--ink-soft);margin:0;font-size:.75rem}.contact-form button{cursor:pointer;justify-self:start}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.notfound-list{gap:1.75rem;margin:0;padding:0;list-style:none;display:grid}.notfound-list li{border-top:1px solid var(--line);max-width:var(--maxw-text);padding-top:1.25rem}.notfound-list p{color:var(--ink-soft);margin:0 0 .5rem}.policy-updated{font-family:var(--font-mono);color:var(--ink-soft);margin-top:-.5rem;font-size:.8rem}.cta-band{background:var(--ground);color:var(--on-ground)}.cta-band-inner{max-width:var(--maxw);padding:clamp(3rem, 6vw, 4.5rem) var(--pad);align-items:center;gap:1.5rem;margin-inline:auto;display:grid}@media (width>=52rem){.cta-band-inner{grid-template-columns:1fr auto;gap:2.5rem}}.cta-band h2{max-width:24ch;margin:0 0 .75rem;font-size:clamp(1.5rem,3vw,2rem)}.cta-band p{color:var(--on-ground-soft);max-width:46ch;margin:0}footer{background:var(--ground-raised);color:var(--on-ground-soft);border-top:1px solid var(--line-on-ground);font-size:.9rem}.footer-inner{max-width:var(--maxw);padding:clamp(2.5rem, 5vw, 3.5rem) var(--pad);flex-wrap:wrap;justify-content:space-between;gap:1.5rem 3rem;margin-inline:auto;display:flex}.footer-legal{margin:0;line-height:1.8}.footer-legal strong{color:var(--on-ground);font-weight:600}.footer-copy{margin:0;line-height:1.8}footer a{color:var(--on-ground)}footer a:hover{color:#fff}.map{margin:0}.map-canvas{background:var(--paper-raised);border:1px solid var(--line);width:100%;height:auto;display:block}.map-land{fill:var(--ground)}.map-water{fill:#5e564a}.map-leader{stroke:var(--on-ground-soft);stroke-width:1px;opacity:.5}.map-mark circle{fill:var(--sand);stroke:var(--paper-raised);stroke-width:1.5px;transition:none}.map-mark:hover circle,.map-mark:focus-visible circle{fill:var(--paper-raised);stroke:var(--sand);stroke-width:3px}.map-mark:focus{outline:none}.map-mark:focus-visible circle{stroke:var(--ink)}.map-caption{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-soft);margin:.75rem 0 0;font-size:.8rem}.map-index{flex-wrap:wrap;gap:.4rem;margin:1.5rem 0 0;padding:0;list-style:none;display:flex}.map-index a{border:1px solid var(--line-strong);background:var(--paper-raised);color:var(--ink);align-items:baseline;gap:.4rem;padding:.3rem .7rem;font-size:.85rem;text-decoration:none;display:inline-flex}.map-index a:hover,.map-index a:focus-visible{border-color:var(--accent);color:var(--accent)}.map-index-count{font-family:var(--font-mono);color:var(--ink-soft);font-size:.7rem}.map-note{max-width:var(--maxw-text);color:var(--ink-soft);font-size:.9rem}.place-card{display:none}.place-card:target{z-index:20;place-items:center;padding:clamp(.75rem,3vw,2rem);display:grid;position:fixed;inset:0}.place-backdrop{cursor:pointer;background:#191919c7;position:absolute;inset:0}.place-card-inner{background:var(--paper-raised);border:1px solid var(--line-strong);width:min(100%,52rem);max-height:100%;padding:clamp(1.25rem,3vw,2rem);position:relative;overflow-y:auto}.place-close{width:2.5rem;height:2.5rem;color:var(--ink-soft);place-items:center;font-size:1.75rem;line-height:1;text-decoration:none;display:grid;position:absolute;top:.25rem;right:.5rem}.place-close:hover{color:var(--accent)}.place-photos{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none;display:grid}.place-photos img{object-fit:contain;background:var(--ground);aspect-ratio:4/3;width:100%;height:100%;display:block}.place-head h3{font-family:var(--font-display);margin:0;font-size:clamp(1.25rem,3vw,1.6rem);line-height:1.2}.place-precision{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin:.25rem 0 0;font-size:.7rem}.place-projects{gap:1rem;margin:1.25rem 0 0;padding:0;list-style:none;display:grid}.place-projects>li{border-top:1px solid var(--line);padding-top:1rem}.place-projects>li>a{font-weight:600}.place-projects>li>.project-years{margin-left:.6rem}.place-projects p{color:var(--ink-soft);margin:.35rem 0 0;font-size:.9rem}.place-review{background:#fdf3d8;border-left:3px solid #b8860b;margin:1.25rem 0 0;padding:.6rem .8rem;font-size:.85rem}@media (width<=56rem){.map-mark circle{r:10;stroke-width:2.5px}.map-leader{stroke-width:2px}}
