:root{--bg: #0a0a0a;--surface: #121212;--card: #181818;--border: #242424;--border-light: #2e2e2e;--text: #eeede9;--text-2: #777;--text-3: #3d3d3d;--mono: "Space Mono", monospace;--sans: "Space Grotesk", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-snap-type:y mandatory;overflow-y:scroll;scroll-behavior:smooth;height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);height:100%;cursor:default}#nav-dots{position:fixed;right:28px;top:50%;transform:translateY(-50%);z-index:100;display:flex;flex-direction:column;gap:12px}.dot{width:6px;height:6px;border-radius:50%;background:var(--text-3);transition:all .3s ease;cursor:pointer;border:none;padding:0}.dot.active{background:var(--text);transform:scale(1.5)}section{scroll-snap-align:start;height:100vh;width:100%;position:relative;overflow:hidden}#hero{display:grid;grid-template-columns:1fr 45%;border-bottom:1px solid var(--border)}.hero-left{padding:40px 48px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--border)}.hero-logo{font-family:var(--mono);font-size:13px;color:var(--text-2);letter-spacing:.05em}.hero-name{font-size:clamp(64px,7vw,108px);font-weight:700;line-height:.92;letter-spacing:-.03em;color:var(--text)}.hero-name em{font-style:normal;color:var(--text-2)}.hero-title{font-size:15px;font-weight:400;color:var(--text-2);letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}.hero-bio{font-size:15px;color:var(--text-2);line-height:1.6;max-width:360px;text-wrap:pretty}.hero-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.btn-primary{background:var(--text);color:var(--bg);font-family:var(--sans);font-size:14px;font-weight:600;padding:12px 28px;border:none;border-radius:2px;cursor:pointer;transition:opacity .2s;text-decoration:none;display:inline-block;letter-spacing:.02em}.btn-primary:hover{opacity:.85}.btn-ghost{background:transparent;color:var(--text-2);font-family:var(--sans);font-size:14px;font-weight:500;padding:11px 24px;border:1px solid var(--border-light);border-radius:2px;cursor:pointer;transition:border-color .2s,color .2s;text-decoration:none;display:inline-flex;align-items:center;gap:8px}.btn-ghost:hover{border-color:var(--text-2);color:var(--text)}.social-links{display:flex;gap:16px;align-items:center}.social-link{font-family:var(--mono);font-size:12px;color:var(--text-3);text-decoration:none;letter-spacing:.06em;transition:color .2s}.social-link:hover{color:var(--text-2)}.hero-photo-col{position:relative;overflow:hidden}.hero-photo-col img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;filter:grayscale(100%) contrast(1.1) brightness(.6);mix-blend-mode:luminosity}.photo-caption{position:absolute;bottom:20px;left:20px;font-family:var(--mono);font-size:11px;color:#ffffff4d;letter-spacing:.08em}.location-badge{font-family:var(--mono);font-size:11px;color:var(--text-3);letter-spacing:.08em;display:flex;align-items:center;gap:8px}.location-badge:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#3a3a3a}.scroll-hint{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--text-3);display:flex;align-items:center;gap:10px;animation:pulse 2.5s ease-in-out infinite}.scroll-hint-line{width:32px;height:1px;background:var(--text-3)}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.9}}#projects{display:flex;flex-direction:column;border-bottom:1px solid var(--border)}.section-header{padding:28px 48px;display:flex;align-items:baseline;gap:20px;border-bottom:1px solid var(--border);flex-shrink:0}.section-title{font-size:11px;font-family:var(--mono);letter-spacing:.16em;color:var(--text-3);text-transform:uppercase}.section-count{font-size:11px;font-family:var(--mono);color:var(--text-3)}.projects-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.project-card{display:grid;grid-template-rows:1fr auto;border-right:1px solid var(--border);transition:background .3s;overflow:hidden;cursor:default}.project-card:last-child{border-right:none}.project-card:hover{background:var(--surface)}.project-visual{position:relative;overflow:hidden;background:var(--surface);border-bottom:1px solid var(--border)}.project-visual svg{width:100%;height:100%;display:block}.project-info{padding:24px 32px 28px}.project-num{font-family:var(--mono);font-size:10px;color:var(--text-3);letter-spacing:.12em;margin-bottom:40px}.project-name{font-size:20px;font-weight:700;color:var(--text);margin-bottom:16px;letter-spacing:-.02em}.project-desc{font-size:13px;color:var(--text-2);line-height:1.55;margin-bottom:16px;text-wrap:pretty}.project-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.tag{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--text-3);border:1px solid var(--border);padding:4px 10px;border-radius:1px;transition:color .2s,border-color .2s}.tag:hover{color:var(--text-2);border-color:var(--border-light)}.project-links{display:flex;gap:12px}.project-link{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--text-2);text-decoration:none;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--border);padding-bottom:2px;transition:color .2s,border-color .2s}.project-link:hover{color:var(--text);border-color:var(--text-2)}#about{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr}.about-header{grid-column:1 / -1;padding:28px 48px;border-bottom:1px solid var(--border);display:flex;align-items:baseline;gap:20px}.about-left{padding:56px 48px;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:space-between}.about-headline{font-size:clamp(32px,3.5vw,52px);font-weight:700;line-height:1.05;letter-spacing:-.025em;color:var(--text);max-width:500px;text-wrap:pretty}.about-body{font-size:15px;color:var(--text-2);line-height:1.7;max-width:440px;text-wrap:pretty}.about-contact{display:flex;flex-direction:column;gap:12px}.contact-row{display:flex;align-items:center;gap:16px}.contact-label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--text-3);text-transform:uppercase;width:80px;flex-shrink:0}.contact-value{font-size:14px;color:var(--text-2);text-decoration:none;transition:color .2s}.contact-value:hover{color:var(--text)}.about-right{padding:56px 48px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.about-footer{font-family:var(--mono);font-size:11px;color:var(--text-3);letter-spacing:.08em}.stack-scatter-wrap{width:100%;display:flex;flex-direction:column;height:100%}.stack-scatter-label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--text-3);text-transform:uppercase;padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:0}.scatter-cloud{position:relative;flex:1;min-height:280px}.sc-word{position:absolute;font-family:var(--sans);font-weight:700;color:var(--text);white-space:nowrap;transition:opacity .2s,transform .2s;cursor:default;line-height:1}.sc-word:hover{opacity:1!important}.sc-xl{font-size:clamp(28px,3vw,38px);letter-spacing:-.02em}.sc-lg{font-size:clamp(22px,2.2vw,28px);letter-spacing:-.01em}.sc-md{font-size:clamp(15px,1.5vw,19px)}.sc-sm{font-size:clamp(12px,1.1vw,14px)}.sc-dim{opacity:.35}.sc-dim2{opacity:.18}@media (max-width: 900px){html{scroll-snap-type:none}section{height:auto;min-height:100svh;overflow:visible}#nav-dots{display:none}#hero{grid-template-columns:1fr;grid-template-rows:auto}.hero-photo-col{display:none}.hero-left{padding:32px 24px;gap:28px;border-right:none;border-bottom:1px solid var(--border)}.hero-name{font-size:clamp(52px,13vw,80px)}.scroll-hint{display:none}#projects{height:auto}.projects-grid{grid-template-columns:1fr}.project-card{border-right:none;border-bottom:1px solid var(--border)}.project-visual{height:220px}.project-info{padding:20px 20px 24px}#about{grid-template-columns:1fr;grid-template-rows:auto auto auto;height:auto}.about-header{grid-column:1}.about-left{padding:32px 24px;border-right:none;border-bottom:1px solid var(--border);gap:28px}.about-right{padding:32px 24px}.about-headline{font-size:clamp(28px,6vw,44px)}.section-header{padding:20px 24px}}@media (max-width: 540px){.hero-left{padding:24px 20px;gap:24px}.hero-name{font-size:52px}.about-left,.about-right{padding:28px 20px}.project-info{padding:18px 16px 22px}.section-header{padding:18px 20px}}
