*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;background:#f8f9fd;color:#0a1020;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button,a{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid #0a1020;outline-offset:4px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}:root{--ink: #0a1020;--muted: #656b78;--paper: #f8f9fd;--lavender: #c6b6f8;--mint: #aee5cc;--butter: #ffe498;--powder: #9fd4f2;--blush: #f2aeb9;--line: #182131;--page-gutter: clamp(1.25rem, 4.4vw, 4.5rem)}.site-shell{min-width:0;overflow:clip;background:var(--paper);color:var(--ink)}.site-header{height:6.75rem;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:clamp(1.5rem,4vw,4rem);padding-inline:var(--page-gutter)}.brand{width:fit-content;color:var(--ink);font-size:clamp(1.15rem,1.8vw,1.65rem);font-weight:760;letter-spacing:-.045em;text-decoration:none}.site-header nav{display:flex;gap:clamp(1.35rem,3vw,3rem)}.site-header nav a{position:relative;color:var(--ink);font-size:.98rem;text-decoration:none}.site-header nav a:after{content:"";position:absolute;right:0;bottom:-.35rem;left:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .18s ease}.site-header nav a:hover:after,.site-header nav a:focus-visible:after{transform:scaleX(1);transform-origin:left}.circle-link{width:3rem;height:3rem;display:inline-grid;place-items:center;border:1px solid var(--ink);border-radius:50%;color:var(--ink);text-decoration:none;transition:color .18s ease,background .18s ease,transform .18s ease}.circle-link svg,.text-button svg{width:1.25rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}.circle-link:hover,.circle-link:focus-visible{color:#fff;background:var(--ink);transform:translateY(-2px)}.hero{min-height:calc(100svh - 6.75rem);display:grid;grid-template-columns:minmax(25rem,.82fr) minmax(38rem,1.18fr);align-items:center;padding:clamp(2rem,4vw,4rem) var(--page-gutter) clamp(4.5rem,7vw,7rem)}.hero-copy{position:relative;z-index:3}.hero h1{max-width:8ch;margin:0;font-size:clamp(5rem,9.6vw,9.4rem);font-weight:800;letter-spacing:-.085em;line-height:.79}.role{margin:1.1rem 0 1.75rem;font-size:clamp(1.75rem,3vw,3rem);letter-spacing:-.04em}.signal-line{position:relative;display:block;width:4.5rem;height:1.5px;margin-bottom:1.6rem;background:var(--ink)}.signal-line:after{content:"";position:absolute;top:50%;right:-.2rem;width:.55rem;height:.55rem;border-radius:50%;background:var(--ink);transform:translateY(-50%)}.statement{max-width:21rem;margin:0;font-size:clamp(1.45rem,2.3vw,2.15rem);letter-spacing:-.04em;line-height:1.28}.hero-actions{display:flex;gap:1rem;margin-top:2.35rem}.text-button{min-width:12rem;display:inline-flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.35rem;border:1px solid var(--ink);border-radius:.35rem;color:var(--ink);font-weight:650;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.text-button--pastel{border-color:transparent;background:var(--lavender)}.text-button:hover,.text-button:focus-visible{transform:translateY(-3px);box-shadow:0 14px 24px -18px #0a1020a6}.skill-stage{position:relative;width:min(100%,54rem);aspect-ratio:1.25 / 1;margin-left:auto;isolation:isolate}.orbit{position:absolute;border:1px solid rgba(24,33,49,.72);border-radius:50%;pointer-events:none;animation:orbit-drift 10s ease-in-out infinite alternate}.orbit--one{top:11%;right:3%;bottom:8%;left:8%;transform:rotate(17deg)}.orbit--two{top:22%;right:8%;bottom:8%;left:4%;border-style:dashed;transform:rotate(-21deg);animation-delay:-3s}.orbit--three{top:0;right:18%;bottom:22%;left:20%;transform:rotate(63deg);animation-delay:-6s}.orbit-dot{position:absolute;z-index:1;width:1.25rem;height:1.25rem;border:2px solid var(--paper);border-radius:50%;animation:float 4s ease-in-out infinite}.orbit-dot--one{top:9%;left:35%;background:#9b7bdd}.orbit-dot--two{top:50%;left:3%;background:var(--mint);animation-delay:-1.5s}.orbit-dot--three{right:3%;bottom:19%;background:var(--blush);animation-delay:-2.7s}.skill-token{position:absolute;z-index:2;display:grid;place-items:center;align-content:center;gap:.35rem;border:5px solid var(--paper);border-radius:50%;color:var(--ink);cursor:pointer;box-shadow:0 15px 34px -25px #0a1020b3;transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s ease,filter .24s ease;animation:float 5s ease-in-out infinite}.skill-token--react{top:5%;left:40%;width:13.5rem;height:13.5rem}.skill-token--next{top:39%;left:17%;width:13rem;height:13rem;animation-delay:-1.6s}.skill-token--nest{right:7%;bottom:5%;width:12.75rem;height:12.75rem;animation-delay:-3.2s}.skill-token--lavender{background:var(--lavender)}.skill-token--mint{background:var(--mint)}.skill-token--butter{background:var(--butter)}.skill-token:hover,.skill-token:focus-visible,.skill-token.is-active{z-index:4;transform:translateY(-8px) scale(1.055);box-shadow:0 26px 42px -27px #0a1020b8;filter:saturate(1.08)}.skill-token>span:last-child{font-size:1.45rem;font-weight:750;letter-spacing:-.04em}.skill-mark{width:4rem;height:4rem;color:var(--ink)}.skill-mark--react{fill:none;stroke:currentColor;stroke-width:2.5}.skill-mark--next,.skill-mark--nest{display:block;font-size:4.6rem;font-weight:430;line-height:.9;letter-spacing:-.14em}.skill-detail{position:absolute;right:1.5rem;bottom:-.5rem;z-index:5;width:17rem;margin:0;padding-left:.9rem;border-left:1px solid var(--ink);font-size:.86rem;line-height:1.35}.skill-detail strong,.skill-detail span{display:block}.skill-detail strong{margin-bottom:.25rem;font-size:1rem}.about-band{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,6vw,6rem);margin-inline:clamp(1rem,2vw,2rem);padding:clamp(4rem,8vw,7rem) var(--page-gutter) 2.25rem;border:1px solid #e1e3e8;border-bottom:0;border-radius:2rem 2rem 0 0;background:#fffdf9}.about-band h2,.experience h2,.contact-band h2{margin:0;font-weight:800;letter-spacing:-.065em;line-height:.94}.about-band h2{max-width:11ch;font-size:clamp(2.7rem,5vw,5.4rem)}.about-band>p{max-width:31rem;margin:0;align-self:end;color:var(--muted);font-size:1.15rem;line-height:1.6}.skill-rail{grid-column:1 / -1;display:flex;justify-content:center;flex-wrap:wrap;gap:.6rem 1rem;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid #e2e2e2}.skill-rail span{display:inline-flex;align-items:center;gap:.55rem;padding:.58rem .9rem;border:1px solid #d9d9d9;border-radius:999px;font-size:.88rem;transition:transform .18s ease,background .18s ease,border-color .18s ease}.skill-rail span:hover{transform:translateY(-2px)}.skill-rail .skill-pill--ai{border-color:#0a1020a6;background:#c6b6f829;font-weight:680}.skill-pill--ai small{padding:.12rem .35rem;border-radius:999px;background:var(--ink);color:#fff;font-size:.58rem;font-weight:700;letter-spacing:.08em}.rail-dot{width:.65rem;height:.65rem;border-radius:50%}.rail-dot--claude{background:var(--blush)}.rail-dot--codex{background:var(--mint)}.rail-dot--butter{background:var(--butter)}.rail-dot--lavender{background:var(--lavender)}.rail-dot--mint{background:var(--mint)}.rail-dot--powder{background:var(--powder)}.rail-dot--blush{background:var(--blush)}.experience{display:grid;grid-template-columns:minmax(15rem,.32fr) minmax(0,.68fr);gap:2rem;padding:clamp(5rem,9vw,9rem) var(--page-gutter) clamp(3.5rem,6vw,6rem);background:#fffdf9}.experience-heading h2{font-size:clamp(3.2rem,6vw,6.4rem)}.experience-heading p{max-width:20rem;margin-top:1.6rem;color:var(--muted);font-size:1.15rem;line-height:1.45}.timeline{position:relative;min-height:25rem;margin:0;padding:0;list-style:none}.timeline-path{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;fill:none;stroke:var(--line);stroke-width:2;vector-effect:non-scaling-stroke}.timeline-item{position:absolute;width:13rem;transform:translate(-.55rem)}.timeline-item--1{left:1%;top:77%}.timeline-item--2{left:29%;top:63%}.timeline-item--3{left:56%;top:36%;width:14.5rem}.timeline-item--4{right:0;top:11%}.timeline-node{display:block;width:1.25rem;height:1.25rem;margin-bottom:.75rem;border:2px solid var(--ink);border-radius:50%;transition:transform .18s ease}.timeline-node--lavender{background:var(--lavender)}.timeline-node--mint{background:var(--mint)}.timeline-node--butter{background:var(--butter)}.timeline-node--blush{background:var(--blush)}.timeline-item time{color:var(--muted);font-size:.82rem}.timeline-item h3{margin:.35rem 0 0;font-size:clamp(1.25rem,2vw,2rem);letter-spacing:-.045em;line-height:1}.timeline-item p{margin:.45rem 0 0;color:var(--muted);font-size:.83rem}.timeline-item:hover .timeline-node{transform:scale(1.3)}.service-line{grid-column:1 / -1;justify-self:center;display:flex;align-items:center;gap:1.5rem;margin:3rem 0 0;font-size:.98rem}.service-line span{width:1.8rem;height:1.8rem;display:grid;place-items:center;border-radius:50%;background:var(--powder)}.contact-band{position:relative;min-height:24rem;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:3rem;overflow:hidden;padding:clamp(4rem,7vw,7rem) clamp(2rem,11vw,11rem);background:var(--lavender)}.contact-band h2{position:relative;z-index:1;font-size:clamp(3.7rem,7.5vw,7.8rem)}.contact-band p{position:relative;z-index:1;margin:1.5rem 0 0;font-size:1rem}.contact-note{position:relative;z-index:1;max-width:27rem;justify-self:end;padding:1.25rem 1.5rem;border:1px solid rgba(10,16,32,.55);border-radius:4rem;background:var(--ink);color:#fff}.contact-note span,.contact-note strong{display:block}.contact-note span{margin-bottom:.25rem;color:#ffffffa6;font-size:.78rem}.contact-note strong{font-size:1rem}.contact-shape{position:absolute;width:12rem;height:12rem;border-radius:50%}.contact-shape--yellow{bottom:-7rem;left:-3rem;background:var(--butter)}.contact-shape--blue{top:-7rem;right:-3rem;background:var(--powder)}.site-footer{min-height:5rem;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--page-gutter);background:#fffdf9}.site-footer p{margin:0;font-size:.82rem}.circle-link--small{width:2.25rem;height:2.25rem}@keyframes float{0%,to{margin-top:0}50%{margin-top:-.55rem}}@keyframes orbit-drift{0%{translate:-.35rem 0}to{translate:.35rem -.4rem}}@media(max-width:1100px){.hero{grid-template-columns:minmax(19rem,.78fr) minmax(31rem,1.22fr)}.skill-token--react{width:11rem;height:11rem}.skill-token--next{width:10.75rem;height:10.75rem}.skill-token--nest{width:10.5rem;height:10.5rem}.skill-mark{width:3.2rem;height:3.2rem}.skill-mark--next,.skill-mark--nest{font-size:3.8rem}.experience{grid-template-columns:1fr}.experience-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem}}@media(max-width:800px){.site-header{height:5.5rem;grid-template-columns:1fr auto}.site-header nav{display:none}.hero{min-height:auto;grid-template-columns:1fr;gap:3rem;padding-top:3.5rem}.hero h1{font-size:clamp(4.6rem,19vw,8rem)}.skill-stage{width:min(100%,38rem);margin-inline:auto}.about-band,.contact-band{grid-template-columns:1fr}.about-band{margin-inline:.5rem}.about-band>p{align-self:start}.experience-heading{display:block}.timeline{min-height:39rem;margin-top:1.5rem;padding-left:2.5rem}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:.58rem;width:1.5px;background:var(--line)}.timeline-path{display:none}.timeline-item{position:relative;top:auto;right:auto;left:auto;width:auto;min-height:9.2rem;transform:none}.timeline-node{position:absolute;top:0;left:-2.5rem}.service-line{margin-top:0}.contact-note{justify-self:start}}@media(max-width:520px){.hero-actions{align-items:stretch;flex-direction:column}.text-button{width:100%}.skill-stage{width:calc(100% + 1rem);margin-left:-.5rem;aspect-ratio:.88 / 1}.skill-token--react{top:4%;left:39%;width:9.5rem;height:9.5rem}.skill-token--next{top:40%;left:4%;width:9.5rem;height:9.5rem}.skill-token--nest{right:1%;bottom:7%;width:9.25rem;height:9.25rem}.skill-token>span:last-child{font-size:1.15rem}.skill-mark{width:2.6rem;height:2.6rem}.skill-mark--next,.skill-mark--nest{font-size:3.2rem}.skill-detail{right:auto;bottom:-1rem;left:0;width:14rem}.service-line{gap:.75rem;text-align:center;font-size:.83rem}.contact-band{min-height:31rem;padding-inline:1.4rem}}
