@import"https://fonts.googleapis.com/css2?family=Do+Hyeon&family=Gothic+A1:wght@500;600;700&family=Raleway:wght@600;700&display=swap";:root{--bg: oklch(16% .03 265);--bg-deep: oklch(11% .025 265);--panel: rgba(255, 255, 255, .055);--text: oklch(96% .014 296);--muted: oklch(78% .028 296);--accent: oklch(73% .17 315);--accent-2: oklch(76% .12 190);--accent-warm: oklch(78% .13 78);--accent-green: oklch(74% .13 150);--line: rgba(255, 255, 255, .13);--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--space-4xl: 96px;--page-max: 1280px;color:var(--text);background:var(--bg);font-family:Gothic A1,Do Hyeon,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 12% 8%,oklch(76% .12 190 / .14),transparent 30rem),radial-gradient(circle at 92% 18%,oklch(78% .13 78 / .1),transparent 28rem),linear-gradient(135deg,#0a1121,#020510 48%,#150a1c)}a{color:inherit;text-decoration:none}button{font:inherit}b,span,.home-about-body b,.copy-block b{color:var(--accent)}.locked{height:100vh;overflow:hidden}.preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0c0513 url(/assets/pre.svg) center / 92px no-repeat}header{position:fixed;inset:0 0 auto;z-index:20;padding:14px clamp(18px,5vw,72px);transition:background .18s ease,backdrop-filter .18s ease}header.scrolled{background:#090b12c7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.header-shell{width:min(100%,var(--page-max));margin-inline:auto;display:flex;align-items:center;justify-content:space-between}.brand{font-family:Raleway,sans-serif;color:var(--accent);font-size:1.55rem;font-weight:700;letter-spacing:0}nav{display:flex;align-items:center;gap:8px}nav a,.fork,.primary-button,.project-actions a,.project-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border-radius:7px;color:var(--text)}nav a{padding:8px 12px;color:#ffffffdb}nav a:hover,nav a.active{color:var(--text);background:#c770f029}a:focus-visible,button:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px}.fork{min-width:70px;background:#c770f03d}.menu-button{display:none;color:var(--text);background:transparent;border:0}.hero{position:relative;width:min(100%,var(--page-max));min-height:100svh;margin-inline:auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.8fr);align-items:center;gap:clamp(24px,6vw,80px);padding:96px clamp(22px,7vw,110px) 36px;overflow:hidden}.particle-field{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1;overflow:hidden}.particle-field span{position:absolute;border-radius:50%;background:#ffffff6b;animation:particleDrift 15s linear infinite}@keyframes particleDrift{0%{transform:translateZ(0);opacity:.1}50%{opacity:.8}to{transform:translate3d(46px,-120px,0);opacity:.1}}.hero-copy{max-width:760px}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--accent-2);margin:0 0 22px;font-weight:700}.hero h1,.hero h2,.page-heading h1,.copy-block h1{margin:0;font-family:Raleway,Gothic A1,sans-serif;letter-spacing:0}.hero h1{font-size:6.4rem;line-height:.96}.hero h2{margin-top:16px;font-size:3.35rem;line-height:1.08}.hero strong{color:var(--accent)}.profile{width:min(100%,460px);justify-self:center;filter:drop-shadow(0 26px 60px rgba(0,0,0,.38));animation:riseIn .62s ease both}@keyframes riseIn{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.wave{display:inline-block;animation:wave 2.1s infinite;transform-origin:70% 70%}@keyframes wave{0%,60%,to{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}.typewriter{display:block;margin-top:34px;color:var(--accent);font-size:2rem;font-weight:700;min-height:1.5em}.cursor{color:var(--accent-2);animation:blink .9s steps(2,start) infinite}@keyframes blink{50%{opacity:0}}.about-home,.social,.page-section{position:relative;width:min(100%,var(--page-max));margin-inline:auto;padding:clamp(82px,12vw,140px) clamp(22px,7vw,110px)}.about-home{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,380px);align-items:center;gap:48px}.about-copy h2,.social h2,.stack-section h2,.github-panel h2{margin:0 0 28px;font-size:2.65rem;font-family:Do Hyeon,Gothic A1,sans-serif}.home-about-body{color:var(--text);font-size:1.13rem;line-height:1.95;text-align:left}.inline,.activity-list button{display:inline;padding:0;border:0;color:var(--accent);background:transparent;font-weight:700;cursor:pointer}.inline:hover,.activity-list button:hover{color:var(--accent-2)}.activity-list .research-trigger{color:color-mix(in oklch,var(--accent) 92%,var(--text) 8%);text-decoration:underline;text-decoration-color:color-mix(in oklch,var(--accent) 56%,transparent);text-decoration-thickness:2px;text-underline-offset:4px}.activity-list .research-trigger:hover,.activity-list .research-trigger:focus-visible{color:var(--accent);text-decoration-color:var(--accent)}.home-mark{width:min(100%,370px);justify-self:center}.preview-media{position:fixed;z-index:30;height:auto;max-width:min(520px,72vw);max-height:70vh;border-radius:8px;box-shadow:0 22px 70px #00000080;animation:fadeIn .18s ease both}.research-preview{position:fixed;z-index:34;width:min(430px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;padding:var(--space-md);border:1px solid color-mix(in oklch,var(--accent) 52%,transparent);border-radius:8px;color:var(--text);background:linear-gradient(145deg,oklch(100% 0 0 / .08),transparent 64%),color-mix(in oklch,var(--bg-deep) 78%,var(--accent) 22%);box-shadow:0 24px 72px #0000007a;animation:fadeIn .16s ease both}.research-preview span{color:var(--accent-2);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.research-preview h3{margin:var(--space-xs) 0;color:var(--text);font-size:1.05rem;line-height:1.38}.research-preview p{margin:var(--space-xs) 0 0;color:var(--muted);font-size:.88rem;line-height:1.58}.research-keywords{display:flex;flex-wrap:wrap;gap:var(--space-2xs);margin-top:var(--space-sm)}.research-keywords small{padding:4px 7px;border:1px solid color-mix(in oklch,var(--accent-2) 34%,transparent);border-radius:6px;color:color-mix(in oklch,var(--accent-2) 82%,var(--text) 18%);background:color-mix(in oklch,var(--accent-2) 10%,transparent);font-size:.72rem}.research-preview a{display:inline-flex;align-items:center;justify-content:center;margin-top:var(--space-md);min-height:38px;padding:8px 12px;border-radius:7px;color:var(--bg-deep);background:color-mix(in oklch,var(--accent) 86%,var(--text) 14%);font-weight:700}.research-preview a:hover{background:color-mix(in oklch,var(--accent-2) 82%,var(--text) 18%)}.modal-panel.values-modal{width:min(620px,100%);max-height:min(82vh,620px);padding:var(--space-lg);border:1px solid color-mix(in oklch,var(--accent-warm) 38%,var(--line));color:var(--text);background:linear-gradient(140deg,oklch(100% 0 0 / .075),transparent 58%),color-mix(in oklch,var(--bg-deep) 86%,var(--accent-warm) 14%)}.values-modal .modal-close{float:none;display:flex;margin:0 0 var(--space-sm) auto}.values-head{display:grid;gap:var(--space-2xs);margin-bottom:var(--space-sm)}.values-head span,.value-card small{color:var(--accent-2);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.values-head strong{color:var(--text);font-family:Do Hyeon,Gothic A1,sans-serif;font-size:1.45rem;line-height:1.15}.values-head p,.value-card p,.values-modal blockquote{margin:0;color:var(--muted);line-height:1.55;font-size:.88rem}.values-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs)}.value-card{position:relative;min-height:126px;padding:var(--space-sm);border:1px solid color-mix(in oklch,var(--accent) 28%,transparent);border-radius:8px;background:#ffffff0b}.value-index{position:absolute;right:var(--space-sm);top:var(--space-sm);color:color-mix(in oklch,var(--accent-warm) 70%,var(--text) 30%);font-family:Raleway,Gothic A1,sans-serif;font-size:.76rem}.value-card h3{max-width:15ch;margin:var(--space-xs) 0 var(--space-2xs);color:var(--text);font-size:.98rem;line-height:1.32}.values-modal blockquote{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--line);color:color-mix(in oklch,var(--accent-warm) 82%,var(--text) 18%)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.social{text-align:center;padding-top:34px}.social p{color:var(--muted)}.social-links,.project-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.social-links a{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:50%;color:var(--bg-deep);background:#f2f0fa;transition:transform .18s ease,box-shadow .18s ease}.social-links a:hover{transform:translateY(-3px);box-shadow:0 0 22px #c770f07a}.page-section{min-height:calc(100svh - 86px);padding-top:132px}.section-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.65fr);align-items:start;gap:var(--space-2xl)}.copy-block{max-width:820px;text-align:left}.copy-block h1,.page-heading h1{font-size:3.8rem;line-height:1.05}.copy-block p,.page-heading p,.project-card p,.github-panel p{color:var(--muted);line-height:1.75}.copy-block p{max-width:72ch;font-size:1.06rem}.leadership-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);margin:var(--space-xl) 0}.stat-tile{min-height:170px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:var(--space-sm);padding:var(--space-lg);border:1px solid color-mix(in oklch,var(--accent) 34%,transparent);border-radius:8px;background:linear-gradient(145deg,oklch(100% 0 0 / .07),transparent 64%),color-mix(in oklch,var(--bg) 78%,var(--accent) 22%)}.stat-tile:nth-child(2){border-color:color-mix(in oklch,var(--accent-2) 38%,transparent);background:linear-gradient(145deg,oklch(100% 0 0 / .07),transparent 64%),color-mix(in oklch,var(--bg) 78%,var(--accent-2) 22%)}.stat-tile:nth-child(3){border-color:color-mix(in oklch,var(--accent-warm) 36%,transparent);background:linear-gradient(145deg,oklch(100% 0 0 / .07),transparent 64%),color-mix(in oklch,var(--bg) 80%,var(--accent-warm) 20%)}.stat-tile svg{color:var(--accent-2)}.stat-tile:nth-child(3) svg{color:var(--accent-warm)}.stat-tile span,.timeline-heading p,.timeline-card time{color:var(--accent-2);font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.stat-tile strong{color:var(--text);font-size:1.28rem;line-height:1.2}.stat-tile small{color:var(--muted);font-size:.92rem;line-height:1.55}.activity-list{display:grid;gap:12px;margin:22px 0;padding-left:0;list-style:none}.activity-list li{position:relative;padding-left:24px}.activity-list li:before{content:">";position:absolute;left:0;color:var(--accent-2)}blockquote{margin:22px 0;color:var(--accent);font-size:1.2rem}.about-visual{width:min(100%,420px);justify-self:center;margin-top:var(--space-xl)}.timeline-section{margin-top:var(--space-4xl)}.timeline-heading{max-width:820px;margin:0 auto var(--space-3xl);text-align:center}.timeline-heading p{margin:0 0 var(--space-sm)}.timeline-heading h2{margin:0;font-size:3.2rem;line-height:1.08;font-family:Raleway,Gothic A1,sans-serif}.timeline-heading span{display:block;margin-top:var(--space-md);color:var(--muted);font-size:1.02rem}.career-timeline{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl) var(--space-3xl);max-width:1120px;margin:0 auto}.career-timeline:before{content:"";position:absolute;top:10px;bottom:10px;left:50%;width:1px;transform:translate(-50%);background:linear-gradient(to bottom,transparent,color-mix(in oklch,var(--accent-2) 45%,transparent),color-mix(in oklch,var(--accent) 42%,transparent),transparent)}.timeline-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:start;gap:var(--space-md)}.timeline-item:nth-child(2n){grid-column:2;grid-template-columns:42px minmax(0,1fr)}.timeline-item:nth-child(odd){grid-column:1}.timeline-item:nth-child(odd) .timeline-node{order:2}.timeline-item:nth-child(odd) .timeline-card{order:1}.timeline-item:nth-child(2n) .timeline-node{order:1}.timeline-item:nth-child(2n) .timeline-card{order:2}.timeline-node{width:42px;height:42px;display:grid;place-items:center;border:1px solid color-mix(in oklch,var(--accent-2) 60%,transparent);border-radius:50%;color:var(--bg-deep);background:color-mix(in oklch,var(--accent-2) 88%,var(--text) 12%);box-shadow:0 0 0 8px color-mix(in oklch,var(--accent-2) 10%,transparent)}.timeline-card{min-height:164px;padding:var(--space-lg);border:1px solid var(--line);border-radius:8px;background:linear-gradient(155deg,oklch(100% 0 0 / .065),transparent 58%),#ffffff09;transition:transform .18s ease,border-color .18s ease,background .18s ease}.timeline-card:hover{transform:translateY(-3px);border-color:color-mix(in oklch,var(--accent-warm) 48%,transparent);background:linear-gradient(155deg,oklch(100% 0 0 / .08),transparent 58%),color-mix(in oklch,var(--bg) 84%,var(--accent-warm) 16%)}.timeline-card time{display:block;margin-bottom:var(--space-sm);font-variant-numeric:tabular-nums}.timeline-card h3{margin:0;color:var(--text);font-size:1.22rem;line-height:1.3}.timeline-card p{margin:var(--space-sm) 0 0;color:var(--muted);line-height:1.65}.stack-section{margin-top:72px;text-align:center}.stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(142px,1fr));gap:16px}.tech-chip{min-height:104px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;border:1px solid rgba(199,112,240,.35);border-radius:8px;background:#ffffff09;transition:transform .18s ease,border-color .18s ease}.tech-chip:hover,.project-card:hover{transform:translateY(-4px);border-color:#48d6c88c}.github-panel{margin:72px auto 0;max-width:720px;text-align:center}.github-panel a{color:var(--accent-2);font-weight:700}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:22px;background:#000000ad}.modal-panel{width:min(920px,100%);max-height:86vh;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#11131f;padding:18px}.modal-panel img,.modal-panel video{display:block;width:100%;border-radius:6px}.modal-close{float:right;margin-bottom:12px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:#ffffff14;cursor:pointer}.page-heading{text-align:center;margin-bottom:52px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.project-card{display:flex;flex-direction:column;border:1px solid rgba(199,112,240,.28);border-radius:8px;background:#ffffff0a;overflow:hidden;transition:transform .18s ease,border-color .18s ease}.project-card img{width:100%;aspect-ratio:1.28;object-fit:contain;padding:22px;background:#ffffff09}.project-content{padding:22px}.project-card h2{margin:0;font-size:1.45rem}.project-actions a,.project-actions button,.primary-button{padding:10px 14px;border:0;background:#623686d1;color:var(--text);cursor:pointer;transition:transform .18s ease,background .18s ease}.project-actions a:hover,.project-actions button:hover,.primary-button:hover{transform:translateY(-2px);background:#48d6c83d}.demo-player h2{margin:0 0 var(--space-md);color:var(--text);font-size:1.45rem}.resume-actions{display:flex;justify-content:center;margin-bottom:32px}.resume-type{min-height:72px;text-align:center}.resume-viewer{display:block;width:min(100%,980px);height:min(1120px,78vh);margin:26px auto 32px;border:1px solid var(--line);border-radius:8px;background:#ffffff0a}footer{display:flex;align-items:center;justify-content:center;padding:16px clamp(20px,5vw,72px);background:var(--bg-deep);color:var(--text);text-align:center}footer p{margin:0;font-size:.96rem}@media(max-width:920px){.hero,.about-home,.section-grid,.project-grid{padding-top:118px;text-align:left}.hero h1{font-size:4.2rem}.hero h2{font-size:2.45rem}.profile{max-height:420px}.leadership-stats{grid-template-columns:1fr}.career-timeline{grid-template-columns:1fr;gap:var(--space-lg);max-width:680px}.career-timeline:before{left:20px}.timeline-item,.timeline-item:nth-child(2n),.timeline-item:nth-child(odd){grid-column:1;grid-template-columns:42px minmax(0,1fr)}.timeline-item:nth-child(2n) .timeline-node,.timeline-item:nth-child(2n) .timeline-card,.timeline-item:nth-child(odd) .timeline-node,.timeline-item:nth-child(odd) .timeline-card{order:initial}.project-grid{max-width:620px;margin:0 auto}footer{justify-items:center}}@media(max-width:720px){header{padding:14px 20px;background:#090b12db}.menu-button{display:inline-flex;align-items:center;justify-content:center}nav{position:absolute;top:60px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;padding:14px 20px 22px;background:#090b12f5;border-bottom:1px solid var(--line)}nav.open{display:flex}nav a{justify-content:flex-start}.hero h1{font-size:3.25rem}.hero h2{font-size:2rem}.typewriter{font-size:1.35rem}.copy-block h1,.page-heading h1{font-size:2.55rem}.timeline-heading h2{font-size:2.25rem}.about-copy h2,.social h2,.stack-section h2,.github-panel h2{font-size:2.1rem}.about-home,.page-section{padding-left:18px;padding-right:18px}.home-about-body{font-size:1rem}.stat-tile{min-height:auto}.timeline-card{min-height:auto;padding:var(--space-md)}.preview-media{display:none}.modal-panel.values-modal{padding:var(--space-md)}.values-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
