*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #080808;--text-primary: #f0f0f0;--text-secondary: #3a3a3a;--wire: #ffffff;--font-display: "Syncopate", sans-serif;--font-mono: "Space Mono", monospace}html,body{background:var(--bg);color:var(--text-primary);font-family:var(--font-mono);overflow-x:hidden;scrollbar-width:none}body::-webkit-scrollbar{display:none}#three-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}section,footer{position:relative;z-index:2}#hero{width:100%;height:100vh;background:transparent}.hero-text{position:fixed;left:5vw;top:50%;transform:translateY(-50%);max-width:44vw;display:flex;flex-direction:column;gap:0;-webkit-user-select:none;user-select:none;z-index:3;pointer-events:none}.hero-line{font-family:var(--font-display);font-size:clamp(38px,5.8vw,88px);font-weight:700;color:var(--text-primary);letter-spacing:.04em;line-height:.9;opacity:0;overflow:hidden;padding-bottom:.12em}.hero-line span{display:block}.hero-role{margin-top:18px;font-family:var(--font-mono);font-size:9px;color:#444;letter-spacing:.12em;opacity:0}.scroll-hint{position:absolute;bottom:24px;left:50%;transform:translate(-50%);font-family:var(--font-mono);font-size:8px;color:#2a2a2a;letter-spacing:.3em;opacity:0;animation:pulse 2.4s ease-in-out infinite;-webkit-user-select:none;user-select:none}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}#projects{background:transparent;padding-top:80px;padding-bottom:80px}.section-label{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:40px;padding:0 28px}.label-line{flex:1;max-width:120px;height:1px;background:#1a1a1a}.label-text{font-family:var(--font-mono);font-size:8px;color:#1e1e1e;letter-spacing:.35em;white-space:nowrap}.project-row{display:flex;align-items:center;gap:16px;padding:20px 28px;border-bottom:1px solid #111;cursor:pointer;transition:background .2s ease}.project-row:first-of-type{border-top:1px solid #111}.project-row:hover{background:#0e0e0e}.project-row:hover .proj-name{color:#fff}.project-row:hover .proj-arrow{opacity:1;transform:translate(4px)}.proj-num{font-family:var(--font-mono);font-size:8px;color:#222;min-width:24px}.proj-name{font-family:var(--font-display);font-size:11px;color:#c8c8c8;flex:1;transition:color .2s ease;letter-spacing:.05em}.proj-stack{font-family:var(--font-mono);font-size:8px;color:#2e2e2e;text-align:right}.proj-year{font-family:var(--font-mono);font-size:8px;color:#222;min-width:32px;text-align:right}.proj-arrow{font-size:12px;color:var(--text-primary);opacity:0;transition:opacity .2s ease,transform .2s ease;transform:translate(0);min-width:16px}#links{background:transparent;padding:80px 0}.links-inner{display:flex;flex-direction:column;align-items:center;gap:28px}.links-rule{width:120px;border:none;border-top:1px solid #1a1a1a}.links-row{display:flex;align-items:center;gap:48px}.links-row a{font-family:var(--font-mono);font-size:9px;color:#333;letter-spacing:.2em;text-decoration:none;text-transform:uppercase;transition:color .2s ease}.links-row a:hover{color:var(--text-primary)}#footer{background:transparent;text-align:center;padding:32px 0}#footer span{font-family:var(--font-mono);font-size:8px;color:#1e1e1e;letter-spacing:.15em}
