:root{
  --bg:#000;           /* background */
  --fg:#fff;           /* main text */
  --muted:#cfcfcf;     /* secondary text */
  --border:#232323;    /* borders */
  --panel:#0b0b0b;     /* cards/panels */
  --accent:#ffffff;    /* buttons */
  --maxw:980px;        /* content width */
  --dock-h:56px;       /* nav height */
}

*{box-sizing:border-box}
html,body{height:100%}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.65;
  -webkit-text-size-adjust:100%;
}
/* ===== One-time fade reveal (appears only on first load) ===== */
html.preload body {
  opacity: 0;
}
body {
  transition: opacity .6s ease;
}

/* ===== Status line colors for contact form ===== */
#form-status {
  margin-top: 8px;
  min-height: 1.2em;
}
#form-status.is-ok {
  color: #a6f3a6; /* success green */
}
#form-status.is-err {
  color: #ffb3b3; /* error red */
}/* ----- Layout ----- */
main{scroll-snap-type:y mandatory}
section.snap{
  min-height:100svh;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  scroll-snap-align:start;
  scroll-snap-stop:always;
  padding:calc(var(--dock-h) + 22px) 16px 28px;
}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto}
.home{display:flex;flex-direction:column;align-items:center;text-align:center}

/* Titles */
h1.title{font-size:clamp(30px,5.2vw,52px);margin:10px 0 4px}
h2{font-size:clamp(20px,3.6vw,26px);color:#e9e9e9;text-align:center;margin:0 0 18px}
.sub{font-size:clamp(16px,2.8vw,18px);color:#e0e0e0;margin:2px 0 10px}
.tag{font-weight:600;color:#f2f2f2;opacity:.92;letter-spacing:.02em;margin:0 0 16px}

/* Text blocks */
.about{max-width:860px;margin:0 auto}
.about p{margin:.6em 0}
.lead{max-width:860px;margin:0 auto 12px;color:#e6e6e6;text-align:center}
.bullets{max-width:640px;margin:12px auto 0;padding-left:18px}
.bullets li{margin:6px 0}

/* Quote */
.quote{
  margin:18px auto 0;max-width:860px;
  padding:16px 18px;border:1px solid var(--border);
  border-radius:12px;background:#0a0a0a;color:#ededed;font-size:clamp(15px,2.6vw,17px)
}
.quote cite{display:block;color:#bdbdbd;margin-top:10px;font-style:normal;font-size:.95em}

/* Avatar */
.avatar-wrap{
  width:100%;max-width:220px;margin:0 auto 8px;
  display:flex;justify-content:center;align-items:center;
}
.avatar{width:100%;height:auto;border-radius:12px;box-shadow:0 18px 60px rgba(0,0,0,.55)}

/* Cards / grid */
.grid{display:grid;grid-template-columns:1fr;gap:12px;max-width:900px;margin:0 auto}
.card{
  border:1px solid var(--border);border-radius:12px;background:var(--panel);
  padding:18px 18px 16px
}
.card h3{margin:0 0 6px;font-size:18px}

/* Contact form */
form{max-width:760px;margin:14px auto 0;display:grid;gap:12px}
.two{display:grid;grid-template-columns:1fr;gap:12px}
label{font-size:14px;color:#dcdcdc;display:grid;gap:8px}
input,select,textarea{
  width:100%;padding:12px 12px;border-radius:10px;border:1px solid var(--border);
  background:#0a0a0a;color:#fff;font-size:16px
}
textarea{min-height:140px}
.small{font-size:12px;color:#9a9a9a}
.hint{margin-top:4px}
.hp{display:none}
.btn{
  border:1px solid var(--accent);background:var(--accent);color:#000;
  padding:12px 16px;border-radius:8px;font-weight:700;font-size:15px
}

/* Dock */
.dock{
  position:fixed;top:10px;left:50%;transform:translateX(-50%);
  z-index:50;display:flex;gap:10px;padding:8px 10px;background:rgba(0,0,0,.55);
  border:1px solid var(--border);border-radius:12px;
  backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px);
  height:var(--dock-h);align-items:center
}
.dock button{
  appearance:none;border:1px solid var(--border);background:#101010;color:#fff;
  padding:8px 12px;border-radius:10px;font-size:14px;font-weight:600;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease;
  opacity:.92
}
.dock button:hover,.dock button:focus{border-color:#6a6a6a;outline:none}
.dock button.active{transform:translateY(-1px) scale(1.06);box-shadow:0 10px 28px rgba(255,255,255,.09);border-color:#9a9a9a;opacity:1}

/* Responsive */
@media (min-width: 720px){
  .grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 520px){
  .avatar-wrap{max-width:140px}
  .dock{gap:6px;padding:6px 8px;height:52px}
  .dock button{font-size:13px;padding:7px 10px}
}
