:root,:root[data-theme=dark]{--bg:var(--ground-page);--panel-ink:#1B1915;--panel-muted:#5F5849}:root{color-scheme:light;--accent-seed:#2f5d7c;--accent-lift:#8fb8d6;--accent-deep:#1e4c6a;--dim-a-line:.55;--dim-a-ext:.32;--dim-a-tick:.9;--ground-page:#FAFAF7;--surface:#F0ECE1;--ink:#1B1915;--muted:#6A6357;--hairline:#DED5C2;--line-fn:#8C8574;--accent:var(--accent-seed);--accent-hover:#26506d;--accent-ink:var(--ground-page);--ghost:#EFEBE0;--error:#a23a28;--panel-mode:sheet;--panel:#EFE7D6;--panel-edge:#DCD2BC;--ground-dark:#17160F;--dot:color-mix(in srgb, var(--ink) 12%, transparent);--step--1:clamp(.8125rem,.79rem + .15vw,.875rem);--step-0:clamp(1rem,.95rem + .3vw,1.125rem);--step-1:clamp(1.25rem,1.15rem + .5vw,1.5rem);--step-2:clamp(1.75rem,1.4rem + 1.6vw,2.75rem);--step-3:clamp(2rem,1.1rem + 4.4vw,5.5rem);--hero:clamp(2.75rem,2rem + 4vw,5.5rem);--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;--s7:96px;--maxw:1320px;--gutter:clamp(16px, 3vw, 32px);--baseline:8px;--cut-w:1px;--cut-tick:12px;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono:"SF Mono",ui-monospace,"Cascadia Mono","Roboto Mono",Menlo,Consolas,monospace;--header-h:64px;--control-disabled:#767470;--ease-rule:cubic-bezier(0.22,0.61,0.36,1);--img-rest-filter:grayscale(.32) brightness(1.02)}:root[data-theme=dark]{color-scheme:dark;--ground-page:#141310;--surface:#201d17;--ink:#ece7db;--muted:#a29a8a;--hairline:#38342b;--line-fn:#7a7566;--accent:#8fb8d6;--accent-hover:#a8c9e1;--accent-ink:var(--ground-dark);--ghost:#221e17;--error:#e7948a;--control-disabled:#8b867a;--img-rest-filter:grayscale(.3) brightness(.82) contrast(1.02);--img-touch-filter:brightness(.86) contrast(1.02);--panel:#DAD1BA;--panel-edge:#C4B99C;--ground-dark:#0d0c0a;--dot:color-mix(in srgb, var(--ink) 10%, transparent);--dim-a-line:.80;--dim-a-ext:.60;--dim-a-tick:1}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--ground-page:#141310;--bg:var(--ground-page);--surface:#201d17;--ink:#ece7db;--muted:#a29a8a;--hairline:#38342b;--line-fn:#7a7566;--accent:#8fb8d6;--accent-hover:#a8c9e1;--accent-ink:var(--ground-dark);--ghost:#221e17;--error:#e7948a;--control-disabled:#8b867a;--img-rest-filter:grayscale(.3) brightness(.82) contrast(1.02);--img-touch-filter:brightness(.86) contrast(1.02);--panel:#DAD1BA;--panel-edge:#C4B99C;--panel-ink:#1B1915;--panel-muted:#5F5849;--ground-dark:#0d0c0a;--dot:color-mix(in srgb, var(--ink) 10%, transparent);--dim-a-line:.80;--dim-a-ext:.60;--dim-a-tick:1}}:root[data-panel-mode=plane]:not([data-theme=light]),:root[data-panel-mode=plane][data-theme=dark]{--panel-mode:plane;--panel:#201d16;--panel-edge:#3a3529;--panel-ink:#ece7db;--panel-muted:#a29a8a}@media (prefers-color-scheme:light){:root[data-panel-mode=plane]:not([data-theme=dark]){--panel-mode:sheet;--panel:#EFE7D6;--panel-edge:#DCD2BC;--panel-ink:#1B1915;--panel-muted:#5F5849}}@supports (color:oklch(from red l c h)){:root{--accent:var(--accent-seed);--accent-hover:oklch(from var(--accent) calc(l - .05) c h);--accent-lift:oklch(from var(--accent-seed) .76 c h);--accent-deep:oklch(from var(--accent-seed) .40 c h)}:root[data-theme=dark]{--accent:oklch(from var(--accent-seed) .76 c h);--accent-hover:oklch(from var(--accent) calc(l + .06) c h)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--accent:oklch(from var(--accent-seed) .76 c h);--accent-hover:oklch(from var(--accent) calc(l + .06) c h)}}}.theme-anim,.theme-anim #contact-form input,.theme-anim #contact-form select,.theme-anim #contact-form textarea,.theme-anim .contact,.theme-anim .name-menu,.theme-anim .ph,.theme-anim .site-footer,.theme-anim .theme-toggle,.theme-anim body{transition:background-color 220ms ease,border-color 220ms ease,color 220ms ease}*,::after,::before{box-sizing:border-box}body,html{overflow-x:clip}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:var(--step-0);line-height:1.55;font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-color:var(--bg);background-image:radial-gradient(var(--dot) 1px,transparent 1px);background-size:32px 32px;background-position:0 0}img,svg{display:block;max-width:100%}a{color:var(--accent);text-decoration:none}a:focus-visible,a:hover{text-decoration:underline;text-underline-offset:3px}.about .a-side dl,h1,h2,h3,p{margin:0}:where(button,input,select,textarea){font:inherit;color:inherit}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:where(a,button,input,textarea,select,summary,[tabindex]):focus{outline:2px solid var(--ink);outline-offset:2px;border-radius:2px}:where(a,button,input,textarea,select,summary,[tabindex]):focus:not(:focus-visible){outline:0}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:2px}#main:focus,#top:focus,.band:focus{outline:0}.skip{position:absolute;left:8px;top:-60px;z-index:100;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:2px;transition:top .15s ease}.skip:focus{top:8px;text-decoration:none;color:var(--bg)}:target{scroll-margin-top:calc(var(--header-h) + 16px)}#main,#top,section{scroll-margin-top:calc(var(--header-h) + 16px)}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.grid12{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gutter)}.eyebrow,.idx{color:var(--muted)}.eyebrow{font-family:var(--sans);text-transform:uppercase;font-size:11px;letter-spacing:.1em;font-weight:500;margin:0}.idx{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--step--1);letter-spacing:.02em}.serif{font-family:var(--sans);letter-spacing:-.02em;font-weight:600;line-height:1.06;text-wrap:balance}.lede{max-width:60ch;text-wrap:pretty}.rule{border:0;border-top:1px solid var(--hairline);margin:0}.mark{color:var(--ink)}.mark svg,.mark use{display:block}.site-header::before,.watermark{position:absolute;pointer-events:none}.watermark{left:0;top:var(--s4);width:clamp(108px,16vw,196px);color:var(--ink);opacity:.05;z-index:0}.watermark--plan{opacity:.08;top:var(--s3)}.proj-campus .proj-mark{position:sticky;top:calc(var(--header-h, 64px) + 16px);height:0;margin:0;z-index:0;pointer-events:none;grid-column:1/-1;grid-row:1;align-self:start}.proj-campus .project-head{grid-row:1}.proj-campus .proj-mark .watermark--plan{position:absolute;top:0;left:0;margin-left:0;width:clamp(64px,18vw,96px);color:var(--ink);opacity:.07;pointer-events:none}@media (min-width:1180px){.proj-campus .proj-mark .watermark--plan{left:50%;margin-left:calc(-50vw + clamp(12px,1.8vw,28px));width:clamp(76px,6vw,116px);opacity:.08}}@media (prefers-reduced-motion:no-preference){body:not(.no-js) .proj-campus .proj-mark .watermark--plan{transition:width 320ms ease,opacity 320ms ease}}.site-header{position:sticky;top:0;z-index:50;background:0 0;backdrop-filter:none;border-bottom:1px solid transparent;box-shadow:none;transition:background 140ms ease,backdrop-filter 140ms ease,border-color 140ms ease,box-shadow 180ms ease}.site-header::before{content:"";inset:0;z-index:-1;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 42%,transparent),transparent);opacity:1;transition:opacity 140ms ease}.site-header.is-scrolled::before{opacity:0}body.preload .site-header,body.preload .site-header .brand .mark-wrap,body.preload .site-header .site-here,body.preload .site-header::before{transition:none!important}.site-header.is-scrolled{background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:saturate(1.1) blur(8px)}@supports not (backdrop-filter:blur(1px)){.site-header.is-scrolled{background:var(--bg)}}.site-header .wrap{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gutter);align-items:center;min-height:var(--header-h);position:relative;transition:none}.site-header .brand{grid-column:1/8;justify-self:start}@media (max-width:1023px){.site-header .brand{grid-column:1/10}}.site-here{grid-column:8/12;justify-self:end;display:inline-flex;align-items:center;gap:.25em;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap;user-select:none}.menu-wrap{position:relative;display:inline-flex;min-width:0}.burger-wrap>summary,.menu-wrap>summary{list-style:none}.burger-wrap>summary::-webkit-details-marker,.menu-wrap>summary::-webkit-details-marker{display:none}.site-here .sh-readout{position:relative;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;background:0 0;border:0;margin:0;padding:6px;min-height:44px;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;border-radius:2px;-webkit-tap-highlight-color:transparent}.site-here .sh-readout:focus-visible .sh-livetext,.site-here .sh-readout:hover .sh-livetext{color:var(--accent)}.site-here .sh-readout:focus-visible,.site-here .sh-readout:hover{text-decoration:none}.site-here .sh-sizer{display:inline-flex;align-items:center;visibility:hidden;white-space:nowrap}.site-here .sh-tick{display:inline-block;width:.5em;height:.5em;flex:none;margin-right:.5em;vertical-align:middle}.site-here .sh-caret{position:absolute;right:6px;top:50%;width:.5em;height:.5em;flex:none;transform:translateY(-50%);transition:transform 160ms ease}.site-here .sh-caret::before{content:"";position:absolute;top:30%;left:50%;width:.42em;height:.42em;border-right:1px solid var(--muted);border-bottom:1px solid var(--muted);transform:translate(-50%,-50%) rotate(45deg)}.site-here .sh-readout[aria-expanded=true] .sh-caret{transform:translateY(-50%) rotate(180deg)}.site-here .sh-readout:focus-visible .sh-caret::before,.site-here .sh-readout:hover .sh-caret::before{border-color:var(--accent)}.site-here .sh-caret-space{display:inline-block;width:.85em;flex:none}.site-here .sh-live{position:absolute;inset:0;display:inline-flex;white-space:nowrap;overflow:hidden;padding:0 .85em;transition:opacity 200ms ease}.site-here.is-updating .sh-live,.site-here.is-updating .sh-num{opacity:0}.chap-arrow,.site-here .sh-live,.site-here .sh-num{align-items:center;justify-content:center}.site-here .sh-num{display:none;position:absolute;inset:0;white-space:nowrap;transition:opacity 200ms ease}.chap-arrow{flex:none;display:inline-flex;width:44px;height:44px;margin-inline:-6px;color:var(--muted);-webkit-tap-highlight-color:transparent;border-radius:2px;transition:color 160ms ease}.chap-arrow:not([aria-disabled=true]):focus-visible,.chap-arrow:not([aria-disabled=true]):hover{color:var(--accent);text-decoration:none}.chap-arrow[aria-disabled=true]:focus-visible{text-decoration:none}.chap-arrow .chev{position:relative;display:block;width:8px;height:8px;flex:none}.chap-arrow .chev::before{content:"";position:absolute;top:50%;left:50%;width:7px;height:7px;border-style:solid;border-color:currentColor;border-width:0}.chap-arrow.prev .chev::before{border-left-width:1px;border-bottom-width:1px;transform:translate(-30%,-50%) rotate(45deg)}.chap-arrow.next .chev::before{border-right-width:1px;border-top-width:1px;transform:translate(-70%,-50%) rotate(45deg)}.chap-arrow.is-hidden-end{visibility:hidden;pointer-events:none}.chap-arrow[aria-disabled=true]:not(.is-hidden-end){color:var(--control-disabled);pointer-events:none;cursor:default}@media (min-width:1024px){.site-header .site-here{opacity:0;transform:translateY(-5px);visibility:hidden;transition:opacity .34s ease,transform .34s ease,visibility 0s linear .34s}.site-header.nav-armed .site-here{opacity:1;transform:none;visibility:visible;transition:opacity .34s ease,transform .34s ease,visibility 0s}}@media (prefers-reduced-motion:reduce){.site-header .site-here{transition:none}}.site-here:not([data-active]) .sh-tick{visibility:hidden}@media (max-width:1180px) and (min-width:1024px){.site-here .sh-live,.site-here .sh-sizer{display:none}.site-here .sh-num{display:inline-flex;position:static;inset:auto;justify-content:center;min-width:2ch;padding-left:.85em;padding-right:.85em}}@media (max-width:1023.98px){.site-here{display:none}}@media (min-width:1024px){.site-header .burger-wrap{display:none}}.burger-wrap{grid-column:10/12;justify-self:end;position:relative;display:inline-flex;min-width:0}.burger{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;background:0 0;border:0;padding:0;margin:0;cursor:pointer;border-radius:2px;color:var(--ink);-webkit-tap-highlight-color:transparent}.burger:focus-visible,.burger:hover{text-decoration:none}.burger-box{position:relative;display:block;width:22px;height:16px}.burger-bar{position:absolute;left:0;right:0;height:1.5px;border-radius:1px;background:var(--ink);transition:transform 200ms var(--ease-rule,ease),opacity 160ms ease,top 200ms var(--ease-rule,ease)}.burger-bar:nth-child(1){top:0}.burger-bar:nth-child(2){top:50%;transform:translateY(-50%)}.burger-bar:nth-child(3){top:100%;transform:translateY(-100%)}.burger:focus-visible .burger-bar,.burger:hover .burger-bar{background:var(--accent)}.burger[aria-expanded=true] .burger-bar:nth-child(1){top:50%;transform:translateY(-50%) rotate(45deg)}.burger[aria-expanded=true] .burger-bar:nth-child(2){opacity:0}.burger[aria-expanded=true] .burger-bar:nth-child(3){top:50%;transform:translateY(-50%) rotate(-45deg)}.burger-wrap[open] .burger-bar:nth-child(1){top:50%;transform:translateY(-50%) rotate(45deg)}.burger-wrap[open] .burger-bar:nth-child(2){opacity:0}.burger-wrap[open] .burger-bar:nth-child(3){top:50%;transform:translateY(-50%) rotate(-45deg)}.burger-menu{position:absolute;top:calc(100% + 10px);right:-6px;z-index:56}.site-header.is-condensed{box-shadow:0 1px 0 var(--hairline),0 6px 16px -12px rgba(26,26,26,.18)}.site-header.is-scrolled.is-condensed .brand .mark-wrap{width:32px;height:32px}.hdr-tools,.theme-toggle{grid-column:12/13;justify-self:end;align-items:center}.hdr-tools{display:flex}.hdr-tools .theme-toggle{margin-inline-start:0}@media (hover:hover) and (pointer:fine) and (min-width:360px){body:not(.no-js) .burger-wrap,body:not(.no-js) .site-here{margin-inline-end:44px}}.theme-toggle{flex:none;display:inline-flex;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;margin-inline-start:-6px;background:0 0;border:0;padding:0;cursor:pointer;border-radius:2px;color:var(--ink);-webkit-tap-highlight-color:transparent;transition:color 160ms ease}.theme-toggle:focus-visible,.theme-toggle:hover{color:var(--accent);text-decoration:none}.no-js .theme-toggle{display:none}.theme-toggle .ti{display:block;width:20px;height:20px}.theme-toggle .ti-sun{display:none}.theme-toggle .ti-moon{display:block}:root[data-theme=dark] .theme-toggle .ti-sun{display:block}:root[data-theme=dark] .theme-toggle .ti-moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .ti-sun{display:block}:root:not([data-theme=light]) .theme-toggle .ti-moon{display:none}}.site-header:not(.is-scrolled) .theme-toggle .ti{filter:drop-shadow(0 0 1px var(--bg))}.site-header.is-scrolled .theme-toggle .ti{filter:none}.ch-switch{flex:none;display:none;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;background:0 0;border:0;padding:0;cursor:pointer;border-radius:2px;color:var(--ink);-webkit-tap-highlight-color:transparent;transition:color 160ms ease}@media (hover:hover) and (pointer:fine) and (min-width:360px){body:not(.no-js) .ch-switch{display:inline-flex}}.ch-switch:focus-visible,.ch-switch:hover{color:var(--accent);text-decoration:none}.ch-switch .ti{display:block;width:20px;height:20px}.ch-switch .ti-arrow{display:none}.ch-switch .ti-reticle,.ch-switch[aria-pressed=true] .ti-arrow{display:block}.ch-switch[aria-pressed=true] .ti-reticle{display:none}.site-header:not(.is-scrolled) .ch-switch .ti{filter:drop-shadow(0 0 1px var(--bg))}.site-header.is-scrolled .ch-switch .ti{filter:none}.brand{display:flex;align-items:center;gap:var(--s2);color:var(--ink);min-height:44px;min-width:0}.brand-home{text-decoration:none;color:var(--ink);border-radius:2px}.brand-home:focus-visible,.brand-home:hover{text-decoration:none}.brand .mark-wrap{width:var(--mark-size,44px);height:var(--mark-size,44px);flex:none;display:block}.site-header.is-scrolled .brand .mark-wrap{width:40px;height:40px}.brand .mark{width:100%;height:100%}.brand .wordmark{display:inline-flex;align-items:center;min-height:44px;font-family:var(--sans);font-weight:600;letter-spacing:-.02em;font-size:var(--step-1);line-height:1;color:var(--ink);min-width:0;white-space:nowrap}.brand .wordmark .wm-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand .wordmark .tld{color:var(--muted);font-weight:400}@media (max-width:559px){.brand .wordmark .tld{display:none}}.site-header:not(.is-scrolled) .brand .wordmark,.site-header:not(.is-scrolled) .site-here .sh-live,.site-header:not(.is-scrolled) .site-here .sh-num{text-shadow:0 0 1px var(--bg),0 1px 2px color-mix(in srgb,var(--bg) 70%,transparent)}.site-header:not(.is-scrolled) .brand .mark,.site-header:not(.is-scrolled) .burger-bar,.site-header:not(.is-scrolled) .site-here .chap-arrow .chev::before,.site-header:not(.is-scrolled) .site-here .sh-caret::before,.site-header:not(.is-scrolled) .site-here .sh-tick{filter:drop-shadow(0 0 1px var(--bg))}.site-header.is-scrolled .brand .wordmark,.site-header.is-scrolled .site-here .sh-live,.site-header.is-scrolled .site-here .sh-num{text-shadow:none}.site-header.is-scrolled .brand .mark,.site-header.is-scrolled .burger-bar,.site-header.is-scrolled .site-here .chap-arrow .chev::before,.site-header.is-scrolled .site-here .sh-caret::before,.site-header.is-scrolled .site-here .sh-tick{filter:none}.name-menu{top:calc(100% + 10px);right:-6px;left:auto;z-index:56;min-width:clamp(220px,42vw,300px);max-width:calc(100vw - 2*var(--gutter));margin:0;padding:6px;list-style:none;border:1px solid var(--hairline);box-shadow:0 1px 0 var(--hairline),0 12px 28px -16px rgba(26,26,26,.32)}.name-menu,.site-header>.wrap>.section-menu{position:absolute}.name-menu[hidden]{display:none}.name-menu li{position:relative}.name-row{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;column-gap:var(--s2);padding:12px;min-height:44px;color:var(--ink);text-decoration:none;border-radius:2px}.name-row .nr-num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--step--1);letter-spacing:.04em;color:var(--muted);align-self:center;display:inline-flex;align-items:center;transition:color 160ms ease}.name-row .nr-title{font-family:var(--sans);font-weight:600;letter-spacing:-.02em;line-height:1.1;font-size:var(--step-1)}.name-row .nr-tag{justify-self:end;text-align:right;align-self:center;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);transition:color 160ms ease}@media (max-width:559px){.name-row .nr-tag{display:none}.name-row{grid-template-columns:auto 1fr}}.name-row .nr-here{display:inline-block;width:0;height:.6em;margin-right:0;background:var(--accent);overflow:hidden;flex:none;transition:width 160ms ease,margin 160ms ease}.name-row[aria-current=page] .nr-here{width:.6em;margin-right:.5em}.name-row[aria-current=page] .nr-num{color:var(--ink)}.name-row[aria-current=page]{background:color-mix(in srgb,var(--accent) 8%,transparent)}.name-row:focus-visible,.name-row:hover{background:var(--surface);text-decoration:none}.name-row:focus-visible .nr-num,.name-row:focus-visible .nr-tag,.name-row:hover .nr-num,.name-row:hover .nr-tag{color:var(--accent)}.name-row:focus-visible .nr-title,.name-row:hover .nr-title{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--accent)}.name-row:focus-visible{outline-offset:-2px}.name-util-rule{border:0;border-top:1px solid var(--hairline);margin:6px 8px}.name-util{display:flex;flex-wrap:wrap;gap:8px var(--s3);padding:6px 12px 8px;font-family:var(--mono);font-size:var(--step--1);letter-spacing:.02em}.name-util a{color:var(--muted);min-height:40px;display:inline-flex;align-items:center;gap:8px}.name-util a .u-num{color:var(--muted);font-variant-numeric:tabular-nums}.name-util a:focus-visible,.name-util a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.ground-veil{display:none;position:fixed;inset:0;z-index:70;pointer-events:none;background:var(--bg);opacity:0}.hero .wrap{position:relative;z-index:1}.hero-ghost{position:absolute;right:-4%;top:50%;transform:translateY(-50%);width:clamp(280px,46vw,640px);pointer-events:none;z-index:0}.hero-mark{width:clamp(72px,12vw,120px);height:clamp(72px,12vw,120px);margin-bottom:var(--s4)}.hero .meta-row span b,.hero h1{font-weight:600;font-family:var(--sans)}.hero h1{line-height:1;margin:0;white-space:nowrap;font-size:clamp(1.5rem,.5rem + 5vw,4rem);letter-spacing:-.035em}.hero h1 .tld{color:var(--muted);font-weight:300}.hero .tagline{font-size:var(--step-1);font-weight:400;letter-spacing:-.01em}.hero .tagline .sep{margin-inline:.5em}.hero .meta-row{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--step--1)}.hero .meta-row span b{color:var(--ink)}.section-head{padding-block:var(--s6) var(--s4)}.section-head h2{font-family:var(--sans);font-size:var(--step-2)}@media (max-width:760px){.section-head .sh-note,.section-head .sh-num,.section-head .sh-title{grid-column:1/13}.section-head .sh-note{margin-top:var(--s1)}}.band{position:relative}.band-arch,.band-photo{border-top:1px solid var(--hairline)}.discipline-divider{display:grid;place-items:center;padding-block:var(--s6)}.discipline-divider .dd-rule{width:1px;height:clamp(40px,6vw,64px);background:var(--hairline)}.project{position:relative;padding-block:var(--s6) var(--s6);border-top:1px solid var(--hairline)}.project:first-of-type{border-top:0}.project .grid12{row-gap:var(--s3)}.project-head{grid-column:1/13;display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gutter);align-items:baseline;margin-bottom:var(--s4)}.project-head .p-idx{grid-column:1/3}.project-head .p-title{grid-column:3/10}.project-head .p-disc{grid-column:10/13;text-align:right;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.project-head h3{font-family:var(--sans);font-weight:600;letter-spacing:-.022em;line-height:1.05;font-size:var(--step-2)}.project .concept{grid-column:3/9;color:var(--ink);text-wrap:pretty}@media (max-width:760px){.project-head .p-idx{grid-column:1/4}.project-head .p-title{grid-column:1/13;margin-top:var(--s1)}.project-head .p-disc{grid-column:1/13;text-align:left;margin-top:6px}.project .concept{grid-column:1/13}}.ph{margin:0;position:relative;background:var(--surface);border:1px solid var(--hairline);overflow:hidden}.ph .media img,.ph svg{width:100%;height:100%;display:block}.ph .media{position:absolute;inset:0;width:100%;height:100%}.ph .media img{object-fit:cover}.cap{margin-top:10px;font-size:var(--step--1);color:var(--muted);display:flex;justify-content:space-between;gap:var(--s2);font-variant-numeric:tabular-nums}.cap .cap-id{font-family:var(--mono);letter-spacing:.02em}.shot img,.shot svg{filter:var(--img-rest-filter);transition:filter .22s ease}@media (prefers-reduced-motion:no-preference){.shot:focus-within img,.shot:focus-within svg,.shot:hover img,.shot:hover svg{filter:grayscale(0) brightness(1)}}@media (hover:none){.shot img,.shot svg{filter:var(--img-touch-filter,none)}}@media (hover:none) and (prefers-reduced-motion:no-preference){.shot:focus-within img,.shot:focus-within svg{filter:grayscale(0) brightness(1)}}.p-hero,.p-pair{grid-column:1/13}.p-hero .ph,.p-pair .ph{aspect-ratio:3/2}.p-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter);margin-top:var(--s2)}.p-draw .ph,.p-plan svg{background:var(--bg)}@media (max-width:760px){.p-pair{grid-template-columns:1fr}}.p-draw .ph{aspect-ratio:var(--draw-ar, 3 / 2);box-shadow:inset 0 0 0 1px var(--hairline)}.p-draw .ph .media{position:absolute;inset:clamp(8px,1.6vw,18px)}.p-draw .ph .media img{object-fit:contain}:root[data-theme=dark] .p-draw .ph{box-shadow:inset 0 0 0 1px var(--line-fn)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .p-draw .ph{box-shadow:inset 0 0 0 1px var(--line-fn)}}.p-set{grid-column:1/13;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gutter);margin-top:var(--s2)}.p-set .ph,.p-set .span-full .ph,.series-grid .wide .ph{aspect-ratio:3/2}.p-set .span-full{grid-column:1/-1}@media (max-width:640px){.p-set{grid-template-columns:1fr}}.meta{grid-column:1/13;margin-top:var(--s4);border-top:1px solid var(--hairline);display:grid;grid-template-columns:repeat(5,1fr);gap:0}.meta div{padding-block:var(--s2);padding-inline:var(--s2);border-right:1px solid var(--hairline)}.meta div:first-child{padding-left:0}.meta div:last-child{border-right:0;padding-right:0}.meta dt{font-family:var(--mono);text-transform:uppercase;font-size:11px;letter-spacing:.1em;color:var(--muted);margin-bottom:6px}.meta dd{margin:0;font-size:var(--step--1);font-variant-numeric:tabular-nums;color:var(--ink)}@media (max-width:760px){.meta{grid-template-columns:1fr 1fr}.meta div{border-right:0;border-bottom:1px solid var(--hairline)}.meta div:nth-child(odd){padding-left:0;padding-right:var(--s2);border-right:1px solid var(--hairline)}.meta div:nth-child(even){padding-left:var(--s2);padding-right:0}.meta div:last-child{border-bottom:0}.meta div:nth-last-child(2):nth-child(odd){border-bottom:0}.meta div:last-child:nth-child(odd){border-right:0;grid-column:1/-1}}.series{border-top:1px solid var(--hairline);padding-block:var(--s5) var(--s6)}.series:first-of-type{border-top:0}.series .grid12{row-gap:var(--s3)}.series-grid,.series-head{grid-column:1/13;display:grid}.series-head{grid-template-columns:repeat(12,1fr);column-gap:var(--gutter)}.series-head .s-idx{grid-column:1/3}.series-head .s-name{grid-column:3/9;font-family:var(--sans);font-size:var(--step-1)}.series-head .s-tag{grid-column:9/13}.series-grid{grid-template-columns:repeat(3,1fr);gap:var(--gutter)}.series-grid .ph{aspect-ratio:1100/1500}@media (max-width:760px){.series-head .s-idx{grid-column:1/3}.series-head .s-name{grid-column:3/13}.series-head .s-tag{grid-column:1/13;text-align:left;margin-top:4px}.series-grid{grid-template-columns:1fr 1fr}.series-grid .wide{grid-column:span 2}}@media (max-width:480px){.series-grid{grid-template-columns:1fr}.series-grid .wide{grid-column:span 1}}.about{border-top:1px solid var(--hairline);padding-block:var(--s7) var(--s6);position:relative}.about .a-label{grid-column:1/3}.about .a-body{grid-column:3/8}.about .a-body p+p{margin-top:var(--s3)}.about .a-side{grid-column:11/13;font-size:var(--step--1)}.about .a-portrait{grid-column:8/11}.about .a-side dt{font-family:var(--mono);text-transform:uppercase;font-size:11px;letter-spacing:.1em;margin-top:var(--s2);color:var(--panel-muted)}.about .a-side dd{margin:2px 0 0;color:var(--panel-ink)}.about h2{letter-spacing:-.025em}.about h2,.contact h2{font-family:var(--sans);font-weight:600;font-size:var(--step-2);line-height:1.08;margin-bottom:var(--s3)}@media (max-width:980px){.about .a-body{grid-column:3/9}.about .a-portrait{grid-column:9/13}.about .a-side{grid-column:3/13;margin-top:var(--s3)}}@media (max-width:760px){.about .a-body,.about .a-label,.about .a-portrait,.about .a-side{grid-column:1/13}.about .a-portrait{margin-top:var(--s3);max-width:320px}.about .a-side{margin-top:var(--s3);border-top:1px solid var(--hairline);padding-top:var(--s3)}.about,.contact{padding-block:var(--s6) var(--s5)}}.ink-plate{position:relative;margin:0;background:var(--bg);border:1px solid var(--hairline);border-radius:2px;aspect-ratio:var(--ink-ar, 1 / 1);padding:clamp(16px,3vw,32px);display:flex;align-items:center;justify-content:center;overflow:hidden}.ink-plate .ink-art{display:block;width:100%;height:100%;color:var(--ink)}:root[data-theme=dark] .ink-plate{border-color:var(--line-fn)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ink-plate{border-color:var(--line-fn)}}.about .a-portrait .ink-plate{aspect-ratio:var(--ink-ar, 1081 / 1127)}.about .a-portrait .cap{margin-top:8px;padding-right:var(--pd-band);flex-wrap:wrap}.about .a-portrait{--pd-band:30px;--pd-off:12px}.plate-dims{position:relative;padding:var(--pd-band,30px) var(--pd-band,30px)0 0}.plate-dims .pdim{opacity:0;transition:opacity 140ms ease}body.crosshair-on .plate-dims.is-lit .pdim{opacity:1}@media (prefers-reduced-motion:reduce){.plate-dims .pdim{transition:none}}.about .a-portrait .cap-dim{order:3;flex:1 0 100%;margin-inline:0;text-align:left}.pdim{position:absolute;pointer-events:none;color:var(--dim-ink, var(--accent))}.pdim--h{left:0;right:var(--pd-band,30px);top:calc(var(--pd-band,30px) - var(--pd-off,12px));height:0}.pdim--v{top:var(--pd-band,30px);bottom:0;right:calc(var(--pd-band,30px) - var(--pd-off,12px));width:0}.pdim__line{position:absolute;background:currentColor;opacity:var(--dim-a-line,.55)}.pdim--h .pdim__line{left:0;right:0;top:0;height:1px}.pdim--v .pdim__line{top:0;bottom:0;left:0;width:1px}.pdim__ext{position:absolute;opacity:var(--dim-a-ext,.32)}.pdim--h .pdim__ext{top:-2px;width:1px;height:var(--pd-off,12px);background-image:repeating-linear-gradient(to bottom,currentColor 0 2px,transparent 2px 4px)}.pdim--h .pdim__ext--a{left:0}.pdim--h .pdim__ext--b{right:0}.pdim--v .pdim__ext{left:calc(2px - var(--pd-off,12px));height:1px;width:var(--pd-off,12px);background-image:repeating-linear-gradient(to right,currentColor 0 2px,transparent 2px 4px)}.pdim--v .pdim__ext--a{top:0}.pdim--v .pdim__ext--b{bottom:0}.pdim__tick{position:absolute;width:9px;height:1px;background:currentColor;opacity:var(--dim-a-tick,.9)}.pdim--h .pdim__tick{top:0;transform:translate(-50%,0) rotate(-45deg)}.pdim--h .pdim__tick--a{left:0}.pdim--h .pdim__tick--b{left:100%}.pdim--v .pdim__tick{left:0;transform:translate(-50%,0) rotate(-45deg)}.pdim--v .pdim__tick--a{top:0}.pdim--v .pdim__tick--b{top:100%}.pdim__fig{position:absolute;font-family:var(--mono);font-size:10px;line-height:1.2;letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--dim-ink, var(--accent));white-space:nowrap}.pdim--h .pdim__fig{left:0;right:0;bottom:4px;text-align:center}.pdim--v .pdim__fig{left:5px;top:50%;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg)}.contact{border-top:1px solid var(--hairline);background:var(--surface);padding-block:var(--s7) var(--s6)}.contact .c-ghost{position:absolute;right:-3%;bottom:-6%;width:clamp(220px,30vw,400px);z-index:0;pointer-events:none}.contact .wrap{position:relative;z-index:1}.contact .grid12{row-gap:var(--s4)}.contact .c-intro p{color:var(--ink);max-width:40ch}.contact .c-direct{margin-top:var(--s4);font-size:var(--step--1);color:var(--muted)}.c-lay{display:block}@media (max-width:880px){.contact .c-form,.contact .c-intro{grid-column:1/13}}.cf-fields{display:grid;gap:var(--s4) clamp(24px,3vw,40px);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));margin-bottom:var(--s4)}.cf-field{margin:0;display:grid;gap:8px}.cf-field--wide{grid-column:1/-1}#contact-form label{display:block;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;font-size:11px}#contact-form label .req{color:var(--ink);text-transform:none;letter-spacing:.02em;font-size:11px;font-style:italic}#contact-form input,#contact-form select,#contact-form textarea{-webkit-appearance:none;appearance:none;width:100%;min-height:44px;padding:10px 0;border:0;border-radius:0;background:linear-gradient(var(--line-fn),var(--line-fn)) no-repeat bottom/100% 1px;color:var(--ink);font:inherit;font-size:16px;transition:background-size .16s ease}#contact-form textarea{resize:vertical;min-height:120px;line-height:1.5;padding:6px 0 10px}#contact-form select{padding-inline-end:26px;background:linear-gradient(45deg,transparent 50%,currentColor 50%) no-repeat calc(100% - 11px) calc(50% + 3px)/6px 6px,linear-gradient(135deg,currentColor 50%,transparent 50%) no-repeat calc(100% - 6px) calc(50% + 3px)/6px 6px,linear-gradient(var(--line-fn),var(--line-fn)) no-repeat bottom/100% 1px}#contact-form :is(input,textarea):focus{background-image:linear-gradient(var(--accent),var(--accent));background-size:100% 2px;outline:0}#contact-form select:focus{background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%),linear-gradient(var(--accent),var(--accent));background-size:6px 6px,6px 6px,100% 2px;outline:0}#contact-form :is(input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px}#contact-form :is(input,textarea)[aria-invalid=true]{background-image:linear-gradient(var(--error),var(--error));background-size:100% 2px}#contact-form select[aria-invalid=true]{background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%),linear-gradient(var(--error),var(--error));background-size:6px 6px,6px 6px,100% 2px}.field-error{font-size:var(--step--1);color:var(--error);display:flex;align-items:center;gap:6px;line-height:1.55;min-height:1.55em}.field-error::before{content:"!";display:inline-grid;place-items:center;width:16px;height:16px;border:1px solid var(--error);border-radius:50%;font-size:11px;font-weight:700;flex:none}.field-error:empty::before{content:none}.cf-foot{margin:0;display:flex;align-items:center;gap:20px;flex-wrap:wrap}#contact-form button[type=submit]{font-family:var(--sans);font-weight:600;letter-spacing:.01em;font-size:16px;min-height:48px;padding:0 var(--s4);background:var(--accent);color:var(--accent-ink);border:0;border-radius:0;cursor:pointer;transition:background .18s ease,opacity .18s ease}#contact-form button[type=submit]:hover{background:var(--accent-hover)}#contact-form button[type=submit]:disabled{opacity:.55;cursor:default}#contact-form button[type=submit]:focus-visible{outline:2px solid var(--ink);outline-offset:2px}#cf-status{font-size:var(--step--1);color:var(--muted)}#cf-status.err,#cf-status.ok{color:var(--accent);font-weight:500}#cf-status.err{color:var(--error)}#cf-status.demo{color:var(--ink);font-weight:500}#cf-status.demo strong{font-weight:700}#cf-status.demo a,.c-direct a{color:var(--accent)}#cf-status.plotting{color:var(--muted);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.site-footer{border-top:1px solid var(--hairline);background:var(--surface);padding-block:var(--s5)}.site-footer .grid12{align-items:center;row-gap:var(--s3)}.site-footer .f-mark{grid-column:1/3}.site-footer .f-info{grid-column:3/9;font-size:var(--step--1)}.site-footer .f-meta{grid-column:9/13;text-align:right;font-family:var(--mono);font-size:11px;font-variant-numeric:tabular-nums}.site-footer .footer-credit:focus-visible .fc-label,.site-footer .footer-credit:hover .fc-label{color:var(--accent)}@media (max-width:640px){.site-footer .f-info,.site-footer .f-mark,.site-footer .f-meta{grid-column:1/13;text-align:left}}.site-footer .footer-credit-row{margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--hairline);text-align:center}.site-footer .footer-credit{display:inline-flex;flex-direction:column;align-items:center;gap:12px;padding:4px 8px;color:var(--muted);transition:color .2s ease,opacity .2s ease;opacity:.9}.site-footer .footer-credit .fc-label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);transition:color .2s ease}.site-footer .footer-credit img{height:clamp(24px,2.4vw,30px);width:auto;display:block}.site-footer .footer-credit:focus-visible,.site-footer .footer-credit:hover{opacity:1;color:var(--muted);text-decoration:none}:root[data-theme=dark] .site-footer .footer-credit img{filter:invert(1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .site-footer .footer-credit img{filter:invert(1)}}.contour-draw circle,.contour-draw line,.contour-draw path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .3s ease}.contour-draw.in-view circle,.contour-draw.in-view line,.contour-draw.in-view path{stroke-dashoffset:0}.contour-draw circle{transition-delay:0ms}.contour-draw line{transition-delay:32ms}.contour-draw path:nth-of-type(1){transition-delay:64ms}.contour-draw path:nth-of-type(2){transition-delay:96ms}.contour-draw path:nth-of-type(3){transition-delay:128ms}.contour-draw path:nth-of-type(4){transition-delay:160ms}.no-js .contour-draw circle,.no-js .contour-draw line,.no-js .contour-draw path{stroke-dashoffset:0}@media (prefers-reduced-motion:reduce){.contour-draw circle,.contour-draw line,.contour-draw path{stroke-dashoffset:0!important}}@media (prefers-reduced-motion:no-preference){body:not(.no-js) .section-head{position:relative}body:not(.no-js) .section-head::before{content:"";position:absolute;inset-block-start:0;inset-inline:0;height:1px;background:0 0;transform:scaleX(0);transform-origin:left center;transition:transform 300ms var(--ease-rule);pointer-events:none}body:not(.no-js) .section-head.lines-in::before{transform:scaleX(1)}body:not(.no-js) .reveal-item{opacity:0;transform:translateY(8px);transition:opacity 260ms ease,transform 260ms var(--ease-rule);transition-delay:calc(var(--i,0)*60ms)}body:not(.no-js) .is-in .reveal-item{opacity:1;transform:none}body:not(.no-js) .shot .media{clip-path:inset(0 100%0 0);transition:clip-path 320ms var(--ease-rule)}body:not(.no-js) .is-in .shot .media{clip-path:inset(0 0 0 0)}body:not(.no-js) .is-in .shot:nth-of-type(even) .media{transition-delay:40ms}body:not(.no-js) .name-menu{opacity:0;transform:translateY(-4px);transition:opacity 160ms ease,transform 180ms var(--ease-rule)}body:not(.no-js) .name-menu.is-open,body:not(.no-js) .name-menu.is-open .name-row,body:not(.no-js) .name-menu.is-open .name-util{opacity:1;transform:none}body:not(.no-js) .name-menu .name-row,body:not(.no-js) .name-menu .name-util{opacity:0;transform:translateY(6px);transition:opacity 200ms ease,transform 220ms var(--ease-rule);transition-delay:calc(var(--row,0)*40ms)}html.js-boot .ground-veil{display:block;animation:ground-up 220ms ease 1 forwards}@keyframes ground-up{0%{opacity:1}to{opacity:0}}body:not(.no-js) .lightbox{opacity:0;transition:opacity 200ms ease}body:not(.no-js) .lightbox.is-open{opacity:1}body:not(.no-js) .lb-img{transition:opacity 180ms ease,transform 180ms var(--ease-rule)}body:not(.no-js) .lightbox.is-leaving-next .lb-img{opacity:0;transform:translateX(-2%)}body:not(.no-js) .lightbox.is-leaving-prev .lb-img{opacity:0;transform:translateX(2%)}}.lb-trigger{display:block;width:100%;height:100%;margin:0;padding:0;border:0;background:0 0;position:absolute;inset:0;z-index:2;cursor:zoom-in;border-radius:0;min-width:44px;min-height:44px;-webkit-tap-highlight-color:transparent;color:inherit}.lb-trigger:focus{outline:0}.lb-trigger:focus-visible{outline:2px solid var(--ink);outline-offset:-2px;border-radius:2px;box-shadow:inset 0 0 0 4px var(--bg)}.ph>.lb-trigger{position:absolute;inset:0}.lightbox{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:rgba(12,12,11,.92);--lb-ink:#f4f3ef;--lb-muted:#bdbcb6;--lb-line:rgba(244,243,239,.55);--lb-line-hover:#f4f3ef;--lb-control-bg:rgba(244,243,239,.06)}.lightbox.is-single .lb-counter,.lightbox.is-single .lb-nav,.lightbox[hidden]{display:none}.lightbox:focus{outline:0}.lb-backdrop{position:absolute;inset:0;z-index:0}.lb-backdrop,.lb-figure,.lb-imgwrap,.lb-stage{cursor:zoom-out}.lb-img{cursor:default}.lb-meta{cursor:auto}.lb-stage{position:relative;z-index:1;width:100%;height:100%;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:1fr;align-items:center;gap:clamp(8px,2vw,24px);padding:clamp(12px,3vw,40px);pointer-events:none;touch-action:manipulation}.lb-stage>*{pointer-events:auto}.lb-figure{grid-column:2;grid-row:1;margin:0;align-self:stretch;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:clamp(10px,1.6vw,18px);min-width:0;min-height:0;max-width:100%;max-height:100%}.lb-meta{margin-top:auto}.lb-imgwrap{flex:1 1 auto;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;max-width:100%;position:relative}.lb-img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:none;background:0 0;user-select:none;-webkit-user-drag:none;touch-action:manipulation}.lb-meta{flex:none;display:flex;align-items:baseline;justify-content:center;gap:var(--s3);flex-wrap:wrap;max-width:min(60ch,100%);text-align:center}.lb-caption{font-family:var(--sans);font-size:var(--step--1);color:var(--lb-ink);line-height:1.4}.lb-counter,.lb-dim{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:11px;letter-spacing:.12em;color:var(--lb-muted);white-space:nowrap}.lb-dim{letter-spacing:.1em}.lb-dim:empty{display:none}.lb-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;min-width:48px;min-height:48px;background:var(--lb-control-bg);border:1px solid var(--lb-line);border-radius:50%;color:var(--lb-ink);cursor:pointer;padding:0;margin:0;-webkit-tap-highlight-color:transparent;transition:border-color 160ms ease,background-color 160ms ease}.lb-btn:focus-visible,.lb-btn:hover{border-color:var(--lb-line-hover);background:rgba(244,243,239,.14);text-decoration:none}.lb-btn:focus{outline:0}.lb-btn:focus-visible{outline:2px solid var(--lb-ink);outline-offset:2px}.lb-close{position:absolute;top:clamp(10px,2.4vw,24px);right:clamp(10px,2.4vw,24px);z-index:3}.lb-x{position:relative;display:block;width:16px;height:16px}.lb-x::after,.lb-x::before{content:"";position:absolute;top:50%;left:50%;width:16px;height:1px;background:currentColor}.lb-x::before{transform:translate(-50%,-50%) rotate(45deg)}.lb-x::after{transform:translate(-50%,-50%) rotate(-45deg)}.lb-next,.lb-prev{grid-column:1;grid-row:1;justify-self:start}.lb-next{grid-column:3;justify-self:end}.lb-chev{position:relative;display:block;width:11px;height:11px}.lb-chev::before{content:"";position:absolute;top:50%;left:50%;width:9px;height:9px;border-style:solid;border-color:currentColor;border-width:0}.lb-prev .lb-chev::before{border-left-width:1px;border-bottom-width:1px;transform:translate(-30%,-50%) rotate(45deg)}.lb-next .lb-chev::before{border-right-width:1px;border-top-width:1px;transform:translate(-70%,-50%) rotate(45deg)}@media (max-width:560px){.lb-stage{grid-template-columns:1fr}.lb-figure{grid-column:1}.lb-nav{position:absolute;bottom:clamp(10px,3vw,20px);z-index:3;grid-column:auto}.lb-prev{left:clamp(10px,3vw,20px);justify-self:auto}.lb-next{right:clamp(10px,3vw,20px);justify-self:auto}.lb-meta{padding-inline:60px}.lb-figure{padding-bottom:64px}}.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.band-photo,.contact{color:var(--ink);border-top:0}.band-photo,.contact,.site-footer{--bg:var(--ground-dark);--surface:#201d16;--ink:#f1ede2;--muted:#b3aa99;--hairline:#35312a;--line-fn:#847f6f;--accent:#8fb8d6;--accent-hover:#a8c9e1;--accent-ink:#0f1620;--ghost:#201d16;--error:#e7948a;--dot:color-mix(in srgb, #f1ede2 8%, transparent);background-color:var(--ground-dark);background-image:repeating-linear-gradient(to right,var(--dot)0 1px,transparent 1px 64px),repeating-linear-gradient(to bottom,var(--dot)0 1px,transparent 1px 64px)}@supports (color:oklch(from red l c h)){.band-photo,.contact,.site-footer{--accent:oklch(from var(--accent-seed) .76 c h);--accent-hover:oklch(from var(--accent) calc(l + .06) c h)}}.band-photo,.contact{position:relative}.band-photo::after,.band-photo::before,.contact::before,.site-footer::after{content:"";position:absolute;left:0;right:0;height:var(--cut-tick);background-color:transparent;pointer-events:none;z-index:2}.band-photo::before,.contact::before{top:0;background:linear-gradient(var(--accent),var(--accent))0 0/100% var(--cut-w) no-repeat,linear-gradient(var(--accent),var(--accent)) var(--gutter)0/var(--cut-w) 100%no-repeat,linear-gradient(var(--accent),var(--accent)) calc(100% - var(--gutter))0/var(--cut-w) 100%no-repeat}.band-photo::after,.site-footer::after{bottom:0;background:linear-gradient(var(--accent),var(--accent))0 100%/100% var(--cut-w) no-repeat,linear-gradient(var(--accent),var(--accent)) var(--gutter)0/var(--cut-w) 100%no-repeat,linear-gradient(var(--accent),var(--accent)) calc(100% - var(--gutter))0/var(--cut-w) 100%no-repeat}.band-photo>*,.contact>*,.site-footer>*{position:relative;z-index:1}.about .wrap,.pv-c,.sheet{position:relative;--bg:var(--panel);--ink:var(--panel-ink);--muted:var(--panel-muted);--surface:color-mix(in srgb, var(--panel) 82%, #ffffff);--hairline:var(--panel-edge);--line-fn:#756E5E;--accent:var(--accent-seed);--dim-ink:var(--accent);--accent-hover:#26506d;--accent-ink:#faf9f4;--dot:color-mix(in srgb, var(--panel-ink) 10%, transparent);color-scheme:light;background:var(--panel);color:var(--panel-ink);box-shadow:0 24px 48px -40px rgba(27,25,21,.35)}:root[data-panel-mode=plane]:not([data-theme=light]) :is(.sheet,.pv-c,.about .wrap),:root[data-panel-mode=plane][data-theme=dark] :is(.sheet,.pv-c,.about .wrap){--line-fn:#7a7566;--accent:var(--accent-lift, #8fb8d6);--accent-hover:#a8c9e1;--accent-ink:var(--ground-dark);--surface:color-mix(in srgb, var(--panel) 88%, #ffffff);color-scheme:dark;box-shadow:none}@media (prefers-color-scheme:light){:root[data-panel-mode=plane]:not([data-theme=dark]) :is(.sheet,.pv-c,.about .wrap){--accent:var(--accent-seed);--accent-ink:#faf9f4;--line-fn:#756E5E;color-scheme:light}}@supports (color:oklch(from red l c h)){.about .wrap,.pv-c,.sheet{--accent-hover:oklch(from var(--accent) calc(l - .05) c h)}}:root[data-theme=dark]:not([data-panel-mode=plane]) :is(.sheet,.pv-c,.about .wrap){--dim-ink:var(--accent-deep, #1e4c6a)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-panel-mode=plane]) :is(.sheet,.pv-c,.about .wrap){--dim-ink:var(--accent-deep, #1e4c6a)}}:root[data-theme=dark] .about .wrap,:root[data-theme=dark] .pv-c,:root[data-theme=dark] .sheet{box-shadow:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .about .wrap,:root:not([data-theme=light]) .pv-c,:root:not([data-theme=light]) .sheet{box-shadow:none}}.about .wrap::before,.pv-c::before,.sheet::before{content:"";position:absolute;top:var(--s4);bottom:var(--s4);left:-1px;width:1px;background:var(--accent);opacity:.5;pointer-events:none}.about .wrap::after,.pv-c::after,.sheet::after{content:"";position:absolute;top:var(--s4);bottom:var(--s4);left:-5px;width:9px;border-top:1px solid var(--accent);border-bottom:1px solid var(--accent);opacity:.5;pointer-events:none}.pv-c:nth-of-type(even)::before,.sheet--right::before{left:auto;right:-1px}.pv-c:nth-of-type(even)::after,.sheet--right::after{left:auto;right:-5px}.zero{display:block;position:relative;width:0;height:0;pointer-events:none}.zero::before{content:""}.zero::after,.zero::before{position:absolute;opacity:0;transition:opacity 140ms ease-out}.zero::before{left:0;top:0;width:13px;height:13px;border-left:1px solid var(--accent);border-top:1px solid var(--accent)}.zero::after{content:"0";left:4px;top:3px;font:500 8px/1 var(--mono);letter-spacing:.04em;color:var(--accent)}body.crosshair-on .zero.is-lit::before{opacity:.58}body.crosshair-on .zero.is-lit::after{opacity:.46}@media print{.zero::after,.zero::before{display:none}}.pv-c{padding:clamp(20px,3vw,40px) clamp(18px,3vw,40px) clamp(24px,3.4vw,44px);margin-block:clamp(28px,5vw,72px);border-top:0}.pv-c:first-child{border-top:0}.pv-c-stack{margin-top:0;padding-bottom:clamp(24px,4vw,56px)}.about{border-top:0;padding-block:clamp(56px,8vw,112px) clamp(48px,6vw,88px)}.about .wrap{padding:clamp(24px,4vw,56px) clamp(20px,3.4vw,48px)}.about .grid12{row-gap:var(--s4)}@media (prefers-reduced-motion:no-preference){body:not(.no-js) .about .wrap,body:not(.no-js) .pv-c,body:not(.no-js) .sheet{opacity:0;transform:translateX(-3.5vw);transition:opacity 620ms var(--ease-rule) var(--land-delay, 0ms),transform 720ms var(--ease-rule) var(--land-delay, 0ms);will-change:transform}body:not(.no-js) .pv-c:nth-of-type(even),body:not(.no-js) .sheet--right{transform:translateX(3.5vw)}body:not(.no-js) .about.is-in .wrap,body:not(.no-js) .pv-c.is-in,body:not(.no-js) .sheet.is-in{opacity:1;transform:none;will-change:auto}body:not(.no-js) .about .wrap::after,body:not(.no-js) .pv-c::after,body:not(.no-js) .sheet::after{transform:scaleY(0);transform-origin:top center;transition:transform 520ms var(--ease-rule) 180ms}body:not(.no-js) .about.is-in .wrap::after,body:not(.no-js) .pv-c.is-in::after,body:not(.no-js) .sheet.is-in::after{transform:scaleY(1)}}.pv-c__shots,.series-grid{display:flex;flex-wrap:nowrap;align-items:flex-start;gap:clamp(12px,1.6vw,22px);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scroll-padding-left:2px;padding-bottom:var(--s3);overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 55%,transparent) transparent}.pv-c__shots::-webkit-scrollbar,.series-grid::-webkit-scrollbar{height:3px}.pv-c__shots::-webkit-scrollbar-track,.series-grid::-webkit-scrollbar-track{background:color-mix(in srgb,var(--muted) 16%,transparent)}.pv-c__shots::-webkit-scrollbar-thumb,.series-grid::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 70%,transparent)}.pv-c__shot,.series-grid .shot{flex:0 0 auto;margin:0;--plate-h:clamp(220px, 34vw, 420px)}.pv-c__shot{scroll-snap-align:start}.series-grid .shot{--plate-h:clamp(260px, 40vw, 520px)}.pv-c__shot .ph,.series-grid .shot .ph{height:var(--plate-h);width:auto;max-width:none;position:relative;overflow:hidden;background:var(--bg);border:1px solid var(--hairline);border-radius:1px}.series-grid .shot .ph{aspect-ratio:1100/1500}.series-grid .shot.wide .ph{aspect-ratio:3/2}.series-grid .wide{grid-column:auto}.pv-c__shot .ph .media,.series-grid .shot .ph .media{position:absolute;inset:0}.pv-c__shot img,.series-grid .shot img{width:100%;height:100%;object-fit:cover;display:block}.pv-c__shot--draw .ph{background:#f7f4ec;border-color:color-mix(in srgb,#201d18 20%,transparent)}.pv-c__shot--draw img{object-fit:contain;padding:5%}.pv-c__cap,.series-grid .cap{display:flex;justify-content:space-between;gap:var(--s3);margin-top:10px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted);font-variant-numeric:tabular-nums}.pv-c__cap-id,.series-grid .cap-id{letter-spacing:.1em;white-space:nowrap;color:color-mix(in srgb,var(--accent) 80%,var(--muted))}.strip-note{display:flex;align-items:center;gap:.6em;margin:0 0 10px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-variant-numeric:tabular-nums}.strip-note .sn-rule{flex:1 1 auto;height:1px;min-width:24px;position:relative;background:repeating-linear-gradient(to right,var(--hairline)0 6px,transparent 6px 10px)}.strip-note .sn-rule::after{content:"";position:absolute;inset:0;background:var(--accent);transform:scaleX(var(--sn-p, 0));transform-origin:left center;opacity:0}.strip-note.is-scrollable .sn-rule::after{opacity:.85}.strip-note .sn-arrow{color:var(--accent);letter-spacing:0}.strip-note .sn-pos{color:var(--accent)}.pv-c__shots:focus,.series-grid:focus{outline:0}.pv-c__shots:focus-visible,.series-grid:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.band-photo{padding-bottom:clamp(48px,7vw,96px)}.series{grid-column:1/-1;border-top:0;padding-block:clamp(28px,4vw,56px) clamp(28px,4vw,64px);position:relative}.series+.series{border-top:1px solid var(--hairline)}.series .grid12{display:block}.series-head{display:flex;align-items:baseline;gap:var(--s3);margin-bottom:var(--s3);flex-wrap:wrap}.series-head .s-idx{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--accent);font-variant-numeric:tabular-nums}.series-head .s-name{font-size:clamp(1.35rem,2.2vw + .6rem,2.2rem);font-weight:600;letter-spacing:-.02em;line-height:1.05;color:var(--ink)}.series-head .s-tag{margin-left:auto;text-align:right;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.series .watermark{display:none}.band-photo .series-grid .shot .ph{border-color:color-mix(in srgb,var(--ink) 16%,transparent);box-shadow:0 24px 48px -32px rgba(0,0,0,.8)}.band-photo .shot img{filter:none}@media (prefers-reduced-motion:no-preference){.band-photo .shot .ph{transition:transform 260ms var(--ease-rule)}.band-photo .shot:focus-within .ph,.band-photo .shot:hover .ph{transform:translateY(-4px)}.band-photo .shot:focus-within img,.band-photo .shot:hover img{filter:none}}@media (max-width:760px){.series-head .s-tag{margin-left:0;text-align:left;width:100%}}.series-grid .shot{scroll-snap-align:center}.photo-legend{padding-top:var(--s2);padding-bottom:clamp(24px,3vw,40px)}.legend{list-style:none;padding:0;border-top:1px solid var(--hairline)}.cf-stamp p,.legend,.legend li{margin:0}.lg-row{display:grid;grid-template-columns:auto minmax(0,auto) minmax(24px,1fr) auto auto;align-items:baseline;gap:0 clamp(10px,1.6vw,20px);padding:.85rem 0;border-bottom:1px solid var(--hairline);font-family:var(--mono);font-size:12px;letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--muted);text-decoration:none}.lg-nr{color:var(--accent);letter-spacing:.14em}.lg-name{font-family:var(--sans);font-size:var(--step-0);letter-spacing:-.01em;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lg-rule{height:1px;align-self:center;background:repeating-linear-gradient(to right,var(--hairline)0 2px,transparent 2px 6px)}.lg-n,.lg-tag{white-space:nowrap;letter-spacing:.1em}.lg-tag{text-transform:uppercase}.lg-n{color:var(--accent)}.lg-row:focus-visible,.lg-row:hover{color:var(--ink);text-decoration:none}.lg-row:focus-visible .lg-name,.lg-row:hover .lg-name,.site-footer a:focus-visible,.site-footer a:hover{color:var(--accent)}.lg-row:focus-visible .lg-rule,.lg-row:hover .lg-rule{background:repeating-linear-gradient(to right,var(--accent)0 2px,transparent 2px 6px)}.lg-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:640px){.lg-row{grid-template-columns:auto minmax(0,1fr) auto;row-gap:5px}.lg-rule{display:none}.lg-name,.lg-nr{grid-column:1;grid-row:1}.lg-name{grid-column:2/4}.lg-tag{grid-column:2;grid-row:2;font-size:11px}.lg-n{grid-column:3;grid-row:2;justify-self:end}}.series[id]{scroll-margin-top:calc(var(--header-h) + 16px)}.series[id]:focus{outline:0}.cap-dim{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin-inline:auto}.pv-c__shot:focus-within .cap-dim,.pv-c__shot:hover .cap-dim,.shot:focus-within .cap-dim,.shot:hover .cap-dim{color:var(--accent)}@media (prefers-reduced-motion:no-preference){.cap-dim{transition:color 140ms ease}}@media (max-width:520px){.cap{flex-wrap:wrap}.cap-dim{order:3;flex:1 0 100%;margin-inline:0;text-align:left}}@media (max-width:700px){.pv-c__shot,.series-grid .shot{flex:0 0 84%;max-width:84%;scroll-snap-align:start}.pv-c__shot .ph,.series-grid .shot .ph{width:100%;height:auto}.pv-c__shots,.series-grid{scroll-padding-left:0}.pv-c__cap,.series-grid .cap{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title title""id    dim";row-gap:3px;column-gap:var(--s2);align-items:baseline}.pv-c__cap .pv-c__cap-t,.series-grid .cap>span:first-child{grid-area:title;min-width:0;white-space:normal;color:color-mix(in srgb,var(--muted) 88%,var(--ink))}.pv-c__cap .pv-c__cap-id,.series-grid .cap .cap-id{grid-area:id;justify-self:start}.pv-c__cap .cap-dim,.series-grid .cap .cap-dim{grid-area:dim;justify-self:end;margin-inline:0;text-align:right}}.gal-handoff{padding-top:clamp(24px,4vw,48px)}.handoff{padding:clamp(24px,3vw,40px) clamp(20px,2.6vw,36px) clamp(26px,3vw,40px);max-width:min(560px,100%);margin-left:auto}.ho-kicker{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin:0 0 var(--s2)}.handoff .sheet-title{margin:0 0 var(--s2);font-family:var(--sans);font-weight:600;letter-spacing:-.015em;line-height:1.15;font-size:clamp(1.1rem,1.1vw + .8rem,1.45rem);color:var(--panel-ink)}.ho-text{margin:0 0 var(--s3);color:var(--panel-muted);line-height:1.6;max-width:44ch}.ho-link{display:inline-flex;align-items:center;gap:.7em;min-height:44px;padding:0 var(--s3);font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line-fn);background:0 0;transition:border-color 180ms ease,background-color 180ms ease}.ho-link:focus-visible,.ho-link:hover{text-decoration:none;border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.ho-link .ho-arrow{font-size:14px;line-height:1}@media (prefers-reduced-motion:no-preference){.ho-link .ho-arrow{transition:transform 220ms var(--ease-rule)}.ho-link:focus-visible .ho-arrow,.ho-link:hover .ho-arrow{transform:translate(2px,-2px)}}.pv-c{display:block}.pv-c__row{position:static;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:clamp(12px,2vw,24px);row-gap:.35rem;padding-bottom:var(--s3);margin-bottom:var(--s4);border-bottom:1px solid var(--panel-edge);background:0 0}.pv-c__glyph{grid-column:1;grid-row:1/3;width:clamp(44px,5vw,64px);height:clamp(44px,5vw,64px);margin:0;color:var(--accent);opacity:.9;display:inline-flex;align-items:center;justify-content:center}.pv-c__mark{width:100%;height:100%}.pv-c__mark path{fill:currentColor}.pv-c__nn{grid-column:2;grid-row:1;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.16em;color:var(--accent);font-variant-numeric:tabular-nums}.pv-c__title{grid-column:2;grid-row:2;margin:0;font-weight:600;letter-spacing:-.022em;line-height:1.05;font-size:clamp(1.4rem,2.2vw + .7rem,2.4rem);color:var(--panel-ink)}.pv-c__disc{display:none}.pv-c__loc,.pv-c__yr{grid-column:3;justify-self:end;text-align:right;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--panel-muted);white-space:nowrap}.pv-c__loc,.pv-c__meta dd,.pv-c__type,.pv-c__yr{font-variant-numeric:tabular-nums}.pv-c__meta dt,.pv-c__type{font-family:var(--mono);color:var(--panel-muted)}.pv-c__type{justify-self:end;text-align:right;font-size:11px;letter-spacing:.06em;white-space:nowrap}.pv-c__loc{grid-row:1}.pv-c__yr{grid-row:2}.pv-c__type{grid-row:3;grid-column:3}.pv-c__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:var(--s4);margin-top:0}.pv-c__concept{grid-column:1/7;order:1}.pv-c__meta{grid-column:7/13;order:1;align-self:start}.pv-c__grid>.strip-note{grid-column:1/-1;order:2;margin-bottom:0}.pv-c__shots{grid-column:1/-1;order:3}.pv-c__rail{display:none}.pv-c__lede{margin:0 0 var(--s2);font-size:clamp(1rem,.4vw + .95rem,1.15rem);line-height:1.5;max-width:46ch;color:var(--panel-ink)}.pv-c__body{margin:0;color:var(--panel-muted);line-height:1.6;max-width:46ch}.pv-c__meta{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:0;border-top:1px solid var(--panel-edge)}.pv-c__meta>div{padding:.65rem 1rem .65rem 0;border-bottom:1px solid color-mix(in srgb,var(--panel-edge) 60%,transparent)}.pv-c__meta dt{font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.3rem}.pv-c__meta dd{margin:0;font-size:.92rem;color:var(--panel-ink)}@media (max-width:900px){.pv-c__grid{display:block}.pv-c__concept{margin-bottom:var(--s4)}.pv-c__meta{margin-top:var(--s4)}.pv-c__row{grid-template-columns:auto minmax(0,1fr)}.pv-c__loc,.pv-c__type,.pv-c__yr{grid-column:2;justify-self:start;text-align:left}.pv-c__loc{grid-row:3}.pv-c__yr{grid-row:4}.pv-c__type{grid-row:5}.pv-c__glyph{grid-row:1/3}}.section-head{padding-block:clamp(56px,8vw,112px) var(--s5);position:relative}.section-head .grid12{align-items:end;row-gap:var(--s3)}.section-head .sh-num{grid-column:1/4}.section-head .sh-title{grid-column:4/9}.section-head .sh-note{grid-column:9/13;color:var(--muted)}.section-head .idx,.si-table thead th{font-size:11px;text-transform:uppercase}.section-head .idx{font-family:var(--mono);letter-spacing:.16em;color:var(--accent)}.section-head .sh-reveal{width:44px;height:44px;color:var(--accent);margin-bottom:var(--s2)}#contact-form label,.section-head .eyebrow{color:var(--muted)}.section-head h2{font-weight:600;letter-spacing:-.03em;line-height:1;font-size:clamp(2rem,4.4vw + .6rem,4rem)}.section-head::after{content:"";display:block;height:1px;margin-top:var(--s4);background:repeating-linear-gradient(to right,var(--hairline)0 8px,transparent 8px 14px)}@media (max-width:760px){.section-head .sh-note,.section-head .sh-num,.section-head .sh-title{grid-column:1/13}}.hero{position:relative;overflow:clip;border-bottom:0}.hero-inner{padding-block:clamp(72px,13vw,168px) clamp(56px,9vw,120px)}.hero .tagline{margin-top:var(--s3);color:var(--ink)}.hero .tagline .sep,.hero-mark{color:var(--accent)}.hero .meta-row{margin-top:var(--s5);color:var(--muted)}.hero-mark{opacity:.92}.contact .c-ghost,.hero-ghost{color:var(--ink);opacity:.05}.band-arch{border-top:0}.discipline-divider{display:none}.contact{padding-block:clamp(64px,9vw,120px) clamp(56px,7vw,96px);overflow:clip}.contact h2{font-size:clamp(2rem,3.6vw + .8rem,3.4rem);letter-spacing:-.03em}.contact .c-intro{grid-column:1/6}.contact .c-form{grid-column:6/13}.contact .c-form.sheet{padding:clamp(24px,3vw,40px) clamp(20px,2.6vw,36px) clamp(28px,3.4vw,44px);align-self:start}.vcard-lay{position:relative;margin-top:clamp(28px,3.4vw,44px);padding-top:clamp(20px,2.4vw,32px);border-top:1px solid var(--hairline);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:min-content 1fr;column-gap:clamp(20px,2.6vw,40px);row-gap:8px;align-items:end}.vc-head{grid-column:1;grid-row:1;color:var(--muted);margin:0}.vcard{grid-column:2;grid-row:1/span 2;align-self:end}@media (max-width:780px){.vcard-lay{grid-template-columns:minmax(0,1fr);align-items:start}.vc-head,.vcard{grid-column:1;grid-row:auto}.vcard{margin-block:4px 10px}}.cf-stamp{position:relative;grid-column:1/-1;grid-row:3;justify-self:start;width:min(300px,100%);margin-top:14px;padding:12px 16px 11px;border:1px solid var(--accent);color:var(--accent);font-family:var(--mono);font-variant-numeric:tabular-nums;text-transform:uppercase;transform:rotate(-1.5deg) scale(1.5);transform-origin:12% 70%;opacity:0;pointer-events:none;visibility:hidden}.cf-stamp::before{content:"";position:absolute;inset:3px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);pointer-events:none}.cf-stamp__head{font-size:12px;letter-spacing:.18em;font-weight:600}.cf-stamp__id{font-size:10px;letter-spacing:.12em;margin-top:3px!important}.cf-stamp__note{font-size:10px;letter-spacing:.1em;margin-top:6px!important;padding-top:5px;border-top:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}.cf-stamp.is-stamped{visibility:visible;opacity:1;transform:rotate(-1.5deg) scale(1);transition:transform 340ms cubic-bezier(.18,.9,.24,1.06),opacity 180ms ease-out}@media (prefers-reduced-motion:reduce){.cf-stamp{transform:rotate(-1.5deg) scale(1)}.cf-stamp.is-stamped{transition:opacity 120ms linear}}@media (max-width:780px){.cf-stamp{grid-column:1;grid-row:auto;order:2;margin-top:4px}.cf-stamp__head{font-size:11px;letter-spacing:.14em}}@media (forced-colors:active){.cf-stamp{border-color:CanvasText;color:CanvasText;background:Canvas}}@media (max-width:880px){.contact .c-form,.contact .c-intro{grid-column:1/13}}.sheet-index{margin-top:clamp(48px,7vw,88px)}.sheet-index .si-head{margin-bottom:var(--s2)}.si-table{width:100%;border-collapse:collapse;text-align:left;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px;letter-spacing:.06em;color:var(--muted)}.si-table td,.si-table th{padding:.85rem clamp(10px,1.6vw,20px) .85rem 0;border-bottom:1px solid var(--hairline);vertical-align:baseline;font-weight:400}.si-table thead th{letter-spacing:.12em;color:var(--muted)}.si-code{color:var(--accent);letter-spacing:.14em;white-space:nowrap;width:1%}.si-sheet{font-family:var(--sans);font-size:var(--step-0);font-weight:600;letter-spacing:-.01em;color:var(--ink)}.si-link{color:inherit;text-decoration:none;display:block;padding-block:.85rem;margin-block:-.85rem}.si-link:focus-visible,.si-link:hover,.si-row:hover .si-link{color:var(--accent);text-decoration:none}.si-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.si-table td.si-type{text-transform:uppercase;letter-spacing:.1em}.si-state,.si-year{white-space:nowrap}.si-state{color:var(--accent);letter-spacing:.1em}.pv-c[id]{scroll-margin-top:calc(var(--header-h) + 16px)}.pv-c[id]:focus{outline:0}@media (max-width:640px){.si-type,.si-year{display:none}.si-table td,.si-table th{padding-right:10px}.si-sheet{font-size:var(--step--1)}}.site-footer{border-top:0;padding-block:clamp(56px,8vw,104px) clamp(28px,4vw,48px);color:var(--ink);position:relative}.site-footer .f-info,.site-footer .f-meta,.site-footer a{color:var(--muted)}.site-footer .f-mark .mark{color:var(--accent);width:44px;height:44px}.site-footer .footer-credit-row{border-top-color:var(--hairline)}.site-footer .footer-credit img{filter:invert(1)}.loop-seam{position:relative;margin-top:clamp(32px,5vw,64px);padding-top:clamp(24px,3vw,40px);padding-bottom:clamp(16px,2vw,24px);border-top:1px solid var(--hairline);display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap}.loop-back,.loop-seam__label{font-family:var(--mono);text-transform:uppercase}.loop-seam__label{font-size:11px;letter-spacing:.16em;color:var(--muted);font-variant-numeric:tabular-nums}.loop-back{display:inline-flex;align-items:center;gap:.75em;min-height:44px;padding:0 var(--s3)0 var(--s2);font-size:12px;letter-spacing:.12em;color:var(--ink);border:1px solid var(--line-fn);border-radius:2px;background:color-mix(in srgb,var(--ink) 3%,transparent);transition:border-color 180ms ease,color 180ms ease,background-color 180ms ease}.loop-back:focus-visible,.loop-back:hover{color:var(--accent);border-color:var(--accent);text-decoration:none;background:color-mix(in srgb,var(--accent) 8%,transparent)}.loop-back .lb-arrow{color:var(--accent);font-size:14px;line-height:1}@media (prefers-reduced-motion:no-preference){.loop-back .lb-arrow{transition:transform 240ms var(--ease-rule)}.loop-back:focus-visible .lb-arrow,.loop-back:hover .lb-arrow{transform:translateY(-2px)}}:root{--ch-seed:var(--accent-seed, #2f5d7c);--ch-lift:#8fb8d6;--ch-idle:.72;--ch-ink:var(--ch-seed);--ch-halo:#fbf9f4;--ch-tick:3px;--ch-corner:18px;--ch-corner-w:1.5px;--ch-corner-inset:10px;--vf-ink:#ffffff;--vf-shadow:drop-shadow(0 0 1px rgba(0,0,0,.65)) drop-shadow(0 0 3px rgba(0,0,0,.3));--dwg-mm-per-px:10;--ch-over-photo:measure;--ch-reduced:off;--cur-none:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=") 0 0, none}@supports (color:oklch(from red l c h)){:root{--ch-lift:oklch(from var(--ch-seed) .76 c h)}}:root{--rd-bg:#fbf9f4;--rd-ink:#201d18;--rd-ink2:#5f5849;--rd-accent:#2a5570;--rd-edge:#201d18}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--rd-bg:#14130f;--rd-ink:#f1ede2;--rd-ink2:#b3aa99;--rd-accent:#88b8da;--rd-edge:#f1ede2}}:root[data-theme=dark]{--rd-bg:#14130f;--rd-ink:#f1ede2;--rd-ink2:#b3aa99;--rd-accent:#88b8da;--rd-edge:#f1ede2}body.ch-t-light{--ch-ink:var(--ch-seed);--ch-halo:#fbf9f4}body.ch-t-dark{--ch-ink:var(--ch-lift);--ch-halo:rgba(0,0,0,.62)}:root[data-theme=dark] body.ch-t-light{--ch-ink:var(--accent-deep, #1e4c6a)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) body.ch-t-light{--ch-ink:var(--accent-deep, #1e4c6a)}}body.ch-g-paper{--ch-idle:.72}body.ch-g-sheet{--ch-idle:.82}body.ch-t-dark.ch-g-paper{--ch-idle:.55}body.ch-g-dark{--ch-ink:#ffffff;--ch-halo:rgba(0,0,0,.62);--ch-idle:.62}body.ch-plane-photo{--ch-idle:.35}.crosshair{position:fixed;inset:0;z-index:95;pointer-events:none;opacity:0;contain:layout style}.crosshair[hidden]{display:none}body.ch-focus .crosshair,body.crosshair-on .crosshair{opacity:1}.ch-x,.ch-y{position:absolute;top:0;left:0;background:color-mix(in srgb,var(--ch-ink) calc(var(--ch-idle)*100%),transparent);transition:background-color 90ms ease}.ch-x{right:0;width:100%;height:1px;transform:translate3d(0,-100px,0);box-shadow:0-1px 0 var(--ch-halo),0 1px 0 var(--ch-halo)}.ch-y{bottom:0;width:1px;height:100%;transform:translate3d(-100px,0,0);box-shadow:-1px 0 0 var(--ch-halo),1px 0 0 var(--ch-halo)}body.crosshair-on .ch-point,body.crosshair-on .ch-read,body.crosshair-on .ch-x,body.crosshair-on .ch-y{will-change:transform}body.ch-calib .ch-x{transition:transform 280ms cubic-bezier(.16,1,.3,1)}body.ch-calib .ch-y{transition:transform 280ms cubic-bezier(.16,1,.3,1) 60ms}.ch-point{transition:opacity 200ms ease;position:absolute;top:0;left:0;width:0;height:0;transform:translate3d(-100px,-100px,0)}body.ch-calib .ch-point,body.ch-calib .ch-read,body.ch-fade-photo.ch-sucher .ch-x,body.ch-fade-photo.ch-sucher .ch-y{opacity:0}body.ch-sucher .ch-x{right:auto;width:240px}body.ch-sucher .ch-y{bottom:auto;height:240px}.ch-stub-h,.ch-stub-v{position:absolute;background:var(--ch-ink)}.ch-stub-h{left:-28px;top:0;width:56px;height:1px;box-shadow:0-1px 0 var(--ch-halo),0 1px 0 var(--ch-halo)}.ch-stub-v{top:-28px;left:0;width:1px;height:56px;box-shadow:-1px 0 0 var(--ch-halo),1px 0 0 var(--ch-halo)}.ch-beam,.ch-box{filter:drop-shadow(0 0 1px var(--ch-halo))}.ch-box{position:absolute;left:-4px;top:-4px;width:9px;height:9px;background-repeat:no-repeat;background-image:linear-gradient(var(--ch-ink),var(--ch-ink)),linear-gradient(var(--ch-ink),var(--ch-ink)),linear-gradient(var(--ch-ink),var(--ch-ink)),linear-gradient(var(--ch-ink),var(--ch-ink)),linear-gradient(var(--ch-ink),var(--ch-ink)),linear-gradient(var(--ch-ink),var(--ch-ink)),linear-gradient(var(--ch-ink),var(--ch-ink)),linear-gradient(var(--ch-ink),var(--ch-ink));background-position:left top,left top,right top,right top,left bottom,left bottom,right bottom,right bottom;background-size:var(--ch-tick) 1px,1px var(--ch-tick),var(--ch-tick) 1px,1px var(--ch-tick),var(--ch-tick) 1px,1px var(--ch-tick),var(--ch-tick) 1px,1px var(--ch-tick);transition:background-size 90ms ease}body.crosshair-hot{--ch-tick:5px}.ch-beam{left:0;top:-6px;width:1px;height:12px;display:none}.ch-beam,.ch-beam::after,.ch-beam::before,.ch-m{position:absolute;background:var(--ch-ink)}.ch-beam::after,.ch-beam::before{content:"";left:-2px;width:5px;height:1px}.ch-beam::before{top:0}.ch-beam::after{bottom:0}body.ch-text .ch-box{display:none}.ch-m{display:block;opacity:0;filter:drop-shadow(0 0 1px var(--ch-halo));transition:opacity 220ms cubic-bezier(.2,.6,.2,1)}.ch-m-l,.ch-m-r{left:-6px;top:0;width:4px;height:1px}.ch-m-r{left:3px}.ch-m-b,.ch-m-t{left:0;top:-6px;width:1px;height:4px}.ch-m-b{top:3px}body.ch-sucher .ch-m{opacity:1}body.ch-sucher .ch-stub-h,body.ch-sucher .ch-stub-v{opacity:0;transition:opacity 220ms cubic-bezier(.2,.6,.2,1)}body.ch-sucher .ch-read,body.ch-sucher .ch-snap,body.ch-sucher .ch-snap.is-on{opacity:0}.ch-read span,body.ch-text .ch-beam{display:block}body.ch-form .ch-beam,body.ch-form .ch-box,body.ch-form .ch-stub-h,body.ch-form .ch-stub-v{display:none}.ch-read{position:absolute;top:0;left:0;transform:translate3d(-200px,-200px,0);font-family:var(--mono);font-size:11px;line-height:1.5;letter-spacing:.08em;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap;color:var(--rd-ink);background:var(--rd-bg);border:1px solid var(--rd-edge);border-radius:0;padding:3px 7px 4px;box-shadow:2px 2px 0 color-mix(in srgb,var(--rd-edge) 18%,transparent);contain:layout style;pointer-events:none;transition:opacity 120ms ease}.ch-read .ch-read__l1 .rd-code,.ch-read .ch-read__l1 .rd-txt{display:inline}.ch-read .rd-code{color:var(--rd-accent)}.ch-read .ch-read__l2:empty,.ch-read .rd-code:empty{display:none}.ch-read .ch-read__l2{color:var(--rd-ink2)}.ch-read:empty{display:none}.ch-read::before{content:"";position:absolute;left:-1px;top:-1px;width:6px;height:6px;border-top:1px solid var(--rd-accent);border-left:1px solid var(--rd-accent)}@media (prefers-reduced-motion:reduce){.ch-read{transition:none}}#ch-dim,.ch-snap{position:absolute;opacity:0}.ch-snap{top:0;left:0;width:5px;height:5px;margin:-2px 0 0-2px;background:var(--ch-ink);transition:opacity 90ms cubic-bezier(.2,.8,.2,1);transform:translate3d(-100px,-100px,0)}.ch-snap.is-on{opacity:1}.ch-snap--mid{border-radius:50%}.ch-snap--cross{background:0 0;box-shadow:none;background-image:linear-gradient(45deg,transparent 43%,var(--ch-ink) 43% 57%,transparent 57%),linear-gradient(-45deg,transparent 43%,var(--ch-ink) 43% 57%,transparent 57%);width:7px;height:7px;margin:-3px 0 0-3px}#ch-dim{inset:0;width:100%;height:100%;overflow:visible;shape-rendering:crispEdges;contain:layout paint style;transition:opacity 100ms ease}body.ch-dim-on #ch-dim{opacity:1;transition-duration:140ms}#ch-dim .dim-line{stroke:var(--ch-ink);stroke-opacity:var(--dim-a-line,.55);stroke-width:1}#ch-dim .dim-ext{stroke:var(--ch-ink);stroke-opacity:var(--dim-a-ext,.32);stroke-width:1;stroke-dasharray:2 2}#ch-dim .dim-tick{stroke:var(--ch-ink);stroke-opacity:var(--dim-a-tick,.9);stroke-width:1}#ch-dim text{fill:var(--ch-ink);paint-order:stroke;stroke:var(--ch-halo);stroke-width:2px;stroke-linejoin:round;font-family:var(--mono);font-size:10px;letter-spacing:.06em;font-variant-numeric:tabular-nums;shape-rendering:auto}@media (hover:hover) and (pointer:fine){body.crosshair-on{cursor:var(--cur-none)}body.crosshair-on :is(a,button,summary,label,[role=button],.lb-trigger,.lb-btn,.lb-backdrop){cursor:inherit}body.crosshair-on #contact-form button[type=submit]{cursor:inherit}body.crosshair-on :is(input,textarea,select,option){cursor:auto}body.crosshair-on :is(input:is([type=text],[type=email],[type=tel],[type=search],[type=url]),textarea){cursor:text}}@media (hover:none),(pointer:coarse),(prefers-reduced-motion:reduce),(forced-colors:active){.crosshair,.viewfinder{display:none!important}}@media print{.crosshair,.viewfinder,[data-echo]{display:none!important}body.crosshair-on{cursor:auto!important}}@media (forced-colors:active){body.crosshair-on{cursor:auto}body.crosshair-on :is(a,button,summary,label,[role=button],.lb-trigger,.lb-btn,.lb-backdrop){cursor:auto}}.ch-toggle{display:flex;align-items:center;gap:.75em;width:100%;min-height:44px;padding:10px var(--s3);background:0 0;border:0;border-top:1px solid var(--hairline);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:left}.ch-toggle:focus-visible,.ch-toggle:hover{color:var(--accent)}.ch-toggle .ch-toggle__dot{font-size:9px;line-height:1;margin-inline-start:auto}.vf-c,.viewfinder{position:absolute;opacity:0}.viewfinder{inset:0;pointer-events:none;z-index:3;filter:var(--vf-shadow);transition:opacity 180ms cubic-bezier(.2,.6,.2,1)}.viewfinder[hidden]{display:none}.vf-r.is-live,.viewfinder.is-on{opacity:1}.vf-c{width:var(--ch-corner);height:var(--ch-corner)}.vf-c::after,.vf-c::before{content:"";position:absolute;background:var(--vf-ink)}.vf-c::before{width:100%;height:var(--ch-corner-w)}.vf-c::after{width:var(--ch-corner-w);height:100%}.vf-tl,.vf-tr{top:var(--ch-corner-inset)}.vf-tl{left:var(--ch-corner-inset)}.vf-tl::after,.vf-tl::before{left:0;top:0}.vf-tr{right:var(--ch-corner-inset)}.vf-tr::after,.vf-tr::before{right:0;top:0}.vf-bl,.vf-br{bottom:var(--ch-corner-inset)}.vf-br{right:var(--ch-corner-inset)}.vf-br::after,.vf-br::before{right:0;bottom:0}.vf-bl{left:var(--ch-corner-inset)}.vf-bl::after,.vf-bl::before{left:0;bottom:0}.viewfinder.is-on .vf-c{opacity:1;transition:opacity 260ms cubic-bezier(.2,.6,.2,1)}.viewfinder.is-on .vf-tl{transition-delay:0ms}.viewfinder.is-on .vf-tr{transition-delay:25ms}.viewfinder.is-on .vf-br{transition-delay:50ms}.viewfinder.is-on .vf-bl{transition-delay:75ms}.vf-g{position:absolute;background:var(--vf-ink);opacity:0;transition:opacity 300ms ease-out}.vf-g1,.vf-g2{top:0;bottom:0;width:1px}.vf-g1{left:33.333%}.vf-g2{left:66.666%}.vf-g3,.vf-g4{left:0;right:0;height:1px}.vf-g3{top:33.333%}.vf-g4{top:66.666%}.viewfinder.is-composing .vf-g{opacity:.14}.vf-r,.vf-read{position:absolute}.vf-read{left:calc(var(--ch-corner-inset) + var(--ch-corner) + 8px);right:calc(var(--ch-corner-inset) + var(--ch-corner) + 8px);bottom:calc(var(--ch-corner-inset) - 2px);height:12px;overflow:hidden}.vf-r{left:0;bottom:0;font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--vf-ink);font-variant-numeric:tabular-nums;white-space:pre;opacity:0;transition:opacity 140ms ease}.site-header.is-scrolled{background:color-mix(in srgb,var(--bg) 94%,transparent);border-bottom-color:var(--hairline)}.site-here .sh-tick{background:var(--accent)}.name-menu{background:var(--bg);border-color:var(--hairline);border-radius:2px}.name-row[aria-current=page]{background:color-mix(in srgb,var(--accent) 10%,transparent)}.about .watermark,.proj-campus .proj-mark,.pv-c .watermark{display:none}.about .ink-plate{background:color-mix(in srgb,var(--panel) 60%,#fff);border-color:var(--panel-edge)}.about .a-label .idx{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.about .a-body .lede+.lede,.about .a-side{color:var(--panel-muted)}.about h2{font-size:clamp(1.8rem,3vw + .8rem,3rem)}.about .a-body .lede,.about h2{color:var(--panel-ink)}.vcard{position:relative;flex:none;inline-size:85mm;block-size:55mm;--card-ink:#FAFAF7;background:var(--accent-seed);color:var(--card-ink);box-shadow:0 10px 24px -16px rgba(27,25,21,.55);padding:7mm 7mm 6mm;display:flex;flex-direction:column;overflow:hidden}.vcard .vc-mark{inline-size:11mm;block-size:11mm;color:var(--card-ink);opacity:.92;margin-block-end:auto}.vcard .vc-name{font-family:var(--sans);font-weight:600;letter-spacing:-.01em;font-size:15px;line-height:1.1;color:var(--card-ink);margin:0 0 2px}.vcard .vc-lines,.vcard .vc-role{font-family:var(--mono);color:var(--card-ink)}.vcard .vc-role{font-size:9px;letter-spacing:.14em;text-transform:uppercase;opacity:.78;margin:0 0 4mm}.vcard .vc-lines{font-size:10px;line-height:1.6;letter-spacing:.02em;opacity:.92;margin:0;font-variant-numeric:tabular-nums}@media screen and (max-width:640px){.contact .c-form{padding-inline:14px}.vcard{inline-size:min(240px,68vw);block-size:auto;aspect-ratio:85/55;padding:5mm 5mm 4.5mm}.vcard .vc-mark{inline-size:9mm;block-size:9mm}.vcard .vc-role{margin-block-end:3mm}}.vc-crop{display:none}@media print{.vcard{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;break-inside:avoid}.vc-crop{display:block;position:absolute;inline-size:4mm;block-size:4mm;pointer-events:none}.vc-crop::after,.vc-crop::before{content:"";position:absolute;background:#1b1915}.vc-crop::before{inline-size:4mm;block-size:.25mm}.vc-crop::after{inline-size:.25mm;block-size:4mm}.vc-crop--tl{inset-block-start:-5mm;inset-inline-start:-5mm}.vc-crop--tl::before{inset-block-end:0;inset-inline-start:0}.vc-crop--tl::after{inset-inline-end:0;inset-block-start:0}.vc-crop--tr{inset-block-start:-5mm;inset-inline-end:-5mm}.vc-crop--tr::before{inset-block-end:0;inset-inline-end:0}.vc-crop--bl{inset-block-end:-5mm;inset-inline-start:-5mm}.vc-crop--bl::before,.vc-crop--tr::after{inset-block-start:0;inset-inline-start:0}.vc-crop--bl::after{inset-inline-end:0;inset-block-end:0}.vc-crop--br{inset-block-end:-5mm;inset-inline-end:-5mm}.vc-crop--br::before{inset-block-start:0;inset-inline-end:0}.vc-crop--br::after{inset-inline-start:0;inset-block-end:0}.vcard-lay{margin:8mm 0}}.vc-open{position:absolute;inset:0;z-index:1;background:0 0;border:0;padding:0;margin:0;cursor:pointer;-webkit-appearance:none;appearance:none}.vc-open:focus-visible{outline:2px solid #fafaf7;outline-offset:-4px}@media (prefers-reduced-motion:no-preference){.vcard{transition:transform .18s ease,box-shadow .18s ease}.vcard:has(.vc-open:focus-visible),.vcard:has(.vc-open:hover){transform:translateY(-2px);box-shadow:0 14px 28px -16px rgba(27,25,21,.6)}}.vcard.is-lifted{background:0 0;box-shadow:none}.vcard.is-lifted>*{visibility:hidden}.vcard.is-lifted::after{content:"";position:absolute;inset:0;border:1px dashed color-mix(in srgb,var(--panel-ink) 45%,transparent);pointer-events:none}.vc-modal{position:fixed;inset:0;z-index:88;--vc-w:min(560px, 88vw, calc((100vh  - 220px) * 85 / 55));--vc-w:min(560px, 88vw, calc((100dvh - 220px) * 85 / 55));--vc-h:calc(var(--vc-w) * 55 / 85);--u:calc(var(--vc-w) / 85);--vc-d:calc(var(--u) * .9);--vc-ink:#FAFAF7;--vc-core:#EDE6D3;--vc-back:#EFE7D6;overscroll-behavior:contain}.vc-modal[hidden]{display:none}.vc-modal:focus{outline:0}.vc-modal__blur{position:absolute;inset:0;pointer-events:none;opacity:0;-webkit-backdrop-filter:blur(16px) saturate(.78);backdrop-filter:blur(16px) saturate(.78)}.vc-modal.is-open .vc-modal__blur{opacity:1}@media (prefers-reduced-motion:no-preference){.vc-modal__blur{transition:opacity 280ms var(--ease-rule)}}.vc-modal__backdrop{position:absolute;inset:0;background:rgba(13,12,10,.52);opacity:0;cursor:zoom-out}:root[data-theme=dark] .vc-modal__backdrop{background:rgba(0,0,0,.62)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .vc-modal__backdrop{background:rgba(0,0,0,.62)}}@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){.vc-modal__blur{display:none}.vc-modal__backdrop{background:rgba(13,12,10,.94)}:root[data-theme=dark] .vc-modal__backdrop{background:rgba(0,0,0,.96)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .vc-modal__backdrop{background:rgba(0,0,0,.96)}}}.vc-modal.is-flat .vc-modal__blur{display:none}.vc-modal.is-flat .vc-modal__backdrop{background:rgba(13,12,10,.94)}:root[data-theme=dark] .vc-modal.is-flat .vc-modal__backdrop{background:rgba(0,0,0,.96)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .vc-modal.is-flat .vc-modal__backdrop{background:rgba(0,0,0,.96)}}.vc-modal__stage{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(16px,3vh,28px);padding:max(24px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom))}.vc-fly{position:relative;width:var(--vc-w);height:var(--vc-h);perspective:calc(var(--vc-w)*2.4);cursor:grab;touch-action:none}.vc-fly.is-held{cursor:grabbing}.vc-fly::before{content:"";position:absolute;inset:calc(var(--u)*-7)}@media (pointer:coarse){.vc-fly::before{inset:calc(var(--u)*-12)}}.vc-fly__shadow{position:absolute;left:5%;right:5%;bottom:calc(var(--u)*-10);height:calc(var(--u)*8);background:radial-gradient(50% 50%at 50% 50%,rgba(0,0,0,.55),transparent 70%);opacity:0;pointer-events:none}.card3d,.card3d__face{position:absolute;inset:0}.card3d{transform-style:preserve-3d}.card3d__face{backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;display:flex;flex-direction:column;padding:calc(7*var(--u)) calc(7*var(--u)) calc(6*var(--u))}.card3d__face--front{transform:translateZ(calc(var(--vc-d)/2));background:var(--accent-seed);color:var(--vc-ink)}.card3d__face--back{transform:rotateY(180deg) translateZ(calc(var(--vc-d)/2));background:var(--vc-back);color:#1b1915}.card3d__edge{position:absolute;left:50%;top:50%;background:var(--vc-core);pointer-events:none}.card3d__edge--b,.card3d__edge--t{width:var(--vc-w);height:var(--vc-d)}.card3d__edge--l,.card3d__edge--r{width:var(--vc-d);height:var(--vc-h)}.card3d__edge--t{transform:translate(-50%,-50%) rotateX(90deg) translateZ(calc(var(--vc-h)/2));background:color-mix(in srgb,var(--vc-core) 88%,#fff)}.card3d__edge--b{transform:translate(-50%,-50%) rotateX(-90deg) translateZ(calc(var(--vc-h)/2));background:color-mix(in srgb,var(--vc-core) 82%,#000)}.card3d__edge--l{transform:translate(-50%,-50%) rotateY(-90deg) translateZ(calc(var(--vc-w)/2))}.card3d__edge--r{transform:translate(-50%,-50%) rotateY(90deg) translateZ(calc(var(--vc-w)/2))}.card3d .c3-mark{width:calc(11*var(--u));height:calc(11*var(--u));color:var(--vc-ink);opacity:.92;margin-block-end:auto}.card3d .c3-name{font-family:var(--sans);font-weight:600;letter-spacing:-.01em;font-size:calc(4*var(--u));line-height:1.1;margin:0 0 calc(.6*var(--u));text-shadow:0 1px 0 rgba(255,255,255,.1),0-1px 0 rgba(0,0,0,.18)}.card3d .c3-role{font-family:var(--mono);font-size:calc(2.4*var(--u));letter-spacing:.14em;text-transform:uppercase;opacity:.78;margin:0 0 calc(4*var(--u))}.card3d .c3-lines,.card3d .c3-tb dd{font-family:var(--mono);font-size:calc(2.6*var(--u));letter-spacing:.02em;font-variant-numeric:tabular-nums;margin:0}.card3d .c3-lines{line-height:1.6;opacity:.92}.card3d__sheen,.card3d__trim{position:absolute;pointer-events:none}.card3d__trim{inset:calc(3*var(--u));border:1px solid rgba(250,250,247,.18)}.card3d__sheen{left:-50%;top:-50%;width:200%;height:200%;background:radial-gradient(closest-side,rgba(255,255,255,.28),rgba(255,255,255,.07) 42%,transparent 70%);opacity:0}.card3d .c3-tb dt,.card3d .c3-tb-head{font-family:var(--mono);text-transform:uppercase}.card3d .c3-tb-head{font-size:calc(2.4*var(--u));letter-spacing:.18em;margin:0 0 calc(2*var(--u));padding-bottom:calc(1.5*var(--u));border-bottom:1px solid color-mix(in srgb,#1b1915 30%,transparent)}.card3d .c3-tb{margin:0 0 auto}.card3d .c3-tb>div{display:grid;grid-template-columns:calc(16*var(--u)) 1fr;align-items:baseline;padding:calc(1.4*var(--u))0;border-bottom:1px solid color-mix(in srgb,#1b1915 14%,transparent)}.card3d .c3-tb dt{font-size:calc(2.1*var(--u));letter-spacing:.14em;color:#5f5849;margin:0}.card3d .c3-tb dd{overflow-wrap:anywhere}.card3d .c3-mail{color:var(--accent-seed);text-decoration:underline;text-underline-offset:.18em}.card3d .c3-mail:focus-visible{outline:2px solid var(--accent-seed);outline-offset:2px}.card3d .c3-tb-foot{justify-content:space-between;gap:calc(3*var(--u));margin:calc(3*var(--u))0 0;font-family:var(--mono);font-size:calc(2.1*var(--u));letter-spacing:.08em;color:#5f5849;font-variant-numeric:tabular-nums}.card3d .c3-dim,.card3d .c3-tb-foot,.vc-modal__ui{display:flex;align-items:center}.card3d .c3-dim{gap:calc(1.5*var(--u));flex:1;min-width:0}.card3d .c3-dim__line{position:relative;flex:1;height:1px;background:currentColor}.card3d .c3-dim__line::after,.card3d .c3-dim__line::before{content:"";position:absolute;top:calc(-1.1*var(--u));width:1px;height:calc(2.2*var(--u));background:currentColor}.card3d .c3-dim__line::before{left:0}.card3d .c3-dim__line::after{right:0}.vc-modal__ui{flex-direction:column;gap:12px;opacity:0;transition:opacity .18s ease .12s;position:relative;z-index:1}.vc-modal.is-open .vc-modal__ui{opacity:1}.vc-modal__controls{display:flex;gap:10px}.vc3-btn{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#fafaf7;background:0 0;border:1px solid rgba(250,250,247,.45);min-height:44px;padding:10px 18px;cursor:pointer;-webkit-appearance:none;appearance:none}.vc3-btn:hover{border-color:#fafaf7}.vc3-btn:focus-visible{outline:2px solid var(--accent-lift);outline-offset:2px}.vc3-btn[aria-pressed=true]{background:rgba(250,250,247,.12)}@media (prefers-reduced-motion:reduce){.card3d,.vc-fly{transform:none!important}.vc-fly__shadow{opacity:.4!important}.card3d__sheen{opacity:.12!important;transform:none!important}.card3d__edge,.vcard.is-lifted::after{display:none}.card3d__face{transform:none;backface-visibility:visible;-webkit-backface-visibility:visible}.card3d[data-face=back] .card3d__face--front,.card3d[data-face=front] .card3d__face--back{visibility:hidden}.vc-modal__ui{transition:none}.vcard.is-lifted>*{visibility:visible}}@media (pointer:coarse){.vc-modal{--vc-w:min(520px, 92vw, calc((100dvh - 240px) * 85 / 55))}}@media (forced-colors:active){.vc-modal__backdrop{background:Canvas}.vc-modal__blur{display:none}.vc3-btn{border-color:ButtonText;color:ButtonText}}@media print{.vc-modal{display:none!important}}#page,[data-echo]{overflow-anchor:none}.site-header .brand .mark-wrap{transition:transform 140ms ease;transform-origin:left center}.site-header.is-scrolled .brand .mark-wrap,.site-header.is-scrolled.is-condensed .brand .mark-wrap{width:var(--mark-size,44px);height:var(--mark-size,44px);transform:scale(.909)}.site-header.is-scrolled.is-condensed .brand .mark-wrap{transform:scale(.727)}