@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600&family=Manrope:wght@400;500;600&family=Prata&display=swap');
:root{color-scheme:light;--ink:#193651;--muted:#4d6477;--blue:#345f7f;--paper:#edf2f3;--line:rgba(49,77,100,.24);--glass:rgba(248,251,249,.60);--ease:cubic-bezier(.22,1,.36,1);font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:16px;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #517e9c;outline-offset:5px}button:disabled{cursor:default}button{border:0}h1,h2,p{margin:0}::selection{background:#bdcdd6;color:#112d44}.skip-link{position:fixed;top:-80px;left:20px;z-index:50;padding:12px;background:white}.skip-link:focus{top:15px}
.landscape{position:fixed;inset:0;overflow:hidden;z-index:-2;background:#e6eef2}.landscape img{width:100%;height:100%;object-fit:cover;object-position:center 64%;opacity:.50;transform:scale(1.04);filter:saturate(.92);will-change:opacity,transform}.landscape-wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(224,235,243,.38),rgba(237,244,246,.1) 55%,rgba(210,229,239,.1));pointer-events:none}
.opening{min-height:100svh;padding:0 28px;display:flex;flex-direction:column;max-width:1800px;margin:auto}.location{font-size:12px;letter-spacing:1.55px;margin-left:5%}
.bento{display:grid;grid-template-columns:1.02fr 1.2fr .88fr;grid-template-rows:minmax(220px,1fr) minmax(160px,.8fr) 82px;gap:14px;flex:1;min-height:590px;height:calc(100svh - 130px);max-height:960px;transform-origin:center 70%}.glass{background:var(--glass);border:1px solid rgba(47,76,96,.25);border-top-color:rgba(255,255,255,.9);border-radius:20px;box-shadow:0 3px 12px rgba(38,67,88,.035),inset 0 1px 0 rgba(255,255,255,.5);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .5s var(--ease),border-color .5s,box-shadow .5s;position:relative;overflow:hidden}.glass:hover,.glass:focus-within{background:rgba(247,251,250,.38);border-color:rgba(53,91,118,.43);box-shadow:0 5px 22px rgba(29,61,83,.08),inset 0 1px 0 rgba(255,255,255,.7);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.work-panel{grid-column:1;grid-row:1/4;padding:30px clamp(24px,2.8vw,44px);display:flex;flex-direction:column}.index{letter-spacing:.5px;color:var(--muted)}h1{font:500 clamp(44px,4.55vw,76px)/1.03 'Manrope',Arial,sans-serif;letter-spacing:-3px;margin-top:32px}.heading-dot{color:#76919f}.work-intro{font-size:clamp(17px,1.65vw,25px);line-height:1.4;letter-spacing:-.4px;margin-top:18px;max-width:360px}.project-list{margin-top:auto;padding-top:30px}.project{display:grid;grid-template-columns:20px 1fr 22px;gap:12px;padding:24px 0;border-top:1px solid var(--line);transition:transform .35s var(--ease)}.project:hover{transform:translateX(4px)}.project-number{font-size:12px;padding-top:5px;color:var(--muted)}.project h2{font:500 clamp(20px,1.9vw,29px)/1.2 'Manrope',sans-serif;letter-spacing:-.6px}.project-type{display:block;font-size:12px;margin-top:11px;color:var(--muted)}.text-link{padding:0;background:none;text-align:left;display:flex;justify-content:space-between;align-items:center;font-size:14px}.all-work{border-top:1px solid var(--line);padding-top:20px;margin-top:3px}.all-work span{font-size:22px}.text-link:hover{text-decoration:underline;text-underline-offset:4px}
.portrait-panel{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;background:rgba(242,247,246,.28);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.portrait-panel:hover{background:rgba(245,250,249,.18);backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px)}.scene{position:relative;flex:1;min-height:330px;isolation:isolate;overflow:hidden}.portrait-parallax{position:absolute;inset:0;transform:translate(var(--look-x,0px),var(--look-y,0px));transition:transform .65s var(--ease);pointer-events:none}.avatar{position:absolute;bottom:-2%;left:3%;width:94%;height:93%;object-fit:contain;object-position:bottom;filter:drop-shadow(0 12px 12px rgba(19,44,59,.07));transform-origin:50% 90%;transition:transform .9s var(--ease),filter .8s;will-change:transform}
.cv-panel{grid-column:3;grid-row:1;display:flex;flex-direction:column;padding:24px 27px 18px}.cv-panel h2,.about-panel h2{font:500 clamp(31px,3.1vw,48px)/1.1 'Manrope',sans-serif;letter-spacing:-1.8px;margin-top:11px}.about-panel{grid-column:3;grid-row:2;text-align:left;padding:23px 27px;display:flex;flex-direction:column}.about-panel h2{margin-top:16px}.about-panel p{font-size:clamp(16px,1.6vw,23px);line-height:1.4;margin-top:18px;letter-spacing:-.3px}
.opening-foot{display:flex;align-items:center;justify-content:space-between;min-height:48px;gap:20px;font-size:11px;letter-spacing:.8px}.opening-foot a{font-size:12px;letter-spacing:.2px}.opening-foot a span{display:inline-block;margin-left:10px;font-size:18px}.opening-foot button{font-size:11px;letter-spacing:.2px;padding:8px 0;background:none;color:var(--muted);min-width:88px}.opening-foot a:hover{text-decoration:underline}
.name-reveal{min-height:100svh;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;padding:90px 24px 160px}.name-copy{margin-top:-4svh}.name-copy h2{font:400 clamp(64px,13.5vw,230px)/1.1 'Prata',Georgia,serif;letter-spacing:-.065em;margin-left:-.04em}.name-copy h2 span{color:#587d94}.name-copy>p{font:400 clamp(22px,2.7vw,43px)/1.4 Georgia,serif;margin-top:16px;letter-spacing:-.5px}.reveal-contact{display:inline-block;font-size:14px;margin-top:38px;padding:10px 0;border-bottom:1px solid #638394}.reveal-contact span{margin-left:18px}.name-reveal footer{position:absolute;left:32px;right:32px;bottom:27px;display:flex;align-items:center;justify-content:space-between;font-size:12px;text-shadow:0 1px 7px #f0f5f6}.name-reveal footer>div{display:flex;gap:25px}.name-reveal footer a:hover{text-decoration:underline;text-underline-offset:4px}
dialog{color:var(--ink);border:1px solid #adbdc6;border-radius:20px;background:rgba(242,247,246,.98);width:min(690px,calc(100% - 32px));max-height:88svh;padding:30px 36px 36px;box-shadow:0 20px 100px #102b4055}dialog::backdrop{background:rgba(28,51,67,.42);backdrop-filter:blur(8px)}.close-dialog{background:transparent;font-size:20px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%}dialog h2{font:500 clamp(28px,4vw,44px)/1.2 'Manrope',sans-serif;letter-spacing:-1.5px;margin-bottom:24px}dialog p{font-size:16px;line-height:1.75;margin-top:20px;color:#385466}
@media(min-width:1500px){.opening{padding:0 38px}.bento{gap:18px}.work-panel{padding-top:37px}.cv-panel{padding:30px 35px}.about-panel{padding:30px 35px}.project{padding:30px 0}}
@media(max-height:820px) and (min-width:961px){.opening{padding:0 20px}.bento{min-height:570px;height:calc(100svh - 109px);grid-template-rows:minmax(230px,1fr) minmax(160px,.73fr) 68px;gap:12px}.work-panel{padding:24px}.work-panel h1{margin-top:24px}.work-intro{font-size:20px;margin-top:13px}.project-list{padding-top:20px}.project{padding:20px 0}.cv-panel{padding:20px 24px 16px}.cv-panel h2{font-size:38px}.about-panel{padding:21px 24px}.about-panel h2{font-size:36px}.about-panel p{font-size:20px;margin-top:13px}.opening-foot{min-height:43px}}
@media(max-width:1100px) and (min-width:961px){.location{display:none}.work-panel{padding:25px 22px}.project{grid-template-columns:15px 1fr 18px;gap:8px}.project h2{font-size:22px}}
@media(max-width:960px){.opening{padding:0 18px}.location{display:none}.bento{height:auto;max-height:none;min-height:0;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;gap:12px}.work-panel{grid-column:1;grid-row:1;padding:26px;min-height:570px}.portrait-panel{grid-column:2;grid-row:1;min-height:570px}.scene{min-height:390px}.work-panel h1{font-size:49px}.work-intro{font-size:21px}.project-list{padding-top:30px}.project{padding:25px 0}.project h2{font-size:24px}.cv-panel{grid-column:1;grid-row:2;min-height:270px;padding:25px;display:block}.cv-panel h2{font-size:40px;margin-top:14px}.about-panel{grid-column:2;grid-row:2;min-height:270px;padding:25px}.about-panel h2{font-size:40px}.about-panel p{font-size:21px}.opening-foot{min-height:60px;font-size:10px;letter-spacing:.3px}.opening-foot>span{display:none}.name-copy h2{font-size:15vw}.name-copy>p{font-size:30px}.name-reveal{min-height:90svh}.landscape img{object-position:center bottom}}
@media(max-width:600px){.opening{padding:0 12px}.bento{display:flex;flex-direction:column;gap:12px}.glass{border-radius:17px}.work-panel{min-height:0;padding:25px;order:1}.work-panel h1{font-size:53px;letter-spacing:-2.8px;margin-top:23px}.work-intro{font-size:23px;margin-top:15px}.work-intro br{display:none}.project-list{padding-top:26px;margin-top:0}.project{padding:21px 0;grid-template-columns:17px 1fr 24px;gap:11px}.project h2{font-size:24px}.project h2 br{display:none}.project-type{margin-top:8px}.all-work{padding-top:18px}.portrait-panel{order:2;min-height:510px;height:540px}.scene{min-height:395px}.portrait-parallax .avatar{height:94%;width:94%;left:3%}.cv-panel{order:3;min-height:260px;padding:25px}.cv-panel h2{font-size:44px}.about-panel{order:4;min-height:245px;padding:25px}.about-panel h2{font-size:43px;margin-top:12px}.about-panel p{font-size:23px;margin-top:17px}.opening-foot{gap:15px;font-size:11px;padding:4px}.opening-foot a{font-size:11px}.opening-foot button{font-size:11px}.name-reveal{min-height:90svh;padding:70px 16px 160px}.name-copy{margin-top:-7svh}.name-copy h2{font-size:16vw;letter-spacing:-.07em}.name-copy>p{font-size:27px;line-height:1.4;margin-top:20px}.reveal-contact{font-size:12px;margin-top:31px}.name-reveal footer{left:20px;right:20px;bottom:25px;align-items:start;gap:15px;font-size:11px}.name-reveal footer>div{gap:14px;flex-wrap:wrap;justify-content:end}.name-reveal footer>span{white-space:nowrap}.landscape img{object-position:48% bottom}dialog{padding:23px}dialog h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.landscape img{transform:none!important}.portrait-parallax{transform:none!important}}
body.motion-paused{scroll-behavior:auto}body.motion-paused *{animation:none!important;transition:none!important}body.motion-paused .portrait-parallax{transform:none!important}
@media(min-width:961px){.opening{height:100svh;min-height:680px}.bento{height:auto;min-height:0;grid-template-rows:minmax(0,1fr) minmax(0,.8fr) 82px}.scene{min-height:0}.project-list{padding-top:22px}}
@media(max-height:820px) and (min-width:961px){.opening{min-height:640px}.bento{grid-template-rows:minmax(0,1fr) minmax(0,.75fr) 68px}.work-panel h1{font-size:49px}.project{padding:17px 0}.about-panel h2{font-size:34px}.about-panel p{font-size:19px}}
.portrait-parallax{z-index:2}

/* Quieter cards and an illustration-led contact reveal. */
:root{--glass:rgba(245,249,249,.82);--muted:#40596d}
.glass:hover,.glass:focus-within{background:rgba(247,250,250,.96);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-color:rgba(52,83,104,.38)}
.portrait-panel{background:rgba(239,247,249,.48);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
.portrait-panel:hover,.portrait-panel:focus-within{background:rgba(242,248,249,.69);backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px)}
.work-panel h1{margin-top:8px}.project{grid-template-columns:20px 1fr}.cv-panel h2,.about-panel h2{margin-top:4px}.cv-panel{padding-top:30px}.about-panel{padding-top:30px}.opening-foot{justify-content:space-between}


.portrait-socials{position:absolute;z-index:7;top:13%;left:7%;right:7%;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}
.social-link{display:flex;align-items:center;gap:9px;padding:10px 15px;border:1px solid rgba(70,103,122,.24);border-radius:40px;background:rgba(249,251,248,.96);color:#1e425b;box-shadow:0 5px 18px rgba(37,61,78,.08);font-size:14px;line-height:1.2;min-height:46px;opacity:0;transform:translateY(14px) scale(.94);transition:opacity .3s,transform .65s var(--ease),background .25s;pointer-events:none}.social-link svg{width:23px;height:23px}.email-link{transition-delay:.07s}
.scene[data-state=cv] .social-link,.portrait-socials:focus-within .social-link{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.social-link:hover{background:#e5eef3}.social-link:focus-visible{outline:3px solid #426e8c;outline-offset:4px}
.scene{min-height:0}.avatar{height:96%;bottom:-1%}.reveal-contact{margin-top:32px}
@media(max-width:960px){.portrait-panel{min-height:570px}.scene{min-height:520px}.portrait-socials{top:auto;bottom:20px;left:20px;right:20px;justify-content:center}.social-link{opacity:1;transform:none;pointer-events:auto;background:rgba(248,251,249,.97)}.avatar{bottom:65px;height:83%}}
@media(max-width:600px){.portrait-panel{height:490px;min-height:490px}.scene{min-height:490px}.work-panel h1{margin-top:0}.project{grid-template-columns:17px 1fr}.cv-panel h2,.about-panel h2{margin-top:0}.portrait-socials{bottom:20px}.social-link{font-size:13px;padding:9px 14px}.opening-foot{padding:10px 4px}.name-copy h2{margin-top:0}}
@media(prefers-reduced-motion:reduce){.social-link{transition:none}}

/* One anchored character, with activity behind the illustration. */
.scene{isolation:isolate;background:#eaf2f5}
.scene .portrait-parallax{z-index:2;transform:none;transition:none;mix-blend-mode:multiply}
.scene .portrait-parallax .avatar{left:3%;bottom:0;width:94%;height:78%;transform:none;transition:none;filter:none;will-change:auto}
.idea-circle{position:absolute;z-index:0;left:50%;top:54%;width:69%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(207,224,229,.8),rgba(220,232,236,.5) 69%,transparent 70%);border:1px solid rgba(85,121,138,.12);opacity:.6;transition:opacity .35s}
.scene[data-state=about] .idea-circle{opacity:.2}
.illustrated-object{position:absolute;z-index:1;left:50%;top:54%;right:auto;width:94px;aspect-ratio:1;background-size:contain;background-position:center;background-repeat:no-repeat;mix-blend-mode:multiply;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.32);transition:left 1s var(--ease),top 1s var(--ease),transform 1s var(--ease),opacity .3s;transition-delay:0s}
.object-notes{background-image:url('assets/work-sticky-notes.png');--end-x:23%;--end-y:17%;--angle:-8deg;--delay:0s;width:124px}
.object-wireframe{background-image:url('assets/work-wireframe.png');--end-x:78%;--end-y:18%;--angle:6deg;--delay:.12s;width:132px}
.object-notebook{background-image:url('assets/work-research-notebook.png');--end-x:87%;--end-y:40%;--angle:5deg;--delay:.24s;width:130px}
.object-flow{background-image:url('assets/work-flow.png');--end-x:13%;--end-y:39%;--angle:-5deg;--delay:.36s;width:136px}
.scene[data-state=work] .illustrated-object{left:var(--end-x);top:var(--end-y);opacity:1;transform:translate(-50%,-50%) scale(1) rotate(var(--angle));transition-delay:var(--delay)}

/* The process is drawn directly on the backdrop, in three successive stages. */
.process-backdrop{position:absolute;z-index:1;top:5%;left:5%;width:90%;pointer-events:none;opacity:0;transition:opacity .2s}
.process-heading{font:italic 24px Georgia,serif;margin-bottom:12px}
.process-drawing{display:block;width:100%;height:auto;overflow:visible}
.process-labels{font:600 27px 'DM Sans',Arial,sans-serif}
#home-surface .process-heading{font-size:18px!important}
#home-surface .process-labels text,#home-surface .process-labels tspan{font-size:28px!important}
.process-ink path{stroke-dasharray:1;stroke-dashoffset:1;opacity:0;transition:none}
.process-labels text,.process-nodes circle{opacity:0;transition:none}
.scene[data-state=about] .process-backdrop{opacity:1}
.scene[data-state=about] .process-ink path{opacity:1;stroke-dashoffset:0;transition:stroke-dashoffset .75s ease,opacity .01s;transition-delay:var(--stage-delay)}
.scene[data-state=about] .process-labels text,.scene[data-state=about] .process-nodes circle{opacity:1;transition:opacity .2s;transition-delay:calc(var(--stage-delay) + .65s)}
.process-ink path:nth-child(1),.process-labels text:nth-child(1),.process-nodes circle:nth-child(1){--stage-delay:.1s}
.process-ink path:nth-child(2),.process-labels text:nth-child(2),.process-nodes circle:nth-child(2){--stage-delay:1s}
.process-ink path:nth-child(3),.process-labels text:nth-child(3),.process-nodes circle:nth-child(3){--stage-delay:1.9s}
@media(max-width:960px){.scene .portrait-parallax .avatar{bottom:65px;height:70%}.illustrated-object{width:82px}.object-wireframe{width:94px}.object-flow{width:90px}.process-backdrop{top:3%;left:4%;width:92%}.process-heading{font-size:22px;margin-bottom:10px}.idea-circle{top:52%;width:76%}}
@media(max-width:600px){.portrait-panel{height:560px;min-height:560px}.scene{min-height:560px}}
@media(hover:none){.scene[data-state=rest] .illustrated-object{left:var(--end-x);top:var(--end-y);opacity:1;transform:translate(-50%,-50%) rotate(var(--angle))}}
@media(prefers-reduced-motion:reduce){.illustrated-object,.process-backdrop,.process-ink path,.process-labels text,.process-nodes circle{transition:none!important}}

/* Contact circles rise from the same origin as the Work illustrations. */
.scene .portrait-socials{inset:0;display:block;z-index:1;pointer-events:none}
.scene .social-link{position:absolute;left:50%;top:54%;width:100px;height:100px;min-height:100px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(64,99,121,.25);background:#f6fafb;box-shadow:0 4px 12px rgba(37,61,78,.06);color:#294f69;opacity:0;transform:translate(-50%,-50%) scale(.32);pointer-events:none;transition:left 1s var(--ease),top 1s var(--ease),transform 1s var(--ease),opacity .3s,background .2s;transition-delay:0s}
.scene .social-link svg{width:36px;height:36px}
.scene .linkedin-link{--end-x:18%;--end-y:24%;--delay:0s}
.scene .email-link{--end-x:50%;--end-y:13%;--delay:.12s}
.scene .phone-link{--end-x:82%;--end-y:24%;--delay:.24s}
.scene[data-state=cv] .social-link,.scene .portrait-socials:focus-within .social-link{left:var(--end-x);top:var(--end-y);opacity:1;transform:translate(-50%,-50%) scale(1);pointer-events:auto;transition-delay:var(--delay)}
.scene .social-link:hover{background:#e1edf2}
@media(hover:none){.scene[data-state=rest] .social-link{left:var(--end-x);top:var(--end-y);opacity:1;transform:translate(-50%,-50%);pointer-events:auto}.scene[data-state=rest] .illustrated-object{opacity:0}}
@media(prefers-reduced-motion:reduce){.scene .social-link{transition:none!important}}

/* Keep the closing section close and its links clear over the grove. */
.opening-foot{justify-content:flex-end}
.opening-foot button{background:rgba(245,249,249,.88);border-radius:20px;padding:7px 12px}
.name-reveal{min-height:72svh;padding:80px 28px 28px;flex-direction:column;justify-content:space-between;gap:72px}
.name-copy{margin-top:0}
.name-reveal footer{position:relative;left:auto;right:auto;bottom:auto;width:100%;padding:19px 23px;border-radius:12px;background:rgba(245,249,249,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);text-shadow:none;color:#193651;border:1px solid rgba(255,255,255,.7)}
.name-reveal footer a{display:inline-block;padding:5px 0}
.reveal-contact{background:rgba(245,249,249,.94);border:1px solid rgba(78,107,127,.22);border-radius:30px;padding:12px 20px}
@media(max-width:600px){.name-reveal{min-height:0;padding:64px 12px 18px;gap:64px}.name-reveal footer{padding:16px;gap:20px;align-items:center}.name-reveal footer>div{gap:8px 16px}.name-copy{margin-top:0}}
@keyframes timeline-pulse{0%,15%{transform:scale(.55);opacity:.6}75%,100%{transform:scale(1.35);opacity:0}}
.card-corner{position:absolute;right:0;bottom:0;width:86px;height:86px;border-radius:86px 0 0 0;background:rgba(184,212,230,.94);color:#1f5579;opacity:0;transform:translate(12px,12px);transition:opacity .25s,transform .45s var(--ease);z-index:8;pointer-events:none}
.card-corner::before{content:'';position:absolute;right:16px;bottom:16px;width:34px;height:34px;border:1px solid #477da1;border-radius:50%}
.card-corner svg{position:absolute;right:23px;bottom:23px;width:20px;height:20px}
.glass:hover>.card-corner,.glass:focus-within>.card-corner,.card-corner:focus-visible{opacity:1;transform:none;pointer-events:auto}
.work-panel .all-work{padding-right:55px}
@media(max-width:960px){.cv-panel{min-height:315px}}
@media(hover:none){.glass>.card-corner{opacity:1;transform:none;pointer-events:auto}}
@media(max-width:960px){.illustrated-object{width:108px}.object-notes{width:110px}.object-wireframe{width:116px}.object-notebook{width:114px;--end-x:83%}.object-flow{width:118px;--end-x:17%}.about-panel{min-height:290px}}

/* Clear, individual destinations in the homepage Work card. */
.work-panel .project{grid-template-columns:20px minmax(0,1fr) 38px;gap:10px;align-items:start}
.link-circle{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;border:1px solid #86afc8;border-radius:50%;background:#d5e8f4;color:#245d82;transition:background .2s,color .2s;align-self:center}
.link-circle svg{display:block;width:20px;height:20px}
.project:hover .link-circle,.project:focus-visible .link-circle,.all-work:hover .link-circle,.all-work:focus-visible .link-circle{background:#2f668b;color:white;border-color:#2f668b}
.work-panel .all-work{padding:22px 0 0;gap:14px;font-size:19px;font-weight:500}
.work-panel .all-work>span:first-child{font-size:19px;line-height:1.4}
.work-panel .all-work .link-circle{width:42px;height:42px;flex-basis:42px}
@media(max-width:1100px) and (min-width:961px){.work-panel .project{grid-template-columns:15px minmax(0,1fr) 32px;gap:7px}.project .link-circle{width:32px;height:32px}.work-panel .all-work>span:first-child{font-size:17px}}

/* Language levels and work eligibility. */
.cv-languages{display:flex;flex-wrap:wrap;gap:22px 42px}
.cv-language{display:flex;align-items:center;gap:12px;font-size:17px;line-height:1.35}
.cv-language img,.eu-work-badge img{display:block;width:30px;height:20px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px #19365118;flex-shrink:0}
.cv-language small{display:block;font-size:13px;color:#516e82;margin-top:4px}
.eu-work-badge{display:inline-flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid #c6d8e3;background:#eef5f9;border-radius:9px;font-size:14px;line-height:1.4;margin-top:22px;width:fit-content}
.cv-panel .cv-languages{gap:14px;margin-top:22px;justify-content:space-between}
.cv-panel .cv-language{gap:7px;font-size:11px;align-items:flex-start;flex-direction:column}
.cv-panel .cv-language small{font-size:11px;margin-top:2px}
.cv-panel .cv-language img{width:24px;height:16px}
.cv-panel .eu-work-badge{font-size:11px;padding:7px 9px;margin-top:17px;gap:7px}
.cv-panel .eu-work-badge img{width:24px;height:16px}
@media(max-height:820px) and (min-width:961px){.cv-panel .cv-languages{margin-top:14px}.cv-panel .eu-work-badge{margin-top:12px}}
@media(max-width:960px){.cv-panel{min-height:355px}}

/* At a glance: professional details in CV, a personal introduction in About. */
.glance-card{padding:24px;display:flex;flex-direction:column;min-width:0}
.glance-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.glance-card .glance-heading h2{font:500 28px/1.15 'DM Sans',sans-serif;letter-spacing:-1px;margin:0}
.glance-arrow{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:50%;background:#deebf3;color:#285c78;transition:background .2s,color .2s}
.glance-arrow svg{width:19px;height:19px}
.glance-card:hover .glance-arrow,.glance-card:focus-visible .glance-arrow{background:#285c78;color:#fff}
.glance-position{margin:22px 0 17px}
.glance-position h3{font:500 22px/1.3 'DM Sans',sans-serif;letter-spacing:-.6px;margin:0 0 8px}
.glance-position p{font-size:13px;line-height:1.5}
.glance-position p span{color:#526d80}
.glance-location{display:flex;align-items:center;gap:7px;font-size:12px;line-height:1.5}
.glance-location svg{width:15px;height:15px;flex-shrink:0}
.glance-eligibility{display:flex;align-items:center;gap:7px;font-size:12px;line-height:1.5;color:inherit;margin-top:7px}
.glance-eligibility img{display:block;border-radius:2px}
.glance-toolkit{margin-top:20px}
.glance-label{display:block;font-size:12px;line-height:1.5;color:#526d80;margin-bottom:9px}
.glance-tools{display:flex;flex-wrap:wrap;gap:10px 15px;font-size:12px;line-height:1.5}
.glance-tools>span{display:inline-flex;align-items:center;gap:6px}
.glance-tools img{display:block;width:18px;height:18px;object-fit:contain}
.cv-panel.glance-card .cv-languages{margin-top:20px;justify-content:flex-start;gap:15px 22px}
.cv-panel.glance-card .cv-language{gap:6px;font-size:12px}
.cv-panel.glance-card .cv-language img{width:21px;height:14px}
.about-panel.glance-card{background:rgba(245,249,249,.82)}
.about-panel.glance-card:hover,.about-panel.glance-card:focus-visible{background:#f4f8fa}
#home-surface :is(.work-panel,.cv-panel,.about-panel){background:rgba(255,255,255,.92)}
#home-surface :is(.work-panel,.cv-panel,.about-panel):is(:hover,:focus-within){background:rgba(255,255,255,.98)}
.about-panel .glance-hello{font:italic 32px/1.15 Georgia,serif;letter-spacing:-1px;margin:22px 0 14px;display:flex;align-items:center;gap:5px;min-height:54px}
.about-panel .glance-heading .glance-hello{font:500 27px/1.2 'Manrope',sans-serif;letter-spacing:-.8px;margin:0;min-width:0;min-height:0;display:block}
.about-panel .glance-heading:has(.glance-hello){margin-bottom:20px;align-items:center}
.about-panel .glance-personal{font-size:15px;line-height:1.6;letter-spacing:0;margin:0;max-width:340px}
.glance-more{font-size:12px;margin-top:auto;padding-top:20px}
@media(min-width:961px){.opening{min-height:910px}.bento{grid-template-rows:minmax(415px,1.2fr) minmax(260px,.8fr) 72px;max-height:none}}
@media(min-width:961px) and (max-height:820px){.opening{min-height:880px}.bento{grid-template-rows:minmax(415px,1.2fr) minmax(260px,.8fr) 68px}}
@media(max-width:960px){.cv-panel.glance-card{min-height:0;grid-column:2;grid-row:2}.about-panel.glance-card{min-height:0;grid-column:1;grid-row:2}.glance-card{padding:25px}.about-panel .glance-hello{margin-top:36px}.about-panel .glance-personal{font-size:17px}}
@media(max-width:600px){.about-panel.glance-card{order:3;min-height:300px}.cv-panel.glance-card{order:4}.glance-card{padding:25px}.about-panel .glance-hello{margin-top:26px}.glance-more{padding-top:24px}.glance-tools{font-size:13px;gap:12px 17px}.cv-panel.glance-card .cv-languages{gap:18px 28px;margin-top:24px}}
@media(prefers-reduced-motion:reduce){.glance-arrow{transition:none}}
@media(min-width:961px) and (max-width:1150px){.glance-card{padding:20px}.glance-position h3{font-size:20px}.about-panel .glance-personal{font-size:14px}.glance-more{padding-top:16px}}

/* Give the CV's three information groups room to breathe. */
.cv-panel.glance-card{container-type:inline-size;container-name:cv-glance;padding:28px}
.cv-panel .glance-position{margin-top:26px;margin-bottom:22px}
.cv-panel .glance-eligibility{margin-top:10px}
.cv-panel .glance-toolkit{margin-top:auto;padding-top:30px}
.cv-panel .glance-label{margin-bottom:14px}
.cv-panel .glance-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px;font-size:12px}
.cv-panel .glance-tools>span{gap:9px;min-width:0;white-space:normal}
.cv-panel .glance-tools img{flex-shrink:0}
.cv-panel.glance-card .cv-languages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}
.cv-panel.glance-card .cv-language{gap:10px;font-size:12px}
.cv-panel.glance-card .cv-language small{margin-top:5px}
@container cv-glance (min-width:340px){.cv-panel .glance-tools{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:961px){.opening{min-height:1000px}.bento{grid-template-rows:minmax(505px,1.2fr) minmax(260px,.8fr) 72px}}
@media(min-width:961px) and (max-width:1150px){.cv-panel.glance-card{padding:24px}.cv-panel.glance-card .cv-languages{gap:8px}}
@media(max-width:960px){.cv-panel.glance-card{min-height:505px}}
@media(max-width:600px){.cv-panel.glance-card{padding:28px;min-height:505px}.cv-panel .glance-tools{gap:16px 22px}}

/* Homepage: exactly three type sizes; weight and spacing carry the hierarchy. */
#home-surface,#home-surface *{font-size:14px!important;font-family:'Manrope',Arial,sans-serif}
#home-surface h1{font-size:36px!important;line-height:1.15;letter-spacing:-1.2px}
#home-surface :is(h2,.wordmark,.contact-panel>a:first-child){font-size:24px!important;line-height:1.3;letter-spacing:-.6px}
#home-surface :is(h1,h2) *{font-size:inherit!important}
#home-surface h3{font-weight:600;line-height:1.5;letter-spacing:0}
#home-surface :is(p,.project-type,.glance-more,.glance-label,.cv-language,.glance-tools,.opening-foot){line-height:1.6;letter-spacing:0}
#home-surface .project-type{margin-top:8px}
#home-surface .work-intro{margin-top:18px}
#home-surface .glance-label{font-weight:600}
#home-surface .glance-position{margin-top:24px;margin-bottom:20px}
#home-surface .cv-panel .cv-languages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;justify-content:flex-start;margin-top:24px}
#home-surface .cv-panel .cv-language{min-width:0;gap:6px}
#home-surface .cv-panel .cv-language small{margin-top:0}
#home-surface .cv-panel .glance-tools{grid-template-columns:.9fr 1.1fr;gap:12px}
#home-surface .cv-panel .glance-tools>span{gap:8px;line-height:1.5}
#home-surface .cv-panel .glance-tools img{width:20px;height:20px;object-fit:contain}
#home-surface .cv-panel .glance-toolkit{margin-top:24px;padding-top:20px;border-top:1px solid rgba(40,93,128,.15)}
#home-surface .glance-card .glance-heading h2{font-size:36px!important;line-height:1.15;letter-spacing:-1.2px}
#home-surface .project-list{padding-top:28px}
#home-surface .project{padding:22px 0}
#home-surface .opening{height:auto;min-height:100svh}
#home-surface .bento{height:auto;flex:0 0 auto;max-height:none}
#home-surface .opening-foot{position:relative;flex:0 0 auto;min-height:56px;margin-top:12px;padding:0 0 12px;justify-content:flex-end}
#home-surface .name-copy>p{margin-top:24px}
#home-surface #name-title{font:400 clamp(48px,7.5vw,132px)/1.12 'Prata',Georgia,serif!important;letter-spacing:-.055em;margin-left:0}
#home-surface .name-copy h2 span{font-family:inherit}
@media(min-width:961px){#home-surface .bento{grid-template-rows:auto minmax(230px,auto)}#home-surface .work-panel{grid-row:1/3}#home-surface .cv-panel.glance-card{min-height:0;padding:26px}}
@media(max-width:960px){#home-surface #name-title{font-size:8vw!important}#home-surface .bento{grid-template-rows:auto auto}}
@media(max-width:600px){#home-surface #name-title{font-size:8.5vw!important;letter-spacing:-.055em}}
@media(max-width:600px){#home-surface .glance-card{padding:24px}#home-surface .cv-panel.glance-card{min-height:0}#home-surface .glance-tools{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:961px) and (max-width:1150px){#home-surface .cv-panel.glance-card{padding:16px}#home-surface .cv-panel .cv-languages{gap:6px}}
@container cv-glance (max-width:245px){#home-surface .cv-panel .glance-tools{grid-template-columns:1fr;gap:10px}}

/* Introduce Vine on the left; keep the featured work on the right. */
#home-surface .opening{padding-top:100px;padding-bottom:100px}
@media(min-width:961px){
 #home-surface .opening{height:100svh;min-height:0}
 #home-surface .bento{flex:1 1 0;min-height:0;grid-template-columns:1fr 1.2fr 1.02fr;grid-template-rows:minmax(200px,3fr) minmax(0,7fr)}
 #home-surface .opening-foot{min-height:48px;margin-top:8px;padding-bottom:8px}
 #home-surface .about-panel.glance-card{grid-column:1;grid-row:1}
 #home-surface .cv-panel.glance-card{grid-column:1;grid-row:2}
 #home-surface .portrait-panel{grid-column:2;grid-row:1/3}
 #home-surface .work-panel{grid-column:3;grid-row:1/3}
}
@media(min-width:961px) and (max-height:820px){
 #home-surface .bento{grid-template-rows:minmax(180px,3fr) minmax(0,7fr)}
 #home-surface .glance-card,#home-surface .cv-panel.glance-card{padding:20px}
 #home-surface .glance-heading:has(.glance-hello){margin-bottom:12px}
 #home-surface .glance-more{padding-top:12px}
 #home-surface .glance-position{margin-top:16px;margin-bottom:12px}
 #home-surface .cv-panel .cv-languages{margin-top:16px}
 #home-surface .cv-panel .glance-toolkit{margin-top:16px;padding-top:12px}
 #home-surface .cv-panel .glance-label{margin-bottom:10px}
 #home-surface .cv-panel .glance-tools{gap:8px 12px}
 #home-surface .work-panel{padding:24px}
 #home-surface .project{padding:18px 0}
}
@media(min-width:601px) and (max-width:960px){
 #home-surface .bento{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto}
 #home-surface .about-panel.glance-card{grid-column:1;grid-row:1}
 #home-surface .cv-panel.glance-card{grid-column:1;grid-row:2}
 #home-surface .work-panel{grid-column:2;grid-row:1/3}
 #home-surface .portrait-panel{grid-column:1/3;grid-row:3;min-height:500px}
}
@media(max-width:600px){
 #home-surface .about-panel.glance-card{order:1;min-height:230px}
 #home-surface .cv-panel.glance-card{order:2}
 #home-surface .work-panel{order:3}
 #home-surface .portrait-panel{order:4}
}
@media(max-width:960px),(max-height:820px){
 #home-surface .opening{padding-top:20px;padding-bottom:20px}
}
/* Paused mode keeps the contact scene and card surfaces still. */
body.motion-paused #home-surface .bento>.glass{background:rgba(255,255,255,.92);border-color:rgba(47,76,96,.25);border-top-color:rgba(255,255,255,.9);box-shadow:0 3px 12px rgba(38,67,88,.035),inset 0 1px 0 rgba(255,255,255,.5);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
body.motion-paused #home-surface .bento>.portrait-panel{background:rgba(239,247,249,.48);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
body.motion-paused #home-surface .project{transform:none}
body.motion-paused #home-surface .glance-card .glance-arrow{background:#deebf3;color:#285c78}
body.motion-paused #home-surface .work-panel .link-circle{background:#d5e8f4;color:#245d82;border-color:#86afc8}
body.motion-paused #home-surface .scene .social-link{background:#f6fafb}
/* Keep the motion control readable in both states. */
#home-surface #motion-toggle{background:#285d80;color:#fff;border:1px solid #285d80;border-radius:999px;min-height:44px;padding:10px 20px;font-size:14px;line-height:1.4;font-weight:600;cursor:pointer}
#home-surface #motion-toggle:hover{background:#204d68;border-color:#204d68}
#home-surface #motion-toggle:focus-visible{outline:3px solid #193651;outline-offset:3px;box-shadow:0 0 0 3px #fff}
