  :root{
    --bg:#050607;
    --panel:#0b0d0e;
    --line:rgba(57,255,20,0.16);
    --green:#39ff6a;
    --green-dim:#1f8f42;
    --text:#e6f2e8;
    --muted:#8fa596;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html,body{background:var(--bg);color:var(--text);overflow-x:hidden;}
  body{
    font-family:'Courier New',ui-monospace,SFMono-Regular,Menlo,monospace;
    line-height:1.6;
    min-height:100vh;
  }
  a{color:inherit;text-decoration:none;}

  /* ---------- entrance ---------- */
  #entrance{
    position:fixed;inset:0;z-index:100;
    background:#000;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    cursor:pointer;
    transition:opacity 1.1s ease, visibility 1.1s;
  }
  #entrance.hidden{opacity:0;visibility:hidden;pointer-events:none;}
  #entrance .glow{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    width:min(900px,110vw);height:340px;
    background:radial-gradient(ellipse at center, rgba(57,255,20,0.16), transparent 70%);
    pointer-events:none;
  }
  #entrance img{
    width:min(680px,86vw);
    mix-blend-mode:screen;
    position:relative;
    animation:blink 6s infinite;
  }
  @keyframes blink{
    0%,92%,100%{opacity:1;}
    94%{opacity:0.05;}
    96%{opacity:1;}
  }
  #entrance .prompt{
    margin-top:clamp(1.4rem,4vw,2.2rem);
    letter-spacing:0.35em;
    font-size:clamp(0.62rem,1.8vw,0.75rem);
    color:var(--green-dim);
    animation:pulse 2.4s ease-in-out infinite;
    text-transform:uppercase;
  }
  @keyframes pulse{0%,100%{opacity:0.35;}50%{opacity:1;}}
  #entrance .watermark{
    position:absolute;bottom:clamp(0.8rem,3vw,1.2rem);right:clamp(0.9rem,3.5vw,1.4rem);
    font-size:0.65rem;color:#2a2a2a;letter-spacing:0.08em;
  }

  /* ---------- shell ---------- */
  header{
    position:sticky;top:0;z-index:10;
    background:linear-gradient(180deg, rgba(5,6,7,0.96), rgba(5,6,7,0.75));
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
    padding:clamp(0.75rem,2.2vw,1rem) clamp(1rem,4vw,1.5rem);
    display:flex;align-items:center;justify-content:space-between;
  }
  header .brand{font-size:clamp(0.8rem,2.2vw,0.95rem);letter-spacing:0.2em;color:var(--green);}
  header nav{display:flex;gap:clamp(1rem,3vw,1.5rem);font-size:clamp(0.7rem,1.8vw,0.8rem);color:var(--muted);}
  header nav a:hover{color:var(--green);}

  main{max-width:880px;margin:0 auto;padding:0 clamp(1rem,4vw,1.5rem);}

  section{padding:clamp(2rem,5vw,3.2rem) 0;border-bottom:1px solid var(--line);}
  section:last-of-type{border-bottom:none;}

  .hero{text-align:center;padding-top:clamp(2.2rem,5vw,3.6rem);}
  .hero h1{
    font-size:clamp(1.7rem,4.4vw,2.9rem);
    letter-spacing:0.06em;
    color:var(--green);
    margin-bottom:0.9rem;
  }
  .hero p.tagline{
    color:var(--muted);
    font-size:clamp(0.85rem,2.4vw,1rem);
    max-width:min(560px,88vw);
    margin:0 auto 1.6rem;
  }
  .hero .fee{
    display:inline-block;
    font-size:clamp(0.75rem,2vw,0.85rem);
    line-height:1;
    color:var(--text);
    border:1px solid var(--line);
    padding:clamp(0.4rem,1.5vw,0.5rem) clamp(0.8rem,3vw,1.1rem);
    border-radius:2px;
    margin-bottom:1.6rem;
    letter-spacing:0.05em;
  }
  .hero .fee b{color:var(--green);}
  .btn-row{display:flex;gap:clamp(0.6rem,2vw,1rem);justify-content:center;flex-wrap:wrap;}
  .btn{
    padding:clamp(0.55rem,2vw,0.7rem) clamp(1.1rem,4vw,1.6rem);
    font-size:clamp(0.72rem,1.8vw,0.8rem);
    line-height:1;
    letter-spacing:0.12em;
    text-transform:uppercase;
    border:1px solid var(--green-dim);
    background:transparent;
    color:var(--green);
    cursor:pointer;
    transition:background 0.2s,color 0.2s;
  }
  .btn:hover{background:rgba(57,255,20,0.08);}
  .btn.disabled{
    color:#4a4a4a;border-color:#2a2a2a;cursor:not-allowed;
  }
  .btn.disabled:hover{background:none;}

  h2.section-title{
    font-size:clamp(0.72rem,1.8vw,0.8rem);letter-spacing:0.3em;text-transform:uppercase;
    color:var(--green-dim);margin-bottom:clamp(1.4rem,4vw,2rem);text-align:center;
  }

  .steps{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));
    gap:clamp(0.8rem,2.5vw,1.4rem);
  }
  .step{border:1px solid var(--line);padding:clamp(1rem,3vw,1.3rem) clamp(0.9rem,2.5vw,1.2rem);text-align:center;}
  .step .num{color:var(--green);font-size:clamp(1.3rem,4vw,1.6rem);line-height:1;margin-bottom:0.4rem;}
  .step p{color:var(--muted);font-size:clamp(0.8rem,2vw,0.85rem);line-height:1.35;}

  .faq dl{max-width:640px;margin:0 auto;}
  .faq dt{color:var(--green);font-size:clamp(0.85rem,2vw,0.9rem);line-height:1.2;margin-bottom:0.35rem;}
  .faq dd{color:var(--muted);font-size:clamp(0.8rem,2vw,0.85rem);line-height:1.4;margin:0 0 1.3rem;}
  /* Base rule: this was only ever defined under .faq, so the same element on
     the 404 page inherited nothing -- full-size body text sitting flush
     against the buttons above it. */
  .aside{
    text-align:center;font-size:0.7rem;color:#3a3a3a;margin-top:1.1rem;
  }
  .faq .aside{margin-top:0.8rem;}

  /* ---------- adoption list ---------- */
  .list-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));
    gap:clamp(1rem,3vw,1.6rem);
    align-items:start;
  }
  .card{border:1px solid var(--line);padding:clamp(1.1rem,3vw,1.5rem);}
  .card h3{
    font-size:clamp(0.78rem,2vw,0.85rem);letter-spacing:0.16em;text-transform:uppercase;
    color:var(--green);line-height:1;margin-bottom:0.5rem;font-weight:normal;
  }
  .card p.card-sub{color:var(--muted);font-size:clamp(0.75rem,1.9vw,0.8rem);line-height:1.45;margin-bottom:1.1rem;}
  .field{margin-bottom:0.75rem;}
  .field label{
    display:block;font-size:0.62rem;letter-spacing:0.14em;text-transform:uppercase;
    color:var(--muted);margin-bottom:0.35rem;
  }
  .field input,.field textarea{
    width:100%;
    background:var(--panel);
    border:1px solid var(--line);
    color:var(--text);
    font-family:inherit;
    font-size:clamp(0.78rem,2vw,0.83rem);
    padding:0.6rem 0.7rem;
    border-radius:2px;
    line-height:1.4;
  }
  .field input:focus,.field textarea:focus{
    outline:none;border-color:var(--green-dim);background:#0d1011;
  }
  .field input::placeholder,.field textarea::placeholder{color:#3f4a44;}
  .field textarea{resize:vertical;min-height:4.4rem;}
  .card .btn{width:100%;margin-top:0.35rem;}
  .card .btn[aria-busy="true"]{color:var(--muted);border-color:var(--line);cursor:progress;}
  .card .fineprint{
    font-size:0.62rem;color:#3a3a3a;margin-top:0.7rem;line-height:1.45;
  }

  footer{padding:clamp(1.5rem,4vw,2.2rem) clamp(1rem,4vw,1.5rem);text-align:center;color:#3a3a3a;font-size:0.7rem;letter-spacing:0.05em;}

  /* ---------- Rob widget ---------- */
  #rob-widget{
    position:fixed;bottom:clamp(0.85rem,3vw,1.3rem);right:clamp(0.85rem,3vw,1.3rem);z-index:50;
    text-align:right;
    max-width:calc(100vw - 2rem);
  }
  #rob-widget .bubble{
    display:inline-flex;align-items:center;gap:0;
    background:var(--panel);
    outline:1px solid var(--green-dim);
    outline-offset:-1px;
    border-radius:999px;
    color:var(--green);
    height:2.9rem;
    width:2.9rem;
    overflow:hidden;
    white-space:nowrap;
    cursor:pointer;
    box-shadow:0 0 20px rgba(57,255,20,0.12);
    transition:width 0.25s ease, background 0.2s ease;
    vertical-align:bottom;
  }
  #rob-widget .bubble .icon{
    flex:0 0 2.9rem;
    height:2.9rem;
    position:relative;
  }
  #rob-widget .bubble .icon::before,
  #rob-widget .bubble .icon::after{
    content:"";
    position:absolute;
    top:50%;left:50%;
    width:1.05rem;height:2px;
    background:var(--green);
    border-radius:1px;
  }
  #rob-widget .bubble .icon::before{transform:translate(-50%,-50%) rotate(45deg);}
  #rob-widget .bubble .icon::after{transform:translate(-50%,-50%) rotate(-45deg);}
  #rob-widget .bubble .label{
    font-size:0.78rem;
    padding-right:1.1rem;
    opacity:0;
    transition:opacity 0.15s ease;
  }
  #rob-widget .bubble:hover,
  #rob-widget .bubble:focus-visible{
    width:min(15.4rem, calc(100vw - 3.6rem));
    background:rgba(57,255,20,0.06);
  }
  #rob-widget .bubble:hover .label,
  #rob-widget .bubble:focus-visible .label{opacity:1;}
  #rob-widget .note{
    display:block;margin-top:0.4rem;font-size:0.6rem;color:#3a3a3a;
    opacity:0;transition:opacity 0.15s ease;
  }
  #rob-widget:hover .note,
  #rob-widget:focus-within .note{opacity:1;}

  /* ---------- error page ---------- */
  body.page{display:flex;flex-direction:column;min-height:100vh;}
  body.page main{flex:1;text-align:center;}
  .code{
    font-size:clamp(2.6rem,11vw,4.4rem);
    line-height:1;
    letter-spacing:0.18em;
    color:var(--green-dim);
    margin-bottom:1.1rem;
  }
  .page-title{
    font-size:clamp(1.1rem,3.2vw,1.5rem);
    letter-spacing:0.06em;
    color:var(--green);
    font-weight:normal;
    line-height:1.3;
    margin-bottom:0.9rem;
  }
  .lead{
    color:var(--muted);
    font-size:clamp(0.85rem,2.4vw,1rem);
    max-width:min(560px,88vw);
    margin:0 auto 2.2rem;
  }
  .notice{max-width:min(560px,88vw);margin:0 auto 2.2rem;}
  .notice p{
    color:var(--muted);
    font-size:clamp(0.8rem,2vw,0.85rem);
    line-height:1.55;
    margin-bottom:0.9rem;
  }
  .notice p:last-child{margin-bottom:0;}
  .btn.ghost{border-color:#2a2a2a;color:#4a4a4a;}
  .btn.ghost:hover{background:none;color:var(--muted);}

  /* ---------- single-form pages ---------- */
  .form-single{
    max-width:min(460px,92vw);
    margin:0 auto;
    border:1px solid var(--line);
    padding:clamp(1.2rem,4vw,1.8rem);
    text-align:left;
  }
  .form-single .btn{width:100%;margin-top:0.35rem;}
  .form-alt{
    text-align:center;
    font-size:clamp(0.75rem,1.9vw,0.8rem);
    color:var(--muted);
    margin-top:1.2rem;
  }
  .form-alt a{color:var(--green);border-bottom:1px solid var(--green-dim);}
  .form-alt a:hover{background:rgba(57,255,20,0.08);}

  /* ---------- adoption list result panel ---------- */
  .result{
    margin-top:1.1rem;
    border:1px solid var(--line);
    border-left-width:2px;
    background:var(--panel);
    padding:clamp(0.9rem,3vw,1.15rem);
  }
  .result:focus{outline:none;}
  .result h3{
    font-size:clamp(0.75rem,2vw,0.82rem);letter-spacing:0.16em;text-transform:uppercase;
    line-height:1;margin-bottom:0.6rem;font-weight:normal;
  }
  .result p{
    font-size:clamp(0.74rem,1.9vw,0.79rem);
    line-height:1.5;color:var(--muted);margin-bottom:0.55rem;
  }
  .result p:last-child{margin-bottom:0;}
  .result b{color:var(--text);font-weight:normal;}
  .result code{font-size:0.95em;color:var(--text);}
  .result a{color:var(--green);border-bottom:1px solid var(--green-dim);}
  .result a:hover{background:rgba(57,255,20,0.08);}
  /* Addresses must stay readable and breakable on a phone. */
  .result .addr{
    font-size:clamp(0.66rem,1.8vw,0.74rem);
    color:var(--text);
    word-break:break-all;
    letter-spacing:0.02em;
    margin-bottom:0.6rem;
  }
  .result.good{border-left-color:var(--green);}
  .result.good h3{color:var(--green);}
  .result.warn{border-left-color:#b8892a;}
  .result.warn h3{color:#d8a13a;}
  .result.bad{border-left-color:#8f2f2f;}
  .result.bad h3{color:#d05a5a;}

  /* hub cards that are whole links */
  .card-link{display:block;text-align:center;transition:border-color 0.2s,background 0.2s;}
  .card-link:hover{border-color:var(--green-dim);background:rgba(57,255,20,0.03);}
  .card-link .btn{display:inline-block;margin-top:0.9rem;}
