.hero{padding:clamp(28px,5vw,56px) 0 clamp(72px,10vw,128px)}.hero-grid{display:grid;gap:40px}@media(min-width:1000px){.hero-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:stretch}}.hero-copy{display:flex;flex-direction:column;justify-content:center}h1{font-family:var(--display);font-optical-sizing:auto;font-weight:600;font-size:clamp(2.3rem,4vw,3.7rem);line-height:1;letter-spacing:-.04em;margin:0;text-wrap:balance}.bio{margin:22px 0 0;max-width:40ch;color:var(--ink-2);font-size:clamp(16.5px,1.5vw,18.5px);line-height:1.55;text-wrap:pretty}.bio b{color:var(--ink);font-weight:500}.keys{display:flex;flex-wrap:wrap;gap:14px 18px;margin-top:30px}.key{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink-3);transition:color .2s,transform .3s var(--spring)}.key:hover{color:var(--ink)}.key:active{transform:scale(.96)}.key kbd{min-width:18px;height:18px;font-size:10.5px}.key.pri{color:var(--ink-2)}.key.pri:hover{color:var(--ink)}.key.pri kbd{background:var(--accent-grad);border-color:transparent;box-shadow:none;color:var(--accent-ink)}.field{--field-bg:light-dark(#ECEAFF,#0E0D1C);--field-dot:light-dark(rgba(60,50,160,.12),rgba(255,255,255,.05));--mesh:radial-gradient(50% 55% at 15% 15%,light-dark(#D6CEFF,#2A2170) 0%,transparent 70%),radial-gradient(55% 60% at 90% 25%,light-dark(#CFE0FF,#172A63) 0%,transparent 70%),radial-gradient(60% 60% at 60% 95%,light-dark(#E4DDFF,#231A55) 0%,transparent 72%);--db-canvas:light-dark(rgba(255,255,255,.45),rgba(0,0,0,.3));--db-dot:light-dark(rgba(60,50,160,.16),rgba(255,255,255,.08));--db-line:light-dark(rgba(40,30,120,.55),rgba(255,255,255,.85));--db-tag-bg:light-dark(rgba(255,255,255,.7),rgba(255,255,255,.1));--db-tag-ink:light-dark(#2E2A6B,#fff);--db-tag-ring:light-dark(rgba(60,50,160,.18),rgba(255,255,255,.2))}.field{position:relative;border-radius:28px;background:var(--field-bg);display:flex;flex-direction:column;padding:6px;overflow:hidden;isolation:isolate}.field:before{content:"";position:absolute;inset:-25%;z-index:-1;background:var(--mesh);animation:mesh 22s ease-in-out infinite alternate}@keyframes mesh{0%{transform:translate(0) rotate(0) scale(1)}50%{transform:translate(-4%,3%) rotate(8deg) scale(1.05)}to{transform:translate(3%,-3%) rotate(-6deg) scale(1)}}.field:after{content:"";position:absolute;inset:0;z-index:-1;opacity:.25;background-image:radial-gradient(var(--field-dot) 1px,transparent 1.3px);background-size:22px 22px;mask-image:linear-gradient(90deg,#000,transparent 60%);-webkit-mask-image:linear-gradient(90deg,#000,transparent 60%)}.filters button{font-size:13.5px;padding:5px 11px;border-radius:99px;color:var(--ink-2);transition:background .2s,color .2s}.filters button:hover{color:var(--ink)}.filters button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.idx{list-style:none;margin:0;padding:0}.row{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:18px 0;border-bottom:1px solid var(--line);position:relative;cursor:pointer;transition:opacity .35s var(--out)}.row .row-link{position:absolute;inset:0;z-index:1;border-radius:6px}.row .row-link:focus-visible{outline:none}.row:has(.row-link:focus-visible) .nm{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:6px}.row .yr{grid-column:1;color:var(--ink-3)}.row .nm{grid-column:1;font-family:var(--display);font-weight:600;font-size:clamp(1.7rem,3.4vw,2.8rem);line-height:1;letter-spacing:-.045em;display:flex;align-items:center;flex-wrap:wrap;gap:.28em;transition:transform .5s var(--out),color .3s}.row .nm .tag{font:500 11px/1 var(--mono);letter-spacing:0;padding:5px 8px;border-radius:99px;background:var(--tag-bg);color:var(--accent-ink)}.row .nm .lock{display:inline-flex;align-self:center;color:var(--ink-3)}.row .call{grid-column:1/-1;color:var(--ink-2);margin:6px 0 0;max-width:46ch;text-wrap:pretty;font-size:15.5px}.row .meta{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}.row .st{display:flex;align-items:center;gap:7px;font-size:13.5px}.row .kd{color:var(--ink-3)}.row .go{position:absolute;right:0;top:50%;transform:translate(-8px,-50%);opacity:0;transition:all .35s var(--out);font-size:22px;display:none}.row.hidden,.log li.hidden,.thumb{display:none}@media(min-width:880px){.row{grid-template-columns:72px minmax(0,1.15fr) minmax(0,1fr) 150px;align-items:center;padding:22px 0;gap:24px}.row .yr{grid-column:1}.row .nm{grid-column:2}.row .call{grid-column:3;margin:0;font-size:15px}.row .meta{grid-column:4;grid-row:auto;transition:opacity .3s,transform .35s var(--out)}.row .go{display:block}.idx:hover .row:not(:hover){opacity:.28}.row:hover .nm{transform:translate(10px)}.row:hover .meta{opacity:0;transform:translate(-8px)}.row:hover .go{opacity:1;transform:translateY(-50%)}}@media(max-width:879px){.thumb{display:block;grid-column:1/-1;margin-top:12px;border-radius:12px;overflow:hidden;border:1px solid var(--line);aspect-ratio:1200/630}.thumb img{width:100%;height:100%;object-fit:cover}}.peek{position:fixed;left:0;top:0;width:360px;aspect-ratio:4/3;border-radius:14px;overflow:hidden;pointer-events:none;z-index:70;opacity:0;box-shadow:var(--shadow);transition:opacity .25s,scale .3s var(--out);scale:.92;will-change:transform;background:var(--bg-2)}.peek.on{opacity:1;scale:1}.peek img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .25s}.peek img.on{opacity:1}@media(hover:none),(max-width:879px){.peek{display:none}}.log{list-style:none;margin:0;padding:0}.log li{border-bottom:1px solid var(--line)}.log a,.log div.e{display:grid;grid-template-columns:86px 1fr auto;gap:16px;align-items:baseline;padding:13px 0;transition:padding .35s var(--out)}.log a{position:relative}.log a:before{content:"";position:absolute;left:1px;top:26px;width:9px;height:9px;border-radius:2.5px;background:var(--accent-grad);transform:translateY(-50%) rotate(45deg) scale(0);transition:transform .5s var(--spring)}.log a:hover,.log a:focus-visible{padding-left:24px}.log a:hover:before,.log a:focus-visible:before{transform:translateY(-50%) rotate(45deg) scale(1)}.log a:hover .d,.log a:focus-visible .d{color:var(--ink)}.log a:focus-visible{outline:none}.log .d{color:var(--ink-3);transition:color .25s}.log .t{font-weight:500}.log .t small{display:block;font-weight:400;color:var(--ink-2);font-size:14px;margin-top:2px}.log .ty{color:var(--ink-3);text-align:right;text-transform:lowercase}.log li.minor .t{font-weight:400;color:var(--ink-2)}.log li.minor .t small{color:var(--ink-3)}.log li.minor .d,.log li.minor .ty{opacity:.75}@media(min-width:880px){.log a,.log div.e{grid-template-columns:120px 1fr 140px}.log .t small{display:inline;margin:0 0 0 10px}}.about{display:grid;gap:36px}@media(min-width:880px){.about{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px}}.portrait{border-radius:18px;overflow:hidden;aspect-ratio:4/4.6;background:var(--bg-2)}.portrait img{width:100%;height:100%;object-fit:cover;object-position:62% 40%;filter:grayscale(1) contrast(1.05)}.about .big{font-family:var(--display);font-weight:500;font-size:clamp(1.45rem,2.6vw,2.1rem);line-height:1.18;letter-spacing:-.03em;margin:0 0 36px;text-wrap:pretty}.about .big span{color:var(--ink-3)}.cv-mini{display:grid;gap:28px}@media(min-width:600px){.cv-mini{grid-template-columns:1fr 1fr}}.cv-mini h3{font:12px var(--mono);color:var(--ink-3);margin:0 0 10px}.cv-mini ul{list-style:none;margin:0;padding:0}.cv-mini li{padding:11px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:0 12px}.cv-mini li b{font-weight:500}.cv-mini li span{color:var(--ink-2);font-size:14px;grid-column:1}.cv-mini li i{font:normal 12px var(--mono);color:var(--ink-3);grid-column:2;grid-row:1}.sec{padding:0 0 clamp(80px,11vw,140px)}.verb-wrap{display:inline-grid;white-space:nowrap;vertical-align:baseline}.verb-wrap>*{grid-area:1/1}.verb-sizer{visibility:hidden}.verb{justify-self:start;color:var(--accent);background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.caret{display:inline-block;width:.07em;height:.8em;margin-left:.08em;background:var(--accent-grad);vertical-align:-.04em;border-radius:1px;animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.caret{animation:none}}.key .combo{display:inline-flex;gap:3px}@media(prefers-reduced-motion:reduce){.field:before{animation:none}}.field .db-host{flex:1;display:block;position:relative;min-height:620px}.field .db{position:absolute;inset:0;border-radius:22px}@media(max-width:999px){.field .db-host{min-height:500px}}
