*{box-sizing:border-box}:root{--bg-deep:#e9edf0;--bg-mid:#f7f7f4;--bg-warm:#fffaf0;--paper:#ffffff9e;--paper-strong:#ffffffc7;--line:#76828b2e;--text:#171b20;--text-soft:#4d5660;--muted:#77818a;--accent:#8f7753;--accent-bright:#d7c493;--accent-deep:#334b5f;--flow-blue:#e7eff7;--flow-ivory:#fff6e4;--flow-pearl:#f6f3ee;--shadow:0 28px 90px #3a444e21}html{background:var(--bg-deep);scroll-behavior:smooth;height:100%;min-height:100%}body{height:100%;min-height:100vh;color:var(--text);background:radial-gradient(circle at 7% 10%,#e7eff7d6,#0000 30%) 0 0/185% 185%,radial-gradient(circle at 88% 12%,#fff6e4c7,#0000 32%) 0 0/230% 230%,radial-gradient(circle at 70% 86%,#f6f3eebd,#0000 36%) 0 0/270% 270%,linear-gradient(126deg,#e9edf0 0%,#f7f7f4 35%,#fbf8f0 68%,#fffaf0 100%) 0 0/100% 100%;margin:0;font-family:Arial,Helvetica,sans-serif;animation:12s ease-in-out infinite alternate ambient-shift;position:relative;overflow-x:hidden}#root{height:100%}body:before,body:after{z-index:-2;pointer-events:none;content:"";position:fixed;inset:0}body:before{background-color:#0000;background-image:linear-gradient(#4e5b680b 1px,#0000 1px),linear-gradient(90deg,#8f775309 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:64px 64px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;animation:14s linear infinite grid-drift;-webkit-mask-image:radial-gradient(circle at 50% 12%,#000000e6,#0000 56%),linear-gradient(#000c,#0000 86%);mask-image:radial-gradient(circle at 50% 12%,#000000e6,#0000 56%),linear-gradient(#000c,#0000 86%)}body:after{z-index:-1;mix-blend-mode:screen;opacity:.95;background:linear-gradient(118deg,#0000 0%,#ffffffb8 13%,#fff6e485 24%,#e7eff76b 38%,#0000 50%,#f6f3ee80 62%,#8f77531f 75%,#0000 88%) 0 0/260% 260%,linear-gradient(62deg,#0000 7%,#ffffffa3 24%,#0000 44%,#6b7c8b24 66%,#0000 86%) 0 0/210% 210%;animation:8s ease-in-out infinite alternate aurora-flow}a{color:inherit;text-decoration:none}.page{z-index:1;scroll-behavior:smooth;scroll-snap-type:y proximity;-webkit-backdrop-filter:blur(2px)saturate(1.08);backdrop-filter:blur(2px)saturate(1.08);background:radial-gradient(circle at 10% 10%,#ffffff9e,#0000 18%),linear-gradient(110deg,#ffffffb8,#f7f7f48f 48%,#fff6e433);height:100vh;min-height:100vh;position:relative;overflow-y:auto;box-shadow:inset 0 1px #ffffffa3,inset 0 -1px #76828b14}.section-nav{z-index:20;--nav-item-step:44px;--pointer-y:calc(46px + (var(--active-section-index) * var(--nav-item-step)));gap:0;padding-right:44px;transition:padding .22s,transform .22s;display:grid;position:fixed;top:50%;right:28px;transform:translateY(-50%)}.section-nav-toggle{z-index:2;cursor:pointer;-webkit-backdrop-filter:blur(14px)saturate(1.08);backdrop-filter:blur(14px)saturate(1.08);background:linear-gradient(145deg,#ffffffc7,#f0f2f28a),#ffffff9e;border:1px solid #ffffffad;border-radius:999px;place-items:center;width:32px;height:32px;padding:0;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;display:grid;position:absolute;top:-42px;right:39px;box-shadow:0 12px 30px #1e283224,inset 0 1px #ffffffb8}.section-nav-toggle:hover,.section-nav-toggle:focus-visible{background:#ffffffd1;border-color:#d7c49399;outline:none;transform:translateY(-1px);box-shadow:0 14px 34px #1e28322e,inset 0 1px #ffffffd1}.section-nav-toggle span{background:#334b5fe0;border-radius:999px;width:11px;height:2px;transition:opacity .18s,transform .22s cubic-bezier(.22,1,.36,1);position:absolute}.section-nav-toggle span:first-child{transform:translate(-2px)rotate(45deg)}.section-nav-toggle span:last-child{transform:translate(2px)rotate(-45deg)}.section-nav.is-collapsed{padding-right:0}.section-nav.is-collapsed .section-nav-toggle{top:50%;right:0;transform:translateY(-50%)}.section-nav.is-collapsed .section-nav-toggle:hover,.section-nav.is-collapsed .section-nav-toggle:focus-visible{transform:translateY(calc(-50% - 1px))}.section-nav.is-collapsed .section-nav-toggle span:first-child{transform:translate(-2px)rotate(-45deg)}.section-nav.is-collapsed .section-nav-toggle span:last-child{transform:translate(2px)rotate(45deg)}.section-nav-guide{pointer-events:none;width:34px;transform:translate3d(0, calc(var(--pointer-y) - 50%), 0);will-change:transform;transition:opacity .18s,transform .26s cubic-bezier(.22,1,.36,1);position:absolute;top:-24px;bottom:-24px;right:0}.section-nav.is-collapsed .section-nav-guide,.section-nav.is-collapsed a{pointer-events:none;opacity:0;transform:translate(18px)scale(.96)}.section-nav:hover .section-nav-guide,.section-nav:focus-within .section-nav-guide,.section-nav.is-hovering .section-nav-guide{animation:1.6s ease-in-out infinite directory-nudge}.section-nav.is-navigating .section-nav-guide{animation:.72s cubic-bezier(.22,1,.36,1) both directory-confirm}.guide-arrow{filter:drop-shadow(0 1px 1px #fffdf8e6)drop-shadow(0 4px 10px #0d182429);opacity:.72;border-top:2px solid #334b5feb;border-right:2px solid #334b5feb;border-radius:1px;width:12px;height:12px;transition:border-color .22s,height .22s,opacity .22s,width .22s;position:absolute;top:50%;transform:translateY(-50%)rotate(225deg)}.guide-arrow:first-child{right:0}.guide-arrow:nth-child(2){right:8px}.guide-arrow:nth-child(3){right:16px}.section-nav.is-hovering .guide-arrow{filter:drop-shadow(0 1px 1px #fffdf8f2)drop-shadow(0 5px 12px #0d182433);opacity:1;border-color:#334b5f;width:13px;height:13px}.section-nav.is-navigating .guide-arrow{filter:drop-shadow(0 1px 1px #fffdf8)drop-shadow(0 6px 14px #0d18243d);opacity:1;border-color:#243848;width:14px;height:14px;animation:.72s cubic-bezier(.22,1,.36,1) both arrow-confirm}.section-nav.is-navigating .guide-arrow:nth-child(2){animation-delay:45ms}.section-nav.is-navigating .guide-arrow:nth-child(3){animation-delay:90ms}.section-nav a{min-height:var(--nav-item-step);color:#2a333cbd;letter-spacing:.025em;text-transform:none;grid-template-columns:14px 108px;justify-content:flex-end;align-items:center;gap:8px;min-width:150px;padding:5px 0 5px 16px;font-family:Aptos Display,SF Pro Display,Inter,Segoe UI,Arial,Helvetica,sans-serif;font-size:13.5px;font-weight:620;transition:color .18s,opacity .18s,transform .22s cubic-bezier(.22,1,.36,1);display:grid;position:relative}.section-nav a:before{content:"";opacity:.72;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ffffffad,#f0f2f275),#ffffff7a;border:1px solid #ffffffad;border-radius:999px;width:52px;height:30px;transition:background .18s,border-color .18s,box-shadow .18s,opacity .18s,transform .18s,width .18s;display:none;position:absolute;right:-10px;box-shadow:0 10px 28px #1e28321f,inset 0 1px #ffffffb8}.section-nav a:hover,.section-nav a.active{color:#243848}.section-nav a:hover:before,.section-nav a.active:before{opacity:1;background:#ffffff9e;border-color:#d7c49385;width:58px;transform:translate(-1px);box-shadow:0 10px 26px #1e283221,inset 0 1px #ffffffb8}.nav-label{opacity:.76;color:#2a333cad;text-shadow:0 1px #fffdf8b8;text-align:left;white-space:nowrap;-webkit-backdrop-filter:blur(14px)saturate(1.08);backdrop-filter:blur(14px)saturate(1.08);background:#ffffff75;border:1px solid #ffffff9e;border-radius:999px;order:2;justify-self:start;width:108px;padding:5px 9px;transition:background .18s,border-color .18s,color .18s,opacity .18s,box-shadow .18s;overflow:hidden;box-shadow:0 8px 24px #0d182414,inset 0 1px #ffffff6b}.section-nav:hover .nav-label,.section-nav a.active .nav-label{opacity:1}.section-nav:hover .nav-label{color:#2a333cd1;background:#ffffff94;border-color:#ffffff94}.section-nav a:hover .nav-label{color:#243848;background:#ffffffbd;border-color:#d7c4938f;box-shadow:0 10px 26px #0d182429,inset 0 1px #ffffff80}.section-nav a.active .nav-label{color:#1d3040;background:linear-gradient(135deg,#ffffffd6,#eff1f0ad);border-color:#334b5f3d;font-weight:650;box-shadow:0 12px 30px #0d18242e,inset 0 1px #ffffff8a}.nav-dot{z-index:1;background:#fffffff5;border:1px solid #334b5f8a;border-radius:999px;order:1;justify-self:center;width:11px;height:11px;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;position:relative;box-shadow:0 0 0 6px #ffffff75,0 8px 20px #1e283229}.section-nav a:hover .nav-dot,.section-nav a.active .nav-dot{border-color:var(--accent-bright);background:var(--accent-bright);transform:scale(1.18);box-shadow:0 0 0 5px #d7bf8a33,0 0 24px #d7bf8a5c}.hero{scroll-snap-align:start;align-items:start;min-height:100vh;padding:72px 6vw 112px;display:grid;position:relative}.hero-lang-switch{z-index:4;-webkit-backdrop-filter:blur(10px)saturate(1.06);backdrop-filter:blur(10px)saturate(1.06);background:#ffffff8f;border:1px solid #ffffff9e;border-radius:999px;gap:6px;padding:5px;display:inline-flex;position:absolute;top:clamp(22px,3.2vh,34px);right:6vw;box-shadow:0 12px 28px #0d18241f,inset 0 1px #ffffffb3}.hero-lang-switch button{color:#334b5fdb;letter-spacing:.02em;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;min-width:52px;padding:6px 10px;font-family:Aptos,SF Pro Text,Inter,Segoe UI,Arial,Helvetica,sans-serif;font-size:12px;font-weight:680;transition:color .16s,background .16s,border-color .16s}.hero-lang-switch button:hover{color:#243848}.hero-lang-switch button.is-active{color:#1f3041;background:#ffffffd6;border-color:#334b5f29}.hero-greeting{z-index:2;pointer-events:none;position:absolute;top:clamp(34px,6vh,68px);left:6vw}.hero-greeting span{color:#0000;letter-spacing:0;opacity:0;text-shadow:0 12px 42px #334b5f1f,0 1px #ffffffb3;background:linear-gradient(105deg,#1f3041 0%,#8f7753 48%,#334b5f 100%);-webkit-background-clip:text;background-clip:text;padding:0 .08em .12em;font-family:Snell Roundhand,Apple Chancery,Segoe Script,Brush Script MT,cursive;font-size:clamp(54px,8vw,118px);font-weight:500;line-height:.9;animation:3s cubic-bezier(.22,1,.36,1) .26s both hello-reveal;display:inline-block;position:relative;overflow:hidden;transform:translate(-14px,8px)scale(.98)}.hero-greeting span:after{content:"";background:linear-gradient(110deg,#0000 0% 36%,#ffffff85 48%,#0000 62% 100%);animation:3s cubic-bezier(.22,1,.36,1) 1.35s infinite hello-shine;position:absolute;inset:0;transform:translate(-120%)}.hero-content{grid-template-columns:minmax(240px,320px) minmax(0,.92fr);align-items:center;gap:clamp(34px,5vw,72px);padding-top:clamp(116px,18vh,184px);display:grid}.hero-copy{order:2;justify-self:start;min-width:0;margin-left:clamp(24px,3vw,56px)}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:26px;font-size:14px}h1,h2,h3,h4{color:#101514}h1{letter-spacing:-.06em;max-width:980px;margin:0;font-size:clamp(52px,8.6vw,104px);line-height:1.02}.hero-title{max-width:560px;color:var(--accent-deep);letter-spacing:.01em;margin:26px 0 0;font-family:Aptos,SF Pro Text,Inter,Segoe UI,Arial,Helvetica,sans-serif;font-size:clamp(17px,2vw,25px);font-weight:650;line-height:1.45}.intro{max-width:680px;color:var(--text-soft);margin-top:32px;font-size:20px;line-height:1.72}.hero-portrait{aspect-ratio:4/5;order:1;justify-self:start;width:min(29vw,316px);min-width:240px;margin:clamp(6px,1.5vh,18px) 0 0;position:relative}.hero-portrait:before{content:"";-webkit-backdrop-filter:blur(18px)saturate(1.05);backdrop-filter:blur(18px)saturate(1.05);background:linear-gradient(145deg,#ffffff75,#d7c4931a),#ffffff2e;border:1px solid #ffffffad;border-radius:28px;position:absolute;inset:-18px;transform:none;box-shadow:0 30px 80px #0d18242e,inset 0 1px #ffffff7a}.hero-portrait:after{content:"";filter:blur(2px);background:radial-gradient(circle,#d7c49357,#0000 68%);border-radius:999px;width:72px;height:72px;position:absolute;bottom:24px;right:-22px}.hero-portrait img{z-index:1;object-fit:cover;object-position:50% 34%;border:1px solid #ffffffc2;border-radius:24px;width:100%;height:100%;display:block;position:relative;box-shadow:0 24px 70px #0d182438,0 0 0 8px #fffdf82e}.scroll-hint{z-index:18;color:#3f4952bd;align-items:center;gap:14px;font-family:Aptos,SF Pro Text,Inter,Segoe UI,Arial,Helvetica,sans-serif;text-decoration:none;transition:color .18s,opacity .18s,transform .18s;display:inline-flex;position:fixed;bottom:42px;left:24px}.scroll-hint:hover{color:var(--accent-deep);transform:translateY(2px)}.scroll-hint.is-section-scroll{gap:0}.scroll-hint-line{background:#334b5f33;width:1px;height:46px;position:relative;overflow:hidden}.scroll-hint-line:after{background:var(--accent);content:"";width:1px;height:18px;animation:1.8s ease-in-out infinite scroll-line;position:absolute;top:-18px;left:0}.scroll-hint-copy{-webkit-backdrop-filter:blur(14px)saturate(1.08);backdrop-filter:blur(14px)saturate(1.08);background:#ffffff75;border:1px solid #ffffff8a;border-radius:999px;justify-items:start;gap:5px;padding:8px 12px;transition:background .18s,border-color .18s,box-shadow .18s;display:grid;box-shadow:0 10px 28px #1e283214,inset 0 1px #ffffff8a}.scroll-hint:hover .scroll-hint-copy{background:#ffffffad;border-color:#d7c4938f;box-shadow:0 12px 32px #1e28321f,inset 0 1px #ffffffb8}.scroll-hint-copy span{letter-spacing:.16em;text-transform:uppercase;font-size:10px;font-weight:680;line-height:1}.scroll-hint-copy strong{color:#171b20c2;letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:650;line-height:1}.scroll-hint.is-home{color:#334b5fcc}.scroll-hint.is-home .scroll-hint-line{height:54px}.scroll-hint.is-home .scroll-hint-line:after{height:24px;animation-duration:1.45s}.scroll-hint.is-home .scroll-hint-copy span,.scroll-hint.is-home .scroll-hint-copy strong{color:var(--accent-deep);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:700;line-height:1}.scroll-hint.is-home .scroll-hint-copy{align-items:center;min-height:30px}.scroll-hint.is-home .scroll-hint-copy strong{letter-spacing:.12em}.scroll-hint.is-end .scroll-hint-line{height:34px}.scroll-hint.is-end .scroll-hint-line:after{animation-name:scroll-line-up;top:auto;bottom:-18px}.scroll-hint.is-end .scroll-hint-copy span{color:var(--accent)}.section{border-top:1px solid var(--line);scroll-snap-align:start;background:linear-gradient(90deg,#ffffff70,#fff6e429),#fafaf72e;flex-direction:column;justify-content:center;min-height:100vh;padding:72px 6vw 148px;display:flex}.section h2{margin:0 0 24px;font-size:32px}.section p{max-width:720px;color:var(--text-soft);font-size:18px;line-height:1.7}.contact-panel{gap:14px;width:min(760px,100%);display:grid}.contact-item{border:1px solid var(--line);background:#ffffff9e;border-radius:16px;align-items:center;gap:14px;padding:14px 16px;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;display:flex;box-shadow:0 10px 24px #0d182414,inset 0 1px #fff9}.contact-item:hover,.contact-item:focus-visible{background:#ffffffc7;border-color:#8f775359;outline:none;transform:translateY(-1px);box-shadow:0 14px 28px #0d18241f,inset 0 1px #ffffffbd}.contact-icon{color:#fff;letter-spacing:.01em;background:linear-gradient(135deg,#334b5feb,#8f7753e6);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:700;display:inline-flex}.contact-icon-svg{width:16px;height:16px}.contact-content{gap:2px;min-width:0;display:grid}.contact-content strong{color:var(--text);font-size:15px}.contact-content span{overflow-wrap:anywhere;color:var(--text-soft);font-size:15px}.about-layout{gap:clamp(34px,5vw,58px);max-width:1180px;display:grid}.about-intro p{margin-bottom:0}.about-education,.about-skills{gap:18px;max-width:1120px;display:grid}.about-career-plan{gap:18px;display:grid}.career-plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.career-plan-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px)saturate(1.05);backdrop-filter:blur(10px)saturate(1.05);background:linear-gradient(145deg,#ffffffd1,#eff1f085),#ffffff94;border-radius:16px;padding:18px;box-shadow:0 14px 36px #3a444e1a,inset 0 1px #ffffff9e}.career-plan-card h4{color:var(--text);margin:0 0 10px;font-size:16px;line-height:1.35}.career-plan-card p{color:var(--text-soft);margin:0;font-size:14px;line-height:1.6}.subsection-heading{border-top:1px solid var(--line);justify-content:flex-start;align-items:start;gap:24px;padding-top:4px;display:flex}.subsection-heading h3{margin:0;font-size:clamp(22px,3vw,30px)}.education-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.education-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(14px)saturate(1.06);backdrop-filter:blur(14px)saturate(1.06);background:linear-gradient(145deg,#ffffffc7,#eff1f075),#ffffff80;border-radius:16px;padding:20px 20px 46px;position:relative;box-shadow:0 18px 54px #3a444e1a,inset 0 1px #ffffff94}.education-card-header{justify-content:space-between;align-items:center;gap:18px;margin-bottom:14px;display:flex}.education-card-header .meta{min-width:0}.education-logo{background:#1d3040;border:1px solid #334b5f1f;border-radius:12px;justify-content:center;align-items:center;width:112px;height:42px;padding:8px 10px;transition:border-color .18s,box-shadow .18s,transform .18s;display:inline-flex;overflow:hidden;box-shadow:0 10px 24px #1e28321a,inset 0 1px #ffffff1f}.education-logo:hover,.education-logo:focus-visible{border-color:#d7c49394;outline:none;transform:translateY(-1px);box-shadow:0 12px 28px #1e283226,inset 0 1px #ffffffb8}.education-logo.light{background:linear-gradient(145deg,#fffffff5,#f4f5f2c7),#ffffffdb;border-color:#334b5f24;box-shadow:0 10px 24px #1e283214,inset 0 1px #ffffffc7}.education-logo img{object-fit:contain;max-width:100%;max-height:100%;display:block}.education-logo.ucl{width:150px;height:44px;padding:4px 6px}.education-logo.ucl img{object-fit:contain;width:100%;max-width:100%;height:100%;max-height:100%}.education-logo.columbia{width:170px;height:48px;padding:6px 8px}.education-logo.columbia img{object-fit:contain;width:100%;max-width:100%;height:100%;max-height:100%}.education-logo.guildhouse{width:162px;height:50px;padding:5px 7px}.education-logo.guildhouse img{object-fit:contain;width:100%;max-width:100%;height:100%;max-height:100%}.education-card h4{margin:8px 0 10px;font-size:18px;line-height:1.3}.education-card p{font-size:15px;line-height:1.62}.education-school{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.education-school span+span{color:var(--muted);margin-left:auto;font-size:13px;font-weight:650}.education-school span+span:before{content:""}.education-date{color:var(--muted);letter-spacing:.04em;margin:0;font-size:13px;font-weight:700;position:absolute;bottom:16px;right:20px}.tech-panel{background:#ffffffe6;border:1px solid #334b5f29;border-radius:20px;gap:26px;padding:28px;display:grid;box-shadow:0 18px 42px #151f2b1a,inset 0 1px #ffffffbf}.tech-group{gap:14px;display:grid}.tech-group+.tech-group{border-top:1px solid #334b5f24;padding-top:18px}.tech-group h4{color:#171b20;letter-spacing:.01em;align-items:center;gap:10px;margin:0;font-family:Aptos Display,SF Pro Display,Inter,Segoe UI,Arial,Helvetica,sans-serif;font-size:clamp(15px,1.55vw,21px);font-weight:650;display:inline-flex}.tech-badge-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tech-badge{color:#f4f8fc;letter-spacing:.01em;text-transform:none;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;min-height:34px;padding:6px 12px;font-family:Aptos,SF Pro Text,Inter,Segoe UI,Arial,Helvetica,sans-serif;font-size:13px;font-weight:650;line-height:1;transition:transform .16s,filter .16s,box-shadow .16s;display:inline-flex;box-shadow:inset 0 1px #ffffff1f}.tech-badge:hover{filter:saturate(1.08)brightness(1.02);transform:translateY(-1px);box-shadow:0 6px 14px #0d182429,inset 0 1px #ffffff24}.tech-badge.tone-orange{background:#e87a00}.tech-badge.tone-blue{background:#1e6da8}.tech-badge.tone-purple{background:#6b46c1}.tech-badge.tone-cyan{background:#0f85b7}.tech-badge.tone-green{background:#36a047}.tech-badge.tone-teal{background:#0f96b5}.tech-badge.tone-indigo{background:#2b3f5b}.tech-badge.tone-red{background:#c3472b}.tech-badge.tone-slate{background:#31363d}.tech-badge.tone-yellow{color:#1a2230;background:#d5ad2f}.tech-badge.tone-pink{background:#c73586}.card-list,.item-list{gap:18px;max-width:920px;display:grid}.card-list{grid-template-columns:1fr;gap:26px;max-width:1220px}.project-row{grid-template-columns:1fr;align-items:stretch;gap:26px;display:grid}.project-row.has-tech-tree.is-expanded{grid-template-columns:minmax(0,640px) minmax(300px,1fr)}.card,.item{border:1px solid var(--line);background:linear-gradient(145deg, #ffffffdb, #eff1f094), var(--paper-strong);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:16px;padding:24px}.card h3,.item h3{margin:8px 0 10px;font-size:22px}.card p,.item p{font-size:16px}.project-card{min-height:360px;color:inherit;grid-template-columns:minmax(280px,.92fr) minmax(0,1fr);gap:22px;padding:18px;text-decoration:none;transition:border-color .18s,box-shadow .22s,transform .22s cubic-bezier(.22,1,.36,1);display:grid;position:relative;overflow:hidden}.project-card.is-clickable{cursor:pointer}.project-card.is-clickable:hover,.project-card.is-clickable:focus-visible{border-color:#d7c49394;outline:none;transform:translateY(-4px);box-shadow:0 30px 84px #3a444e29,inset 0 1px #ffffffb8}.project-media{background:radial-gradient(circle at 12% 8%,#ffffffb8,#0000 36%),linear-gradient(135deg,#e7eff7eb,#fff6e4c7),#ffffffc7;border-radius:14px;min-height:320px;position:relative;overflow:hidden;box-shadow:0 16px 38px #0d182421,inset 0 1px #ffffff8f}.project-cover,.project-cover-placeholder{width:100%;height:100%;display:block}.project-cover{object-fit:contain;object-position:center;transition:transform .42s cubic-bezier(.22,1,.36,1)}.project-card:hover .project-cover,.project-card:focus-visible .project-cover{transform:scale(1.018)}.project-cover-placeholder{background:radial-gradient(circle at 24% 22%,#d7c49347,#0000 30%),radial-gradient(circle at 78% 28%,#334b5f2e,#0000 34%),linear-gradient(135deg,#ffffffb8,#e7eff7d1)}.project-period{color:#fffaf0;letter-spacing:.01em;text-align:right;-webkit-backdrop-filter:blur(14px)saturate(1.08);backdrop-filter:blur(14px)saturate(1.08);background:#1d3040a8;border:1px solid #ffffff57;border-radius:999px;max-width:calc(100% - 36px);padding:9px 14px;font-size:13px;font-weight:760;line-height:1;position:absolute;bottom:16px;right:18px;box-shadow:0 10px 26px #0d182433,inset 0 1px #ffffff2e}.project-card-content{z-index:1;flex-direction:column;justify-content:center;min-width:0;padding:10px 6px;display:flex;position:relative}.project-card-content h3{margin-top:10px;font-size:clamp(21px,2.1vw,28px);line-height:1.14}.project-card:hover h3,.project-card:focus-visible h3{color:var(--accent)}.project-card-content p:not(.meta){margin:0}.project-summary-tags{margin-top:18px}.project-summary-tags li{color:var(--accent-deep);background:#ffffff94;border-color:#334b5f29;font-weight:680}.project-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.project-link-hint,.project-tech-toggle{border-radius:999px;align-items:center;min-height:34px;padding:8px 13px;font-size:13px;font-weight:720;line-height:1;display:inline-flex}.project-link-hint{color:var(--accent-deep);cursor:pointer;background:#ffffff8f;border:1px solid #334b5f29;font-family:inherit;transition:background .18s,border-color .18s,transform .18s}.project-link-hint:hover,.project-link-hint:focus-visible{background:#ffffffc2;border-color:#d7c4938f;outline:none;transform:translateY(-1px)}.project-tech-toggle{color:#fffaf0;cursor:pointer;background:#334b5fe0;border:1px solid #334b5f33;transition:background .18s,box-shadow .18s,transform .18s;box-shadow:0 10px 24px #0d182424,inset 0 1px #ffffff29}.project-tech-toggle:hover,.project-tech-toggle:focus-visible{background:#243848;outline:none;transform:translateY(-1px);box-shadow:0 12px 28px #0d18242e,inset 0 1px #fff3}.project-tech-tree{opacity:0;pointer-events:none;align-content:center;gap:16px;padding:18px 0 18px 32px;transition:opacity .24s,transform .28s cubic-bezier(.22,1,.36,1);display:none;position:relative;transform:translate(-18px)}.project-row.is-expanded .project-tech-tree{opacity:1;pointer-events:auto;display:grid;transform:translate(0)}.project-tech-tree:before{content:"";background:linear-gradient(#0000,#334b5f5c 12%,#8f775352 88%,#0000);width:1px;position:absolute;top:38px;bottom:38px;left:12px}.tech-branch{grid-template-columns:minmax(130px,.42fr) minmax(0,1fr);align-items:start;gap:12px;min-height:48px;display:grid;position:relative}.tech-branch:before{content:"";background:#334b5f57;width:20px;height:1px;position:absolute;top:17px;left:-20px}.tech-branch:after{content:"";background:#ffffffdb;border:1px solid #334b5f47;border-radius:999px;width:9px;height:9px;position:absolute;top:13px;left:-24px;box-shadow:0 6px 16px #0d18241f}.tech-branch-label{color:var(--accent-deep);letter-spacing:.04em;text-transform:uppercase;background:#ffffffa3;border:1px solid #334b5f29;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:760;box-shadow:0 10px 22px #0d182414,inset 0 1px #ffffff94}.tech-branch ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tech-branch li{color:#4d5660;background:#ffffff94;border:1px solid #8f77532e;border-radius:999px;padding:8px 11px;font-size:13px;font-weight:680;box-shadow:0 8px 18px #0d18240f}.meta{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0;font-size:13px}.item-subtitle{margin-bottom:10px;font-weight:700}.tag-list{flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:flex}.tag-list li{color:#4d5660;background:#ffffff80;border:1px solid #334b5f38;border-radius:999px;padding:6px 10px;font-size:13px}@media (width<=980px){.education-list{grid-template-columns:repeat(2,minmax(0,1fr))}.project-row.has-tech-tree.is-expanded,.project-card{grid-template-columns:1fr}.project-media{aspect-ratio:1.16;min-height:0}.project-tech-tree{padding:4px 0 4px 26px}}@media (width<=720px){.section-nav{top:auto;left:50%;right:auto;bottom:calc(10px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffd1;border:1px solid #334b5f2e;border-radius:18px;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:column;gap:6px;width:min(94vw,420px);padding:8px;transform:translate(-50%);box-shadow:0 18px 44px #171b2029}.section-nav-guide,.section-nav-toggle,.section-nav:before,.section-nav:after{display:none}.section-nav a{border-radius:12px;grid-template-columns:1fr;align-content:center;justify-items:center;gap:6px;min-width:0;min-height:0;padding:7px 4px;display:grid}.section-nav a:before{display:none}.section-nav a.active{background:#334b5f14}.nav-label{width:auto;max-width:100%;box-shadow:none;color:#2a333cd6;text-align:center;text-overflow:ellipsis;opacity:1;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;order:2;padding:0;font-size:11px;font-weight:620;line-height:1.15;display:block}.nav-dot{order:1;width:8px;height:8px;box-shadow:0 0 0 3px #ffffff80,0 4px 10px #1e283224}.section-nav a.active .nav-label{color:#1f3041;box-shadow:none;background:0 0;border:0;font-weight:700}.hero,.section{min-height:100svh;padding:72px 7vw 132px}.hero{padding:52px 7vw 124px}.hero-greeting{top:22px;left:7vw}.hero-lang-switch{padding:4px;top:12px;right:7vw}.hero-lang-switch button{min-width:46px;padding:5px 8px;font-size:11px}.hero-greeting span{font-size:clamp(48px,16vw,78px)}.hero-content{grid-template-columns:1fr;gap:30px;padding-top:72px}.hero-copy{order:2;margin-left:0}.hero-copy .eyebrow{letter-spacing:.1em;margin-bottom:18px;font-size:11px}.hero-copy h1{font-size:clamp(38px,11vw,56px);line-height:1.04}.hero-copy .hero-title{margin-top:16px;font-size:clamp(15px,4.2vw,19px);line-height:1.35}.hero-portrait{order:1;justify-self:start;width:min(58vw,248px);min-width:0;margin:0}.hero-portrait:before{border-radius:24px;inset:-12px}.hero-portrait img{border-radius:20px}.subsection-heading{flex-direction:column;align-items:start;gap:8px}.education-list,.career-plan-grid{grid-template-columns:1fr}.tech-panel{gap:20px;padding:20px}.tech-group+.tech-group{padding-top:14px}.tech-group h4{font-size:clamp(15px,4.2vw,18px)}.tech-badge{letter-spacing:.03em;min-height:30px;padding:5px 10px;font-size:clamp(11px,3vw,13px)}.card-list{grid-template-columns:1fr}.project-card{min-height:auto}.tech-branch{grid-template-columns:1fr}.scroll-hint{bottom:72px;left:16px}}@keyframes grid-drift{0%{background-position:0 0}to{background-position:128px 64px}}@keyframes light-sweep{0%{background-position:0 40%;transform:scale(1)}to{background-position:100% 60%;transform:scale(1.08)translate(-2%,1%)}}@keyframes ambient-shift{0%{background-position:0 28%,8% 70%,100% 18%}50%{background-position:58% 62%,74% 28%,22% 88%}to{background-position:100% 40%,30% 86%,0 34%}}@keyframes aurora-flow{0%{background-position:0 38%,100% 72%;transform:scale(1)skewY(0)}50%{background-position:64% 62%,30% 24%;transform:scale(1.04)skewY(-1deg)}to{background-position:100% 44%,0 66%;transform:scale(1.08)skewY(1deg)}}@keyframes scroll-line{0%{transform:translateY(0)}to{transform:translateY(72px)}}@keyframes scroll-line-up{0%{transform:translateY(0)}to{transform:translateY(-72px)}}@keyframes directory-nudge{0%,to{translate:3px}50%{translate:-2px}}@keyframes directory-confirm{0%{translate:0}36%{translate:-8px}68%{translate:2px}to{translate:0}}@keyframes arrow-confirm{0%{opacity:.78;transform:translateY(-50%)translate(0)rotate(225deg)scale(1)}38%{opacity:1;transform:translateY(-50%)translate(-3px)rotate(225deg)scale(1.12)}72%{transform:translateY(-50%)translate(1px)rotate(225deg)scale(.98)}to{opacity:1;transform:translateY(-50%)translate(0)rotate(225deg)scale(1)}}@keyframes hello-reveal{0%{clip-path:inset(0 100% 0 0);filter:blur(8px);opacity:0;transform:translate(-18px,10px)scale(.97)}45%{opacity:1}72%{clip-path:inset(0);filter:blur();transform:translate(3px,-1px)scale(1.01)}to{clip-path:inset(0);filter:blur();opacity:1;transform:translate(0,0)scale(1)}}@keyframes hello-shine{0%{transform:translate(-120%)}38%{transform:translate(120%)}to{transform:translate(120%)}}@media (prefers-reduced-motion:reduce){body:before,body:after,body,.scroll-hint-line:after,.section-nav-guide,.hero-greeting span,.hero-greeting span:after{animation:none}.hero-greeting span{clip-path:none;filter:none;opacity:1;transform:none}}
