@font-face {
  font-family: 'IM Fell English';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/imfell-english.woff2') format('woff2');
}
@font-face {
  font-family: 'IM Fell English';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/imfell-english-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'IM Fell English SC';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/imfell-english-sc.woff2') format('woff2');
}

:root{
  --ink:#3a2f22;
  --paper:#ece0c6;
  --paper2:#e0d0ac;
  --seal:#9c4e33;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow:hidden;background:var(--paper);font-family:'IM Fell English',serif;color:var(--ink)}
#app,#app canvas{position:fixed;inset:0;display:block}

/* paper vignette over the 3D view */
#vignette{position:fixed;inset:0;pointer-events:none;z-index:3;
  background:radial-gradient(ellipse at 50% 45%, transparent 55%, rgba(58,47,34,.18) 100%);
  mix-blend-mode:multiply}

#hud{position:fixed;inset:0;pointer-events:none;z-index:4}
#title{position:absolute;top:14px;left:18px;line-height:1.05}
#title .t1{display:block;font-family:'IM Fell English SC',serif;font-size:28px;letter-spacing:.14em}
#title .t2{display:block;font-style:italic;font-size:13px;opacity:.75;margin-top:2px}
#place{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-style:italic;
  font-size:clamp(15px,2.2vw,20px);letter-spacing:.05em;text-shadow:0 0 6px var(--paper)}
#compass{position:absolute;top:16px;right:16px;width:44px;height:44px;border:1.5px solid var(--ink);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:'IM Fell English SC',serif;font-size:18px;background:rgba(236,224,198,.55)}

#minimap{position:fixed;right:14px;bottom:14px;z-index:4;border:1.5px solid var(--ink);
  background:var(--paper2);box-shadow:3px 4px 0 rgba(58,47,34,.25);display:none}
#minimap.on{display:block}

#intro{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(ellipse at 50% 40%, rgba(236,224,198,.35), rgba(58,47,34,.42)),
    var(--paper2)}
#intro .card{max-width:520px;width:92%;background:var(--paper);border:2px solid var(--ink);
  box-shadow:0 0 0 6px var(--paper),0 0 0 7.5px var(--ink),8px 10px 0 rgba(58,47,34,.3);
  padding:34px 36px;text-align:center}
#intro h1{font-family:'IM Fell English SC',serif;font-size:clamp(34px,6vw,52px);line-height:1;letter-spacing:.06em}
#intro .sub{font-style:italic;margin:14px 0 6px;font-size:16px}
#intro .keys{margin:12px 0 4px;font-size:14px;opacity:.85}
#intro .note{margin-top:16px;font-size:12.5px;opacity:.6;font-style:italic}
#start{margin-top:14px;font-family:'IM Fell English SC',serif;font-size:19px;letter-spacing:.1em;
  color:var(--paper);background:var(--seal);border:1.5px solid var(--ink);padding:10px 26px;cursor:pointer}
#start:hover{filter:brightness(1.08)}
#start:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
#intro.hidden{display:none}

#vrBtn{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:6;display:none;
  font-family:'IM Fell English SC',serif;font-size:15px;letter-spacing:.08em;color:var(--paper);
  background:var(--ink);border:1.5px solid var(--paper);padding:8px 20px;cursor:pointer;opacity:.85}
#vrBtn.on{display:block}
#vrBtn:hover{opacity:1}

/* touch joystick (mobile only) */
#joy{position:fixed;left:22px;bottom:26px;width:118px;height:118px;border-radius:50%;
  border:1.5px solid var(--ink);background:rgba(236,224,198,.35);z-index:5;display:none;touch-action:none}
#joy.on{display:block}
#joyKnob{position:absolute;left:50%;top:50%;width:52px;height:52px;border-radius:50%;
  transform:translate(-50%,-50%);background:rgba(58,47,34,.55);border:1.5px solid var(--ink)}

@media (pointer:coarse){ #title .t1{font-size:22px} }
@media (prefers-reduced-motion:reduce){ *{animation:none!important;transition:none!important} }
