
:root{
  --bg:#0b0c0d;
  --bg-elev:#121315;
  --fg:#e7e7ea;
  --muted:#a4a7ad;
  --brand:#8bc6ff;
  --stroke:#22252a;
  --accent:#ffd166;
  --focus: 2px dotted var(--brand);
  --radius: 16px;
  --shadow: 0 8px 30px rgba(0,0,0,.35);
}
@media (prefers-color-scheme: light){
  :root{
    --bg:#f8f9fb;
    --bg-elev:#ffffff;
    --fg:#1b1d21;
    --muted:#5d6470;
    --stroke:#e9ecf1;
  }
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font: 16px/1.6 system-ui, -apple-system, Segoe UI, Roboto, Inter, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--fg);
  background:radial-gradient(1200px 800px at 10% -10%, rgba(139,198,255,.08), transparent) , var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block;border-radius:12px}
a{color:inherit;text-decoration:none}
a:focus{outline:var(--focus);outline-offset:4px}
.container{width:min(1100px, calc(100% - 2rem)); margin-inline:auto}
.narrow{width:min(800px, calc(100% - 2rem))}
.center{text-align:center}
.mt-l{margin-top:2rem}

.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:var(--brand);color:#001726;padding:.4rem .6rem;border-radius:8px}

.site-header{position:sticky;top:0;z-index:40;background:rgba(10,11,12,.6);backdrop-filter:saturate(160%) blur(8px);border-bottom:1px solid var(--stroke)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0}
.brand{display:flex;align-items:center;gap:.6rem;font-weight:700}
.brand-text{letter-spacing:.2px}
.brand-sub{color:var(--muted);font-weight:500;font-size:.9rem}
.logo-dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(45deg,var(--brand),#9ff);box-shadow:0 0 20px rgba(139,198,255,.7)}
.nav ul{display:flex;gap:1rem;list-style:none;margin:0;padding:0}
.nav a{padding:.5rem .75rem;border-radius:12px;border:1px solid transparent}
.nav a:hover{background:var(--bg-elev);border-color:var(--stroke)}

.site-footer{margin-top:4rem;border-top:1px solid var(--stroke);background:linear-gradient(180deg, transparent, rgba(0,0,0,.08))}
.footer-inner{padding:2.5rem 0}
.footer-cta{display:grid;gap:.6rem;justify-items:start;margin-bottom:1.5rem}
.footer-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;border-top:1px dashed var(--stroke);padding-top:1rem}
.meta-links{display:flex;gap:.8rem;list-style:none;margin:0;padding:0}
.meta-links a{opacity:.8}
.meta-links a:hover{opacity:1}

.site-main{min-height:60vh}
.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center;padding:2.2rem 0}
.hero h1{font-size:clamp(2rem, 2vw + 1.6rem, 3rem);line-height:1.1;margin:.2rem 0 .5rem}
.hero p{color:var(--muted);max-width:46ch}
.hero-actions{display:flex;gap:.75rem;margin-top:1rem}
.hero-media .card{background:var(--bg-elev);padding:.6rem;border-radius:16px;border:1px solid var(--stroke);box-shadow:var(--shadow)}
.card figcaption{color:var(--muted);font-size:.9rem;margin-top:.5rem}

.section-title{font-size:1.4rem;margin:0 0 .75rem}
.grid{display:grid;gap:1rem}
.grid-3{grid-template-columns:repeat(3,1fr)}
@media (max-width: 860px){ .hero{grid-template-columns:1fr} .grid-3{grid-template-columns:1fr 1fr} }
@media (max-width: 620px){ .grid-3{grid-template-columns:1fr} }

.tile{position:relative;border:1px solid var(--stroke);border-radius:16px;overflow:hidden;background:var(--bg-elev)}
.tile img{aspect-ratio: 4 / 3; object-fit:cover}
.tile .tile-label{position:absolute;left:.6rem;bottom:.6rem;background:rgba(0,0,0,.45);padding:.2rem .5rem;border-radius:999px;font-size:.85rem;border:1px solid rgba(255,255,255,.2)}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2rem}
@media (max-width: 760px){ .two-col{grid-template-columns:1fr}}

.btn{display:inline-block;border:1px solid var(--stroke);padding:.6rem .9rem;border-radius:12px;background:var(--bg-elev);transition:transform .12s ease, background .2s}
.btn:hover{transform:translateY(-1px)}
.btn-outline{background:transparent}
.btn-primary{background:linear-gradient(180deg, #62b2ff, #4aa3ff);color:#00254a;border:none;box-shadow:0 6px 18px rgba(80,160,255,.25)}
.btn-primary:hover{filter:brightness(1.05)}

.prose h1{font-size:2rem;margin:0 0 .6rem}
.prose h2{margin:1.4rem 0 .4rem}
.prose p{color:var(--muted)}

.checklist{list-style:none;padding:0;margin:.5rem 0 0}
.checklist li{padding-left:1.2rem;position:relative;margin:.2rem 0}
.checklist li::before{content:"✓";position:absolute;left:0;top:0;color:var(--brand)}

.post-card{border:1px solid var(--stroke);border-radius:16px;background:var(--bg-elev);padding:1rem;margin:.75rem 0;transition:transform .12s ease}
.post-card:hover{transform:translateY(-2px)}
.post-card .meta{color:var(--muted);font-size:.9rem;margin:.1rem 0 .4rem}
.post-link{display:block}

.contact-form{display:grid;gap:.9rem;background:var(--bg-elev);padding:1rem;border-radius:16px;border:1px solid var(--stroke)}
.form-row{display:grid;gap:.35rem}
label{font-weight:600}
input, textarea, select{
  background:transparent;border:1px solid var(--stroke);border-radius:12px;padding:.6rem .7rem;color:var(--fg)
}
input:focus, textarea:focus, select:focus{outline:var(--focus);}

.help{color:var(--muted);font-size:.9rem}

.reveal{opacity:0;transform:translateY(10px);transition:opacity .6s ease, transform .6s ease}
.reveal.visible{opacity:1;transform:none}

.fade-out{opacity:0;transition:opacity .6s ease}

.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.88);display:none;align-items:center;justify-content:center;padding:1rem;z-index:60}
.lightbox.open{display:flex}
.lightbox img{max-width:min(1200px, 92vw);max-height:82vh}
.lightbox figcaption{color:#ddd;text-align:center;margin-top:.6rem}
.lightbox .close{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);padding:.4rem .6rem;border-radius:8px;cursor:pointer}

/* Only affect the image with class .joke-img on joke.html */
.joke-img {
  max-width: 100%;
  max-height: 80vh;  /* fit inside viewport */
  height: auto;
  width: auto;
  display: block;
  margin: 0 auto;
  object-fit: contain;
}
