:root {
  font-family: 'Geist', ui-sans-serif, system-ui, sans-serif;
  -webkit-font-smoothing: antialiased; color-scheme: dark;
  --bg:#06080b; --fg:#f2f5f9; --muted:#b3bac5;
  --line:rgba(255,255,255,.18); --ghost:rgba(255,255,255,.04);
  --g1:#f2f7ff; --g2:#a9d6f5; --g3:#5a8db8;
  --blob-a:.5; --blob-b:.4; --blob-c:.32; --halo:.45;
  --glow:rgba(169,214,245,.45);
}
:root[data-theme="light"] {
  color-scheme:light; --bg:#f3f6f9; --fg:#0b1118; --muted:#4a5361;
  --line:rgba(14,13,20,.16); --ghost:rgba(14,13,20,.03);
  --g1:#2c5a82; --g2:#3d6e96; --g3:#1e3f5e;
  --blob-a:.26; --blob-b:.2; --blob-c:.18; --halo:.3;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--fg); }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.site { position:relative; min-height:100svh; overflow:hidden; display:flex; flex-direction:column; background:var(--bg); color:var(--fg); transition:background-color .4s ease,color .4s ease; }
.ambient { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.blob { position:absolute; border-radius:50%; }
.blob-one { top:-220px; right:-160px; width:760px; height:760px; background:radial-gradient(circle,#5a8db8 0%,transparent 65%); opacity:var(--blob-a); filter:blur(30px); animation:drift1 18s ease-in-out infinite; }
.blob-two { top:180px; left:-260px; width:820px; height:820px; background:radial-gradient(circle,#2f5a80 0%,transparent 62%); opacity:var(--blob-b); filter:blur(40px); animation:drift2 22s ease-in-out infinite; }
.blob-three { bottom:-300px; right:10%; width:700px; height:700px; background:radial-gradient(circle,#a9d6f5 0%,transparent 62%); opacity:var(--blob-c); filter:blur(40px); animation:drift3 26s ease-in-out infinite; }
.masthead,footer { position:relative; width:100%; max-width:1200px; margin:0 auto; padding:24px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.brand { display:inline-flex; align-items:center; gap:12px; font-weight:600; font-size:16px; letter-spacing:-.01em; }
.monogram { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:10px; background:linear-gradient(135deg,#f2f7ff,#a9d6f5); color:#06111c; font-size:14px; font-weight:700; letter-spacing:.02em; }
.theme-toggle { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border-radius:50%; border:1px solid var(--line); background:var(--ghost); color:var(--fg); cursor:pointer; }
.moon { display:none; }
[data-theme="light"] .moon { display:block; }
[data-theme="light"] .sun { display:none; }
main { position:relative; flex:1 1 auto; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:36px; padding:40px 24px 96px; text-align:center; }
.portrait { position:relative; width:220px; height:220px; flex-shrink:0; margin:0; }
.portrait-halo { position:absolute; inset:-50px; border-radius:50%; background:radial-gradient(circle,#2f5a80 0%,transparent 65%); opacity:var(--halo); filter:blur(30px); }
.portrait-ring { position:absolute; inset:-4px; border-radius:50%; background:conic-gradient(from 0deg,var(--g1),var(--g2),var(--g3),var(--g1)); animation:spin 14s linear infinite; }
.portrait-frame { position:absolute; inset:0; border-radius:50%; padding:4px; background:var(--bg); }
.portrait img { display:block; width:100%; height:100%; border-radius:50%; object-fit:cover; object-position:50% 22%; }
h1 { margin:0; font-size:clamp(48px,8vw,104px); line-height:1; letter-spacing:-.05em; font-weight:600; }
h1 span { background:linear-gradient(100deg,var(--g1) 0%,var(--g2) 50%,var(--g3) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.description { margin:-12px 0 0; max-width:620px; font-size:clamp(18px,2vw,22px); line-height:1.5; font-weight:400; color:var(--muted); }
.contacts { display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.cta { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:0 24px; border-radius:999px; font-size:16px; }
.cta-primary { padding:0 26px; background:linear-gradient(100deg,#f2f7ff 0%,#a9d6f5 100%); color:#06111c; font-weight:600; box-shadow:0 12px 40px -14px var(--glow); transition:transform .2s ease,box-shadow .2s ease,filter .2s ease; }
.cta-primary:hover { transform:translateY(-2px); filter:brightness(1.06); box-shadow:0 18px 50px -12px var(--glow); }
.cta-ghost { border:1px solid var(--line); background:var(--ghost); font-weight:500; }
.cta-ghost,.theme-toggle { transition:background .2s ease,border-color .2s ease; }
.cta-ghost:hover,.theme-toggle:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.32); }
[data-theme="light"] .cta-ghost:hover,[data-theme="light"] .theme-toggle:hover { background:rgba(14,13,20,.06); border-color:rgba(14,13,20,.3); }
a:focus-visible,button:focus-visible { outline:2px solid var(--g2); outline-offset:3px; }
footer { padding-bottom:32px; flex-wrap:wrap; gap:12px; font-size:14px; color:var(--muted); }
footer a { transition:opacity .2s ease; }
footer a:hover { opacity:.7; }
@keyframes drift1 { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(60px,40px) scale(1.12); } }
@keyframes drift2 { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(-70px,30px) scale(1.08); } }
@keyframes drift3 { 0%,100% { transform:translate(0,0); } 50% { transform:translate(40px,-50px); } }
@keyframes spin { to { transform:rotate(360deg); } }
@media (max-width:480px) {
  main { padding-top:32px; padding-bottom:56px; gap:30px; }
  .portrait { width:190px; height:190px; }
  .description { max-width:330px; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none !important; transition:none !important; }
}
