:root{--void:#06090b;--bone:#eef3ef;--ash:#7f8b86;--mist:#b5c0ba;--iris:#5ee6c8;--saffron:#ff8a5b;--verdant:#7aa2ff;
--font:'Manrope','Noto Sans KR',ui-sans-serif,system-ui,sans-serif;--serif:'Fraunces','Noto Serif KR',Georgia,serif;--mono:'JetBrains Mono','Noto Sans KR',ui-monospace,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;color-scheme:dark}
body{margin:0;background:var(--void);color:var(--bone);font:400 17px/1.6 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--iris);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1280px;margin:0 auto;padding:0 max(18px,4vw)}
nav{position:fixed;inset:0 0 auto 0;z-index:5;background:linear-gradient(var(--void) 40%,transparent)}
nav .wrap{display:flex;gap:24px;align-items:center;height:72px}
.logo{font:500 13px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--bone);display:flex;gap:10px;align-items:center}
.logo svg{width:18px;height:18px}
nav .links{margin-left:auto;display:flex;gap:24px;align-items:center}
nav a.l,.label{font:500 12px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase}
nav a.l{color:var(--ash)}nav a.l:hover{color:var(--bone);text-decoration:none}
.btn{display:inline-block;background:var(--iris);color:#04120e;border:0;border-radius:3px;padding:14px 20px;font:500 13px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.btn:hover{text-decoration:none;filter:brightness(1.12)}
.ghost{color:var(--ash);font:400 14px var(--font)}
.hero{position:relative;min-height:100vh;display:flex;align-items:center}
.hero canvas{position:fixed;inset:0;width:100%;height:100%;z-index:0}
main,footer,.hero .wrap,.cap{position:relative;z-index:1}.cap{position:absolute}
.hero .wrap{position:relative;pointer-events:none}.hero .wrap *{pointer-events:auto}
h1,h2,h3{font-family:var(--serif);font-weight:400;font-variation-settings:'opsz' 48;margin:0}
h1{font-size:clamp(42px,6.8vw,92px);line-height:1.02;letter-spacing:-.02em;max-width:11em}
h2{font-size:clamp(34px,4.5vw,62px);line-height:1.05;letter-spacing:-.015em}
h3{font-size:26px;line-height:1.2}
.label{color:var(--iris);display:block;margin-bottom:18px}.label:before{content:'// ';color:var(--ash)}
.sub{max-width:520px;color:var(--mist);margin:30px 0 36px}
section{padding:96px 0}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px}
@media(max-width:800px){.cols{grid-template-columns:1fr;gap:30px}section{padding:60px 0}nav .links a.l{display:none}}
.row{display:grid;grid-template-columns:200px 1fr;gap:12px 36px;padding:18px 0}
@media(max-width:800px){.row{grid-template-columns:1fr}}
.when{color:var(--ash);font:400 13px/1.6 var(--mono)}
.row h3{margin-bottom:4px}.role{color:var(--silver,#bdbdbd)}
.row ul,.plain{margin:10px 0 0;padding-left:18px;color:var(--mist)}li{margin:3px 0}
.pill{display:inline-block;padding:2px 0;margin-right:24px;color:var(--bone);font-weight:400}
.pub{color:var(--mist);font-size:16px}.pub b{font-weight:400;color:var(--bone)}
details{margin-top:36px}summary{cursor:pointer;color:var(--ash);font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase}
details[open] summary{color:var(--bone)}
.small{font-size:16px;color:var(--ash)}
img.me{width:min(260px,60vw);border-radius:4px;display:block;filter:grayscale(.15) contrast(1.02)}
footer{padding:96px 0 60px;color:var(--ash);font-size:14px}

.ln{display:block;overflow:hidden;padding-bottom:.08em}.ln>span{display:inline-block;transform:translateY(110%);animation:up 1s cubic-bezier(.2,.7,.1,1) forwards;animation-delay:var(--d,0s)}
.rv{opacity:0;animation:fade .9s ease forwards;animation-delay:var(--d,0s)}
@keyframes up{to{transform:none}}@keyframes fade{to{opacity:1}}
.cap{position:absolute;right:max(18px,4vw);bottom:48px;font:500 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--saffron);transition:opacity .3s}
.stats{display:flex;flex-wrap:wrap;gap:36px 96px;margin-top:96px}.stats b{display:block;font-weight:400;font:400 clamp(48px,6vw,78px)/1.1 var(--serif);letter-spacing:-.02em}
img.me{margin-top:36px}details.inl{margin:6px 0 0}details.inl summary{font-size:12px}
@media(prefers-reduced-motion:reduce){.ln>span,.rv{animation:none;transform:none;opacity:1}}
.hero .wrap{width:100%}

.scene{min-height:90vh;display:flex;flex-direction:column;justify-content:center;max-width:46ch}
.scene h2{margin-bottom:22px}
.who{display:flex;gap:36px;align-items:flex-end;flex-wrap:wrap;max-width:min(640px,100%)}.who .me{width:200px;max-width:100%;border-radius:2px}
#contact{min-height:80vh}
.scene,#focus,#contact{min-height:100vh;display:flex;flex-direction:column;justify-content:center}#focus .cols{width:100%}
#focus .cols{display:block;max-width:480px}#focus .cols>div+div{margin-top:28px}
.pt{color:var(--bone);font-size:18px;line-height:1.4;margin-bottom:4px}.pv{color:var(--ash);font-size:15px}
.role{display:inline-block;margin-left:10px;padding:1px 8px;border:1px solid var(--iris);border-radius:99px;color:var(--iris);font:500 11px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;font-style:normal}
.pd{margin:8px 0 0;font-size:14px;color:var(--mist)}.pd b{display:inline-block;min-width:64px;color:var(--ash);font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;font-weight:500}.pd u{text-decoration:none;color:var(--bone)}
html[lang=ko] h1,html[lang=ko] h2,html[lang=ko] p,html[lang=ko] .pt{word-break:keep-all;overflow-wrap:break-word}
