/* A calm, readable entry screen before the game or any account/analytics request starts. */
html.age-open,html.age-open body{overflow:hidden}
#age-check{--age-ink:#f7f3ff;--age-muted:#c5c3da;--age-accent:#f26ac6;--age-focus:#7ee3fa;position:fixed;inset:0;z-index:2100;overflow-y:auto;display:grid;align-items:center;padding:calc(env(safe-area-inset-top) + 24px) calc(env(safe-area-inset-right) + 20px) calc(env(safe-area-inset-bottom) + 24px) calc(env(safe-area-inset-left) + 20px);background:linear-gradient(#070b1cbd,#070b1cf5),url('/assets/onboarding/city-portrait-v1.webp') center/cover no-repeat;color:var(--age-ink);font-family:var(--sans,'Noto Sans JP',sans-serif)}
.age-card{width:min(100%,460px);margin:auto;padding:28px 28px 22px;border:1px solid #a3a7d340;border-radius:20px;background:#0b1026f5;box-shadow:0 24px 90px #0009;line-height:1.7;text-align:center}
.age-brand{width:150px;margin:0 auto 12px}.age-brand .brand-art{display:block;width:100%;height:auto}
.age-eyebrow{margin:0 0 10px;color:var(--age-accent);font-size:11px;font-weight:700;letter-spacing:.16em}
#age-title{margin:0 0 12px;font-size:clamp(23px,6vw,29px);line-height:1.4;color:var(--age-ink)}
.age-lead{margin:0 0 24px;font-size:14px;color:var(--age-muted);line-height:1.8}
#age-form fieldset{display:grid;grid-template-columns:1fr 1fr;gap:12px;border:0;padding:0;margin:0 0 18px;min-width:0}
.age-legend{text-align:left;font-size:13px;font-weight:700;padding:0;margin-bottom:10px}
.age-option{display:flex;align-items:center;justify-content:center;gap:9px;min-height:56px;padding:12px 6px;border:1px solid #8e94b56b;border-radius:10px;background:#151d38;cursor:pointer;font-size:15px;font-weight:600}
.age-option input{appearance:auto;width:18px;height:18px;margin:0;accent-color:var(--age-accent);flex-shrink:0}
.age-option:has(input:checked){border-color:var(--age-accent);background:#35203d}
.age-continue{width:100%;min-height:52px;padding:12px;border:1px solid #ed8ed0;border-radius:10px;background:#ad267d;color:#fff;font:inherit;font-size:16px;font-weight:700;cursor:pointer}
.age-continue:disabled{background:#222940;border-color:#4c536b;color:#a6abc1;cursor:default}
.age-privacy{margin:20px 0 14px;font-size:12px;line-height:1.8;color:var(--age-muted)}
.age-note{margin:0;padding-top:14px;border-top:1px solid #acb5d62b;font-size:11px;line-height:1.8;color:var(--age-muted)}
.age-links{display:flex;justify-content:center;gap:4px 14px;flex-wrap:wrap;margin-top:8px}
.age-links button{min-height:44px;padding:6px 0;border:0;background:none;font:inherit;font-size:12px;color:var(--age-muted);text-decoration:underline;cursor:pointer}
.age-manage{min-height:44px;margin:0 0 12px;border:0;background:none;color:var(--age-muted);font:inherit;font-size:12px;text-decoration:underline;cursor:pointer}
.access-banner{padding:16px;margin:12px 0;border:1px solid #825b90;border-radius:12px;background:#17142b;color:#f1e9fa;line-height:1.7;font-size:14px}.access-banner button,.access-banner a{margin:8px 12px 0 0}
#age-check :focus-visible,.age-legal :focus-visible{outline:3px solid #7ee3fa;outline-offset:4px}
#age-title:focus{outline:none}
.age-guardian{display:flex;align-items:flex-start;gap:12px;margin:0 0 18px;padding:16px;border:1px solid #8e94b56b;border-radius:12px;background:#151d38;font-size:14px;text-align:left;cursor:pointer}
.age-guardian input{appearance:auto;flex-shrink:0;width:20px;height:20px;margin:3px 0 0;accent-color:var(--age-accent)}
.age-legal{position:fixed;inset:0;width:min(840px,calc(100% - 24px));height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);max-height:850px;margin:auto;padding:0;border:1px solid #8e94b5;border-radius:14px;background:#0b1026;color:#fff;z-index:2200}
.age-legal::backdrop{background:#000b}.age-legal[open]{display:flex;flex-direction:column}
.age-legal header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;flex-shrink:0}.age-legal h2{font-size:16px;margin:0}
.age-legal button{min-height:44px;padding:8px 12px;border:1px solid #8e94b5;border-radius:8px;background:#151d38;color:#fff;font:inherit;cursor:pointer}
.age-legal iframe{flex:1;width:100%;min-height:0;border:0;background:#0b1026}
@media(min-width:760px){#age-check{background-image:linear-gradient(#070b1cbd,#070b1cf5),url('/assets/onboarding/city-landscape-v1.webp')}}
@media(max-width:380px),(max-height:740px){.age-card{padding:20px 18px 14px}.age-brand{width:100px;margin-bottom:8px}.age-lead{margin-bottom:16px}.age-privacy{margin-top:16px}}
