/* Home composition based on the supplied reference image. */
:root{--bg:#fafafa;--ink:#202124;--muted:#76777a;--line:#dedfe1;--paper:#fff;--accent:#202124}
body.dark{--bg:#191a1b;--ink:#f2f2f0;--muted:#a8a9aa;--line:#3d4041;--paper:#242526;--accent:#f2f2f0}
.topbar{height:84px;border:0;padding:0 24px;position:relative;background:var(--bg)}
.brand{display:grid;place-items:center;width:22px;height:22px}
.brand-dot-only{display:block;width:8px;height:8px;border-radius:50%;background:var(--ink)}
.top-actions{position:absolute;left:50%;top:23px;transform:translateX(-50%);height:45px;border:1px solid var(--line);border-radius:28px;padding:0 8px;gap:0;background:var(--paper)}
.top-button{height:26px;padding:0 12px;font-size:14px;font-weight:400;gap:0;white-space:nowrap}
.top-button+ .top-button{border-left:1px solid var(--line)}
.top-button .theme-symbol{font-size:19px;line-height:1}
#sound-icon{font-size:13px}
.top-button span:not(.theme-symbol):not(#sound-icon),.about-toggle span{display:none}
.about-toggle{margin:0;font-size:14px}
main{min-height:calc(100svh - 84px)}
.home-screen{min-height:calc(100svh - 84px);display:flex;align-items:center;justify-content:center;padding:0 24px 154px;max-width:none}
.home-center{text-align:center;width:100%;max-width:1100px}
.hero-portrait{width:150px;height:150px;border-radius:50%;margin:0 auto 20px;background:#eeeeed;display:grid;place-items:center;overflow:hidden;color:#a6aaa8;font-size:36px;font-weight:400;letter-spacing:-.09em}
.hero-portrait img{display:block;width:100%;height:100%;object-fit:cover}
.hero-portrait:has(img) span{display:none}
.hero-name{font-size:21px;line-height:1.3;font-weight:400;letter-spacing:-.025em;margin-bottom:56px}
.home-center h1{font-size:clamp(48px,6.4vw,75px);line-height:1.04;font-weight:400;letter-spacing:-.055em;margin:0 auto;color:var(--ink);max-width:1050px}
.title-symbol{display:inline-flex;vertical-align:middle;width:.74em;height:.74em;transform:translateY(-.07em)}
.title-symbol svg{width:100%;height:100%}
.title-symbol{border:0;background:transparent;color:inherit;padding:0;margin:0 .015em;cursor:pointer;position:relative;z-index:7;transition:transform .25s ease}
.title-symbol:hover,.title-symbol[aria-expanded="true"]{transform:translateY(-.07em) scale(1.09)}
.title-symbol:focus-visible{outline:2px solid currentColor;outline-offset:5px;border-radius:5px}
.service-burst{position:fixed;inset:0;z-index:6;pointer-events:none}
.burst-pill{position:absolute;left:50%;top:52%;display:inline-flex;align-items:center;gap:10px;border:1px solid transparent;border-radius:28px;padding:10px 17px;font-size:14px;white-space:nowrap;letter-spacing:-.02em;box-shadow:0 12px 28px #262a3020;opacity:0;filter:blur(5px);transform:translate(-50%,-50%) rotate(0) scale(.25);transition:transform .72s cubic-bezier(.18,1.2,.28,1),opacity .35s ease,filter .4s ease;transition-delay:var(--delay,0ms)}
.burst-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.7}
.service-burst.is-visible .burst-pill{opacity:1;filter:blur(0);transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(1)}
.burst-pill.blush{background:#ffe8f0;border-color:#f6c4d4;color:#954461}
.burst-pill.lavender{background:#eff0ff;border-color:#d8dafa;color:#5c64a2}
.burst-pill.sky{background:#e8f9ff;border-color:#c2eaf6;color:#3e8297}
.burst-pill.lime{background:#effce8;border-color:#d2eec9;color:#59845b}
.burst-pill.sand{background:#fff3df;border-color:#f4dfbe;color:#937348}
.burst-pill.violet{background:#f2eaff;border-color:#ded0f2;color:#75639b}
.burst-pill:nth-child(1){--x:-33vw;--y:-12vh;--r:-15deg;--delay:0ms}
.burst-pill:nth-child(2){--x:-26vw;--y:2vh;--r:-11deg;--delay:45ms}
.burst-pill:nth-child(3){--x:-31vw;--y:20vh;--r:-15deg;--delay:90ms}
.burst-pill:nth-child(4){--x:-10vw;--y:-19vh;--r:-9deg;--delay:130ms}
.burst-pill:nth-child(5){--x:-3vw;--y:-13vh;--r:-5deg;--delay:170ms}
.burst-pill:nth-child(6){--x:7vw;--y:-14vh;--r:7deg;--delay:210ms}
.burst-pill:nth-child(7){--x:14vw;--y:-21vh;--r:9deg;--delay:250ms}
.burst-pill:nth-child(8){--x:31vw;--y:-12vh;--r:13deg;--delay:290ms}
.burst-pill:nth-child(9){--x:26vw;--y:3vh;--r:12deg;--delay:330ms}
.burst-pill:nth-child(10){--x:31vw;--y:20vh;--r:14deg;--delay:370ms}
.burst-pill:nth-child(11){--x:-10vw;--y:24vh;--r:-7deg;--delay:410ms}
.burst-pill:nth-child(12){--x:10vw;--y:24vh;--r:7deg;--delay:450ms}
.dock{bottom:51px}
.dock-inner{display:flex;gap:8px;background:var(--paper);padding:12px;border:1px solid var(--line);border-radius:27px;box-shadow:0 11px 28px #00000012,0 22px 45px #0000000c;overflow:visible}
.dark .dock-inner{background:var(--paper)}
.dock-item{padding:0;min-width:67px;position:relative}
.dock-icon{width:67px;height:67px;border:0;border-radius:14px;box-shadow:none;background:var(--bg);color:var(--ink);display:grid;place-items:center;transition:transform .16s ease}
.dock-icon svg{width:39px;height:39px}
.dock-item:hover .dock-icon,.dock-item.active .dock-icon{transform:translateY(-4px);border:0}
.dock-label{position:absolute;bottom:calc(100% + 13px);padding:6px 9px;background:var(--ink);color:var(--bg);border-radius:6px;font-size:10px;opacity:0;pointer-events:none;transform:translateY(5px);transition:opacity .15s,transform .15s}
.dock-item:hover .dock-label,.dock-item:focus-visible .dock-label{opacity:1;transform:translateY(0)}
.dock-divider{height:48px;width:1px;background:#bfc0c2;margin:0 3px}
.dock .dock-item .cv-icon{background:#ffd43f!important;color:#171717!important}
.dock .dock-item .home-icon{background:#149a71!important;color:#fff!important}
.dock .dock-item .work-icon{background:#111!important;color:#fff!important}
.dock .dock-item .exp-icon{background:#ff4e39!important;color:#fff!important}
.dock .dock-item .about-icon{background:#bdeafa!important;color:#1c4263!important}
.dock .dock-item .contact-icon{background:#34383a!important;color:#ffd74c!important}
.dock .dock-item .github-icon{background:#e8e9ed!important;color:#171717!important;font-size:19px;font-weight:900;letter-spacing:-.09em}
.dock .dock-item .linkedin-icon{background:#0875b5!important;color:#fff!important;font-size:31px;font-weight:800;letter-spacing:-.07em}
.dock .dock-item .social-icon{background:#2299d4!important;color:#fff!important}
.dock .dock-item .mail-icon{background:#177ded!important;color:#fff!important}
.dark .dock-icon{border:0}
.cv-panel,.share-dialog{color:var(--ink)}
@media(max-width:900px){
  .dock{bottom:22px;width:max-content;max-width:calc(100vw - 18px)}
  .dock-inner{overflow-x:auto;gap:6px;padding:8px;border-radius:20px}
  .dock-item{min-width:54px}
  .dock-icon{width:54px;height:54px;border-radius:12px}
  .dock-icon svg{width:32px;height:32px}
  .dock-label{display:none}
  .home-screen{padding-bottom:125px}
  .home-center h1{font-size:clamp(42px,7vw,64px)}
}
@media(max-width:700px){
  .service-burst{position:static;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:27px auto 0;max-width:550px}
  .burst-pill{position:static;font-size:11px;padding:7px 10px;box-shadow:0 5px 12px #262a3012;transform:translateY(15px) scale(.8);transition-duration:.45s}
  .burst-pill:before{width:5px;height:5px}
  .service-burst.is-visible .burst-pill{transform:translateY(0) rotate(0) scale(1)}
}
@media(max-width:600px){
  .topbar{height:70px}
  .top-actions{top:13px}
  .home-screen{min-height:calc(100svh - 70px);padding:0 18px 110px}
  .home-center{transform:none}
  .hero-portrait{width:122px;height:122px;margin-bottom:17px}
  .hero-name{font-size:17px;margin-bottom:43px}
  .home-center h1{font-size:clamp(37px,8.7vw,56px);line-height:1.1}
  .dock{bottom:12px}
  .dock-icon{width:47px;height:47px}
  .dock-icon svg{width:29px;height:29px}
  .dock-item{min-width:47px}
}
@media(prefers-reduced-motion:reduce){.burst-pill,.title-symbol{transition:none!important}}
