@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-vietnamese-wght-normal-XAtsl5Q_.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2) format("woff2-variations");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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/archivo-latin-wght-normal-E0tuGl4L.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/ibm-plex-mono-cyrillic-ext-300-normal-BbtBtHoB.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-300-normal-B8O3uHbr.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/ibm-plex-mono-cyrillic-300-normal-ByB2hQUF.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-300-normal-Ba-HN6uq.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/ibm-plex-mono-vietnamese-300-normal-CpdbWO_2.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-300-normal-B6fSpYYV.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/ibm-plex-mono-latin-ext-300-normal-BEtQ2wm2.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-300-normal-CQbCaAQ4.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/ibm-plex-mono-latin-300-normal-BRS-C4KA.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-300-normal-BPU54Tw3.woff) format("woff");unicode-range:U+0000-00FF,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,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}:root{color-scheme:dark;--canvas: #0b0d0f;--canvas-raised: #101317;--surface: #111418;--surface-2: #16191e;--pedestal: #0e1013;--text: #eceae4;--text-soft: #b9bcc0;--muted: #92989f;--faint: #6b7076;--line: rgba(236, 234, 228, .14);--line-strong: rgba(236, 234, 228, .26);--signal: #b9f227;--signal-ink: #101400;--signal-dim: rgba(185, 242, 39, .16);--paper: #f1efe8;--ink: #111317;--danger: #ff5a4f;--focus: #f7c948;--font-sans: "Archivo Variable", "Archivo", "Segoe UI", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "Cascadia Mono", "Consolas", monospace;--radius-s: 4px;--radius-m: 8px;--content-max: 1440px;--gutter: clamp(20px, 4vw, 56px);--shadow-1: 0 0 0 rgba(0, 0, 0, 0);--shadow-2: 0 12px 40px rgba(0, 0, 0, .45);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .2s;--dur-med: .42s;--dur-slow: .8s}[data-theme=light]{color-scheme:light;--canvas: #f4f2ec;--canvas-raised: #ece9e1;--surface: #fbfaf6;--surface-2: #f1efe8;--pedestal: #e6e3da;--text: #16181c;--text-soft: #3c4045;--muted: #63686e;--faint: #8d9297;--line: rgba(22, 24, 28, .16);--line-strong: rgba(22, 24, 28, .3);--signal: #4d6600;--signal-ink: #f4f8e8;--signal-dim: rgba(77, 102, 0, .12);--paper: #ffffff;--ink: #16181c;--shadow-1: 0 1px 2px rgba(20, 22, 26, .08);--shadow-2: 0 16px 44px rgba(20, 22, 26, .14)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(pointer:coarse){html{scroll-behavior:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,picture,svg,video,canvas{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none;padding:0}a{color:inherit}ul[role=list],ol[role=list]{list-style:none;padding:0}body{font-family:var(--font-sans);font-size:1rem;background:var(--canvas);color:var(--text);transition:background-color var(--dur-med) ease,color var(--dur-med) ease}h1,h2,h3,h4{font-weight:640;line-height:1.05;letter-spacing:-.02em;text-wrap:balance}h1{font-size:clamp(2.6rem,6.5vw,5.2rem)}h2{font-size:clamp(1.9rem,3.6vw,3rem)}h3{font-size:clamp(1.15rem,1.8vw,1.45rem)}p{max-width:65ch}.mono-label{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.mono-value{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-soft)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}::selection{background:var(--signal);color:var(--signal-ink)}.skip-link{position:absolute;left:16px;top:-60px;z-index:200;padding:10px 16px;background:var(--signal);color:var(--signal-ink);font-family:var(--font-mono);font-size:.8rem;text-decoration:none;transition:top var(--dur-fast) ease}.skip-link:focus-visible{top:16px}.container{max-width:var(--content-max);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:clamp(72px,11vh,140px);border-top:1px solid var(--line)}.section-head{display:flex;align-items:baseline;gap:18px;margin-bottom:clamp(32px,5vh,64px)}.section-index{font-family:var(--font-mono);font-size:.8rem;color:var(--signal);letter-spacing:.12em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.themed{transition:background-color var(--dur-med) ease,border-color var(--dur-med) ease,color var(--dur-med) ease}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.site-header{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--canvas) 84%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.header-inner{display:flex;align-items:center;gap:20px;height:68px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line-strong);border-radius:var(--radius-s);font-family:var(--font-mono);font-size:.8rem;font-weight:500;color:var(--signal);transition:border-color var(--dur-fast) ease}.brand:hover .brand-mark{border-color:var(--signal)}.brand-text{display:flex;flex-direction:column;line-height:1.2}.brand-name{font-weight:650;font-size:.95rem;letter-spacing:.01em}.brand-role{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.header-nav{margin-left:auto;display:flex;gap:2px}.header-link{display:inline-flex;align-items:baseline;gap:7px;padding:9px 11px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--muted);border-radius:var(--radius-s);transition:color var(--dur-fast) ease}.header-link:hover{color:var(--text)}.header-controls{display:flex;align-items:center;gap:10px}.lang-switch{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-decoration:none;color:var(--muted);padding:8px 4px}.lang-switch span.is-active{color:var(--text);border-bottom:1px solid var(--signal);padding-bottom:2px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:36px;height:36px;border:1px solid var(--line);border-radius:var(--radius-s);color:var(--text-soft);transition:border-color var(--dur-fast) ease,color var(--dur-fast) ease}.theme-icon{display:inline-flex}.theme-icon-moon{display:none}[data-theme=light] .theme-icon-moon{display:inline-flex}[data-theme=light] .theme-icon-sun,.theme-label-when-dark{display:none}[data-theme=dark] .theme-label-when-dark{display:inline}[data-theme=light] .theme-label-when-dark,.theme-label-when-light{display:none}[data-theme=light] .theme-label-when-light{display:inline}.theme-toggle-wide{width:auto;padding:0 12px}.theme-toggle:hover{border-color:var(--signal);color:var(--signal)}.theme-toggle-label{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;width:auto}.menu-toggle{display:none;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft);border:1px solid var(--line);border-radius:var(--radius-s);padding:9px 14px}.mobile-menu{border-top:1px solid var(--line);background:var(--canvas);padding:12px var(--gutter) 24px}.mobile-link{display:flex;align-items:baseline;gap:10px;padding:13px 4px;border-bottom:1px solid var(--line);text-decoration:none;font-size:.95rem;color:var(--text-soft)}.mobile-link:hover{color:var(--signal)}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-radius:var(--radius-s);border:1px solid transparent;transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast) ease,background-color var(--dur-fast) ease,color var(--dur-fast) ease}.btn-solid{background:var(--signal);color:var(--signal-ink);font-weight:500}.btn-solid:hover{transform:translateY(-2px)}.btn-ghost{border-color:var(--line-strong);color:var(--text)}.btn-ghost:hover{border-color:var(--signal);color:var(--signal);transform:translateY(-2px)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-block;padding:4px 10px;border:1px solid var(--line);border-radius:var(--radius-s);font-size:.7rem;color:var(--muted);white-space:nowrap}.badge-mock{display:inline-block;margin-left:8px;padding:2px 8px;border:1px dashed var(--danger);border-radius:var(--radius-s);color:var(--danger);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.pending-note{margin-top:18px;padding:20px 24px;border:1px dashed var(--line-strong);border-radius:var(--radius-m);background:var(--surface)}.pending-note .mono-label{color:var(--danger);display:block;margin-bottom:6px}.pending-note p{color:var(--muted);font-size:.92rem}.hero{position:relative;min-height:min(92vh,900px);display:flex;align-items:center;padding-top:40px;padding-bottom:90px}.hero-inner{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:clamp(32px,4vw,56px);align-items:center;width:100%}.hero-kicker{color:var(--signal);margin-bottom:22px}.hero-headline{display:flex;flex-direction:column}.hero-line{display:block}.hero-dot{color:var(--signal)}.hero-intro{margin-top:26px;font-size:clamp(1.02rem,1.35vw,1.18rem);color:var(--text-soft);max-width:46ch}.hero-meta{margin-top:22px;display:grid;gap:8px}.availability-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--signal);margin-right:9px;box-shadow:0 0 0 3px var(--signal-dim)}.hero-availability{color:var(--text)}.hero-actions{margin-top:34px;display:flex;flex-wrap:wrap;align-items:center;gap:12px}.hero-social{display:flex;gap:16px;margin-left:10px}.icon-link{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--muted);padding:6px 0;border-bottom:1px solid transparent;transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease}.icon-link:hover{color:var(--signal);border-color:var(--signal)}.hero-scene{position:relative;height:clamp(420px,60vh,620px)}.hero-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.hero-canvas canvas{touch-action:pan-y!important}.hero-poster{width:100%;height:100%;object-fit:contain}.hero-scene-labels{position:absolute;left:0;right:0;bottom:-30px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center;font-size:.62rem}.hero-scene-labels span{transition:opacity var(--dur-med) ease,color var(--dur-med) ease}.hero-scene-labels span.is-active{color:var(--signal)}.hero-scene-labels span.is-dim{opacity:.35}.hero-exhibit-btn{background:none;border:none;padding:2px 4px;cursor:pointer}.hero-exhibit-btn:hover{color:var(--signal)}.scene-hint{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:5;padding:8px 14px;border:1px solid var(--line-strong);border-radius:999px;background:color-mix(in srgb,var(--canvas) 82%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);white-space:nowrap;pointer-events:none}.exhibit-card{position:absolute;top:12px;left:12px;z-index:6;max-width:min(260px,calc(100% - 24px));padding:14px 16px;border:1px solid var(--line-strong);border-radius:var(--radius-m);background:color-mix(in srgb,var(--canvas) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-2)}.exhibit-card h3{font-size:1.05rem}.exhibit-card-tagline{margin-top:4px;color:var(--muted);font-size:.82rem}.exhibit-card-actions{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}.exhibit-card-actions .btn{padding:8px 12px;font-size:.62rem}.hero-scroll{position:absolute;bottom:22px;left:50%;transform:translate(-50%);display:grid;justify-items:center;gap:10px}.hero-scroll-line{width:1px;height:44px;background:linear-gradient(var(--line-strong),transparent);position:relative;overflow:hidden}.hero-scroll-line:after{content:"";position:absolute;left:-1.5px;top:-6px;width:4px;height:6px;border-radius:2px;background:var(--signal);animation:scroll-drip 2.2s var(--ease-out) infinite}@keyframes scroll-drip{0%{transform:translateY(0);opacity:0}15%{opacity:1}to{transform:translateY(48px);opacity:0}}.section-head{display:flex;align-items:baseline;gap:20px}.section-head h2{margin:0}.section-lead{margin-top:12px;color:var(--muted);max-width:58ch}.work-list{display:grid;gap:clamp(64px,9vh,110px);margin-top:clamp(24px,4vh,48px)}.work-row{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:center}.work-row-flip .work-art-link{order:2}.work-art-link{display:block;border-radius:var(--radius-m)}.work-art{width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius-m);transition:transform var(--dur-slow) var(--ease-out),box-shadow var(--dur-slow) ease,border-color var(--dur-med) ease}.work-art-link:hover .work-art{transform:translateY(-6px);box-shadow:var(--shadow-2);border-color:var(--line-strong)}.work-index{color:var(--signal);margin-bottom:14px}.work-title{font-size:clamp(1.5rem,2.4vw,2.1rem)}.work-title a{text-decoration:none;transition:color var(--dur-fast) ease}.work-title a:hover{color:var(--signal)}.work-tagline{margin-top:8px}.work-summary{margin-top:16px;color:var(--text-soft)}.work-meta{margin-top:20px;display:grid;gap:14px}.work-meta dt{margin-bottom:6px}.work-meta dd{margin:0;color:var(--text-soft);font-size:.94rem}.work-links{margin-top:24px;display:flex;flex-wrap:wrap;gap:10px}.about-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}.about-portrait img{width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius-m);filter:grayscale(15%)}.about-body .section-head{margin-bottom:28px}.about-paragraph{margin-bottom:18px;color:var(--text-soft)}.about-layers{margin-top:30px}.layer-list{margin-top:14px;display:grid;gap:10px}.layer-item{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);padding:13px 18px;margin-left:calc(var(--layer-depth, 0) * 16px);transition:border-color var(--dur-fast) ease,transform var(--dur-fast) ease}.layer-item:hover{border-color:var(--signal);transform:translate(4px)}.layer-name{font-weight:600;font-size:.95rem}.layer-detail{color:var(--muted)}.cap-list{margin-top:8px}.cap-row{display:grid;grid-template-columns:230px minmax(0,1fr) auto;gap:24px;align-items:center;padding:24px 0;border-top:1px solid var(--line)}.cap-row:last-child{border-bottom:1px solid var(--line)}.cap-depth{color:var(--signal);display:block;margin-bottom:6px}.cap-name h3{font-size:1.1rem}.cap-evidence{font-size:.7rem;letter-spacing:.06em;text-decoration:none;color:var(--muted);white-space:nowrap;transition:color var(--dur-fast) ease}.cap-evidence:hover{color:var(--signal)}.process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px clamp(24px,3vw,48px);margin-top:8px}.process-step{border-top:1px solid var(--line-strong);padding-top:18px;height:100%}.process-number{color:var(--signal)}.process-step h3{margin-top:12px;font-size:1.08rem}.process-step p{margin-top:8px;color:var(--muted);font-size:.92rem}ol.timeline-list[role=list]{position:relative;padding-left:42px;display:grid;gap:40px;margin-top:8px}ol.timeline-list[role=list]:before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:1px;background:var(--line-strong)}.timeline-entry{position:relative}.timeline-marker{position:absolute;left:-30px;top:7px;width:9px;height:9px;border-radius:50%;border:2px solid var(--signal);background:var(--canvas)}.timeline-body h3{margin-top:8px;font-size:1.12rem}.timeline-body p{margin-top:8px;color:var(--muted);font-size:.94rem}.timeline-body .chip{margin-top:12px}.copy-email{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.contact-email{font-size:clamp(1.25rem,3vw,1.9rem);font-weight:620;letter-spacing:-.01em;text-decoration:none;border-bottom:2px solid var(--signal);padding-bottom:3px;transition:color var(--dur-fast) ease;word-break:break-all}.contact-email:hover{color:var(--signal)}.copy-status{width:100%;min-height:1.3em;color:var(--signal)}.contact-links{margin-top:26px;display:flex;flex-wrap:wrap;gap:10px}.contact-availability{margin-top:24px;color:var(--muted)}.site-footer{border-top:1px solid var(--line);background:var(--canvas-raised);padding:56px 0 32px;margin-top:40px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:36px}.footer-col .brand-name{margin-bottom:6px}.footer-muted{color:var(--muted);font-size:.88rem;margin-top:4px;max-width:34ch}.footer-link{display:block;padding:6px 0;color:var(--text-soft);text-decoration:none;font-size:.9rem;transition:color var(--dur-fast) ease}.footer-link:hover{color:var(--signal)}.footer-bottom{margin-top:44px;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}.footer-warning{color:var(--danger)}.project-hero{padding-top:clamp(40px,7vh,80px);padding-bottom:clamp(32px,5vh,56px)}.project-back{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:var(--muted);transition:color var(--dur-fast) ease}.project-back:hover{color:var(--signal)}.project-title-row{margin-top:28px;display:flex;align-items:baseline;flex-wrap:wrap;gap:16px}.project-title-row h1{margin:0}.project-tagline{color:var(--muted);margin-top:12px;font-size:1.02rem}.project-status-row{margin-top:18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.project-meta-grid{margin-top:34px;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:22px;border-top:1px solid var(--line);padding-top:26px}.project-meta-grid dt{margin-bottom:6px}.project-meta-grid dd{margin:0;color:var(--text-soft);font-size:.92rem}.project-banner{border:1px solid var(--line);border-radius:var(--radius-m);width:100%;height:auto}.project-gallery{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.project-shot{margin:0}.project-shot figcaption{margin-top:10px}.shot-thumb{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden;background:var(--surface);cursor:zoom-in;transition:border-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}.shot-thumb:hover{border-color:var(--signal);transform:translateY(-3px)}.shot-thumb img{width:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:top center}.shot-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:24px;background:#000000d1;cursor:zoom-out}.shot-lightbox-inner{max-width:min(1400px,100%);max-height:90vh;overflow:auto;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-m);cursor:default}.shot-lightbox-inner img{width:100%;height:auto}.shot-lightbox-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 16px;padding:14px 18px;border-top:1px solid var(--line)}.project-section{padding-block:clamp(36px,6vh,64px);border-top:1px solid var(--line)}.project-section h2{font-size:clamp(1.3rem,2.2vw,1.8rem);margin-bottom:20px}.project-section>p{color:var(--text-soft);font-size:1.02rem}.project-highlights{display:grid;gap:4px}.project-highlights li{position:relative;padding:10px 0 10px 26px;color:var(--text-soft)}.project-highlights li:before{content:"";position:absolute;left:2px;top:19px;width:8px;height:8px;background:var(--signal);border-radius:2px}.next-project{display:block;text-decoration:none;border-top:1px solid var(--line);padding:clamp(40px,7vh,72px) 0;transition:color var(--dur-fast) ease}.next-project .mono-label{display:block;margin-bottom:10px}.next-project h2{transition:color var(--dur-fast) ease}.next-project:hover h2{color:var(--signal)}.legal-page{max-width:760px;margin-inline:auto;padding-top:clamp(40px,7vh,80px);padding-bottom:80px}.legal-page h1{font-size:clamp(2rem,4vw,3rem)}.legal-updated{margin-top:14px}.legal-block{margin-top:34px}.legal-block h2{font-size:1.08rem;margin-bottom:10px}.legal-block p{color:var(--text-soft);font-size:.96rem}.notfound{min-height:72vh;display:grid;place-content:center;justify-items:center;text-align:center;gap:14px;padding:60px var(--gutter)}.notfound-code{font-family:var(--font-mono);font-size:clamp(4rem,12vw,8rem);font-weight:500;color:var(--signal);letter-spacing:-.04em;line-height:1}.notfound p{color:var(--muted)}.notfound-actions{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.redirect-page{min-height:70vh;display:grid;place-content:center;text-align:center;gap:12px;padding:40px var(--gutter)}.redirect-page a{color:var(--signal)}@media(max-width:1180px){.header-nav{display:none}.menu-toggle{display:inline-block}}@media(max-width:1024px){.site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--canvas)}.hero{flex-direction:column;align-items:stretch;min-height:0;padding-top:24px}.hero-scroll{position:static;transform:none;order:3;margin:36px auto 0;padding-bottom:8px}.hero-inner{grid-template-columns:1fr}.hero-scene{height:clamp(300px,44vh,420px);order:2}.work-row{grid-template-columns:1fr}.work-row-flip .work-art-link{order:0}.about-grid{grid-template-columns:1fr}.about-portrait{max-width:420px}.cap-row{grid-template-columns:1fr;gap:12px;align-items:start}.process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.header-resume,.brand-text{display:none}.header-inner{gap:10px;height:60px}.brand,.brand-logo{gap:8px}.brand-logo .logo-wordmark{width:80px;height:auto}.header-controls{gap:8px;margin-left:auto}.lang-switch{padding:8px 2px}.menu-toggle{padding:8px 10px}.hero{padding-bottom:48px}.hero-social{margin-left:0}.hero-scene{height:auto;display:flex;flex-direction:column}.hero-canvas{position:relative;height:340px}.hero-poster{height:auto}.exhibit-card{position:static;max-width:none;margin-top:12px}.scene-hint{white-space:normal;text-align:center;max-width:calc(100% - 24px)}.hero-scene-labels{position:static;margin-top:12px;grid-template-columns:1fr;gap:4px}.hero-exhibit-btn{padding:8px 4px}.hero-scroll{margin-top:24px}.shot-lightbox{padding:12px}.process-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;gap:28px}}@media(max-width:360px){.brand-logo .logo-wordmark{display:none}}
