/* OVERPRINT — ページの枠（画面はすべて js/game.js が canvas に描く） */
:root{
  --bg:#ecebe4; --fg:#231815;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --bg:#ecebe4; --fg:#231815; } }
:root[data-theme="dark"]{ --bg:#ecebe4; --fg:#231815; }
html{ height:100%; scroll-padding-top:env(safe-area-inset-top,0px); background:var(--bg); }
body{ margin:0; height:100%; overflow:hidden; background:var(--bg); color:var(--fg); overscroll-behavior:none; -webkit-tap-highlight-color:transparent; }
canvas{ position:fixed; top:0; left:0; right:0; bottom:0; width:100%; height:100%; display:block; touch-action:none; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; outline:none; }
.probe{ position:fixed; left:0; top:0; visibility:hidden; pointer-events:none; }
#sat{ width:1px; height:env(safe-area-inset-top,0px); }
#sab{ width:1px; height:env(safe-area-inset-bottom,0px); }
#sal{ height:1px; width:env(safe-area-inset-left,0px); }
#sar{ height:1px; width:env(safe-area-inset-right,0px); }
.sr{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.nojs{ position:fixed; inset:auto 16px 40% 16px; z-index:3; margin:0; text-align:center; font:600 15px/1.8 'Hiragino Sans','Yu Gothic UI',sans-serif; }
.nojs a{ color:inherit; }
/* real links for the gate / title (the screen itself is a canvas). placed by syncLinks() in the bottom-right slot of the sheet */
#links{ position:fixed; z-index:2; display:none; margin:0; padding:0; font:600 12px/1 'Hiragino Sans','Hiragino Kaku Gothic ProN','Yu Gothic UI','Yu Gothic','Noto Sans JP',sans-serif; color:var(--fg); white-space:nowrap; }
#links.on, #credit.on{ display:flex; }
#credit{ position:fixed; z-index:2; display:none; margin:0; font:600 11px/1 'Hiragino Sans','Hiragino Kaku Gothic ProN','Yu Gothic UI','Yu Gothic','Noto Sans JP',sans-serif; color:var(--fg); white-space:nowrap; opacity:.72; }
#credit a{ color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; text-decoration-color:rgba(35,24,21,.45); padding:12px 0; margin:-12px 0; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
#credit a:hover, #credit a:focus-visible{ opacity:1; }
#credit .bar{ margin:0 .35em; opacity:.6; }
#links a{ color:inherit; text-decoration:none; opacity:.72; padding:12px 7px; margin:-12px 0; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
#links a span{ border-bottom:1px solid rgba(35,24,21,.45); padding-bottom:2px; }
#links a:hover, #links a:focus-visible{ opacity:1; }
#links a:focus-visible{ outline:1px solid var(--fg); outline-offset:-6px; }
#links a + a::before{ content:'/'; opacity:.45; margin:0 6px 0 -1px; }
