:root{
  --bg:#FFFFFF;
  --bg-2:#F4F5F7;
  --ink:#121417;
  --ink-2:#4A505B;
  --ink-3:#80868F;
  --line:#E3E5E9;
  --blue:#2B50E6;
  --blue-ink:#FFFFFF;
  --blue-soft:#E8EDFF;
  --red:#E03A3E;
  --good:#127A4B;
  --good-soft:#E3F4EB;
  --bad:#B42318;
  --bad-soft:#FDECEA;
  --warn:#8A5A00;
  --warn-soft:#FBEBC2;
  --sans:"Geist", "Segoe UI", system-ui, -apple-system, sans-serif;
  --mono:"Geist Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0E1013; --bg-2:#171A1F; --ink:#ECEEF1; --ink-2:#B5BAC3; --ink-3:#7F8590; --line:#272B32;
    --blue:#7B93FF; --blue-ink:#0B0F1E; --blue-soft:#1A2140; --red:#FF6B6E;
    --good:#5CD39A; --good-soft:#12291D; --bad:#FF8A80; --bad-soft:#2E1513; --warn:#E2B64F; --warn-soft:#2E2610;
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--blue)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:6px}
[hidden]{display:none!important}
.wrap{max-width:760px;margin-inline:auto;padding-inline:20px}
h1,h2,h3{margin:0;line-height:1.15;letter-spacing:-.02em;text-wrap:balance}
p{margin:0}

/* top bar */
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:18px}
.logo{font:600 18px/1 var(--mono);color:var(--ink);text-decoration:none;letter-spacing:-.02em}
.logo .dot{color:var(--red)}
.bar nav{display:flex;gap:18px;font-size:15px}
.bar nav a{color:var(--ink-2);text-decoration:none}
.bar nav a:hover{color:var(--ink)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 16px/1 var(--sans);padding:15px 22px;border-radius:12px;border:1.5px solid transparent;cursor:pointer;text-decoration:none;transition:transform .12s ease, background .12s ease}
.btn:hover{transform:translateY(-1px)}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn-blue{background:var(--blue);color:var(--blue-ink)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-line:hover{border-color:var(--ink-3)}
.btn-sm{padding:10px 14px;font-size:14px;border-radius:10px}
.btn-danger{background:transparent;color:var(--bad);border-color:var(--bad-soft)}
.btn-block{width:100%}

/* forms */
label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.hint{font-size:13px;color:var(--ink-3);margin-top:6px}
input[type=text],input[type=email],input[type=url],input[type=search],textarea{
  width:100%;font:400 16px/1.4 var(--sans);color:var(--ink);background:var(--bg);
  border:1.5px solid var(--line);border-radius:12px;padding:13px 14px}
input:focus,textarea:focus{outline:none;border-color:var(--blue)}
textarea{min-height:140px;resize:vertical}
.field{margin-bottom:18px}
.url-input{display:flex;align-items:stretch;border:1.5px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg)}
.url-input:focus-within{border-color:var(--blue)}
.url-input span{font:500 18px/1 var(--mono);color:var(--ink-3);padding:18px 0 18px 16px;white-space:nowrap}
.url-input input{border:0;border-radius:0;font:500 18px/1 var(--mono);padding:18px 16px 18px 2px;min-width:0}
.status{margin-top:12px;font-size:15px;min-height:24px;display:flex;align-items:center;gap:8px}
.status.good{color:var(--good)}
.status.bad{color:var(--bad)}
.status::before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor;flex:0 0 auto}
.status:empty::before{display:none}

.card{border:1.5px solid var(--line);border-radius:18px;padding:24px;background:var(--bg)}
.stack{display:flex;flex-direction:column;gap:12px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.divider{display:flex;align-items:center;gap:12px;color:var(--ink-3);font-size:13px;margin-block:6px}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.msg{font-size:14px;padding:10px 12px;border-radius:10px}
.msg.bad{background:var(--bad-soft);color:var(--bad)}
.msg.good{background:var(--good-soft);color:var(--good)}
.page-title{font-size:clamp(1.8rem,5vw,2.4rem);margin-block:28px 8px}
.lede{color:var(--ink-2);margin-bottom:28px}

/* avatar */
.avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;background:var(--bg-2);display:grid;place-items:center;font:600 40px/1 var(--sans);color:var(--ink-3);overflow:hidden;flex:0 0 auto}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.sm{width:52px;height:52px;font-size:20px}

/* toast */
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 18px;border-radius:12px;font-size:15px;z-index:50;box-shadow:0 10px 30px rgba(0,0,0,.2)}

/* popup */
.pop-back{position:fixed;inset:0;z-index:60;background:rgba(10,12,16,.55);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;animation:fade .15s ease}
.pop{position:relative;overflow:hidden;width:min(100%,360px);background:var(--bg);border:1.5px solid var(--line);border-radius:20px;padding:28px 24px 24px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.3);animation:rise .2s ease}
.pop h2{font-size:1.3rem;margin-top:14px}
.pop p{color:var(--ink-2);font-size:15px;margin-top:6px}
.pop .btn{margin-top:20px}
.pop-icon{width:56px;height:56px;border-radius:50%;margin-inline:auto;display:grid;place-items:center;font:700 28px/1 var(--sans)}
.pop.good .pop-icon{background:var(--good-soft);color:var(--good)}
.pop.bad .pop-icon{background:var(--bad-soft);color:var(--bad)}
.pop-bar{position:absolute;left:0;bottom:0;height:4px;width:100%;background:var(--good);transform-origin:left;animation:drain linear forwards}
@keyframes drain{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes fade{from{opacity:0}}
@keyframes rise{from{opacity:0;transform:translateY(8px) scale(.98)}}

footer.foot{color:var(--ink-3);font-size:13px;padding-block:48px 36px;display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:space-between}
footer.foot a{color:var(--ink-2)}
footer.foot{align-items:center}
.foot-link{background:none;border:0;padding:0;font:600 14px/1.4 var(--sans);color:var(--ink-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.foot-link:hover{color:var(--ink)}
.pop.story{text-align:left}
.pop.story h2{margin-top:0}
.pop.story p{font-size:16px;color:var(--ink-2);margin-top:10px}
.pop.story .story-contact{font-size:15px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
