/* ============================================================
   Daggerfall iOS landing page (daggerfall.html).
   The 1996 DOS-UI look Ikram approved: bevelled stone panels, gold trim,
   blood-red headers, pixel blackletter. Single committed dark look, so it
   does not follow the site light/dark toggle (like the guestbook).
   ============================================================ */
:root{
  color-scheme:dark;
  --stone:#2b2018; --stone-2:#3b2c20; --hi:#7a6248; --lo:#120c08;
  --gold:#e2bd5e; --parch:#e8d9b4; --red:#8e1d14; --text:#efe3c6; --dim:#bba98a; --link:#f3d27a;
  --display:"Jacquard 24","Pirata One",Georgia,serif; --body:"Alegreya",Georgia,serif; --ui:"VT323",ui-monospace,monospace;
}
*{box-sizing:border-box}
body{
  background:
    radial-gradient(120% 70% at 50% 0%, #4a3524 0%, transparent 60%),
    repeating-linear-gradient(0deg, transparent 0 31px, rgba(0,0,0,.25) 31px 32px),
    repeating-linear-gradient(90deg, transparent 0 63px, rgba(0,0,0,.18) 63px 64px),
    var(--stone);
  color:var(--text);font-family:var(--body);font-size:18px;line-height:1.55;padding-block:0 56px
}
a{color:var(--link)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wrap{max-width:1080px;margin:0 auto;padding-inline:16px}
.bevel{background:var(--stone-2);border:3px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi);
  box-shadow:0 0 0 2px #000, inset 0 0 0 1px rgba(226,189,94,.25)}

.bar{background:#000;border-bottom:3px solid var(--hi);padding-block:10px}
.bar .wrap{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;justify-content:space-between}
.bar .brand{font:26px/1 var(--ui);letter-spacing:.06em;color:var(--dim);text-decoration:none}
.bar .brand b{color:var(--gold);font-weight:400}
.bar nav{display:flex;flex-wrap:wrap;gap:4px 18px;font:21px/1 var(--ui);text-transform:uppercase;letter-spacing:.04em}
.bar nav a{text-decoration:none;color:var(--dim);padding:8px 0;min-height:44px;display:inline-flex;align-items:center}
.bar nav a:hover{color:var(--parch)}

/* hero with iPad bezel */
.hero{display:grid;grid-template-columns:1fr 1.05fr;gap:36px;align-items:center;padding-block:40px 8px}
.hero > *{min-width:0}
.logo{display:block;width:min(100%,400px);height:auto;margin:0 0 14px;filter:drop-shadow(3px 3px 0 #000) drop-shadow(0 0 18px rgba(226,189,94,.25))}
.eyebrow{font:22px/1 var(--ui);color:var(--gold);letter-spacing:.06em;text-transform:uppercase;margin:0 0 10px}
h1{font:400 clamp(44px,6.4vw,72px)/.95 var(--display);color:var(--parch);margin:0 0 16px;text-wrap:balance;text-shadow:3px 3px 0 #000}
h1 em{font-style:normal;color:var(--gold)}
.lede{max-width:34em;margin:0 0 22px}
.status{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px;padding:0;list-style:none;font:21px/1 var(--ui)}
.status li{padding:7px 10px;background:#000;border:1px solid var(--hi);color:var(--dim)}
.status b{color:var(--gold);font-weight:400}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{font:24px/1 var(--ui);text-transform:uppercase;letter-spacing:.06em;text-decoration:none;padding:12px 20px;min-height:48px;
  display:inline-flex;align-items:center;gap:10px;color:var(--parch);
  background:linear-gradient(#5a4430,#3a2a1c);border:3px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi);box-shadow:0 0 0 2px #000;cursor:pointer}
.btn:hover{color:#fff;background:linear-gradient(#6b5139,#46331f)}
.btn:active{border-color:var(--lo) var(--hi) var(--hi) var(--lo)}
.btn.primary{background:linear-gradient(#a3281c,#6e150e);color:#fff1cf}
.btn svg{width:22px;height:22px;fill:currentColor;flex:none}

.ipad{position:relative;width:100%;max-width:560px;justify-self:center;aspect-ratio:1.46;
  background:linear-gradient(160deg,#3a3f46,#15181c 60%,#2a2e34);border-radius:5.2% / 7.6%;
  padding:3.2% 3.4%;box-shadow:0 24px 50px rgba(0,0,0,.6),0 0 0 2px #000,inset 0 0 0 2px #4a5058}
.ipad::before{content:"";position:absolute;left:50%;top:1.3%;width:7px;height:7px;margin-left:-3px;border-radius:50%;background:#0a0c10;box-shadow:inset 0 0 0 2px #1f2329,0 0 0 1px #3a4048}
.ipad .scr{width:100%;height:100%;border-radius:2.4% / 3.5%;background:#000;overflow:hidden;position:relative;border:1px solid #000}
.ipad img{display:block;width:100%;height:100%;object-fit:cover}
.slot{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:18px;background:
  radial-gradient(80% 60% at 50% 100%,rgba(226,189,94,.10),transparent 70%),#0b0a08;
  border:2px dashed var(--hi);border-radius:inherit;color:var(--dim);font:21px/1.25 var(--ui);text-transform:uppercase;letter-spacing:.04em}
.slot .n{display:block;font:400 54px/1 var(--display);color:var(--gold);margin-bottom:6px;text-shadow:2px 2px 0 #000}
.slot small{display:block;text-transform:none;letter-spacing:0;font-size:18px;color:#8f7d5f;margin-top:6px}
.hud{position:absolute;inset:0;pointer-events:none;opacity:.55}
.hud i{position:absolute;border:2px solid var(--parch);border-radius:50%}
.hud .l{left:7%;bottom:12%;width:17%;aspect-ratio:1}
.hud .l::after,.hud .r::after{content:"";position:absolute;inset:32%;border-radius:50%;background:var(--parch)}
.hud .r{right:7%;bottom:12%;width:17%;aspect-ratio:1}
.hud .b{right:28%;bottom:16%;width:7%;aspect-ratio:1}
.hud .b2{right:24%;bottom:30%;width:7%;aspect-ratio:1}
.hud .vit{position:absolute;left:4%;top:8%;width:4%;height:22%;border:2px solid var(--parch);background:linear-gradient(#a3281c,#a3281c) 0 100%/100% 65% no-repeat}
.ipad .capt{position:absolute;left:0;right:0;bottom:-34px;text-align:center;font:19px/1.2 var(--ui);color:var(--dim)}

.sect{margin-top:64px}
.sect-h{display:flex;align-items:center;gap:14px;margin:0 0 18px}
.sect-h h2{font:400 44px/1 var(--display);color:var(--gold);margin:0;text-shadow:2px 2px 0 #000}
.sect-h::after{content:"";flex:1;height:6px;border-top:2px solid var(--hi);border-bottom:2px solid var(--lo)}
.lead{margin:-6px 0 18px;color:var(--dim);max-width:46em}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gallery figure{margin:0;padding:8px}
.gallery .scr{position:relative;aspect-ratio:4/3;background:#000;border:2px solid #000}
.gallery .slot{font-size:19px}
.gallery .slot .n{font-size:40px}
.gallery figcaption{font:19px/1.2 var(--ui);color:var(--dim);padding:8px 2px 0}

.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.feat{padding:16px 18px}
.feat h3{font:24px/1.1 var(--ui);text-transform:uppercase;letter-spacing:.04em;color:var(--parch);margin:0 0 6px;padding-bottom:6px;border-bottom:1px solid rgba(226,189,94,.3)}
.feat p{margin:0;font-size:16px;color:var(--dim)}

.mods{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}
.mods > *{min-width:0}
.modbox{padding:18px 20px}
.modbox h3{font:400 32px/1 var(--display);color:var(--parch);margin:0 0 4px;text-shadow:2px 2px 0 #000}
.modbox .note{font-size:15px;color:var(--dim);margin:0 0 14px}
.modgroup{margin:0 0 14px}
.modgroup h4{font:21px/1.1 var(--ui);text-transform:uppercase;letter-spacing:.04em;color:var(--gold);margin:0 0 4px;font-weight:400}
.modgroup h4 a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--hi)}
.modgroup p{margin:0;font-size:15.5px}
.modgroup p a{text-decoration:none;border-bottom:1px dotted var(--hi)}
.modgroup p a:hover,.modgroup h4 a:hover{color:#fff}
.pending{list-style:none;margin:0;padding:0}
.pending li{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:baseline;padding:9px 0;border-top:1px solid #000;border-bottom:1px solid #4a3828}
.pending li:first-child{border-top:0}.pending li:last-child{border-bottom:0}
.pending a{text-decoration:none;border-bottom:1px dotted var(--hi);font-size:16.5px}
.pending a:hover{color:#fff}
.pending small{display:block;font-size:14px;color:var(--dim)}
.tag{font:17px/1 var(--ui);text-transform:uppercase;letter-spacing:.04em;padding:4px 7px;background:#000;border:1px solid var(--hi);color:var(--dim);white-space:nowrap}
.tag.hot{color:var(--gold)}
.modshot{margin-top:16px;padding:8px}
.modshot .scr{position:relative;aspect-ratio:4/3;background:#000;border:2px solid #000}

.ledger{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}
.ledger > *{min-width:0}
.log{padding:0;margin:0;list-style:none}
.log li{display:grid;grid-template-columns:118px 1fr;gap:12px;padding:12px 16px;border-bottom:1px solid #000;border-top:1px solid #4a3828}
.log .v{font:22px/1.1 var(--ui);color:var(--gold)}
.log .v small{display:block;font-size:17px;color:var(--dim)}
.log p{margin:0;font-size:16px}
.log li.next{background:linear-gradient(90deg,rgba(142,29,20,.55),rgba(142,29,20,.1))}
.log li.next .v{color:#fff1cf}
.parch{background:var(--parch);color:#2a1a0e;padding:20px 22px;border:3px solid #000;box-shadow:inset 0 0 40px rgba(120,80,30,.45)}
.parch h3{font:400 34px/1 var(--display);margin:0 0 10px;color:var(--red)}
.parch ol{margin:0;padding-left:22px;font-size:16px}
.parch li{margin-bottom:8px}
.parch code{font:18px var(--ui)}
.parch a{color:#6e150e}
.video{margin-top:20px;padding:10px}
.video .frame{aspect-ratio:16/9;background:#000;border:2px dashed var(--hi);display:grid;place-items:center;text-align:center;padding:16px}
.video .frame span{display:block;font:24px/1.2 var(--ui);text-transform:uppercase;letter-spacing:.06em;color:var(--dim)}
.video .frame i{display:block;width:0;height:0;border-left:34px solid var(--gold);border-top:20px solid transparent;border-bottom:20px solid transparent;margin:0 auto 12px}
.video .cap{font:19px/1.2 var(--ui);color:var(--dim);padding:8px 2px 0}
.homeshot{margin-top:16px;padding:8px}
.homeshot .scr{position:relative;aspect-ratio:4/3;background:#000;border:2px solid #000}

.fine{margin-top:48px;font-size:14px;color:var(--dim);border-top:2px solid var(--lo);padding-top:16px;max-width:62em}
.fine a{color:var(--dim)}
.credits{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:10px}
.credits img{width:36px;height:36px;border-radius:50%;border:2px solid #000}

@media (max-width:820px){
  .hero,.ledger,.mods,.shotlist ol{grid-template-columns:1fr}
  .feats,.gallery{grid-template-columns:1fr 1fr}
  .ipad{margin-bottom:36px}
}
@media (max-width:520px){
  .feats,.gallery{grid-template-columns:1fr}
  .log li,.pending li{grid-template-columns:1fr;gap:4px}
  .sect-h h2{font-size:36px}
}

/* ---------- live-page additions ---------- */
.bar .back{font:21px/1 var(--ui);text-transform:uppercase;letter-spacing:.04em;color:var(--gold);text-decoration:none;
  min-height:44px;display:inline-flex;align-items:center}
.bar .back:hover{color:#fff}

/* A frame waiting on its screenshot: a quiet stone panel, not a dashed box. */
.slot{border:0;border-radius:inherit;background:
  radial-gradient(70% 60% at 50% 45%,rgba(226,189,94,.10),transparent 70%),
  repeating-linear-gradient(0deg,transparent 0 15px,rgba(0,0,0,.35) 15px 16px),
  repeating-linear-gradient(90deg,transparent 0 31px,rgba(0,0,0,.25) 31px 32px),#1a130d}
.slot img.sigil{width:22%;max-width:96px;height:auto;margin:0 auto 10px;opacity:.55;filter:grayscale(.4) drop-shadow(2px 2px 0 #000);object-fit:contain}
.ipad .slot img.sigil{width:18%;max-width:110px}
.slot .soon{display:block;color:var(--dim)}
.slot small{color:#8f7d5f}
.has-shot .slot{display:none}
.scr > img.shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.has-shot .hud{display:none}
figure.has-shot .scr{cursor:zoom-in}
figure.has-shot .scr:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.modshot figcaption,.homeshot figcaption{font:19px/1.2 var(--ui);color:var(--dim);padding:8px 2px 0}
.modshot,.homeshot{margin:16px 0 0}

/* Lightbox for the gallery */
.lb{position:fixed;inset:0;z-index:50;display:none;place-items:center;padding:16px;background:rgba(5,3,2,.92)}
.lb.open{display:grid}
.lb figure{margin:0;max-width:min(1200px,100%);padding:8px}
.lb img{display:block;max-width:100%;max-height:80vh;width:auto;height:auto;margin:0 auto;border:2px solid #000}
.lb figcaption{font:21px/1.2 var(--ui);color:var(--dim);padding:10px 2px 0;text-align:center}
.lb button{position:absolute;top:12px;right:12px;font:24px/1 var(--ui);text-transform:uppercase;min-height:48px;padding:10px 16px;
  color:var(--parch);background:linear-gradient(#5a4430,#3a2a1c);border:3px solid;border-color:var(--hi) var(--lo) var(--lo) var(--hi);box-shadow:0 0 0 2px #000;cursor:pointer}
@media (prefers-reduced-motion:no-preference){.lb.open figure{animation:lbIn .18s ease-out}}
@keyframes lbIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.video .frame .sub{font-size:19px;margin-top:6px}
/* Hero placeholder: keep its words clear of the mock touch HUD. */
.ipad .slot{place-items:start center;padding-top:5%}
@media (max-width:600px){.ipad .hud{display:none}.ipad .slot{place-items:center;padding-top:18px}}
