@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-mono-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/geist-mono-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}.grid{padding-left:var(--grid-margin);padding-right:var(--grid-margin)}.grid,.grid-overlay{display:grid;grid-template-columns:repeat(var(--grid-cols),1fr);column-gap:var(--grid-gutter)}.grid-overlay{position:fixed;inset:0;z-index:200;pointer-events:none;padding:0 var(--grid-margin)}.grid-overlay span{background:#ff00001a}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-family:Geist,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}a{color:inherit}.landing{position:fixed;inset:0;overflow:hidden;background:var(--color-bg);--sphere-lift:2vh}.landing .canvas-host{position:fixed;inset:0;z-index:2;opacity:1}.landing canvas{display:block;touch-action:none}.landing:not(.gallery-mode) .canvas-host{transform:translateY(calc(-1 * var(--sphere-lift)));transition:transform var(--dur-med) var(--ease-out)}.landing.grid-shown .canvas-host{opacity:0;transition:opacity .38s ease}.landing.grid-live .canvas-host{pointer-events:none}.hud{position:fixed;z-index:3;font-family:var(--font-mono);font-size:var(--fs-ui);line-height:1;letter-spacing:-.04em;text-transform:uppercase}.header{top:0;left:0;right:0;height:64px;justify-content:space-between;padding:0 var(--grid-margin)}.header,.menu-btn{display:flex;align-items:center}.menu-btn{gap:10px;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out)}@media (hover:hover) and (pointer:fine){.menu-btn:hover{opacity:.7}}.menu-btn .menu-icon{display:flex;flex-direction:column;justify-content:space-between;width:13px;height:8px}.menu-btn .menu-icon span{display:block;width:100%;height:1px;background:var(--black);transition:transform .25s ease,opacity .2s ease;transform-origin:center}.menu-btn .menu-icon.is-open span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-btn .menu-icon.is-open span:nth-child(2){opacity:0}.menu-btn .menu-icon.is-open span:nth-child(3){transform:translateY(-3.5px) rotate(-45deg)}.brand-logo{position:absolute;left:50%;top:19px;transform:translateX(-50%);display:block;line-height:0}.brand-logo img{height:28px;width:auto;display:block}.partners{display:flex;align-items:center;gap:14px}.partners img{width:auto;object-fit:contain}.partners img:first-child,.partners img:nth-child(2){height:18px}.partners img:nth-child(3){height:26px}.view-switch{position:fixed;top:110px;right:var(--grid-margin);display:flex;gap:6px;z-index:4}.vw-btn{width:var(--icon-btn);height:var(--icon-btn);display:flex;align-items:center;justify-content:center;background:var(--color-surface-2);border:0;border-radius:var(--radius-control);cursor:pointer;transition:background var(--dur-fast) ease,transform var(--dur-press) var(--ease-out)}.vw-btn img{width:16px;height:16px;filter:brightness(0) invert(.83);transition:filter var(--dur-fast) ease}.vw-btn.active img{filter:brightness(0)}:root[data-theme=dark] .vw-btn img{filter:brightness(0) invert(.5)}:root[data-theme=dark] .vw-btn.active img{filter:brightness(0) invert(1)}@media (hover:hover) and (pointer:fine){.vw-btn:hover{background:var(--grey-200)}}.vw-btn:active{transform:scale(.94)}.vw-btn.active{background:var(--color-surface-active)}.side-left{left:var(--grid-margin);top:50%;transform:translateY(-50%);width:180px;text-transform:none;font-size:var(--fs-ui);line-height:1.35}.side-left p{margin:0}.side-left .archive-link{display:inline-block;margin-top:28px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out)}@media (hover:hover) and (pointer:fine){.side-left .archive-link:hover{opacity:.6}}.dock{bottom:22px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--space-12)}.filters{display:flex;flex-wrap:nowrap;justify-content:center;gap:2px}.filter{position:relative;display:flex;align-items:center;gap:6px;padding:6px 9px;border:0;border-radius:var(--radius-pill);background:#0000;font-family:var(--font-mono);font-size:var(--fs-ui);line-height:1;letter-spacing:-.04em;text-transform:uppercase;color:var(--black);opacity:.6;cursor:pointer;backdrop-filter:blur(var(--blur-backdrop));-webkit-backdrop-filter:blur(var(--blur-backdrop));transition:opacity var(--dur-fast) ease,transform var(--dur-press) var(--ease-out)}@media (hover:hover) and (pointer:fine){.filter:hover{opacity:1}}.filter:active{transform:scale(.96)}.filter.active{opacity:1}.filters.filtering .filter:not(.active){opacity:.28}.filter.active:after,.filter.active:before{content:"";position:absolute;inset:0;pointer-events:none}.filter.active:before{background:linear-gradient(var(--black),var(--black)) 0 0 /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--black),var(--black)) 0 0 /var(--mark-weight) var(--mark-arm) no-repeat,linear-gradient(var(--black),var(--black)) 0 100% /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--black),var(--black)) 0 100% /var(--mark-weight) var(--mark-arm) no-repeat}.filter.active:after{background:linear-gradient(var(--black),var(--black)) 100% 0 /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--black),var(--black)) 100% 0 /var(--mark-weight) var(--mark-arm) no-repeat,linear-gradient(var(--black),var(--black)) 100% 100% /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--black),var(--black)) 100% 100% /var(--mark-weight) var(--mark-arm) no-repeat}.filter.active+.filter.active:before{content:none}.filter.active:has(+.filter.active):after{content:none}.filter.active.wrap-end:after,.filter.active.wrap-start:before{content:""!important}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.searchbar{display:flex;gap:6px}.search-input{width:300px;height:var(--control-h);padding:0 12px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-control);font-family:Geist,sans-serif;font-size:var(--fs-14);letter-spacing:-.01em;color:var(--color-text-muted);transition:border-color var(--dur-fast) var(--ease-out)}.search-input::placeholder{color:var(--color-text-muted);opacity:.5}.search-input::-webkit-search-cancel-button{appearance:none}.search-input:focus{outline:none;border-color:color-mix(in srgb,var(--color-text) 32%,#0000)}.search-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap;padding:0 16px;height:var(--control-h);background:var(--white);color:var(--black);border:1px solid var(--color-line);border-radius:var(--radius-control);font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:-.04em;cursor:pointer;transition:background var(--dur-fast) ease,transform var(--dur-press) var(--ease-out)}@media (hover:hover) and (pointer:fine){.search-btn:hover{background:var(--color-surface)}}.search-btn:active{transform:scale(.97)}.foot-left,.foot-right{bottom:22px;height:24px;display:flex;align-items:center;opacity:.6}.foot-left{left:var(--grid-margin)}.foot-right{right:var(--grid-margin);gap:16px}.foot-right a{text-decoration:none;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out)}@media (hover:hover) and (pointer:fine){.foot-right a:hover{opacity:.6}}.menu-panel{position:fixed;top:64px;left:var(--grid-margin);width:300px;background:var(--white);border:1px solid var(--color-line);z-index:70;padding:28px;display:flex;flex-direction:column;justify-content:flex-start;gap:var(--space-6);transform-origin:top;clip-path:inset(0 0 100% 0);pointer-events:none;transition:clip-path var(--dur-menu) var(--ease-out)}.menu-panel.is-open{clip-path:inset(0 0 0 0);pointer-events:auto}.menu-panel>*{opacity:0;transform:translateY(-6px);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.menu-panel.is-open>*{opacity:1;transform:none;transition-delay:.08s}.menu-nav{display:flex;flex-direction:column;gap:var(--space-1)}.menu-nav a{font-family:Geist,sans-serif;font-size:var(--fs-24);font-weight:500;letter-spacing:-.02em;color:var(--color-text);text-decoration:none;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out)}.menu-nav a:hover{opacity:.6}.theme-toggle{display:inline-flex;align-items:center;gap:7px;margin-bottom:5px}.th-sep{width:1px;height:14px;background:var(--color-line)}.th-opt{display:inline-flex;padding:0;background:#0000;border:0;color:var(--color-text-dim);opacity:.45;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.th-opt svg{width:15px;height:15px;display:block}.th-opt:hover{opacity:.8}.th-opt.active{color:var(--color-text);opacity:1}.lang-switch{display:inline-flex;align-items:center;gap:7px;margin-bottom:5px}.lang-opt{font-family:var(--font-mono);font-size:var(--fs-ui);font-weight:500;letter-spacing:-.04em;text-transform:uppercase;color:var(--color-text-dim);opacity:.45;text-decoration:none;cursor:pointer;transition:opacity var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.lang-opt:hover{opacity:.8}.lang-opt.active{color:var(--color-text);opacity:1}.menu-meta{margin-top:50px;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.menu-meta a{font-family:var(--font-mono);font-size:var(--fs-ui);font-weight:500;letter-spacing:-.04em;text-transform:uppercase;color:var(--color-text-dim);text-decoration:none;cursor:pointer;transition:color var(--dur-fast) var(--ease-out)}.menu-meta a:hover{color:var(--color-text)}.panel{position:fixed;top:0;right:0;bottom:0;width:min(440px,92vw);background:color-mix(in srgb,var(--color-bg) 97%,#0000);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-left:1px solid var(--color-line);transform:translateX(100%);transition:transform var(--dur-panel) var(--ease-drawer);padding:var(--space-6) var(--space-8) var(--space-10);overflow-y:auto;z-index:30}.panel.open{transform:translateX(0)}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-7)}.panel .close,.panel-head .badge{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:-.04em;text-transform:uppercase;color:var(--color-text)}.panel .close{position:absolute;top:var(--space-6);right:var(--space-8);z-index:3;background:#0000;border:1px solid var(--color-line);border-radius:var(--radius-control);padding:7px 12px;cursor:pointer;transition:background var(--dur-fast) ease,transform var(--dur-press) var(--ease-out)}@media (hover:hover) and (pointer:fine){.panel .close:hover{background:var(--color-surface)}}.panel .close:active{transform:scale(.96)}.panel h2{font-family:var(--font-sans);font-size:var(--fs-32);font-weight:600;letter-spacing:-.03em;line-height:1.05;margin:0 0 var(--space-2)}.panel .loc{font-size:var(--fs-14);letter-spacing:-.01em;color:var(--color-text-dim);margin-bottom:var(--space-6)}.panel-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-control);background:var(--grey-200)}.panel-meta{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5) var(--space-6);margin:var(--space-7) 0;padding:var(--space-6) 0;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line)}.panel-meta .label{font-family:var(--font-mono);font-size:var(--fs-ui-sm);letter-spacing:-.04em;text-transform:uppercase;color:var(--color-text-dim);margin-bottom:var(--space-2)}.panel-meta .value{font-size:var(--fs-16);letter-spacing:-.01em}.panel p{font-size:var(--fs-14);line-height:1.6;color:var(--color-text-soft);margin:0 0 var(--space-6)}.panel .panel-link{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:-.04em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px;transition:opacity var(--dur-fast) var(--ease-out)}.panel .panel-link:hover{opacity:.6}.landing .hud,.landing .view-switch{opacity:0}.landing.loaded .hud,.landing.loaded .view-switch{animation:fadeIn 1s cubic-bezier(.22,1,.36,1) forwards}@keyframes fadeIn{to{opacity:1}}.landing.loaded .header{animation-delay:.1s}.landing.loaded .view-switch{animation-delay:.3s}.landing.loaded .dock,.landing.loaded .view-switch{animation:none;opacity:1}.landing.loaded .side-left{animation:none;opacity:1;transition:opacity 1.1s var(--ease-in-out);transition-delay:.45s}.landing.loaded.focus-mode .side-left{opacity:0;pointer-events:none;transition-delay:0s}.landing.loaded .dock{animation-delay:.6s}.landing.loaded .foot-left,.landing.loaded .foot-right{animation-delay:.75s}.landing.focus-mode .foot-left{opacity:0!important;pointer-events:none}.dock{transition:left var(--dur-panel) var(--ease-drawer)}.landing.focus-mode .dock{left:calc((100vw - min(440px, 92vw)) / 2)}.loader{position:fixed;inset:0;z-index:100;background:var(--white);display:flex;align-items:center;justify-content:center;transition:opacity .9s cubic-bezier(.22,1,.36,1)}.loader.done{opacity:0;pointer-events:none}.loader-inner{display:flex;flex-direction:column;align-items:center;gap:24px;width:min(300px,64vw)}.loader-brand{font-family:var(--font-mono);font-size:var(--fs-14);letter-spacing:.46em;text-indent:.46em;color:var(--color-text)}.loader-bar{width:100%;height:1px;background:color-mix(in srgb,var(--color-text) 14%,#0000);position:relative;overflow:hidden}.loader-bar-fill{position:absolute;top:0;left:0;bottom:0;width:0;background:var(--color-text);transition:width .42s cubic-bezier(.22,1,.36,1)}.loader-count{display:flex;align-items:baseline;gap:8px;font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.2em;color:var(--color-text-dim)}.loader-count .num{color:var(--color-text);font-size:var(--fs-12)}.page{min-height:100vh;background:var(--black)}.page-foot{display:flex;justify-content:space-between;align-items:center;padding:24px 28px 22px;font-family:Geist Mono,ui-monospace,monospace;font-size:var(--fs-11);letter-spacing:.16em;color:var(--color-text-dim);border-top:1px solid var(--color-line)}.page-foot a{color:var(--color-text);text-decoration:none}.page-foot .right-links{display:flex;gap:18px}.back-link{position:fixed;top:22px;left:28px;z-index:5;font-family:Geist Mono,ui-monospace,monospace;font-size:var(--fs-11);letter-spacing:.16em;text-decoration:none;color:var(--color-text);mix-blend-mode:difference}.about-hero{width:100%;height:62vh;min-height:420px;object-fit:cover;display:block}.about-body{max-width:1100px;margin:0 auto;padding:100px 28px 120px}.about-intro{font-size:var(--fs-fluid-lg);font-weight:500;line-height:1.18;letter-spacing:-.02em;margin:0 0 80px;max-width:1000px}.about-intro a{text-decoration:underline;text-underline-offset:5px}.about-sections{max-width:460px;margin:0 auto 0 4vw}.about-section{margin-bottom:56px}.about-section h3{font-family:Geist Mono,ui-monospace,monospace;font-size:var(--fs-14);font-weight:400;letter-spacing:.08em;margin:0 0 22px}.about-section p{font-size:var(--fs-14);line-height:1.65;color:#ffffffc7;margin:0 0 14px}.proyecto{max-width:1100px;margin:0 auto;padding:120px 28px 80px}.proyecto-cat{display:flex;align-items:center;gap:8px;font-family:Geist Mono,ui-monospace,monospace;font-size:var(--fs-11);letter-spacing:.2em;color:var(--color-text-dim);margin-bottom:18px}.proyecto h1{font-size:var(--fs-display);font-weight:500;letter-spacing:-.03em;line-height:1.05;margin:0 0 12px}.proyecto .loc{font-size:var(--fs-14);color:var(--color-text-dim);margin-bottom:40px}.proyecto-img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:3px;background:#1a1a1a;margin-bottom:48px}.proyecto-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:28px 0;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);margin-bottom:48px}.proyecto-meta .label{font-size:var(--fs-11);letter-spacing:.2em;color:var(--color-text-dim);margin-bottom:8px}.proyecto-meta .value{font-size:var(--fs-14)}.proyecto-desc{font-size:var(--fs-fluid-md);line-height:1.55;color:#ffffffe0;max-width:760px}@media (max-width:720px){.proyecto-meta{grid-template-columns:repeat(2,1fr)}}.archive-page{min-height:100vh;background:var(--white);animation:archivePageIn .62s cubic-bezier(.22,1,.36,1) backwards}@keyframes archivePageIn{0%{opacity:0;filter:blur(16px);transform:scale(1.014)}to{opacity:1;filter:none;transform:none}}@media (prefers-reduced-motion:reduce){.archive-page{animation:none}}.archive-page .header{background:var(--white)}.archive{padding:140px 0 180px}.archive-inner{max-width:var(--doc-col-wide);margin:0 auto;padding:0 var(--grid-margin)}.archive-title-row{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:var(--space-10)}.archive-title{font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:-.04em;text-transform:uppercase;transition:color var(--dur-fast) var(--ease-out)}.archive-title.searching{color:var(--color-text)}.archive-title .archive-q{color:var(--color-text);text-transform:none}.archive-searchbar .search-input{width:240px}.search-clear{opacity:0;transform:translateX(-6px);max-width:0;padding-left:0;padding-right:0;border-width:0;overflow:hidden;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),max-width var(--dur-med,.4s) var(--ease-out),padding var(--dur-med,.4s) var(--ease-out)}.search-clear.is-visible{opacity:1;transform:none;max-width:120px;padding-left:16px;padding-right:16px;border-width:1px;pointer-events:auto}@media (prefers-reduced-motion:reduce){.search-clear{transition:opacity var(--dur-fast) var(--ease-out)}}.archive-item{animation:archiveRowIn .56s cubic-bezier(.22,1,.36,1) backwards}@keyframes archiveRowIn{0%{opacity:0;transform:translateY(12px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}@media (prefers-reduced-motion:reduce){.archive-item{animation:none}}.archive-head,.archive-row{display:grid;grid-template-columns:1.6fr 1fr 1fr 88px;column-gap:var(--grid-gutter);align-items:center}.ar-year,.archive-head .ar-h-year{font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:var(--tracking-label);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;color:var(--color-text-dim);white-space:nowrap}.archive-head{padding-bottom:var(--space-3);border-bottom:1px solid var(--color-text)}.archive-head span{font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:var(--tracking-meta);text-transform:uppercase;color:var(--color-text-muted)}.archive-head+.archive-list .archive-item:first-child .archive-row{border-top:0}.archive-list{list-style:none;margin:0;padding:0}.archive-row{align-items:center;padding:24px 0;border-top:1px solid var(--color-line);color:inherit;text-decoration:none;cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.archive-row .ar-cat,.archive-row .ar-loc,.archive-row .ar-title,.archive-row .ar-year{transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}@media (hover:hover) and (pointer:fine){.archive-row:hover{background:color-mix(in srgb,var(--color-text) 4%,#0000)}.archive-row:hover .ar-title{transform:translateX(6px)}.archive-row:hover .ar-year{transform:translateX(-6px)}.archive-row:hover .ar-cat,.archive-row:hover .ar-loc{opacity:.55}.archive-row:hover .ar-year{color:var(--color-text)}}.ar-project{display:flex;align-items:center;gap:14px}.ar-meta{display:contents}.ar-title{font-size:var(--fs-20);font-weight:500;letter-spacing:-.02em}.ar-cat,.ar-loc,.ar-title{font-family:var(--font-sans)}.ar-cat,.ar-loc{font-size:var(--fs-14);letter-spacing:-.01em}.top50{position:relative;flex-shrink:0;font-family:var(--font-mono);font-size:var(--fs-ui-sm);letter-spacing:-.04em;text-transform:uppercase;padding:5px 9px}.top50:after,.top50:before{content:"";position:absolute;inset:0;pointer-events:none}.top50:before{background:linear-gradient(var(--black),var(--black)) 0 0 /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--black),var(--black)) 0 0 /var(--mark-weight) var(--mark-arm) no-repeat,linear-gradient(var(--black),var(--black)) 100% 0 /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--black),var(--black)) 100% 0 /var(--mark-weight) var(--mark-arm) no-repeat}.top50:after{background:linear-gradient(var(--black),var(--black)) 0 100% /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--black),var(--black)) 0 100% /var(--mark-weight) var(--mark-arm) no-repeat,linear-gradient(var(--black),var(--black)) 100% 100% /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--black),var(--black)) 100% 100% /var(--mark-weight) var(--mark-arm) no-repeat}.archive-fade{position:fixed;left:0;right:0;bottom:0;height:180px;background:linear-gradient(0deg,var(--white) 35%,#fff0 100%);pointer-events:none;z-index:2}.archive-page .archive-fade,.archive-page .dock{display:none}.archive-page .archive{padding-bottom:80px}.archive-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-6) var(--grid-margin) var(--space-8);border-top:1px solid var(--color-line);font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:var(--tracking-label);text-transform:uppercase}.archive-foot .foot-left,.archive-foot .foot-right{position:static;height:auto}.search-btn-count{margin-left:.4em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:.5}.dock .search-btn,.dock .search-input{background:var(--color-bg);border-color:var(--color-text-dim);box-shadow:0 2px 10px #0000000f}.dock .search-input{color:var(--color-text)}.dock-fade{position:fixed;left:0;right:0;bottom:0;height:220px;background:linear-gradient(0deg,var(--color-bg) 30%,color-mix(in srgb,var(--color-bg) 0,#0000) 100%);pointer-events:none;z-index:2;opacity:0;transition:opacity 1s var(--ease-out)}.dock-fade[data-show=true]{opacity:1}.about{min-height:100vh;background:#000;position:relative}.about,.header--dark{color:#fff}.header--dark .menu-icon span{background:#fff}.header--dark .partners img{filter:brightness(0) invert(1)}.ab-brand{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;color:var(--white)}.ab-brand img{height:24px;width:auto}.ab-brand-sub{font-family:var(--font-sans);font-size:var(--fs-11);font-weight:500;letter-spacing:-.02em}.ab-hero{position:relative;height:clamp(420px,60vh,735px);overflow:hidden}.ab-hero-img{position:absolute;inset:-25% 0;background:var(--grey-600) url(/assets/about-hero.png) center /cover no-repeat;will-change:transform}.ab-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#00000080,#0000004d);pointer-events:none}.ab-content{max-width:var(--doc-col);margin:0 auto;padding:120px var(--grid-margin)}.ab-intro{margin:0 0 120px;font-family:var(--font-sans);font-weight:500;font-size:clamp(1.5rem,2.4vw,2.25rem);line-height:1.1;letter-spacing:-.02em}.ab-intro a{text-decoration:underline;text-underline-offset:3px}.ab-body{display:flex;flex-direction:column;gap:1.6em;margin-bottom:100px}.ab-body p,.ab-section p{margin:0;font-family:var(--font-sans);font-weight:500;font-size:var(--fs-16);line-height:1.6;letter-spacing:.01em}.ab-section{margin-bottom:64px}.ab-section p{opacity:.8}.ab-section-head{display:flex;align-items:center;gap:12px;margin-bottom:24px}.ab-num,.ab-section-title{font-family:var(--font-mono);font-size:var(--fs-16);letter-spacing:.01em}.ab-footer{position:relative;display:flex;align-items:flex-end;justify-content:space-between;padding:80px var(--grid-margin) 28px}.ab-foot-left,.ab-foot-right{font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:-.04em;text-transform:uppercase;opacity:.6}.ab-foot-right{display:flex;gap:16px}.ab-foot-right a{text-decoration:none;cursor:pointer}.ab-brand--foot{position:absolute;left:50%;bottom:24px;top:auto;transform:translateX(-50%)}.ab-brand--foot img{height:24px}.pole-tune{position:fixed;top:160px;right:var(--grid-margin);z-index:210;width:280px;background:var(--white);border:1px solid var(--color-line);border-radius:var(--radius-control);padding:14px 16px 12px;display:flex;flex-direction:column;gap:12px;box-shadow:0 8px 30px #0000001f;font-family:var(--font-mono);font-size:var(--fs-ui-sm);letter-spacing:-.02em;color:var(--color-text)}.pole-tune-head{text-transform:uppercase;letter-spacing:-.04em;color:var(--color-text-dim)}.pole-row{display:flex;flex-direction:column;gap:4px;padding-bottom:10px;border-bottom:1px solid var(--color-line)}.pole-label{display:flex;justify-content:space-between}.pole-label span{color:var(--color-text-dim)}.pole-row label{display:grid;grid-template-columns:30px 1fr 40px;align-items:center;gap:8px}.pole-row label span{color:var(--color-text-dim)}.pole-row input[type=range]{width:100%}.pole-row label b{font-weight:400;text-align:right}.pole-out{margin:0;white-space:pre;background:var(--color-surface);border-radius:var(--radius-control);padding:10px;font-size:var(--fs-ui-sm);line-height:1.5;overflow-x:auto;-webkit-user-select:all;user-select:all}.pole-hint{color:var(--color-text-dim)}.tools-panel{position:fixed;left:var(--grid-margin);bottom:var(--grid-margin);z-index:220;width:244px;background:var(--white);border:1px solid var(--color-line);border-radius:8px;font-family:var(--font-mono);font-size:var(--fs-ui-sm);letter-spacing:-.02em;color:var(--color-text);box-shadow:0 6px 24px #00000014;overflow:hidden}.tools-head{display:flex;align-items:baseline;justify-content:space-between;padding:11px 14px 7px;text-transform:uppercase;letter-spacing:.04em;font-size:10px;color:var(--color-text-dim)}.tools-row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-top:1px solid var(--color-line)}.tools-row:last-child{padding-bottom:11px}.tools-row .t-idx{display:none}.tools-row .t-label{flex:1 1;text-transform:uppercase;letter-spacing:.01em;font-size:11px}.tools-row .t-label small{display:block;text-transform:none;letter-spacing:0;margin-top:2px}.tools-row .t-label small,.tools-toggle{color:var(--color-text-dim);font-size:10px}.tools-toggle{appearance:none;cursor:pointer;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.03em;padding:4px 10px;border:1px solid var(--color-line);border-radius:999px;background:var(--white);white-space:nowrap;transition:color .15s ease,border-color .15s ease}.tools-toggle[data-on=true]{color:var(--color-text);border-color:var(--color-text)}.tools-foot{display:none}.chip{display:inline-flex;align-items:center;gap:var(--space-2);height:28px;padding:0 8px;border-radius:var(--radius-control);background:var(--color-surface);font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:-.04em;text-transform:uppercase;color:var(--color-text-dim);white-space:nowrap}.chip--dark{background:#0000004d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:7px;color:var(--white)}.proj-card{position:relative;display:block;aspect-ratio:294/319;border-radius:var(--radius-card);overflow:hidden;text-decoration:none;transition:transform var(--dur-press) var(--ease-out)}.proj-card>img,.proj-card>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--dur-med) var(--ease-out),opacity .35s ease}@media (hover:hover) and (pointer:fine){.proj-card:hover>img,.proj-card:hover>picture>img{transform:scale(1.04)}}.proj-card:active{transform:scale(.99)}.proj-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0006 0,#0000 35%);pointer-events:none}.proj-card-box{position:absolute;left:10px;right:10px;bottom:12px;padding:16px 10px;gap:16px;border-radius:5px;background:#00000047;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.proj-card-box,.proj-card-tags{display:flex;flex-direction:column}.proj-card-tags{align-items:flex-start;gap:3px}.proj-card-title{font-size:var(--fs-20);letter-spacing:-.02em;color:var(--white)}.proj-card-sub,.proj-card-title{font-family:var(--font-sans);font-weight:600;line-height:1}.proj-card-sub{font-size:var(--fs-14);letter-spacing:-.01em;color:#fff9}.ficha-page{min-height:100vh;background:var(--white)}.ficha-page .header{background:var(--white);border-bottom:1px solid var(--color-line)}.ficha{padding:120px 0 60px}.ficha-back{display:flex;justify-content:center;margin-bottom:var(--space-12)}.ficha-back-link{font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:-.04em;text-decoration:none;transition:opacity var(--dur-fast) var(--ease-out)}.ficha-back-link:hover{opacity:.6}.ficha-title{max-width:var(--doc-col);margin:0 auto var(--space-12);text-align:center;font-family:var(--font-sans);font-weight:500;font-size:clamp(1.5rem,2.5vw,2.25rem);letter-spacing:-.02em;line-height:1.1}.ficha-meta,.ficha-title{padding:0 var(--grid-margin)}.ficha-meta{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);margin-bottom:var(--space-12)}.ficha-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-1)}.ficha-loc{font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:-.04em;text-align:center}.ficha-hero{max-width:var(--doc-col-wide);margin:0 auto var(--space-16);padding:0 var(--grid-margin)}.ficha-hero img{width:100%;aspect-ratio:960/590;object-fit:cover;border-radius:var(--radius-card);background:var(--grey-200)}.ficha-body{width:100%;max-width:var(--doc-col);padding:0 var(--grid-margin);margin:0 auto}.ficha-richtext h2{font-family:var(--font-sans);font-size:var(--fs-24);font-weight:600;letter-spacing:-.02em;line-height:1.25;margin:0 0 var(--space-4)}.ficha-richtext h2:not(:first-child){margin-top:var(--space-10)}.ficha-richtext h3{font-family:var(--font-sans);font-size:var(--fs-16);font-weight:600;letter-spacing:-.02em;line-height:1.3;margin:var(--space-6) 0 var(--space-4)}.ficha-richtext h3:first-child{margin-top:0}.ficha-richtext p{font-family:var(--font-sans);font-size:var(--fs-16);letter-spacing:-.01em;line-height:1.6;color:var(--color-text-soft);margin:0 0 var(--space-4)}.ficha-richtext>:last-child{margin-bottom:0}.ficha-richtext ol,.ficha-richtext ul{margin:0 0 var(--space-4);padding-left:1.2em}.ficha-richtext ul{list-style:disc}.ficha-richtext ol{list-style:decimal}.ficha-richtext li{font-size:var(--fs-16);letter-spacing:-.01em;line-height:1.6;color:var(--color-text-soft);margin-bottom:var(--space-1)}.ficha-richtext a{color:inherit;text-decoration:underline;text-underline-offset:.15em}.ficha-richtext strong{font-weight:600}.ficha-richtext em{font-style:italic}.ficha-share{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-6);margin-top:var(--space-12)}.ficha-copy,.ficha-share-label{font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:-.04em}.ficha-copy{height:var(--control-h);padding:0 20px;border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--white);text-transform:uppercase;cursor:pointer;transition:background var(--dur-fast) ease,transform var(--dur-press) var(--ease-out)}@media (hover:hover) and (pointer:fine){.ficha-copy:hover{background:var(--color-surface)}}.ficha-copy:active{transform:scale(.97)}.ficha-related{padding:120px 0 84px}.ficha-related h2{margin:0 0 var(--space-12);text-align:center;font-family:var(--font-sans);font-weight:500;font-size:var(--fs-32);letter-spacing:-.02em;line-height:1.1}.ficha-related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1600px;margin:0 auto;padding:0 var(--grid-margin)}@media (max-width:768px){.ficha-related-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:var(--dur-fast)!important;scroll-behavior:auto!important}.ficha-copy:active,.filter:active,.menu-panel>*,.panel .close:active,.proj-card:active,.proj-card:hover>img,.proj-card:hover>picture>img,.search-btn:active,.vw-btn:active{transform:none!important}}.nf-page{position:fixed;inset:0;overflow:hidden;background:var(--color-bg);flex-direction:column;gap:40px}.nf-page,.nf-scene{display:flex;align-items:center;justify-content:center}.nf-scene{position:relative;width:100%;height:min(46vh,360px);perspective:1400px}.nf-ring{--nf-radius:360px;position:absolute;transform-style:preserve-3d;transform:rotateX(-8deg);animation:nf-spin 34s linear infinite}@keyframes nf-spin{0%{transform:rotateX(-8deg) rotateY(0deg)}to{transform:rotateX(-8deg) rotateY(1turn)}}.nf-card{position:absolute;top:50%;left:50%;width:132px;height:178px;margin:-89px 0 0 -66px;border-radius:var(--radius-card);overflow:hidden;background:var(--grey-200);transform:rotateY(calc(var(--i) * (1turn / var(--nf-n)))) translateZ(var(--nf-radius));backface-visibility:hidden;box-shadow:0 10px 30px #0000002e;opacity:.3}.nf-card img{width:100%;height:100%;object-fit:cover}.nf-code{position:relative;z-index:2;transform:translateY(-56px);font-family:var(--font-sans);font-weight:600;font-size:clamp(5rem,16vw,12rem);letter-spacing:-.04em;line-height:1;color:var(--color-text);pointer-events:none;-webkit-user-select:none;user-select:none}.nf-copy{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.nf-lead{margin:0;font-family:var(--font-sans);font-size:var(--fs-16);font-weight:500;letter-spacing:-.01em;color:var(--color-text-dim)}.nf-home{font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:-.04em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px;color:var(--color-text);transition:opacity var(--dur-fast) var(--ease-out)}@media (hover:hover) and (pointer:fine){.nf-home:hover{opacity:.6}}@media (max-width:640px){.nf-ring{--nf-radius:230px}.nf-card{width:96px;height:130px;margin:-65px 0 0 -48px}}@media (prefers-reduced-motion:reduce){.nf-ring{animation:none}}.grid-dom{position:fixed;inset:0;z-index:2;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;opacity:0;pointer-events:none;scrollbar-width:none}.grid-dom::-webkit-scrollbar{display:none}.grid-dom.shown{opacity:1}.grid-dom.interactive{pointer-events:auto}.grid-dom-inner{--gc-panel:min(440px,92vw);--gc-col:calc((100vw - 56px - 220px) / 12);--gc-content:calc(8 * var(--gc-col) + 140px);--gc-content-open:calc(100vw - var(--gc-panel) - 56px);width:var(--gc-content);margin-inline:auto;padding-top:110px;padding-bottom:200px;display:grid;grid-template-columns:repeat(4,1fr);column-gap:20px;row-gap:21.5px;transition:width .5s ease,transform .5s ease}.grid-dom.shifted .grid-dom-inner{width:var(--gc-content-open);transform:translateX(calc(var(--gc-panel) / -2))}.gc-cell{container-type:inline-size}.gc-card{position:relative;width:100%;aspect-ratio:294/319;border:none;padding:0;margin:0;background:#0e0e0e;border-radius:4.762cqw;overflow:hidden;cursor:pointer;opacity:1;transition:opacity .18s ease;-webkit-tap-highlight-color:transparent;appearance:none;text-align:left;font:inherit;color:inherit}.gc-card.gc-dim-filter{opacity:.18;pointer-events:none}.grid-dom.has-selected .gc-card:not(.gc-selected):not(.gc-dim-filter){opacity:.72}.gc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;-webkit-user-select:none;user-select:none}.gc-img-empty{background:radial-gradient(120% 90% at 50% 100%,color-mix(in srgb,var(--cat,#888) 55%,#0000),#0000 70%),var(--grey-200)}.t50-img-fade{opacity:0;transition:opacity .35s ease}.gc-grad{inset:0;background:linear-gradient(0deg,#00000073,#0000 55%);pointer-events:none}.gc-box,.gc-grad{position:absolute}.gc-box{left:4.082cqw;right:4.082cqw;bottom:4.082cqw;padding:4.762cqw;border-radius:3.061cqw;background:#00000047;backdrop-filter:blur(4.082cqw);-webkit-backdrop-filter:blur(4.082cqw)}.gc-pills{display:flex;flex-direction:column;gap:2.041cqw;align-items:flex-start}.gc-pill{display:inline-flex;align-items:center;gap:2.721cqw;height:10.884cqw;padding:0 3.401cqw;border-radius:2.041cqw;background:#0000004d;max-width:100%}.gc-pills-marquee{flex-direction:row;width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 4.082cqw,#000 calc(100% - 6.803cqw),#0000);mask-image:linear-gradient(90deg,#0000,#000 4.082cqw,#000 calc(100% - 6.803cqw),#0000)}.gc-pills-marquee .gc-pill{max-width:none;flex:0 0 auto;margin-right:2.721cqw}.gc-pills-track{display:flex;width:max-content;will-change:transform;animation:gc-pills-scroll var(--dur-marquee) linear infinite;animation-play-state:paused}@keyframes gc-pills-scroll{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}@media (hover:hover) and (pointer:fine){.gc-card:hover .gc-pills-track{animation-play-state:running}}@media (prefers-reduced-motion:reduce){.gc-pills-track{animation:none}}.gc-dot{width:3.401cqw;height:3.401cqw;border-radius:50%;flex:none}.gc-pill-label{font-family:var(--font-mono);font-weight:500;font-size:4.422cqw;line-height:1;color:#fff;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.gc-sub,.gc-title{transform:translateY(-.5px)}.gc-title{margin:4.762cqw 0 0;font-size:8.163cqw;line-height:1.0833;letter-spacing:-.02em;color:#fff;min-height:2.1666em}.gc-sub,.gc-title{font-family:var(--font-sans);font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gc-sub{margin:2.721cqw 0 0;font-size:4.762cqw;line-height:1.2857;letter-spacing:-.01em;color:#ffffff9e;min-height:2.5714em}@media (prefers-reduced-motion:reduce){.grid-dom,.grid-dom-inner{transition:none}}.cat-filter{display:none;position:relative;width:100%}.cat-pop-catcher{position:fixed;inset:0;z-index:40}.cat-pop{position:absolute;left:0;right:0;bottom:calc(100% + 8px);z-index:41;margin:0;padding:6px;list-style:none;max-height:58vh;overflow-y:auto;overscroll-behavior:contain;background:var(--color-bg);border:1px solid var(--color-line);border-radius:0;clip-path:inset(100% 0 0 0);pointer-events:none;transition:clip-path .42s var(--ease-drawer)}.cat-pop.open{clip-path:inset(0 0 0 0);pointer-events:auto}.cat-opt{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:12px 8px;background:#0000;border:0;font-family:var(--font-mono);font-size:var(--fs-ui);line-height:1;text-transform:uppercase;letter-spacing:-.04em;color:var(--color-text);opacity:.3;cursor:pointer;text-align:left;transition:opacity var(--dur-fast) var(--ease-out)}.cat-opt.sel{opacity:1}.cat-opt.sel:after,.cat-opt.sel:before{content:"";position:absolute;inset:0;pointer-events:none}.cat-opt.sel:before{background:linear-gradient(var(--color-text),var(--color-text)) 0 0 /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--color-text),var(--color-text)) 0 0 /var(--mark-weight) var(--mark-arm) no-repeat,linear-gradient(var(--color-text),var(--color-text)) 100% 0 /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--color-text),var(--color-text)) 100% 0 /var(--mark-weight) var(--mark-arm) no-repeat}.cat-opt.sel:after{background:linear-gradient(var(--color-text),var(--color-text)) 0 100% /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--color-text),var(--color-text)) 0 100% /var(--mark-weight) var(--mark-arm) no-repeat,linear-gradient(var(--color-text),var(--color-text)) 100% 100% /var(--mark-arm) var(--mark-weight) no-repeat,linear-gradient(var(--color-text),var(--color-text)) 100% 100% /var(--mark-weight) var(--mark-arm) no-repeat}li:has(.cat-opt.sel)+li .cat-opt.sel:before{content:none}li:has(+li .cat-opt.sel) .cat-opt.sel:after{content:none}.cat-opt-dot{width:9px;height:9px;border-radius:50%;flex:none}.cat-opt-dot--all{background:#0000;border:1.5px solid var(--color-text-dim)}.cat-opt-name{flex:1 1}.msearch,.search-trigger{display:none}.search-trigger{align-items:center;justify-content:center;width:44px;height:44px;flex:none;margin-right:8px;background:var(--color-surface-2);border:0;border-radius:var(--radius-control);color:var(--color-text);cursor:pointer;overflow:hidden;transition:width .42s var(--ease-drawer),margin-right .42s var(--ease-drawer),opacity .28s var(--ease-out)}.search-trigger svg{width:18px;height:18px;flex:none}.msearch{flex-direction:column;position:fixed;inset:0;z-index:50;background:var(--color-bg);transform:translateY(-100%);transition:transform var(--dur-menu) var(--ease-drawer)}.msearch.open{transform:none}.msearch-bar{gap:10px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;border-bottom:1px solid var(--color-line)}.msearch-bar,.msearch-field{display:flex;align-items:center}.msearch-field{flex:1 1;gap:8px;height:44px;padding:0 12px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-control)}.msearch-field svg{width:16px;height:16px;color:var(--color-text-dim);flex:none}.msearch-input{flex:1 1;min-width:0;border:0;background:#0000;outline:none;font-family:Geist,sans-serif;font-size:var(--fs-16);letter-spacing:-.01em;color:var(--color-text)}.msearch-input::placeholder{color:var(--color-text-muted);opacity:.5}.msearch-clear{display:flex;padding:4px;color:var(--color-text-dim)}.msearch-cancel,.msearch-clear{background:#0000;border:0;cursor:pointer;flex:none}.msearch-cancel{padding:0 2px;font-family:var(--font-mono);font-size:var(--fs-ui);text-transform:uppercase;letter-spacing:-.04em;color:var(--color-text)}.msearch-results{flex:1 1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px 16px calc(24px + env(safe-area-inset-bottom))}.msearch-list{list-style:none;margin:0 0 8px;padding:0}.msearch-result{display:flex;align-items:center;gap:12px;padding:14px 4px;border-bottom:1px solid var(--color-line);text-decoration:none;color:var(--color-text)}.msearch-result:active{background:var(--color-surface)}.msearch-dot{width:10px;height:10px;border-radius:50%;flex:none}.msearch-result-text{display:flex;flex-direction:column;gap:2px;min-width:0}.msearch-result-title{font-family:var(--font-sans);font-size:var(--fs-16);letter-spacing:-.01em;line-height:1.2}.msearch-result-sub{letter-spacing:-.01em}.msearch-empty,.msearch-result-sub{font-family:var(--font-sans);font-size:var(--fs-14);color:var(--color-text-dim)}.msearch-empty{margin:20px 4px}.msearch-deep{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:12px;padding:14px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-control);font-family:var(--font-mono);font-size:var(--fs-ui);text-transform:uppercase;letter-spacing:-.04em;color:var(--color-text);cursor:pointer}.msearch-deep svg{width:15px;height:15px;flex:none}.msearch-deep em{font-style:normal;color:var(--color-text-dim)}.msearch-scope{margin:14px 4px 4px;font-family:var(--font-mono);font-size:var(--fs-ui-sm);text-transform:uppercase;letter-spacing:-.04em;color:var(--color-text-dim)}@media (max-width:640px){.landing:not(.gallery-mode) .canvas-host{transform:translateY(5vh);transition:transform var(--dur-med,.4s) var(--ease-out,ease)}.brand-logo{top:21px}.brand-logo img{height:22px}.partners{display:none}.landing .partners{display:flex;position:fixed;top:88px;left:16px;right:16px;justify-content:center;gap:12px;z-index:3;transition:opacity 1.1s var(--ease-in-out)}.header.is-menu-open .partners{display:none}.partners img:first-child{height:13px}.partners img:nth-child(2){height:13px;order:1}.partners img:nth-child(3){height:19px}.menu-btn{width:36px;height:36px;padding:0;margin:0;justify-content:center;gap:0}.menu-btn>span:last-child{display:none}.menu-btn .menu-icon{transform:scale(1.4)}.header{z-index:21;pointer-events:none}.header>*{pointer-events:auto}.view-switch{top:14px;right:16px;gap:6px}.vw-btn{width:36px;height:36px}.vw-btn img{width:16px;height:16px}.menu-panel{top:0;left:0;right:0;bottom:0;width:auto;height:100dvh;border:0;padding:92px 24px calc(28px + env(safe-area-inset-bottom));justify-content:space-between;gap:var(--space-8)}.menu-nav{gap:var(--space-2)}.menu-nav a{font-size:2.5rem}.menu-meta{margin-top:0;gap:var(--space-2)}.menu-meta a{font-size:var(--fs-14)}.menu-panel .th-opt svg{width:19px;height:19px}.side-left{left:28px;right:28px;top:132px;transform:none;width:auto;text-align:center;font-size:var(--fs-14);line-height:1.2}.side-left .archive-link{margin-top:18px}.landing.gallery-mode .partners,.landing.gallery-mode .side-left{opacity:0;pointer-events:none}.dock{left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));transform:none;flex-direction:row;align-items:center;gap:0}.searchbar{display:none}.search-trigger{display:flex}.dock:has(.cat-pop.open) .search-trigger{width:0;margin-right:0;padding:0;border-width:0;opacity:0;pointer-events:none}.msearch{display:flex}.filters{display:none}.cat-trigger{justify-content:space-between;width:100%;height:44px;padding:0 14px;background:var(--color-surface-2);border:0;border-radius:var(--radius-control);font-family:var(--font-mono);font-size:var(--fs-ui);text-transform:uppercase;letter-spacing:-.04em;color:var(--color-text);cursor:pointer}.cat-trigger,.cat-trigger-val{display:flex;align-items:center}.cat-trigger-val{gap:8px;min-width:0}.cat-trigger-val>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-trigger svg{flex:none;color:var(--color-text-dim);transition:color var(--dur-fast) var(--ease-out)}.cat-trigger.open svg{color:var(--color-text)}.cat-filter{display:block;flex:1 1;width:auto;min-width:0}.landing.focus-mode .dock{display:none;left:16px}.foot-left,.foot-right{display:none}.panel{width:100vw;padding:0 var(--space-5) var(--space-10)}.panel h2{font-size:var(--fs-24)}.panel .close{position:sticky;top:calc(var(--space-4) + env(safe-area-inset-top));right:auto;float:right;margin-bottom:calc(-1 * var(--control-h));z-index:3}.panel-head{margin-bottom:var(--space-4);padding-top:calc(var(--space-5) + env(safe-area-inset-top))}.panel-namebox{position:sticky;top:calc(var(--space-4) + env(safe-area-inset-top));z-index:2;padding:0 0 var(--space-4);padding-right:96px}.panel-namebox .loc{margin-bottom:0}.grid-dom-inner{--gc-content:calc(100vw - 32px);width:var(--gc-content);grid-template-columns:repeat(2,1fr);column-gap:12px;row-gap:6px;padding-bottom:180px}.grid-dom.shifted .grid-dom-inner{width:var(--gc-content);transform:none}.archive{padding:96px 0 160px}.archive-inner{padding:0 16px}.archive-title-row{margin-bottom:40px;flex-direction:column;align-items:stretch;gap:var(--space-3)}.archive-page .searchbar.archive-searchbar{display:flex;width:100%}.archive-searchbar .search-input{width:100%;flex:1 1;font-size:var(--fs-16)}.archive-head{display:none}.archive-row{display:flex;flex-wrap:wrap;align-items:baseline;row-gap:var(--space-1);padding:var(--space-4) 0}.ar-project{flex:1 1 100%;min-width:0;flex-wrap:wrap;gap:10px}.ar-title{min-width:0;overflow-wrap:anywhere;font-size:var(--fs-20);line-height:var(--lh-heading)}.ar-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--space-2)}.ar-loc,.ar-meta{flex:1 1 100%;min-width:0}.ar-loc{font-size:var(--fs-14)}.ar-cat,.ar-loc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-dim)}.ar-cat{min-width:0;max-width:72%;font-family:var(--font-mono);letter-spacing:var(--tracking-label);text-transform:uppercase}.ar-cat,.ar-year{font-size:var(--fs-11)}.ar-year{text-align:left}.ar-year:before{content:"·";margin-right:var(--space-2);color:var(--color-text-dim)}.ar-year:empty:before{content:none}.ab-hero{height:50dvh}.ab-content{padding:88px 20px}.ab-body,.ab-intro{margin-bottom:64px}.ab-section{margin-bottom:48px}.ab-footer{flex-direction:column;align-items:center;text-align:center;gap:24px;padding:64px 20px calc(28px + env(safe-area-inset-bottom))}.ab-brand--foot{position:static;left:auto;bottom:auto;transform:none}.ab-foot-right{gap:14px}.ficha{padding:88px 0 48px}.ficha-related{padding:72px 0 64px}.ficha-related h2{font-size:var(--fs-24)}}@media (min-width:641px) and (max-width:1180px){.filters{flex-wrap:wrap}}@media (min-width:846px) and (max-width:1180px){.filters{max-width:calc(100vw - 380px)}}@media (min-width:641px) and (max-width:845px){.foot-left,.foot-right{display:none}.filters{width:calc(100vw - 2 * var(--grid-margin));max-width:660px}}@media (min-width:641px) and (max-width:1080px){.side-left{top:110px;transform:none}}@media (max-width:1000px){.landing.gallery-mode .side-left{opacity:0;pointer-events:none}}@media (min-width:641px) and (max-width:800px){.partners img:first-child,.partners img:nth-child(2){height:14px}.partners img:nth-child(3){height:20px}}.landing.intro-active{position:static;overflow:visible}html.intro-noscrollbar{scrollbar-width:none}html.intro-noscrollbar::-webkit-scrollbar{width:0;height:0}.intro-progress{position:fixed;right:var(--grid-margin);top:50%;transform:translateY(-50%);z-index:62;display:flex;flex-direction:column;align-items:flex-end;gap:12px;pointer-events:none;transition:opacity .9s var(--ease-out),transform 1.1s var(--ease-out)}.landing.hud-in .intro-progress{opacity:0;transform:translateY(-50%) translateX(64px)}.intro-progress-track{position:relative;width:2px;height:148px;border-radius:2px;background:color-mix(in srgb,var(--color-text) 14%,#0000);overflow:hidden}.intro-progress-fill{position:absolute;inset:0;background:var(--color-text);transform:scaleY(0);transform-origin:top}.intro-progress-num{font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.08em;color:var(--color-text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:3ch;text-align:right}.hero-intro{position:relative;z-index:60;pointer-events:none}.hero-sticky{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden;opacity:0;transition:opacity 1s var(--ease-out,ease);pointer-events:none}.hero-sticky.entered{opacity:1}.hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:2}.hero-line{position:absolute;left:0;right:0;padding:0 5vw;text-align:center;font-family:Geist,sans-serif;font-weight:500;font-size:122px;line-height:1;letter-spacing:-.03em;color:var(--color-text);will-change:transform,opacity;z-index:1}.hero-line-top{top:10vh}.hero-line-bot{bottom:10vh}@media (max-width:640px){.hero-line{font-size:15.5vw;line-height:.98;padding:0 6vw}.hero-line-top{top:12vh}.hero-line-bot{bottom:11vh}}.hero-scroll-ind{position:absolute;left:50%;transform:translateX(-50%);bottom:22px;height:24px;display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:-.04em;text-transform:uppercase;color:var(--color-text);opacity:.6;white-space:nowrap}.hero-scroll-ind svg{animation:heroChevron 1.6s var(--ease-in-out,ease) infinite}@keyframes heroChevron{0%,to{transform:translateY(-1px)}50%{transform:translateY(2px)}}@media (prefers-reduced-motion:reduce){.hero-scroll-ind svg{animation:none}}.hero-scroll-ind.is-tap{opacity:1;bottom:calc(28px + env(safe-area-inset-bottom));gap:9px;height:var(--control-h);padding:0 22px;z-index:5;pointer-events:auto;border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--white);color:var(--color-text);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-press) var(--ease-out),background var(--dur-fast) ease}.hero-scroll-ind.is-tap svg{animation:none;width:11px;height:11px}.hero-scroll-ind.is-tap:active{transform:translateX(-50%) scale(.96);background:var(--color-surface)}@media (max-width:640px){.intro-progress{display:none}.landing.intro-active .menu-btn,.landing.intro-active .partners{opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}.landing.hud-in .menu-btn,.landing.hud-in .partners{opacity:1;pointer-events:auto;transform:none}.landing.gallery-mode.hud-in .partners,.landing.gallery-mode.hud-in .side-left{opacity:0;pointer-events:none;transform:none}}.landing.intro-active .canvas-host{opacity:1!important;z-index:61!important;pointer-events:none!important;animation:none!important}.landing .dock,.landing .side-left,.landing .view-switch{--hud-in:80px}.landing.intro-active:not(.hud-in) .dock,.landing.intro-active:not(.hud-in) .side-left,.landing.intro-active:not(.hud-in) .view-switch{opacity:0;pointer-events:none!important;animation:none!important}.landing.intro-active:not(.hud-in) .side-left{transform:translateY(-50%) translateX(calc(-1 * var(--hud-in)))}.landing.intro-active:not(.hud-in) .view-switch{transform:translateX(var(--hud-in))}.landing.intro-active:not(.hud-in) .dock{transform:translateX(-50%) translateY(var(--hud-in))}.landing.hud-in .dock,.landing.hud-in .side-left,.landing.hud-in .view-switch{opacity:1;animation:none!important;will-change:transform,opacity;transition:opacity 1.5s cubic-bezier(.16,1,.3,1),transform 1.9s cubic-bezier(.16,1,.3,1)}.landing.hud-in .side-left{transform:translateY(-50%) translateX(0)}.landing.hud-in .view-switch{transform:translateX(0)}.landing.hud-in .dock{transform:translateX(-50%) translateY(0)}@media (max-width:640px){.landing.intro-active:not(.hud-in) .side-left{transform:translateY(-12px)}.landing.intro-active:not(.hud-in) .dock{transform:translateY(var(--hud-in))}.landing.hud-in .dock,.landing.hud-in .side-left{transform:none}}.landing.intro-active .loader.done{opacity:0!important;pointer-events:none}@media (prefers-reduced-motion:reduce){.hero-sticky{transition:none}}.archive-toolbar{position:sticky;top:64px;z-index:4;margin-bottom:var(--space-8);background:var(--color-bg)}.archive-toolbar:before{content:"";position:absolute;left:0;right:0;top:100%;height:56px;pointer-events:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(180deg,color-mix(in srgb,var(--color-bg) 78%,#0000),#0000);mask-image:linear-gradient(180deg,#000,#0000);-webkit-mask-image:linear-gradient(180deg,#000,#0000)}.facets{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) 0}.facets-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.facets-sort{margin-left:auto}.fm{position:relative}.fm-btn{display:inline-flex;align-items:center;gap:var(--space-2);height:var(--control-h);padding:0 var(--space-3);border:0;border-radius:var(--radius-pill);background:var(--color-surface);font-family:var(--font-mono);font-size:var(--fs-ui);line-height:var(--lh-solid);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text);cursor:pointer;transition:background var(--dur-fast) ease,border-color var(--dur-fast) ease,transform var(--dur-press) var(--ease-out)}@media (hover:hover) and (pointer:fine){.fm-btn:hover{background:var(--color-surface-active)}}.fm-btn:active{transform:scale(.98)}.facet-chip:focus-visible,.facet-clear:focus-visible,.fm-btn:focus-visible,.fm-opt:focus-visible,.fm-reset:focus-visible{outline:1.5px solid var(--color-text);outline-offset:2px}.fm.is-active .fm-btn{background:var(--color-text);color:var(--color-bg)}.fm.is-active .fm-caret{opacity:.7}.fm-caret{width:9px;height:6px;flex-shrink:0;opacity:.5;transition:transform var(--dur-fast) var(--ease-out)}.fm-btn[aria-expanded=true] .fm-caret{transform:rotate(180deg)}.fm-pop{position:absolute;top:calc(100% + var(--space-2));left:0;z-index:5;min-width:264px;max-width:320px;max-height:380px;overflow-y:auto;padding:var(--space-2);border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-bg);box-shadow:0 12px 32px #0000001a;animation:fmPopIn var(--dur-fast) var(--ease-out) both}@keyframes fmPopIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.fm-pop{animation:none}}.facets-sort .fm-pop{left:auto;right:0}.fm-pop-title{display:none}.fm-opt{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border:0;border-radius:var(--radius-control);background:#0000;font-family:var(--font-sans);font-size:var(--fs-14);line-height:var(--lh-snug);letter-spacing:var(--tracking-body);text-align:left;color:var(--color-text);cursor:pointer;transition:background var(--dur-fast) ease}@media (hover:hover) and (pointer:fine){.fm-opt:hover{background:var(--color-surface)}}.fm-opt.is-on{background:var(--color-surface-active)}.fm-opt.is-empty{opacity:.35}.fm-opt-label{flex:1 1;min-width:0}.fm-check{display:grid;place-items:center;width:14px;height:14px;flex-shrink:0;border:1px solid var(--color-line);border-radius:3px;color:var(--color-bg)}.fm-check svg{width:10px;height:8px;opacity:0}.fm-opt.is-on .fm-check{border-color:var(--color-text);background:var(--color-text)}.fm-opt.is-on .fm-check svg{opacity:1}.fm-dot{width:8px;height:8px;flex-shrink:0;border-radius:var(--radius-round)}.fm-count{flex-shrink:0;font-family:var(--font-mono);font-size:var(--fs-ui);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fm-count,.fm-reset{letter-spacing:var(--tracking-label);color:var(--color-text-dim)}.fm-reset{width:100%;margin-top:var(--space-1);padding:var(--space-2);border:0;border-top:1px solid var(--color-line);border-radius:0;background:#0000;font-family:var(--font-mono);font-size:var(--fs-ui);text-transform:uppercase;text-align:left;cursor:pointer;transition:color var(--dur-fast) ease}@media (hover:hover) and (pointer:fine){.fm-reset:hover{color:var(--color-text)}}.facets-active{display:flex;flex-wrap:wrap}.facet-chip,.facets-active{align-items:center;gap:var(--space-2)}.facet-chip{display:inline-flex;padding:var(--space-1) var(--space-3);border:0;border-radius:var(--radius-pill);background:var(--color-surface-active);font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text);cursor:pointer;transition:transform var(--dur-press) var(--ease-out)}.facet-chip,.facet-chip-x{line-height:var(--lh-solid)}.facet-chip-x{font-size:var(--fs-14);opacity:.45;transition:opacity var(--dur-fast) ease}@media (hover:hover) and (pointer:fine){.facet-chip:hover .facet-chip-x{opacity:1}}.facet-chip:active{transform:scale(.96)}.facet-clear{padding:var(--space-1) 0;border:0;background:#0000;font-family:var(--font-mono);font-size:var(--fs-ui);line-height:var(--lh-solid);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text);opacity:.45;cursor:pointer;text-decoration:underline;text-underline-offset:3px;transition:opacity var(--dur-fast) ease}@media (hover:hover) and (pointer:fine){.facet-clear:hover{opacity:.9}}@media (max-width:768px){.archive-toolbar{margin-bottom:var(--space-5);background:var(--color-bg);backdrop-filter:none;-webkit-backdrop-filter:none}.archive-toolbar:before{display:none}.archive-toolbar:after{content:"";position:absolute;top:1px;right:0;bottom:1px;width:var(--space-8);background:linear-gradient(90deg,#0000,var(--color-bg) 70%);pointer-events:none}.facets-row{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;margin:0 -16px;padding:0 16px}.facets-row::-webkit-scrollbar{display:none}.fm{scroll-snap-align:start}.fm-btn{white-space:nowrap;height:40px;padding:0 var(--space-4)}.facets-sort{margin-left:0}.facets-active{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}.facets-active::-webkit-scrollbar{display:none}.facet-chip{flex-shrink:0;height:32px}.facet-clear{flex-shrink:0;white-space:nowrap}.fm-pop{position:fixed;inset:auto 0 0 0;max-width:none;max-height:60vh;border-radius:var(--radius-card) var(--radius-card) 0 0;border-left:0;border-right:0;border-bottom:0;padding:var(--space-3) var(--space-4) var(--space-6);box-shadow:0 -12px 40px #0000002e;animation:fmSheetIn var(--dur-menu) var(--ease-drawer) both}@keyframes fmSheetIn{0%{transform:translateY(100%)}to{transform:none}}.fm-opt{padding:var(--space-3) var(--space-2);font-size:var(--fs-16)}.fm-pop-title{display:block;padding:var(--space-2) var(--space-2) var(--space-3);font-family:var(--font-mono);font-size:var(--fs-ui);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-dim)}}.archive-empty{margin:0;padding:var(--space-8) 0;font-family:var(--font-mono);font-size:var(--fs-ui);line-height:var(--lh-snug);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-dim)}.archive-empty-hint{opacity:.6}