:root{color-scheme:light;--ink: #1d1d1f;--secondary: #6e6e73;--tertiary: #86868b;--on-ink: #fff;--page-bg: radial-gradient(120% 90% at 70% 10%, #fbfaf8 0%, #f7f5f2 55%, #f0ede8 100%);--surface: #fff;--surface-2: #faf9f7;--well: #efede9;--edge: var(--ink);--edge-strong: #000;--tray-border: rgba(0, 0, 0, .06);--tray-shadow-near: rgba(0, 0, 0, .06);--tray-shadow-far: rgba(0, 0, 0, .14);--tray-inset: #fff;--well-inset: rgba(0, 0, 0, .08);--chip-text: #494949;--link-underline: rgba(0, 0, 0, .3);--dot-idle: rgba(0, 0, 0, .18);--ph-border: #cfcac2;--ph-sub: #9c978f;--ease-out: cubic-bezier(.22, 1, .36, 1)}:root[data-theme=dark]{color-scheme:dark;--ink: #f2f1ee;--secondary: #a3a19c;--tertiary: #86847f;--on-ink: #141416;--page-bg: radial-gradient(120% 90% at 70% 10%, #1a1a1d 0%, #141416 55%, #0e0e10 100%);--surface: #212124;--surface-2: #1b1b1e;--well: #141416;--edge: #5c5a55;--edge-strong: #b7b4ad;--tray-border: rgba(255, 255, 255, .08);--tray-shadow-near: rgba(0, 0, 0, .35);--tray-shadow-far: rgba(0, 0, 0, .55);--tray-inset: rgba(255, 255, 255, .06);--well-inset: rgba(0, 0, 0, .4);--chip-text: #c9c7c2;--link-underline: rgba(255, 255, 255, .38);--dot-idle: rgba(255, 255, 255, .22);--ph-border: #3c3c40;--ph-sub: #6f6d69}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Helvetica Neue,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--ink);background:var(--page-bg);transition:color .25s ease}#root{height:100%}a{color:inherit;text-decoration:none}.link{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;text-decoration-color:var(--link-underline);transition:text-decoration-color .15s ease}.link:hover{text-decoration-color:var(--ink)}.link:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:3px}::selection{background:var(--ink);color:var(--on-ink)}.page{height:100%;max-width:1440px;margin:0 auto;padding:clamp(20px,4vh,44px) clamp(24px,4vw,64px);display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.wordmark{font-size:15px;font-weight:700;letter-spacing:-.01em}.nav{display:flex;gap:10px}.views{position:relative;flex:1;min-height:0}.pane{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;transition:opacity .35s ease,transform .45s var(--ease-out)}.pane.hidden{opacity:0;transform:translateY(14px);pointer-events:none;visibility:hidden;transition:opacity .35s ease,transform .45s var(--ease-out),visibility 0s linear .45s}.grid{display:grid;align-items:center;gap:clamp(32px,5vw,80px);width:100%}.work-grid{grid-template-columns:minmax(340px,.85fr) 1.15fr}.about-grid{grid-template-columns:minmax(340px,1fr) .8fr}.btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:999px;font-family:inherit;font-size:14.5px;font-weight:600;line-height:1.2;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.btn-primary{background:var(--ink);color:var(--on-ink);padding:13px 28px;box-shadow:0 4px 0 var(--edge-strong)}.btn-primary:hover,.btn-primary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--edge-strong)}.btn-secondary{background:var(--surface);color:var(--ink);border:2px solid var(--ink);padding:12px 24px;box-shadow:0 4px 0 var(--edge)}.btn-secondary:hover,.btn-secondary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--edge)}.nav-btn{border:2px solid var(--ink);border-radius:999px;background:var(--surface);color:var(--ink);font-family:inherit;font-size:13.5px;font-weight:600;padding:8px 20px;box-shadow:0 3.5px 0 var(--edge);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.nav-btn.active{background:var(--ink);color:var(--on-ink);box-shadow:0 3.5px 0 var(--edge-strong)}.nav-btn:hover,.nav-btn:active{transform:translateY(2.5px);box-shadow:0 1px 0 var(--edge)}.nav-btn.active:hover,.nav-btn.active:active{box-shadow:0 1px 0 var(--edge-strong)}.theme-btn{width:38px;height:38px;padding:0;border-radius:50%;background:var(--surface);color:var(--ink);border:2px solid var(--ink);box-shadow:0 3.5px 0 var(--edge);display:grid;place-items:center;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.theme-btn:hover,.theme-btn:active{transform:translateY(2.5px);box-shadow:0 1px 0 var(--edge)}.theme-btn svg{display:block}.arrow-btn{width:40px;height:40px;border-radius:50%;background:var(--surface);color:var(--ink);border:2px solid var(--ink);box-shadow:0 4px 0 var(--edge);display:grid;place-items:center;font-size:15px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.arrow-btn:hover,.arrow-btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--edge)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1.5px solid var(--ink);border-radius:999px;background:var(--surface);box-shadow:0 2.5px 0 var(--edge);font-size:12.5px;font-weight:500;color:var(--chip-text);padding:6px 14px}.btn:focus-visible,.nav-btn:focus-visible,.theme-btn:focus-visible,.arrow-btn:focus-visible,.dot:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.label{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--tertiary)}h1{margin:0;font-size:clamp(42px,4.8vw,72px);font-weight:700;letter-spacing:-.045em;line-height:1.02}.intro{margin:0;font-size:clamp(16px,1.35vw,19px);line-height:1.6;color:var(--secondary);max-width:40ch}.hero{display:flex;flex-direction:column;align-items:flex-start;gap:22px;animation:rise .8s var(--ease-out) both}.actions{display:flex;flex-wrap:wrap;gap:12px}.showcase{display:flex;flex-direction:column;gap:20px;min-width:0;animation:rise .8s var(--ease-out) .15s both}.showcase-head{display:flex;align-items:center;justify-content:space-between}.showcase-nav{display:flex;align-items:center;gap:10px}.counter{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--tertiary);margin-right:4px}.stage{display:flex;align-items:center;gap:clamp(24px,3vw,44px)}.card-stack{position:relative;flex:1 1 55%;min-width:0;max-width:460px;aspect-ratio:4 / 3.3}.proj-card{position:absolute;top:0;right:0;bottom:0;left:0;transition:transform .55s var(--ease-out),opacity .4s ease}.tray{display:flex;width:100%;height:100%;border-radius:22px;background:linear-gradient(180deg,var(--surface),var(--surface-2));padding:12px;border:1px solid var(--tray-border);box-shadow:0 2px 6px var(--tray-shadow-near),0 30px 60px var(--tray-shadow-far),inset 0 1px 0 var(--tray-inset)}.well{flex:1;min-width:0;border-radius:14px;background:var(--well);box-shadow:inset 0 1px 3px var(--well-inset);overflow:hidden}.well img{width:100%;height:100%;object-fit:cover;display:block}.ph{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:16px;text-align:center;color:var(--tertiary);border:1.5px dashed var(--ph-border);border-radius:12px}.ph-title{font-size:13px;font-weight:500;color:var(--secondary)}.ph-sub{font-size:11.5px;color:var(--ph-sub)}.info-area{position:relative;flex:1 1 45%;min-width:230px;max-width:380px}.info{display:flex;flex-direction:column;align-items:flex-start;gap:14px;transition:opacity .35s ease,transform .45s var(--ease-out)}.info.off{position:absolute;top:0;left:0;right:0;opacity:0;transform:translateY(12px);pointer-events:none}.kicker{font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--tertiary)}.proj-name{margin:0;font-size:clamp(26px,2.6vw,38px);font-weight:700;letter-spacing:-.035em;line-height:1.05}.proj-desc{margin:0;font-size:15px;line-height:1.55;color:var(--secondary)}.dots{display:flex;justify-content:center;gap:4px}.dot{width:20px;height:20px;padding:0;border:none;background:none;display:grid;place-items:center;cursor:pointer}.dot:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--dot-idle);transition:background .2s ease}.dot.active:before{background:var(--ink)}.about-copy{display:flex;flex-direction:column;align-items:flex-start;gap:20px;animation:rise .8s var(--ease-out) both}.about-headline{margin:0;font-size:clamp(32px,3.4vw,52px);font-weight:700;letter-spacing:-.04em;line-height:1.06}.bio{margin:0;font-size:15.5px;line-height:1.6;color:var(--secondary);max-width:48ch}.bio strong{color:var(--ink);font-weight:600}.portrait{display:flex;justify-content:center;animation:rise .8s var(--ease-out) .15s both}.portrait-card{width:min(100%,340px);aspect-ratio:4 / 5}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 767px){html,body{height:auto;overflow:auto}#root{height:auto}.page{height:auto;min-height:100dvh}.views{flex:none}.pane{position:static;padding:36px 0 48px}.pane.hidden{display:none}.work-grid,.about-grid{grid-template-columns:1fr;gap:44px}.stage{flex-direction:column;align-items:stretch;gap:28px}.card-stack{flex:none;max-width:none}.info-area{min-width:0;max-width:none}.theme-btn{width:38px;height:38px;padding:0;border-radius:50%;background:var(--surface);color:var(--ink);border:2px solid var(--ink);box-shadow:0 3.5px 0 var(--edge);display:grid;place-items:center;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.theme-btn:hover,.theme-btn:active{transform:translateY(2.5px);box-shadow:0 1px 0 var(--edge)}.theme-btn svg{display:block}.arrow-btn{width:44px;height:44px}.dot{width:30px;height:30px}.nav-btn{padding:11px 20px}}
