:root{--bg: #fff;--bg-tint: #f7f5fe;--section-wash: #faf9fc;--section-lavender: #edeafd70;--section-peach: #fcefe360;--ink: #23223a;--ink-soft: #626178;--accent: #7c6ce8;--accent-deep: #6050bd;--accent-soft: #edeafd;--accent-warm: #f3b98b;--line: #e3dfef;font-family:Plus Jakarta Sans,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}*{scrollbar-width:thin;scrollbar-color:#b0a4e5 var(--bg-tint)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-tint)}::-webkit-scrollbar-thumb{background:#b0a4e5;border:3px solid var(--bg-tint);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--accent-deep)}::-webkit-scrollbar-corner{background:var(--bg-tint)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a,button,input{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--accent-deep);outline-offset:5px}button{touch-action:manipulation}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-family:Sora,sans-serif;line-height:1.2;letter-spacing:-.04em}.pf-root{line-height:1.75;overflow:clip}.container{max-width:1160px;margin:auto;padding:0 32px}.skip-link{position:fixed;top:-80px;left:20px;z-index:100;padding:12px;background:#fff}.skip-link:focus{top:12px}.nav{position:fixed;inset:0 0 auto;z-index:50;background:#fffffff5;border-bottom:1px solid transparent}.nav--scrolled{border-color:var(--line)}.nav__inner{max-width:1280px;padding:20px 32px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.nav__brand{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;border:0;border-radius:6px;background:none}.nav__brand img{display:block;width:44px;height:44px}.nav__links{display:flex;align-items:center;gap:6px}.nav__links>button{background:transparent;border:0;padding:9px 12px;font-size:12px;color:var(--ink-soft);border-radius:6px}.nav__links>button[aria-current],.nav__links>button:hover{color:var(--accent-deep);background:var(--accent-soft)}.nav__links>.btn{background:transparent;color:var(--accent-deep);border:1px solid #c6bde8;border-radius:8px;margin-left:8px}.nav__links>.btn:hover{background:var(--accent-soft);border-color:var(--accent)}.work-section{border-top:1px solid var(--line)}.work-section .section__title{max-width:620px;margin-bottom:44px}.work-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;padding:0;margin:0;list-style:none}.work-step{position:relative}.work-step:not(:last-child):after{content:"";position:absolute;height:1px;top:22px;left:56px;width:calc(100% - 44px);background:linear-gradient(90deg,var(--accent),var(--line));transform-origin:left}.work-step__marker{display:grid;place-items:center;width:44px;height:44px;border:1px solid #c6bde8;background:var(--bg-tint);border-radius:10px;color:var(--accent-deep);font-size:11px;margin-bottom:26px}.work-step:first-child .work-step__marker{background:var(--accent-deep);color:#fff;border-color:var(--accent-deep)}.work-step:last-child .work-step__marker{background:#fcefe3;color:#96603b;border-color:var(--accent-warm)}.work-step h3{font-size:clamp(18px,1.8vw,22px);margin-bottom:10px}.work-step__caption{font-size:12px;line-height:1.8;color:var(--ink-soft);max-width:23ch}@keyframes work-connect{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media(prefers-reduced-motion:no-preference){.work-reveal.is-visible .work-step:after{animation:work-connect .6s ease-out both;animation-delay:calc(var(--step) * .18s)}}@media(max-width:800px){.nav__links>.btn{margin-left:0}}@media(max-width:1000px){.work-steps{grid-template-columns:1fr;gap:24px}.work-step{padding-left:68px;min-height:76px}.work-step h3{font-size:21px;margin-bottom:5px}.work-step__marker{position:absolute;top:0;left:0}.work-step:not(:last-child):after{top:54px;left:21px;width:1px;height:calc(100% - 40px);background:linear-gradient(var(--accent),var(--line));transform-origin:top}.work-step__caption{max-width:none}}@keyframes work-connect-vertical{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@media(max-width:1000px)and (prefers-reduced-motion:no-preference){.work-reveal.is-visible .work-step:after{animation-name:work-connect-vertical}}.nav__burger{display:none}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:46px;border:1px solid transparent;border-radius:8px;padding:12px 22px;background:var(--accent-deep);color:#fff;font-size:13px;font-weight:600;text-decoration:none;line-height:1.5;transition:transform .18s,background .18s}.btn--ghost{color:var(--ink);background:transparent;border-color:#cbc4e1}.hero{position:relative;padding:170px 0 48px;min-height:min(850px,100svh);background:radial-gradient(ellipse at 95% 20%,var(--accent-soft),transparent 55%),radial-gradient(ellipse at 0 90%,#fcefe3,transparent 40%)}.hero__content{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:50px}.hero__hello{font-size:10px;letter-spacing:.14em;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin-bottom:24px}.hero__hello span{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.02em;color:#fff;background:var(--accent-deep);padding:7px 13px;border:1px solid var(--accent-deep);border-radius:20px}.hero__hello span:before{content:"";width:6px;height:6px;flex-shrink:0;border-radius:50%;background:#fff}.hero__title{font-size:clamp(44px,5.6vw,72px);line-height:1.08;font-weight:600;letter-spacing:-.065em}.hero__title-accent{display:block;color:var(--accent)}.hero__role{font-weight:600;margin-top:24px;font-size:15px}.hero__tagline{margin-top:14px;max-width:500px;color:var(--ink-soft);font-size:14px;line-height:1.9}.hero__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.hero__meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:11px;color:var(--ink-soft);margin-top:26px}.dot{width:3px;height:3px;border-radius:50%;background:currentColor}.hero__foot{grid-column:1 / -1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:24px;margin-top:26px;color:var(--ink-soft);font-size:10px;letter-spacing:.1em}.hero__foot button{border:0;background:none;font-size:11px;color:var(--accent-deep)}.system-map{position:relative;isolation:isolate;overflow:hidden;border:1px solid #d8d0ee;border-radius:16px;padding:26px;background:#faf8ff;box-shadow:12px 16px #edeafd80;animation:map-enter .65s ease-out}.system-map__scenes{position:absolute;inset:0;z-index:-1;pointer-events:none}.system-map__scene{position:absolute;inset:0;opacity:0;transition:opacity .45s ease}.system-map__scene.is-active{opacity:1}.system-map__scene span{position:absolute;width:52px;height:52px;border:1px solid #7c6ce82a;border-radius:6px}.system-map__scene--interface{background:linear-gradient(135deg,#edeafd,#fff 65%,#fcefe3)}.system-map__scene--interface span{left:calc(5% + var(--tile) * 11%);top:calc(5% + var(--tile) * 10%);width:100px;height:70px;border-top:8px solid #7c6ce820;background:#ffffff70}.system-map__scene--application{background:radial-gradient(ellipse at 100% 0,#f3b98b55,transparent 65%),linear-gradient(45deg,#edeafd,#fff)}.system-map__scene--application span{left:calc(4% + var(--tile) * 12%);top:calc(8% + var(--tile) * 11%);transform:rotate(45deg);background:#7c6ce809}.system-map__scene--application span:after{content:"";position:absolute;width:70px;height:1px;left:100%;top:50%;background:#7c6ce82a}.system-map__scene--data{background:linear-gradient(#7c6ce812 1px,transparent 1px),linear-gradient(90deg,#7c6ce812 1px,transparent 1px),linear-gradient(145deg,#fff,#e3ddfc);background-size:26px 26px,26px 26px,auto}.system-map__scene--data span{left:calc(3% + var(--tile) * 12%);top:calc(3% + var(--tile) * 11%);width:26px;height:26px;border-radius:2px;background:#7c6ce820}.system-map__header{display:flex;justify-content:space-between;color:var(--ink-soft);font-size:9px;letter-spacing:.12em;padding-bottom:24px}.system-map__nodes{display:grid;gap:20px;position:relative}.system-map__nodes:before{content:"";position:absolute;top:0;bottom:0;left:38px;width:1px;background:#cfc4ed}.system-map__nodes button{position:relative;text-align:left;display:grid;grid-template-columns:40px 1fr 20px;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:18px;font-size:13px;transition:border-color .2s,transform .2s}.system-map__nodes button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);transform:translate(-5px)}.system-map__nodes small{display:block;font-size:10px;color:var(--ink-soft);margin-top:4px}.system-map__code{font-family:monospace;font-size:21px;color:var(--accent-deep)}.system-map__nodes button>span:last-child{color:var(--ink-soft);font-size:9px}.system-map__note{display:flex;align-items:baseline;gap:10px;font-size:12px;min-height:60px;margin-top:25px;color:var(--ink-soft)}.status-dot{flex:0 0 6px;height:6px;background:var(--accent);border-radius:50%}.system-map__hint{font-size:10px;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:12px}.section{padding:88px 0;scroll-margin-top:75px}.section--tinted{background:linear-gradient(to bottom,var(--bg),transparent 100px,transparent calc(100% - 100px),var(--bg)),radial-gradient(ellipse at 95% 35%,var(--section-lavender),transparent 60%),radial-gradient(ellipse at 0 70%,var(--section-peach),transparent 55%),var(--section-wash)}.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--accent-deep);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}.eyebrow:before{content:"";width:22px;height:1px;background:var(--accent)}.section__title{font-size:clamp(26px,3.3vw,38px);margin-bottom:30px}.education-feature{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:center;padding-top:32px;border-top:1px solid var(--line)}.education-feature+.education-feature{margin-top:40px}.education-feature__study{min-width:0}.education-feature__period{font-size:11px;color:var(--ink-soft);letter-spacing:.06em;margin-bottom:22px}.education-feature__study h3{font-size:clamp(22px,2.5vw,30px);max-width:24ch;line-height:1.35}.education-feature__school{margin-top:14px;font-size:14px;font-weight:600;color:var(--accent-deep)}.education-feature__note{max-width:46ch;margin-top:22px;font-size:14px;color:var(--ink-soft)}.education-feature__milestone{padding-left:clamp(24px,4vw,48px);border-left:1px solid var(--line)}.education-feature__label{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);margin-bottom:12px}.education-feature__date{display:block;font:500 clamp(26px,3vw,36px)/1.2 "Sora",sans-serif;letter-spacing:-.04em}.education-feature__date span{display:block;font-size:clamp(64px,8vw,96px);color:var(--accent-deep);margin-top:4px;letter-spacing:-.065em}.education-feature__status{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-size:11px;color:var(--ink-soft)}.education-feature__status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-deep)}@media(max-width:640px){.education-feature{grid-template-columns:minmax(0,1fr)}.education-feature__milestone{padding:0 0 0 20px;border-left:2px solid var(--accent-warm)}.education-feature__date{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}.education-feature__date span{margin-top:0;font-size:44px}.education-feature__status{margin-top:12px}}.about{display:grid;grid-template-columns:1.5fr 1fr;gap:80px;align-items:center}.about__text p{max-width:58ch;color:var(--ink-soft);font-size:16px;line-height:1.9}.about__text>div+div{margin-top:18px}.about__aside{border-left:1px solid var(--line);padding-left:38px}.about__experience{font-size:14px;line-height:1.7;color:var(--ink-soft)}.about__experience>span{display:block;margin-bottom:12px;font:600 clamp(52px,5vw,72px)/1 "Sora",sans-serif;letter-spacing:-.06em;color:var(--accent)}.about__note{margin-top:22px;font-size:11px;color:var(--ink-soft)}.about__note>span{color:var(--accent-deep);margin-right:6px}.stack-directory{border-bottom:1px solid var(--line)}.stack-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) 22px;align-items:center;gap:28px;padding:30px 0;border-top:1px solid var(--line)}.stack-row__heading{display:flex;align-items:center;gap:18px}.stack-row__symbol{flex:0 0 42px;font:24px/1.2 monospace;color:var(--accent-deep)}.stack-row__heading h3{font-size:19px}.stack-row__heading p{color:var(--ink-soft);font-size:11px;margin-top:7px}.stack-row__items{display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0;list-style:none}.stack-row__items li{display:flex;align-items:center;gap:10px;padding:9px 16px 9px 9px;border:1px solid var(--line);border-radius:9px;background:linear-gradient(120deg,var(--bg),#fcfbff);font-size:13px;font-weight:500;line-height:1.5}.stack-row__icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:6px;color:var(--accent-deep);background:var(--accent-soft)}.stack-row__icon svg{width:24px;height:24px}.stack-reveal:nth-child(2n) .stack-row__icon{color:#96603b;background:#fcefe3}.stack-row__number{align-self:start;padding-top:4px;font-size:10px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.stack-reveal:nth-child(2n) .stack-row__symbol{color:#96603b}@keyframes stack-item-enter{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:no-preference){.stack-reveal.is-visible .stack-row__items li{animation:stack-item-enter .35s ease-out both;animation-delay:var(--item-delay)}}@media(hover:hover)and (pointer:fine){.stack-row:hover .stack-row__symbol{color:var(--ink)}.stack-row__items li:hover{border-color:var(--accent);background:var(--accent-soft)}}@media(max-width:800px){.stack-row{grid-template-columns:minmax(0,1fr) 22px;gap:20px}.stack-row__heading{grid-column:1;grid-row:1}.stack-row__items{grid-column:1 / -1}.stack-row__number{grid-column:2;grid-row:1}}.experience-list{border-bottom:1px solid var(--line)}.experience-entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.5fr);gap:clamp(24px,5vw,64px);padding:36px 0;border-top:1px solid var(--line)}.experience-entry__meta{padding-top:3px}.experience-entry__period{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.experience-entry__period>span{color:var(--accent);margin:0 5px}.experience-entry__type{font-size:11px;color:var(--ink-soft);margin-top:8px}.experience-entry__current{display:inline-flex;align-items:center;gap:8px;font-size:10px;color:var(--accent-deep);margin-top:20px}.experience-entry__current:before{content:"";width:6px;height:6px;background:var(--accent-deep);border-radius:50%}.experience-entry__body{min-width:0}.experience-entry__company{font-size:12px;color:var(--accent-deep);font-weight:600;margin-bottom:10px}.experience-entry__body h3{font-size:clamp(21px,2.4vw,28px);line-height:1.35}.experience-entry__description{font-size:14px;color:var(--ink-soft);margin-top:16px;max-width:70ch;line-height:1.9}.experience-entry__stack{display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:20px 0 0;padding:0}.experience-entry__stack li{font-size:11px;color:var(--ink-soft);display:inline-flex;align-items:center;gap:8px}.experience-entry__stack li:before{content:"";width:4px;height:4px;border:1px solid var(--accent)}.experience-entry--current{border-top-color:var(--accent)}@media(max-width:640px){.experience-entry{grid-template-columns:minmax(0,1fr);gap:18px;padding:28px 0}.experience-entry__meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding-top:0}.experience-entry__type,.experience-entry__current{margin-top:0}}.project__stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}.project__stack span{font-size:10px;background:var(--accent-soft);color:var(--accent-deep);padding:4px 9px;border-radius:4px}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.project__thumb{position:relative;width:100%;aspect-ratio:16 / 8;display:flex;align-items:center;justify-content:center;border:0;border-bottom:1px solid var(--line);background:linear-gradient(135deg,var(--accent-soft),#fcefe3);overflow:hidden}.project:nth-child(2n) .project__thumb{background:linear-gradient(135deg,#f7f5fe,#edeafd)}.project__thumb:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#7c6ce80b 1px,transparent 1px),linear-gradient(90deg,#7c6ce80b 1px,transparent 1px);background-size:24px 24px}.project__number{position:absolute;top:18px;left:20px;font-size:10px;letter-spacing:.12em;color:var(--accent-deep)}.project__diagram{font:40px monospace;color:var(--accent);border:1px solid #cabfe6;padding:12px 24px;border-radius:10px;transform:rotate(-6deg);transition:transform .25s}.project__preview-label{position:absolute;bottom:16px;left:20px;right:20px;display:flex;justify-content:space-between;gap:12px;font-size:10px;color:var(--ink-soft)}.project__thumb img{width:100%;height:100%;object-fit:cover;position:relative}.project__body{padding:24px}.project__top{display:flex;align-items:start;justify-content:space-between;gap:14px}.project__top h3{font-size:18px;letter-spacing:-.02em}.project__link{flex:0 0 38px;height:38px;border:1px solid var(--line);border-radius:50%;background:var(--bg-tint);color:var(--accent-deep)}.project__desc{font-size:13px;color:var(--ink-soft);margin-top:12px}.projects__more{display:flex;justify-content:center;margin-top:30px}.certs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.cert{min-width:0;--certificate-tint: var(--accent-soft)}.cert:nth-child(2n){--certificate-tint: #fcefe3}.certificate-card{position:relative;display:flex;flex-direction:column;height:100%;min-height:262px;padding:28px;border:1px solid var(--line);border-radius:3px 3px 12px;background:linear-gradient(145deg,white 55%,var(--certificate-tint));clip-path:polygon(0 0,calc(100% - 24px) 0,100% 24px,100% 100%,0 100%)}.certificate-card:after{content:"";position:absolute;top:0;right:0;width:24px;height:24px;background:linear-gradient(45deg,var(--certificate-tint) 49%,var(--line) 50%,transparent 54%);border-bottom-left-radius:3px}.certificate-card__header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:24px}.certificate-card__issuer{font-size:11px;font-weight:600;color:var(--accent-deep);letter-spacing:.04em}.certificate-card__number{font-size:10px;font-variant-numeric:tabular-nums;color:var(--ink-soft)}.certificate-card h3{font-size:17px;font-weight:500;letter-spacing:-.025em;line-height:1.55;margin-bottom:28px;overflow-wrap:anywhere}.certificate-card__footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}.certificate-card__label{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--ink-soft)}.certificate-card__footer time{font-size:13px;font-weight:600}.certificate-card__ribbon{width:32px;height:38px;color:var(--accent-deep)}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){.certificate-card{transition:transform .2s ease,border-color .2s ease}.certificate-card:hover{transform:translateY(-4px);border-color:var(--accent)}}.contact{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:64px;padding:24px 0}.contact__title{font-size:clamp(30px,3.8vw,46px);max-width:620px;line-height:1.2}.contact__title>span{color:var(--accent-deep)}.contact__sub{color:var(--ink-soft);margin-top:22px;max-width:44ch;font-size:14px}.contact__details{min-width:0}.contact__label{text-transform:uppercase;font-size:10px;letter-spacing:.13em;color:var(--ink-soft);margin-bottom:12px}.contact__email{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0 18px;border-bottom:1px solid #c6bde8;text-decoration:none;font-size:clamp(14px,1.4vw,19px);font-weight:600}.contact__email>span:first-child{overflow-wrap:anywhere}.arrow-up-right{display:inline-block;flex-shrink:0;vertical-align:middle}.contact__email>svg{color:var(--accent-deep);width:24px;height:24px}.contact__socials .arrow-up-right{width:13px;height:13px;margin-left:3px}.back-to-top{position:fixed;right:max(24px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));z-index:40;display:grid;place-items:center;width:52px;height:52px;padding:0;border:0;border-radius:50%;background:#fff;color:var(--accent-deep);box-shadow:0 4px 18px #23223a12;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s,background .2s}.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}.back-to-top:hover{background:var(--bg-tint)}.back-to-top__ring{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.back-to-top__rocket{transition:transform .2s}@media(hover:hover)and (prefers-reduced-motion:no-preference){.back-to-top:hover .back-to-top__rocket{transform:translateY(-2px)}}@media(max-width:540px){.back-to-top{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));width:46px;height:46px}}.contact__email:hover{color:var(--accent-deep);border-color:var(--accent)}.contact__location{font-size:11px;color:var(--ink-soft);margin-top:18px}.contact__socials{display:flex;flex-wrap:wrap;gap:24px;margin-top:18px}.contact__socials a{font-size:12px;text-decoration:none;color:var(--ink-soft);padding:8px 0}.footer{border-top:1px solid var(--line);padding:25px 0 88px;color:var(--ink-soft);font-size:11px}.footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px}.project-dialog{width:min(860px,calc(100% - 28px));max-height:88svh;padding:0;border:1px solid var(--line);border-radius:18px;color:var(--ink);line-height:1.8;overscroll-behavior:contain;box-shadow:0 24px 80px #23223a30}.project-dialog::backdrop{background:#23223ab8}.dialog-head,.dialog-controls{display:flex;justify-content:space-between;align-items:center;gap:16px}.dialog-head{position:sticky;top:0;z-index:2;padding:14px 24px;background:#fff;border-bottom:1px solid var(--line)}.dialog-kicker{font-size:10px;letter-spacing:.12em;color:var(--ink-soft)}.dialog-close{appearance:none;flex:0 0 44px;width:44px;height:44px;display:grid;place-items:center;padding:0;background:#fff;border:1px solid var(--line);border-radius:50%;line-height:1;color:var(--ink)}.dialog-close svg{display:block}.dialog-close:hover{background:var(--accent-soft);border-color:var(--accent)}.dialog-close:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.dialog-cover{min-height:200px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:32px;padding:36px;background:linear-gradient(120deg,var(--accent-soft),#fcefe3)}.dialog-cover__grid{position:absolute;inset:0;background-image:linear-gradient(#7c6ce80c 1px,transparent 1px),linear-gradient(90deg,#7c6ce80c 1px,transparent 1px);background-size:24px 24px}.dialog-cover__code{position:relative;font:48px monospace;color:var(--accent);border:1px solid #cfc4ed;border-radius:14px;padding:18px 28px;transform:rotate(-6deg);background:#ffffff70}.dialog-cover__tags{position:relative;display:grid;gap:7px}.dialog-cover__tags span{font-size:11px;padding:4px 14px;border-left:2px solid var(--accent)}.dialog-cover__label{position:absolute;bottom:14px;right:24px;font-size:8px;letter-spacing:.16em;color:var(--ink-soft)}.dialog-content{padding:12px 32px 28px}.dialog-summary{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:30px;margin-top:28px}.dialog-summary h3{font:600 10px Plus Jakarta Sans,sans-serif;text-transform:uppercase;letter-spacing:.13em;margin:0 0 12px}.dialog-summary p{font-size:14px;color:var(--ink-soft);margin-bottom:24px}.dialog-summary aside{padding-left:24px;border-left:1px solid var(--line)}.dialog-summary .project__stack{margin-top:0}.dialog-bottom{padding:18px 32px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:11px;color:var(--ink-soft)}.dialog-bottom button{border:0;background:none;color:var(--accent-deep);padding:4px 0;font-size:11px}.scroll-particles{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}.particle-message{height:clamp(200px,28vw,320px);margin-bottom:64px;display:grid;place-items:center;text-align:center}.particle-message p{font:700 clamp(34px,6vw,88px)/1.12 "Sora",sans-serif;letter-spacing:-.04em;color:var(--accent)}.particle-message[data-animated=true] p{opacity:0}@media(prefers-reduced-motion:reduce){.scroll-particles{display:none}}.project-dialog h2{font-size:28px;margin:18px 0}.project-dialog>p{font-size:14px;color:var(--ink-soft);margin-top:16px}.dialog-media img{width:100%;max-height:350px;object-fit:contain}.dialog-controls button{padding:10px;background:var(--accent-soft);border:0;border-radius:4px}.dialog-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}@keyframes map-enter{0%{transform:translateY(12px)}to{transform:none}}@keyframes reveal-enter{0%{opacity:.65;transform:translateY(10px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){.system-map__scene.is-active span{animation:scene-assemble .55s ease-out both;animation-delay:calc(var(--tile) * 20ms)}.reveal.is-visible{animation:reveal-enter .4s ease-out both}.project-dialog[open]{animation:dialog-enter .22s ease-out}.system-map__nodes button[aria-pressed=true]{animation:layer-select .38s ease-out}.system-map__nodes button[aria-pressed=true] .system-map__code{animation:layer-code .38s ease-out}}@keyframes scene-assemble{0%{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}@keyframes layer-select{0%{transform:translate(0) scale(.985)}60%{transform:translate(-7px) scale(1.01)}to{transform:translate(-5px) scale(1)}}@keyframes layer-code{0%{transform:translateY(4px);opacity:.45}to{transform:translateY(0);opacity:1}}@keyframes dialog-enter{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@media(hover:hover)and (pointer:fine){.btn:hover{transform:translateY(-2px)}.project__thumb:hover .project__diagram{transform:rotate(0) translateY(-4px)}.project__link:hover{background:var(--accent-soft)}.contact__socials a:hover{color:var(--accent-deep)}}@media(max-width:1000px){.nav__inner{padding:16px 24px}.nav__links>button{font-size:11px;padding:8px}.hero__content{gap:26px}.system-map{padding:18px}.about{gap:30px}}@media(max-width:800px){.container{padding:0 22px}.hero{padding:126px 0 34px}.hero__content{grid-template-columns:1fr}.hero__title{font-size:clamp(44px,9vw,68px)}.system-map{max-width:560px;width:100%;margin:12px auto 0;box-shadow:none}.hero__foot{margin-top:6px}.section{padding:64px 0}.about{grid-template-columns:1fr}.contact{grid-template-columns:1fr;gap:36px}.about__aside{padding:24px 0 0;border-left:0;border-top:1px solid var(--line)}.certs{grid-template-columns:1fr 1fr}.nav__burger{display:flex;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;border:1px solid var(--line);background:#fff;border-radius:6px}.nav__burger span{height:2px;width:22px;background:var(--ink)}.nav__links{display:none}.nav__links.open{display:flex;position:absolute;top:100%;left:0;right:0;padding:12px 22px 20px;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch}.nav__links>button{text-align:left;padding:12px;font-size:13px}}@media(max-width:540px){.projects,.certs{grid-template-columns:1fr}.contact{padding:0}.dialog-content{padding:10px 20px 24px}.dialog-head{padding:12px 16px}.dialog-summary{grid-template-columns:1fr;gap:0}.dialog-summary aside{padding:20px 0 0;border-left:0;border-top:1px solid var(--line)}.dialog-cover{padding:28px 18px;gap:14px;min-height:170px}.dialog-cover__code{font-size:30px;padding:18px}.dialog-bottom{padding:16px 20px}.system-map__nodes button{padding:14px;gap:8px}.hero__foot>span{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
