.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{color-scheme:light;--bg: oklch(.975 .004 264);--surface: oklch(.995 .0015 264);--surface-2: oklch(.965 .006 265);--surface-sunken: oklch(.948 .007 265);--ink: oklch(.19 .014 265);--ink-soft: oklch(.32 .016 264);--muted: oklch(.46 .02 263);--faint: oklch(.58 .014 263);--line: oklch(.9 .01 265);--line-strong: oklch(.82 .014 265);--head: oklch(.205 .014 265);--head-ink: oklch(.94 .0071 268.55);--head-muted: oklch(.72 .012 262);--accent: oklch(.62 .135 85.38);--accent-strong: oklch(.56 .145 85.38);--accent-fill: oklch(.95 .03 85.38);--accent-foreground: var(--head);--accent-grad-1: oklch(.72 .115 96);--accent-grad-2: oklch(.6 .14 84);--accent-grad-3: oklch(.52 .135 70);--ok: oklch(.55 .11 159.52);--ok-fill: oklch(.95 .03 159.52);--danger: oklch(.55 .145 27.97);--danger-fill: oklch(.95 .032 27.97);--info: oklch(.58 .098 265.37);--info-fill: oklch(.95 .022 265.37);--radius-sm: 8px;--radius: 12px;--radius-lg: 20px;--radius-full: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 40px;--content-width: 860px;--tap-min: 44px;--font-serif: Georgia, "Times New Roman", serif;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, Menlo, monospace;--text-display: 32px;--text-h1: 30px;--text-h2: 22px;--text-h3: 19px;--text-dek: 18px;--text-body: 16px;--text-small: 14px;--text-label: 13px;--text-micro: 11px}:root[data-theme=dark]{color-scheme:dark;--bg: oklch(.118 .01 264);--surface: oklch(.168 .012 265);--surface-2: oklch(.215 .014 266);--surface-sunken: oklch(.098 .008 264);--ink: oklch(.955 .006 268);--ink-soft: oklch(.84 .008 267);--muted: oklch(.715 .02 262);--faint: oklch(.555 .014 262);--line: oklch(.272 .016 265);--line-strong: oklch(.38 .02 265);--head: oklch(.088 .008 264);--head-ink: oklch(.965 .005 255);--head-muted: oklch(.655 .013 260);--accent: oklch(.86 .115 88);--accent-strong: oklch(.905 .1 94);--accent-fill: oklch(.205 .03 85.38);--accent-foreground: var(--head);--accent-grad-1: oklch(.93 .075 96);--accent-grad-2: oklch(.84 .135 84);--accent-grad-3: oklch(.72 .145 70);--ok: oklch(.79 .105 159.52);--ok-fill: oklch(.245 .038 164.94);--danger: oklch(.78 .12 22);--danger-fill: oklch(.262 .055 21.77);--info: oklch(.775 .095 263.77);--info-fill: oklch(.245 .042 265)}@media(prefers-color-scheme:dark){:root[data-theme=system]{color-scheme:dark;--bg: oklch(.118 .01 264);--surface: oklch(.168 .012 265);--surface-2: oklch(.215 .014 266);--surface-sunken: oklch(.098 .008 264);--ink: oklch(.955 .006 268);--ink-soft: oklch(.84 .008 267);--muted: oklch(.715 .02 262);--faint: oklch(.555 .014 262);--line: oklch(.272 .016 265);--line-strong: oklch(.38 .02 265);--head: oklch(.088 .008 264);--head-ink: oklch(.965 .005 255);--head-muted: oklch(.655 .013 260);--accent: oklch(.86 .115 88);--accent-strong: oklch(.905 .1 94);--accent-fill: oklch(.205 .03 85.38);--accent-foreground: var(--head);--accent-grad-1: oklch(.93 .075 96);--accent-grad-2: oklch(.84 .135 84);--accent-grad-3: oklch(.72 .145 70);--ok: oklch(.79 .105 159.52);--ok-fill: oklch(.245 .038 164.94);--danger: oklch(.78 .12 22);--danger-fill: oklch(.262 .055 21.77);--info: oklch(.775 .095 263.77);--info-fill: oklch(.245 .042 265)}}:root{--gradient-accent: linear-gradient( 135deg, var(--accent-grad-1) 0%, var(--accent-grad-2) 52%, var(--accent-grad-3) 100% )}:root[data-theme=dark],:root:not([data-theme=light]){--shadow-bloom: 0 0 42px oklch(.84 .135 84 / .34), 0 0 120px oklch(.84 .135 84 / .12);--edge-lit: inset 0 1px 0 oklch(1 0 0 / .07)}:root[data-theme=light]{--shadow-bloom: 0 2px 10px oklch(.6 .05 85 / .18);--edge-lit: inset 0 1px 0 oklch(1 0 0 / .6)}:root{--gutter: clamp(16px, 2.2vw, 36px);--ease: cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{box-sizing:border-box}html{background:var(--surface-sunken);scrollbar-color:var(--line-strong) var(--surface-sunken)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}#main,#index,#work,.plate{scroll-margin-top:96px}body{margin:0;background:transparent;color:var(--ink);font-family:var(--font-sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}canvas[data-sky]{position:fixed;inset:0;z-index:-1;width:100%;height:100%;display:block}::selection{background:var(--accent);color:var(--head)}a{color:inherit;text-decoration:underline 1px;text-underline-offset:.22em}a:hover,a:focus-visible{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.statement{font-family:var(--font-serif);text-transform:uppercase;font-weight:400;font-size:clamp(1.7rem,1rem + 2.7vw,3.6rem);line-height:1.08;letter-spacing:-.012em;text-wrap:balance;margin:0;max-width:22ch}.display{font-family:var(--font-serif);text-transform:uppercase;font-weight:400;font-size:clamp(3rem,11vw,10rem);line-height:.92;letter-spacing:-.03em;margin:0}.display.display--lower,.plate__name.plate__name--lower,.index__name.index__name--lower,.proj__next--lower{text-transform:none}.label{font-family:var(--font-sans);font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.copy{font-size:17px;line-height:1.6;color:var(--ink-soft);max-width:62ch}.lead{font-family:var(--font-serif);font-size:clamp(1.25rem,1rem + 1vw,1.9rem);line-height:1.35;max-width:40ch;color:var(--ink);margin:0}img,video{max-width:100%}.skip{position:fixed;top:var(--space-2);left:var(--gutter);z-index:100;padding:var(--space-2) var(--space-4);background:var(--surface);color:var(--ink);border-radius:var(--radius-sm);transform:translateY(-300%);transition:transform .2s var(--ease)}.skip:focus-visible{transform:none}.site-header{position:fixed;top:0;left:0;right:0;z-index:50;transition:background-color .3s var(--ease)}.site-header.is-scrolled{background:var(--surface-sunken);border-bottom:1px solid var(--line)}.site-header__inner{height:64px;padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:var(--space-6)}.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none}.brand img{height:34px;width:34px;display:block}.brand__name{color:var(--ink)}.nav{display:flex;gap:24px}.nav a{text-decoration:none}.nav a[aria-current=page]{color:var(--accent)}main{display:block}.page{padding:calc(64px + clamp(48px,8vw,120px)) var(--gutter) clamp(64px,10vw,160px)}.hero{position:relative;min-height:100svh;padding:64px var(--gutter) 0;display:flex;flex-direction:column}.hero .statement{max-width:22ch}.hero__sub{margin:24px 0 0;max-width:38ch;font-size:17px;line-height:1.6;color:var(--ink-soft)}.hero__crest{position:absolute;right:var(--gutter);bottom:12vh;width:min(58vh,46vw,620px)}@media(max-width:560px){.site-header__inner{gap:var(--space-3)}.brand__name{display:none}.nav{gap:var(--space-4)}}.hero__foot{position:absolute;left:var(--gutter);right:var(--gutter);bottom:28px;display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4)}.hero__readout{font-variant-numeric:tabular-nums;text-align:right;text-transform:none}@media(max-width:760px){.hero{padding-bottom:32px}.hero__sub{margin-top:32px}.hero__crest{position:static;width:min(78vw,420px);margin-top:clamp(40px,10vw,72px)}.hero__foot{position:static;margin-top:auto;padding-top:clamp(40px,10vw,72px);flex-direction:column;align-items:flex-start}.hero__readout{text-align:left}}.crest{position:relative;aspect-ratio:1}.crest img{display:block}.crest__dim{width:100%;height:100%;opacity:.16}.crest__gilt{position:absolute;inset:0;background:var(--gradient-accent);-webkit-mask-image:url(/brand/ram.png),radial-gradient(circle var(--lamp-r, 240px) at var(--mx, 60%) var(--my, 35%),#000 0%,rgba(0,0,0,.55) 35%,transparent 72%);mask-image:url(/brand/ram.png),radial-gradient(circle var(--lamp-r, 240px) at var(--mx, 60%) var(--my, 35%),#000 0%,rgba(0,0,0,.55) 35%,transparent 72%);-webkit-mask-size:contain,100% 100%;mask-size:contain,100% 100%;-webkit-mask-repeat:no-repeat,no-repeat;mask-repeat:no-repeat,no-repeat;-webkit-mask-position:center,center;mask-position:center,center;-webkit-mask-composite:source-in;mask-composite:intersect intersect;filter:drop-shadow(0 0 28px color-mix(in oklch,var(--accent) 45%,transparent))}.index{border-top:1px solid var(--line);padding:clamp(64px,10vw,160px) var(--gutter)}.index__title{font-family:var(--font-serif);text-transform:uppercase;font-weight:400;font-size:clamp(2rem,4vw,4rem);line-height:1;letter-spacing:-.02em;margin:0 0 clamp(32px,5vw,72px)}.index__rows{list-style:none;margin:0;padding:0}.index__row{display:grid;grid-template-columns:4ch minmax(0,5fr) minmax(0,3fr) minmax(0,3fr) auto;align-items:baseline;column-gap:clamp(16px,2.5vw,48px);padding:clamp(14px,1.6vw,24px) 0;border-top:1px solid var(--line);text-decoration:none;color:inherit;transition:opacity .3s var(--ease)}.index__row:hover,.index__row:focus-visible{color:inherit}.index__rows li:last-child .index__row{border-bottom:1px solid var(--line)}.index__num,.index__cat,.index__stage,.index__years{font-family:var(--font-sans);font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.index__num{color:var(--accent);font-variant-numeric:tabular-nums}.index__name{font-family:var(--font-serif);text-transform:uppercase;font-size:clamp(1.6rem,1rem + 2vw,3rem);line-height:1.05;letter-spacing:-.015em;color:var(--ink);transition:transform .3s var(--ease)}.index__cat,.index__stage,.index__years{transition:color .3s var(--ease)}.index__years{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}@media(hover:hover)and (pointer:fine){.index__rows:has(.index__row:hover) .index__row:not(:hover){opacity:.35}.index__rows:has(.index__row:hover) .index__row:hover .index__name,.index__row:focus-visible .index__name{transform:translate(14px)}.index__rows:has(.index__row:hover) .index__row:hover :is(.index__cat,.index__stage,.index__years),.index__row:focus-visible :is(.index__cat,.index__stage,.index__years){color:var(--ink-soft)}}@media(max-width:899px){.index__row{grid-template-columns:3.5ch auto 1fr auto;column-gap:0;row-gap:var(--space-2)}.index__name{font-size:clamp(1.5rem,6.4vw,2.2rem);grid-column:2 / 4;grid-row:1}.index__years{grid-column:4;grid-row:1;padding-left:12px}.index__cat{grid-column:2;grid-row:2}.index__stage{grid-column:3 / 5;grid-row:2;justify-self:start;text-align:left}.index__stage:before{content:" · "}}.work{padding:clamp(64px,10vw,160px) var(--gutter)}.plate+.plate{margin-top:clamp(72px,12vw,200px)}.plate__head{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:16px}.plate__name{font-family:var(--font-serif);text-transform:uppercase;font-weight:400;font-size:clamp(1.4rem,1rem + 1.4vw,2.2rem);line-height:1.1;margin:0}.plate__name a{text-decoration:underline 1px;text-underline-offset:.22em}.plate__years{text-align:right}.plate__statement{font-family:var(--font-serif);text-transform:uppercase;font-size:clamp(1rem,.9rem + .5vw,1.3rem);line-height:1.3;max-width:60ch;color:var(--ink-soft);margin:8px 0 16px}@media(min-width:900px){.plate__statement{font-size:clamp(1.05rem,.9rem + .6vw,1.45rem);max-width:52ch}}.plate__media{display:block;aspect-ratio:16 / 10;overflow:hidden;background:var(--surface);text-decoration:none}.plate__zoom{height:100%;transform:translateY(var(--py, 0%));will-change:transform}.plate__media img,.plate__media video{display:block;width:100%;height:100%;object-fit:cover;object-position:top}.plate__media--auto{aspect-ratio:auto}.teaser{border-top:1px solid var(--line);padding:clamp(64px,10vw,160px) var(--gutter)}.teaser__link{display:inline-block;margin-top:var(--space-7)}.proj__top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4);flex-wrap:wrap;margin-bottom:clamp(24px,4vw,48px)}.proj__top a{text-decoration:none}.proj .display{margin:0 0 clamp(24px,4vw,48px)}.proj .statement{max-width:26ch;margin-bottom:clamp(32px,6vw,80px)}.proj__grid{display:grid;grid-template-columns:7fr 4fr;gap:clamp(32px,6vw,120px);margin-top:clamp(48px,8vw,120px)}.proj__summary{font-family:var(--font-serif);font-size:clamp(1.25rem,1rem + .9vw,1.7rem);line-height:1.35;color:var(--ink);max-width:30em;margin:0 0 32px}.proj__main p{font-size:17px;line-height:1.6;color:var(--ink-soft);max-width:62ch}.proj__main p+p{margin-top:1.2em}.proj__facts dl{margin:0}.fact{border-top:1px solid var(--line);padding:var(--space-3) 0}.fact dt{color:var(--muted)}.fact dd{margin:var(--space-1) 0 0;font-size:17px;color:var(--ink)}.proj__visit{display:inline-block;margin-top:var(--space-6);font-family:var(--font-serif);text-transform:uppercase;font-size:1.25rem}.frames--phone{display:flex;gap:clamp(12px,2vw,32px);overflow-x:auto;scroll-snap-type:x proximity;margin-top:clamp(48px,8vw,120px);padding-bottom:var(--space-3)}.frame--phone{flex:0 0 auto;margin:0;scroll-snap-align:center}.frame--phone img{display:block;height:min(72vh,720px);width:auto;border-radius:28px}.frame--wide{margin:clamp(48px,8vw,120px) 0 0}.frame--wide img{width:100%;height:auto;object-fit:initial}@media(max-width:900px){.proj__grid{grid-template-columns:1fr}}.proj__next{margin-top:clamp(72px,12vw,200px);border-top:1px solid var(--line);padding-top:var(--space-5)}.proj__next a{display:block;margin-top:var(--space-3);text-decoration:none;transition:color .3s var(--ease)}.proj__next a:hover{color:var(--accent)}.about__grid{display:grid;grid-template-columns:3fr 2fr;gap:clamp(32px,6vw,120px);align-items:start;margin-top:clamp(32px,6vw,80px)}.about__lead .lead+.lead{margin-top:1.2em}.about__crest{position:sticky;top:120px;width:min(36vw,420px);justify-self:end}.about__section{margin-top:clamp(72px,12vw,200px)}.about__section>.label{display:block;margin-bottom:var(--space-7)}.principles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px)}.principles li{border-top:1px solid var(--line);padding-top:var(--space-4)}.principles__num{color:var(--accent)}.principles h3{font-family:var(--font-serif);text-transform:uppercase;font-weight:400;font-size:1.4rem;line-height:1.2;margin:var(--space-3) 0 0}.principles p{margin:var(--space-2) 0 0;font-size:17px;line-height:1.6;color:var(--ink-soft)}.bench{list-style:none;margin:0;padding:0}.bench li{font-family:var(--font-serif);text-transform:uppercase;font-size:clamp(1.6rem,4.2vw,3.8rem);line-height:1.05;color:var(--muted);transition:color .3s var(--ease),translate .3s var(--ease)}.bench li:hover{color:var(--ink);translate:12px 0}@media(hover:none){.bench li{color:var(--ink-soft)}}@media(max-width:900px){.about__grid{grid-template-columns:1fr}.about__crest{display:none}.principles{grid-template-columns:1fr}}.contact__text{margin-top:clamp(24px,4vw,48px)}.contact__mail-row{margin:clamp(32px,6vw,72px) 0 0}.contact__mail{font-family:var(--font-serif);font-size:clamp(1.6rem,5.5vw,5rem);line-height:1.1;text-transform:lowercase;text-decoration:underline 1px;text-underline-offset:.12em;word-break:break-all}.copy-btn{margin-left:var(--space-5);padding:8px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:none;font:inherit;letter-spacing:inherit;color:var(--muted);cursor:pointer;vertical-align:middle}.copy-btn:hover{color:var(--accent);border-color:var(--accent)}.contact__entity{margin-top:clamp(48px,8vw,120px);font-size:17px;line-height:1.7;color:var(--muted)}.contact__entity p{margin:0}.legal__title{margin-bottom:clamp(32px,6vw,80px)}.legal section+section{margin-top:clamp(48px,8vw,96px)}.legal h2{margin:0 0 var(--space-4);font-weight:400}.legal p{font-size:17px;line-height:1.6;color:var(--ink-soft);max-width:62ch;margin:0}.legal address{font-style:normal;font-size:17px;line-height:1.7;color:var(--ink-soft)}.nf__link{display:inline-block;margin-top:var(--space-7)}.site-footer{border-top:1px solid var(--line);padding:clamp(48px,8vw,120px) var(--gutter) 28px;font-family:var(--font-sans);font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);line-height:1.7}.site-footer__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-7)}.site-footer__col p{margin:0}.site-footer a{color:inherit}.site-footer__bottom{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-top:clamp(48px,6vw,96px)}@media(max-width:760px){.site-footer__grid{grid-template-columns:1fr}.site-footer__bottom{flex-direction:column}}.lamp{position:fixed;top:0;left:0;width:620px;height:620px;pointer-events:none;z-index:40;background:radial-gradient(circle,color-mix(in oklch,var(--accent) 16%,transparent) 0%,transparent 62%);mix-blend-mode:screen}.cursor{position:fixed;top:0;left:0;width:92px;height:92px;border-radius:var(--radius-full);background:var(--gradient-accent);display:grid;place-items:center;pointer-events:none;z-index:70;scale:.2;opacity:0;transition:scale .25s var(--ease),opacity .25s var(--ease)}.cursor .label{color:var(--head)}.cursor.is-on{scale:1;opacity:1}@media(pointer:fine){html.js [data-cursor]{cursor:none}}.preview{position:fixed;top:0;left:0;width:320px;height:200px;pointer-events:none;z-index:60;opacity:0;scale:.92;transition:opacity .25s var(--ease),scale .25s var(--ease)}.preview.is-on{opacity:1;scale:1}.preview img{width:100%;height:100%;object-fit:cover;display:block}html.js .statement .w{display:inline-block;overflow:hidden;vertical-align:top}html.js .statement .w>span{display:inline-block;transform:translateY(105%)}html.js .statement--eager .w>span{animation:word-rise .9s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--i) * 28ms)}@keyframes word-rise{0%{transform:translateY(105%)}to{transform:translateY(0)}}html.js .statement.is-in .w>span{transform:translateY(0);transition:transform .9s var(--ease);transition-delay:calc(var(--i) * 28ms)}html.js [data-reveal]{opacity:0;translate:0 24px;transition:opacity .8s var(--ease),translate .8s var(--ease)}html.js [data-reveal].is-in{opacity:1;translate:0 0}html.js .plate__media{transition:clip-path 1.2s var(--ease)}html.js .plate__media:not(.is-in){clip-path:inset(6% 4% 6% 4%)}html.js .plate__media.is-in{clip-path:inset(0 0 0 0)}html.js .plate__media:not(.is-in) img,html.js .plate__media:not(.is-in) video{transform:scale(1.12)}html.js .plate__media.is-in img,html.js .plate__media.is-in video{transform:scale(1);transition:transform 1.2s var(--ease)}@media(prefers-reduced-motion:reduce){html.js .statement .w>span{transform:none;transition:none;animation:none}html.js [data-reveal]{opacity:1;translate:none;transition:none}html.js .plate__media,html.js .plate__media.is-in,html.js .plate__media:not(.is-in){clip-path:none;transition:none}html.js .plate__media img,html.js .plate__media video{transform:none!important;transition:none}.plate__zoom{transform:none}.lamp{display:none}.bench li,.index__row,.index__name,.index__cat,.index__stage,.index__years,.cursor,.preview{transition:none}}
