:root{--navy:#0c1623;--card:#182432;--blue:#667cff;--green:#79df8b;--paper:#f4f7fb;--ink:#101925;--muted:#6b7685;--line:#dfe5ec}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans","Noto Sans KR",sans-serif;line-height:1.65}a{text-decoration:none;color:inherit}header{position:absolute;z-index:10;top:0;width:100%;height:80px;padding:0 max(5vw,24px);display:flex;align-items:center;color:#eef2f8}.logo{font-weight:700}.logo span{color:var(--green)}nav{display:flex;gap:2rem;margin:auto;font-size:.72rem;color:#b9c2cf}.talk{border:1px solid #8298b6;border-radius:30px;padding:.4rem 1rem;font-size:.72rem}.hero{height:100svh;min-height:700px;position:relative;display:flex;align-items:center;color:#fff;overflow:hidden}.hero-photo{position:absolute;inset:0;border:0;background:radial-gradient(circle at 72% 45%,#263b53,#121e2d 33%,#08111b 72%)}.hero-photo:before{content:"";position:absolute;right:9%;bottom:13%;width:44%;height:50%;border:1px solid #526376;border-radius:14px;background:linear-gradient(145deg,#213247,#0a111b);box-shadow:0 40px 80px #02060a;transform:perspective(800px) rotateY(-7deg)}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,9,16,.94),rgba(7,12,20,.68) 48%,rgba(7,12,20,.12));z-index:1}.hero-copy{position:relative;z-index:2;width:min(1180px,90%);margin:auto}.code{color:var(--green);font-family:monospace}.hero h1{font-size:clamp(2.8rem,5.2vw,5.2rem);line-height:1.2;letter-spacing:-.055em;margin:1rem 0}.hero h1 em{font-style:normal;color:#7388ff}.hero-copy>p:not(.code){color:#c4ccd7}.actions{display:flex;gap:.7rem;margin-top:2rem}.button{display:inline-flex;align-items:center;min-height:48px;padding:0 1.2rem;border-radius:9px;font-size:.8rem;font-weight:700}.light{background:white;color:#111a25}.outline{border:1px solid #77879b}.scroll{position:absolute;z-index:2;left:5%;bottom:2.5rem;color:#b9c2cf;font-size:.62rem;letter-spacing:.14em}.section{padding:7rem max(5vw,24px)}.white{background:#fff}.title{max-width:1180px;margin:0 auto 3rem}.title>p,.contact-copy>p{color:#75849a;font-size:.68rem;font-weight:700;letter-spacing:.15em;margin:0 0 .5rem}.title h2{font-size:clamp(1.9rem,3vw,3rem);line-height:1.35;letter-spacing:-.045em;margin:0}.title strong{color:var(--blue)}.title>span{color:var(--muted);font-size:.85rem}.about-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.1fr .8fr .75fr;align-items:center;gap:4rem}.about-text>p{color:var(--muted)}blockquote{margin:3rem 0 0;color:#5d6878;font-family:Georgia,"Noto Sans KR",serif;font-style:italic}.placeholder{position:relative;overflow:hidden;border:1px dashed #91a0b3;background:linear-gradient(135deg,#d9e2ed,#f1f4f8)}.placeholder>span{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;color:#7f8fa3;font-size:.62rem;letter-spacing:.14em;white-space:nowrap}.placeholder small{display:block;opacity:.75;letter-spacing:.04em}.portrait{min-height:380px;border-radius:18px}.portrait:before{content:"";position:absolute;width:180px;height:250px;border-radius:50% 50% 32% 32%;background:#92a2b6;opacity:.35;left:50%;bottom:-65px;transform:translateX(-50%)}.profile{display:grid;gap:1.25rem}.profile div{border-bottom:1px solid var(--line);padding-bottom:1rem}.profile dt{font-size:.72rem;color:#7b8797}.profile dd{font-size:.82rem;font-weight:600;margin:.15rem 0}.skills{background:#f0f3f8}.skill-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem}.skill-grid article{min-height:145px;padding:1.45rem;border-radius:11px;background:var(--card);color:white;box-shadow:0 8px 20px #20304412}.skill-grid b{font-size:.87rem}.skill-grid p{font-size:.75rem;color:#b9c3ce;margin-top:1rem}.skill-grid .learning{background:linear-gradient(135deg,#5268e8,#8052c6)}.title-row{display:flex;justify-content:space-between;align-items:end}.title-row>a{font-size:.75rem;font-weight:700;border-bottom:1px solid}.project-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}.project{background:white;border-radius:14px;overflow:hidden;box-shadow:0 15px 40px #263c5712;transition:.25s}.project:hover{transform:translateY(-6px);box-shadow:0 20px 50px #263c5720}.project-image{height:205px;border:0;border-radius:0}.project-image span{color:#fff}.one{background:linear-gradient(140deg,#172434,#354e68)}.two{background:linear-gradient(140deg,#d4e1ff,#7f94ce)}.three{background:linear-gradient(140deg,#d2eadf,#729b8d)}.project-copy{padding:1.4rem}.project-copy small{font-size:.58rem;color:var(--blue);letter-spacing:.11em}.project-copy h3{font-size:1.3rem;margin:.3rem 0}.project-copy>p{font-size:.77rem;color:var(--muted);min-height:64px}.tags{display:flex;flex-wrap:wrap;gap:.3rem;margin:1rem 0}.tags i{font-style:normal;background:#edf1ff;color:#5c70d5;font-size:.6rem;padding:.15rem .32rem;border-radius:4px}.project-copy>a{font-size:.72rem;color:#536be1;font-weight:700}.experience-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.4fr .55fr;gap:6rem}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;display:grid;grid-template-columns:180px 1fr;gap:2rem;border-left:1px solid #cad3df;padding:0 0 2.1rem 1.4rem}.timeline li:before{content:"";position:absolute;width:9px;height:9px;background:#8391a5;border-radius:50%;left:-5px;top:6px}.timeline time{font-size:.76rem;color:#6b7788}.timeline b{font-size:.84rem}.timeline p{font-size:.76rem;color:var(--muted);margin:.15rem 0}.note{background:#f3f6fa;border-radius:14px;padding:2rem;display:flex;min-height:300px;flex-direction:column;justify-content:space-between}.note .graph{font-size:2rem;letter-spacing:.2em;color:#738092}.note>p{text-align:right;font-family:Georgia,serif;font-style:italic;color:#667285}.note blockquote{font-size:.75rem;margin:0}.contact{min-height:460px;position:relative;display:flex;align-items:center;overflow:hidden}.contact-image{position:absolute;inset:0;border:0;background:linear-gradient(105deg,#91a9bc,#d7c1b0 48%,#eba682)}.contact-image:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#ffffff22,#ffffffe0 70%)}.contact-image span{left:22%;color:#29384e88}.contact-copy{position:relative;width:min(1180px,90%);margin:auto;padding-left:55%}.contact-copy h2{font-size:clamp(2rem,3vw,3rem);letter-spacing:-.04em;margin:.3rem 0}.contact-copy>span{display:block;color:#5f6978;font-size:.82rem}.dark{background:#111b28;color:white;margin-top:1.5rem}footer{min-height:82px;background:var(--navy);color:#7e8b9c;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);font-size:.64rem}footer .logo{color:white}.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s,transform .75s}.reveal.visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}
@media(max-width:850px){nav{display:none}.about-grid{grid-template-columns:1fr 1fr}.about-text{grid-column:1/-1}.skill-grid{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:1fr}.project-image{height:280px}.experience-grid{grid-template-columns:1fr}.contact-copy{padding-left:40%}}
@media(max-width:560px){header{height:68px}.talk{display:none}.hero{min-height:700px}.hero-photo:before{width:75%;right:-20%;opacity:.5}.hero h1{font-size:2.5rem}.section{padding:5rem 22px}.about-grid,.skill-grid{grid-template-columns:1fr}.portrait{min-height:420px}.title-row{display:block}.title-row>a{display:inline-block;margin-top:1rem}.project-image{height:220px}.timeline li{grid-template-columns:1fr;gap:.25rem}.contact{min-height:520px}.contact-image:before{background:#ffffffe0}.contact-image span{left:50%;top:24%}.contact-copy{padding:10rem 0 0}.contact-copy h2{font-size:2.2rem}footer{flex-wrap:wrap;gap:.4rem;padding-block:1rem}footer p{order:3;width:100%;margin:0}}
.portrait{width:100%;height:380px;min-height:0;object-fit:cover;object-position:center top;border-radius:18px}
.project-grid{grid-template-columns:repeat(2,1fr)}
.project-image{width:100%;height:270px;object-fit:cover;object-position:center top;background:#e9edf3}
@media(max-width:850px){.project-grid{grid-template-columns:1fr}}
.project-grid{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(320px,360px);justify-content:start;max-width:none;margin-left:0;margin-right:0;padding-right:max(5vw,24px);padding-bottom:1.2rem;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scroll-padding-left:max(5vw,24px);scrollbar-width:thin;scrollbar-color:#aab5c5 transparent}
.project{scroll-snap-align:start}
.project-grid::-webkit-scrollbar{height:6px}.project-grid::-webkit-scrollbar-track{background:transparent}.project-grid::-webkit-scrollbar-thumb{background:#aab5c5;border-radius:99px}
@media(max-width:560px){.project-grid{grid-template-columns:none;grid-auto-columns:84vw;margin-left:0;padding-right:22px;scroll-padding-left:0}.project-image{height:220px}}
.skills-layout{max-width:1180px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:7rem;align-items:center}.bubble-chart{position:relative;min-height:500px}.bubble{position:absolute;display:grid;place-items:center;border-radius:50%;font-size:.7rem;font-weight:700;letter-spacing:.06em;color:white;box-shadow:0 18px 45px #26395022;transition:transform .25s,box-shadow .25s}.bubble:hover{transform:scale(1.06);box-shadow:0 24px 55px #26395035;z-index:2}.java{width:190px;height:190px;left:8%;top:4%;background:#202e3d}.spring{width:168px;height:168px;left:39%;top:26%;background:#6279ff}.database{width:132px;height:132px;left:8%;top:43%;background:#593db1}.flutter{width:118px;height:118px;left:62%;top:5%;background:#3e9bd4}.js{width:92px;height:92px;left:64%;top:53%;background:#e6b72e;color:#18212c}.aws{width:86px;height:86px;left:34%;top:66%;background:#e47a32}.ai{width:78px;height:78px;left:79%;top:37%;background:#dc528b}.git{width:60px;height:60px;left:2%;top:76%;background:#4f5d6e}.redis{width:66px;height:66px;left:49%;top:1%;background:#cf3d46}.skill-list{border-top:1px solid #cfd7e2}.skill-list article{display:grid;grid-template-columns:42px 1fr;gap:1rem;padding:1.25rem 0;border-bottom:1px solid #cfd7e2}.skill-list article>span{font-size:.65rem;color:#8995a5;padding-top:.25rem}.skill-list h3{font-size:1rem;margin:0 0 .25rem}.skill-list p{font-size:.76rem;color:var(--muted);margin:0}.skills .title{margin-bottom:1.5rem}
@media(max-width:850px){.skills-layout{grid-template-columns:1fr;gap:2rem}.bubble-chart{width:min(540px,100%);margin:auto}}
@media(max-width:560px){.bubble-chart{min-height:360px;transform:scale(.72);transform-origin:top left;width:138%;margin-bottom:-90px}.skills-layout{gap:1rem}.skill-list article{grid-template-columns:32px 1fr}}
.experience-layout{max-width:1180px;margin:auto;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:5rem;align-items:start}.experience-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.experience-list li{display:grid;grid-template-columns:72px 1fr;gap:1.5rem;padding:2rem 0;border-bottom:1px solid var(--line)}.experience-list time{font-size:.72rem;font-weight:700;color:#7d8999;padding-top:.3rem}.experience-head{display:flex;justify-content:space-between;gap:1rem;align-items:start}.experience-head h3{font-size:1.35rem;letter-spacing:-.03em;margin:0}.experience-head p{font-size:.68rem;color:#8490a0;margin:.1rem 0}.experience-head>span{flex:none;background:#eef1ff;color:#586ed6;border-radius:99px;padding:.3rem .6rem;font-size:.6rem;font-weight:700}.experience-summary{max-width:650px;margin:.85rem 0 0;color:var(--muted);font-size:.8rem;line-height:1.8}.experience-side{position:sticky;top:2rem;padding:2.2rem;background:var(--navy);color:white;border-radius:16px}.side-label{font-size:.62rem;letter-spacing:.16em;color:var(--green)}.experience-side>h3{font-size:1.5rem;line-height:1.45;margin:.75rem 0 2.5rem}.side-item{padding:1.1rem 0;border-top:1px solid #ffffff26}.side-item b{display:block;font-size:.82rem}.side-item span{display:block;color:#aeb8c6;font-size:.66rem;margin-top:.25rem}.experience-side blockquote{font-size:.8rem;color:#c4ccd7;margin:2.5rem 0 0}.experience-side blockquote:before{content:"“";display:block;color:var(--green);font-size:2rem;line-height:1}
@media(max-width:850px){.experience-layout{grid-template-columns:1fr;gap:2rem}.experience-side{position:static}}
@media(max-width:560px){.experience-list li{grid-template-columns:45px 1fr;gap:.8rem}.experience-head{display:block}.experience-head>span{display:inline-block;margin-top:.6rem}.experience-side{padding:1.6rem}}
.contact{min-height:650px;background:#0b1521;color:white;position:relative;overflow:hidden}.contact-orb{position:absolute;width:520px;height:520px;border-radius:50%;right:-80px;top:-170px;background:radial-gradient(circle at 35% 35%,#7f91ff,#4c42bb 42%,#0b152100 70%);opacity:.65;filter:blur(2px)}.contact-new{position:relative;z-index:1;width:min(1180px,90%);margin:auto}.contact-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:1.2rem;border-bottom:1px solid #ffffff35}.contact-top p{font-size:.67rem;font-weight:700;letter-spacing:.16em;color:#9ba9bb}.contact-top>span{font-size:.68rem;color:#9ba9bb}.contact-top i{display:inline-block;width:7px;height:7px;margin-right:.45rem;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green)}.contact-new h2{font-size:clamp(3.2rem,7.2vw,7.4rem);line-height:1.04;letter-spacing:-.065em;margin:3.5rem 0 4rem}.contact-new h2 em{font-family:Georgia,"Noto Sans KR",serif;font-weight:400;color:#8595ff}.email-link{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff55;padding-bottom:1rem;font-size:clamp(1.25rem,2.5vw,2.5rem);transition:border-color .2s,color .2s}.email-link:hover{color:var(--green);border-color:var(--green)}.email-link b{font-size:1.3em;font-weight:400;transition:transform .2s}.email-link:hover b{transform:translate(5px,-5px)}.contact-links{display:flex;justify-content:space-between;align-items:center;margin-top:1.2rem;color:#8e9bab;font-size:.72rem}.contact-links a{color:white;border-bottom:1px solid #ffffff66}
@media(max-width:560px){.contact{min-height:620px}.contact-orb{width:360px;height:360px;right:-150px;top:-80px}.contact-top{align-items:start}.contact-new h2{margin:4.5rem 0 5rem}.email-link{font-size:1.05rem}.contact-links{display:block}.contact-links a{display:inline-block;margin-top:1rem}}
.contact{min-height:720px;background:#08111e;isolation:isolate}.contact-grid{position:absolute;inset:0;background-image:linear-gradient(#7e8da00d 1px,transparent 1px),linear-gradient(90deg,#7e8da00d 1px,transparent 1px);background-size:88px 88px;mask-image:linear-gradient(90deg,transparent 25%,#000 58%,#000)}.planet{position:absolute;z-index:-1;width:770px;height:770px;border-radius:50%;right:-120px;top:-310px;background:radial-gradient(circle at 28% 55%,#19253c 0 32%,#111c30 57%,#070d18 72%);box-shadow:-5px 0 0 #877dff,-24px 0 55px #6e68ff99,-110px 40px 180px #3941c933}.planet:after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(100deg,#716aff11,#0000 55%)}.contact-new{padding:7rem 0 5rem}.contact-kicker{font-size:.68rem;font-weight:700;letter-spacing:.3em;color:#858cff}.contact-location{position:absolute;right:0;top:2rem;text-align:center;color:#8a97aa;font-size:.62rem;letter-spacing:.28em}.contact-location span{display:block;width:34px;height:1px;background:#697587;margin:1rem auto}.contact-new h2{font-family:"DM Sans","Noto Sans KR",sans-serif;font-size:clamp(3.5rem,6.2vw,6.7rem);font-weight:700;line-height:1.1;margin:1.6rem 0 2rem;max-width:850px}.contact-new h2 em{font-family:inherit;color:#756eff;font-style:normal}.contact-description{font-size:.92rem;line-height:1.9;color:#96a1b1}.contact-actions{display:flex;gap:1rem;margin-top:2.2rem}.contact-button{height:64px;border-radius:10px;display:flex;align-items:center;gap:.75rem;padding:0 1.6rem;font-size:.82rem;font-weight:700}.contact-button b{margin-left:1.2rem;font-size:1.1rem}.email-button{background:linear-gradient(135deg,#93a9ff,#7166f4);box-shadow:0 12px 35px #5568ef33}.github-button{border:1px solid #526075;background:#101a29}.contact-button{transition:transform .2s,border-color .2s}.contact-button:hover{transform:translateY(-3px);border-color:#8998ae}.hand-note{display:flex;align-items:center;gap:1rem;color:#8d98ff;font-family:Georgia,serif;font-style:italic;margin-top:1.4rem;transform:rotate(-3deg);width:max-content}.hand-note i{display:block;width:90px;height:1px;background:#8d98ff}.planet-copy{position:absolute;right:2%;top:36%;width:300px;text-align:center;color:#aeb7c6;transform:rotate(-7deg)}.planet-copy>p{font-family:Georgia,"Noto Sans KR",serif;font-style:italic;line-height:2;font-size:1rem}.planet-copy>span{display:block;margin-top:4rem;font-size:.62rem;line-height:2.2;letter-spacing:.28em;color:#707d91}.final-footer{position:relative;z-index:2;border-top:1px solid #344054;background:#08111e;min-height:95px;color:#768397;gap:2rem}.final-footer nav{margin:0 auto 0 3rem}.final-footer p{white-space:nowrap}.back-top{border-left:1px solid #344054;padding-left:2rem;white-space:nowrap}
@media(max-width:900px){.planet{right:-330px}.planet-copy{display:none}.contact-new h2{max-width:700px}.final-footer nav{display:none}}
@media(max-width:560px){.contact{min-height:700px}.contact-new{padding:6rem 0 4rem}.contact-location{top:1rem}.contact-description br{display:none}.contact-actions{flex-direction:column}.contact-button{width:100%;justify-content:center}.contact-button b{margin-left:auto}.hand-note{font-size:.75rem}.planet{width:520px;height:520px;right:-330px;top:-170px}.final-footer{align-items:flex-start}.final-footer p{white-space:normal}.back-top{border:0;padding:0}}
.hero-photo{background-image:url('assets/image.png');background-size:cover;background-position:center 48%}.hero-photo:before{display:none}.hero .shade{background:linear-gradient(90deg,rgba(4,9,16,.94) 0%,rgba(4,9,16,.74) 38%,rgba(4,9,16,.24) 66%,rgba(4,9,16,.1) 100%)}
@media(max-width:700px){.hero-photo{background-position:58% center}.hero .shade{background:linear-gradient(90deg,rgba(4,9,16,.94),rgba(4,9,16,.56))}}
.contact.calm-contact{min-height:0;padding:7rem max(5vw,24px);background:linear-gradient(135deg,#f0f3f8,#f9fafc);color:var(--ink);isolation:auto}.contact-wrap{width:min(1180px,100%);margin:auto;display:grid;grid-template-columns:1fr .85fr;gap:7rem;align-items:center}.contact-intro>p{margin:0 0 .7rem;color:#75849a;font-size:.68rem;font-weight:700;letter-spacing:.15em}.contact-intro h2{margin:0;font-size:clamp(2.3rem,4vw,4.1rem);line-height:1.25;letter-spacing:-.05em}.contact-intro h2:after{content:"";display:block;width:54px;height:5px;margin-top:1.6rem;border-radius:4px;background:var(--blue)}.contact-intro>span{display:block;margin-top:1.5rem;color:var(--muted);font-size:.86rem}.contact-card{padding:2rem 2.2rem;border:1px solid #dce2eb;border-radius:16px;background:#fff;box-shadow:0 20px 60px #263c570c}.availability{display:flex;align-items:center;gap:.6rem;padding-bottom:1.3rem;border-bottom:1px solid var(--line);font-size:.72rem;color:#6d7887}.availability i{width:8px;height:8px;border-radius:50%;background:#59c779;box-shadow:0 0 0 4px #59c77920}.contact-card>a{display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;padding:1.35rem 0;border-bottom:1px solid var(--line)}.contact-card small{font-size:.58rem;color:#8a96a6;letter-spacing:.14em}.contact-card strong{grid-column:1;font-size:clamp(.9rem,1.4vw,1.1rem)}.contact-card b{grid-column:2;grid-row:1/3;align-self:center;color:var(--blue);font-size:1.2rem;transition:transform .2s}.contact-card>a:hover b{transform:translate(4px,-4px)}.contact-card>a:hover strong{color:var(--blue)}.contact-card>p{margin:1.3rem 0 0;color:#919cab;font-size:.65rem}
@media(max-width:760px){.contact.calm-contact{padding-block:5rem}.contact-wrap{grid-template-columns:1fr;gap:3rem}.contact-intro h2{font-size:2.4rem}.contact-card{padding:1.5rem}}
.scroll-spy{position:fixed;z-index:30;right:24px;top:50%;display:flex;flex-direction:column;gap:14px;transform:translateY(-50%) translateX(12px);padding:12px 8px;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}.scroll-spy:before{content:"";position:absolute;right:11px;top:20px;bottom:20px;width:1px;background:#7f8b9b55}.scroll-spy.visible{opacity:1;pointer-events:auto;transform:translateY(-50%) translateX(0)}.scroll-spy a{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:15px;color:#7a8594}.scroll-spy a span{font-size:.58rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:0;transform:translateX(5px);transition:opacity .2s,transform .2s,color .2s}.scroll-spy a i{position:relative;z-index:1;width:7px;height:7px;border:2px solid #8994a3;border-radius:50%;background:#f4f7fb;transition:transform .2s,background .2s,border-color .2s}.scroll-spy a:hover span,.scroll-spy a:focus-visible span,.scroll-spy a.active span{opacity:1;transform:none}.scroll-spy a.active span{color:#536be1}.scroll-spy a.active i{background:#667cff;border-color:#667cff;transform:scale(1.35);box-shadow:0 0 0 4px #667cff22}.scroll-spy a:focus-visible{outline:none}
@media(max-width:900px){.scroll-spy{display:none}}
.contact.simple-contact{min-height:0;padding:8rem max(5vw,24px) 3rem;background:#fafafa;color:var(--ink);isolation:auto}.simple-contact-wrap{width:min(1180px,100%);margin:auto}.simple-label{margin:0 0 3.5rem;color:#778292;font-size:.66rem;font-weight:700;letter-spacing:.16em}.simple-contact-main{display:grid;grid-template-columns:1.15fr .85fr;gap:8rem;align-items:end}.simple-contact-main h2{margin:0;font-size:clamp(2.5rem,4.4vw,4.7rem);font-weight:700;line-height:1.22;letter-spacing:-.055em}.simple-contact-main>div:first-child>p{margin:2rem 0 0;color:var(--muted);font-size:.85rem}.simple-links{border-top:1px solid #ccd3dc}.simple-links a{position:relative;display:block;padding:1.55rem 2rem 1.55rem 0;border-bottom:1px solid #ccd3dc}.simple-links small{display:block;margin-bottom:.25rem;color:#8a94a2;font-size:.62rem;letter-spacing:.08em}.simple-links span{font-size:clamp(.95rem,1.5vw,1.2rem);font-weight:600}.simple-links b{position:absolute;right:.25rem;top:50%;font-size:1rem;font-weight:400;opacity:0;transform:translate(-5px,-50%);transition:opacity .18s,transform .18s}.simple-links a:hover b,.simple-links a:focus-visible b{opacity:1;transform:translate(0,-50%)}.simple-links a:focus-visible{outline:1px solid currentColor;outline-offset:5px}.simple-links .primary-contact span{color:var(--blue)}.simple-location{margin:5rem 0 0;padding-top:1rem;border-top:1px solid #e0e4e9;color:#929ba7;font-size:.64rem}.final-footer{background:#fafafa;color:#7c8694;border-top:0}.final-footer .logo{color:var(--ink)}.final-footer .logo span{color:var(--blue)}.final-footer .back-top{border-left-color:#d5dbe3}
@media(max-width:760px){.contact.simple-contact{padding-block:5rem 2rem}.simple-label{margin-bottom:2rem}.simple-contact-main{grid-template-columns:1fr;gap:3.5rem}.simple-contact-main h2{font-size:2.55rem}.simple-location{margin-top:3.5rem}.final-footer{background:#fafafa}}
.experience-side{padding:2rem}.experience-side>h3{margin-bottom:1.8rem}.credential-group{margin-top:1.35rem}.credential-group>p{margin:0 0 .25rem;color:#7f8da0;font-size:.55rem;font-weight:700;letter-spacing:.14em}.credential-group .side-item{padding:.8rem 0}.credential-group .side-item b{font-size:.76rem}.credential-group .side-item span{font-size:.61rem}.credential-group.language,.credential-group.background{padding-top:.1rem}
.bubble.active{transform:scale(1.1);box-shadow:0 0 0 7px #ffffffcc,0 26px 60px #26395045;filter:saturate(1.15) brightness(1.06);z-index:3}.skill-list article{cursor:default;transition:padding-left .22s,background-color .22s}.skill-list article:hover,.skill-list article:focus-visible{padding-left:.75rem;background:#ffffff80;outline:none}.skill-list article:hover h3,.skill-list article:focus-visible h3{color:#536be1}
