/* Issue #4 typography: self-hosted subsets, OFL licenses in assets/fonts. */
@font-face { font-family:'M PLUS 1p'; src:url('fonts/mplus1p-regular.woff2') format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'M PLUS 1p'; src:url('fonts/mplus1p-medium.woff2') format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'M PLUS 1p'; src:url('fonts/mplus1p-bold.woff2') format('woff2'); font-weight:700; font-display:swap; }
@font-face { font-family:'M PLUS 1p'; src:url('fonts/mplus1p-extrabold.woff2') format('woff2'); font-weight:800 900; font-display:swap; }
@font-face { font-family:'DotGothic16'; src:url('fonts/dotgothic16-regular.woff2') format('woff2'); font-weight:400 900; font-display:swap; }
:root { --font-body:'M PLUS 1p',sans-serif; --font-display:'M PLUS 1p',sans-serif; --font-label:'DotGothic16',monospace; }
body { font-weight:400; }
h2,h3,h4 { font-weight:800; }
.pw-game-font,.pw-sales-label,.eyebrow,.pw-plan-price strong,.pw-plan-pick,
.btn,.pw-plan-cta,.pw-experience-link,.pw-plan-more summary,
.pw-console button,.pw-console-brand,.pw-lcd-header,.pw-library-play,.pw-library-window-bar { font-family:'DotGothic16','M PLUS 1p',sans-serif; }
main > section:not(.pw-hero) .section-head h2 { font-family:'M PLUS 1p',sans-serif; font-weight:800; }
main > section:not(.pw-hero) .eyebrow { font-family:'DotGothic16',sans-serif; }
.pw-plan-discount strong { font-family:'DotGothic16',sans-serif; }
.pw-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.pw-plan-monitor [hidden] { display:none!important; }
.pw-plan-monitor { max-width:920px; margin:32px auto 0; padding:14px; border:3px solid #153e7a; border-radius:24px; background:#2f69d0; box-shadow:0 8px 0 #194d9c,0 15px 0 #d3e2fb; scroll-margin-top:100px; }
.pw-monitor-bar { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; padding:2px 12px 13px; color:#fff; font-size:14px; }
.pw-monitor-bar .pw-game-font { font-size:24px; letter-spacing:.08em; }
.pw-plan-screen { padding:28px; border:7px solid #20314c; border-radius:12px; background:#f7faff; }
.pw-plan-index { margin:0; gap:12px; }
.pw-plan-index a { position:relative; padding:22px 16px 16px; border:2px solid #2055b6; border-radius:5px; box-shadow:0 4px 0 #bfd2f3; background:#fff; min-height:250px; display:flex; flex-direction:column; gap:10px; color:#153e7a; text-decoration:none; }
.pw-plan-index a:nth-child(2) { background:#fff0f6; }
.pw-plan-index a:nth-child(3) { background:#e7f1ff; }
.pw-plan-index a > .pw-game-font:first-child { font-size:22px; letter-spacing:.06em; }
.pw-plan-index strong.pw-game-font { font-size:29px; line-height:1.3; white-space:nowrap; }
.pw-plan-index strong span { font-size:16px; }
.pw-plan-index small { font-size:12px; }
.pw-plan-index p { font:500 15px/1.8 var(--font-body); color:#23344a; }
.pw-plan-index .pw-discount-preview { font-size:13px; color:#92264c; font-weight:700; }
.pw-plan-pick { margin-top:auto; align-self:flex-end; border-bottom:2px solid #2055b6; padding:4px 0; font-size:15px; }
#price .pw-plan-index a:hover { text-decoration:none; background:#f9d8e6; }
.pw-plan-index a:active { transform:translateY(2px); box-shadow:0 2px 0 #bfd2f3; }
.pw-plan-grid { display:block; }
.pw-plan-card { margin:24px 0; border:0; border-radius:0; box-shadow:none; background:transparent; }
.is-enhanced .pw-plan-card { margin:0; }
.pw-plan-card-head,.pw-plan-card:nth-child(n) .pw-plan-card-head { padding:0; min-height:0; background:transparent; }
.pw-plan-card h3 .pw-game-font { display:block; font-size:36px; letter-spacing:.07em; }
.pw-plan-card h3 small { display:block; font:700 15px/1.8 var(--font-body); margin-top:4px; }
.pw-plan-price { margin:12px 0; }
.pw-plan-price strong { font-size:42px; letter-spacing:0; }
.pw-plan-back { position:sticky; top:84px; z-index:2; display:block; min-height:44px; max-width:100%; padding:8px 14px; margin-bottom:20px; border:2px solid #2055b6; border-radius:4px; color:#153e7a; background:#fff; box-shadow:0 3px 0 #bfd2f3; font-size:16px; text-align:left; }
.pw-plan-delivery { font-size:16px; margin:20px 0 6px; }
.pw-delivery-condition { max-width:66ch; font:400 15px/1.9 var(--font-body); }
.pw-plan-more { margin:24px 0; border-block:1px solid #bfd0ec; }
.pw-plan-more summary { padding:16px 8px; cursor:pointer; color:#153e7a; font-size:18px; font-weight:700; min-height:52px; }
.pw-plan-more summary span { display:block; margin-left:22px; font:400 13px/1.8 var(--font-body); color:#334866; }
.pw-plan-facts { padding:0 8px 16px; display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
.pw-plan-facts dt { font-size:15px; }
.pw-plan-facts dd { font-size:15px; }
.pw-plan-cta { margin:0; align-self:start; padding:12px 18px; border-radius:4px; min-height:48px; font-size:16px; }
.pw-plan-screen-help { text-align:center; font-size:14px; margin:22px 0 0; }
.pw-listing-policy { max-width:920px; margin:30px auto 0; padding:14px 0; border-bottom:1px solid #bfd0ec; font-size:15px; }
.pw-listing-policy summary { padding:10px 0; cursor:pointer; font-weight:700; min-height:44px; }
.pw-listing-policy p { padding:10px 0; line-height:1.9; }
.pw-option-list dd { white-space:normal; }
.pw-option-list dd small { display:block; font-size:13px; font-weight:500; max-width:22em; }
.pw-aftercare p + p { margin-top:14px; }
.pw-project-flow { list-style:none; padding:0; }
.pw-preview-policy { max-width:760px; margin:32px auto; padding:22px; background:#edf4ff; border-left:4px solid #2055b6; font-size:15px; line-height:1.9; }
.pw-player-profile { max-width:760px; margin:28px auto 0; color:#23344a; }
.pw-player-profile > summary { list-style:none; display:flex; gap:14px; align-items:center; width:fit-content; padding:12px; border:2px solid #2055b6; background:#fff; border-radius:6px; cursor:pointer; }
.pw-player-profile > summary::-webkit-details-marker,.pw-secret-bonus > summary::-webkit-details-marker { display:none; }
.pw-player-profile summary strong { display:block; font:400 20px/1.4 'DotGothic16',monospace; color:#153e7a; }
.pw-player-profile summary .pw-game-font { font-size:12px; }
/* An abstract initial is an asset slot, not an invented depiction of the person. */
.pw-profile-slot { display:grid; place-items:center; width:44px; height:44px; background:#f8c8d8; border:3px solid #153e7a; color:#153e7a; font:400 24px/1 'DotGothic16',monospace; }
.pw-profile-slot img { width:100%; height:100%; object-fit:contain; image-rendering:pixelated; }
.pw-profile-content { margin-top:14px; padding:22px; background:#f0f5ff; border:1px solid #bfd0ec; border-radius:6px; font-size:15px; line-height:1.9; }
.pw-profile-content h3 { font:400 22px/1.5 'DotGothic16',sans-serif; margin-bottom:12px; }
.pw-secret-bonus { max-width:760px; margin:0 auto 20px; }
.pw-secret-bonus > summary { list-style:none; cursor:pointer; width:80px; min-height:80px; margin:0 auto; border-radius:8px; }
.pw-secret-bonus .foot-mascot { margin:0; }
.pw-bonus-content { background:#fff5f9; border:3px solid #2055b6; box-shadow:5px 5px 0 #bfd2f3; border-radius:12px; padding:32px; margin:24px 0 32px; text-align:left; color:#23344a; }
.pw-bonus-content h2 { color:#153e7a; font-size:clamp(28px,4vw,42px); line-height:1.35; margin-bottom:20px; overflow-wrap:anywhere; }
.pw-bonus-content p { font:400 15px/1.9 var(--font-body); margin:14px 0; }
.pw-bonus-content fieldset { min-width:0; border:0; padding:0; margin:24px 0; }
.pw-bonus-content legend { font-size:15px; font-weight:700; margin-bottom:10px; }
.pw-bonus-option { display:flex; gap:12px; padding:18px; margin:12px 0; background:#fff; border:2px solid #b7c9e5; border-radius:6px; cursor:pointer; }
.pw-bonus-option input { flex-shrink:0; width:22px; height:22px; margin:3px 0; accent-color:#2055b6; }
.pw-bonus-option strong { display:block; color:#153e7a; margin-bottom:8px; font-size:16px; }
.pw-bonus-option span span { font-size:15px; line-height:1.9; }
.pw-bonus-option:has(:checked) { border-color:#2055b6; background:#edf4ff; }
.pw-experience-link { display:inline-block; color:#153e7a; border-bottom:2px solid #2055b6; padding:10px 0; min-height:44px; font-size:17px; }
#price :is(button,summary,h3):focus-visible,.pw-player-profile summary:focus-visible,.pw-secret-bonus :is(summary,input,a):focus-visible { outline:3px solid #16498b; outline-offset:4px; }
@media(max-width:700px) {
  .pw-plan-monitor { padding:9px; border-radius:18px; }
  .pw-monitor-bar { padding:4px 3px 10px; font-size:12px; }
  .pw-monitor-bar .pw-game-font { font-size:21px; }
  .pw-plan-screen { padding:18px 14px; border-width:5px; }
  .pw-plan-index { grid-template-columns:1fr; }
  .pw-plan-index a { min-height:0; padding:16px; gap:5px; }
  .pw-plan-index a > .pw-game-font:first-child { font-size:20px; }
  .pw-plan-index strong.pw-game-font { font-size:30px; }
  .pw-plan-index p { font-size:14px; }
  .pw-plan-pick { margin-top:4px; }
  .pw-plan-card h3 .pw-game-font { font-size:29px; }
  .pw-plan-price strong { font-size:34px; }
  .pw-plan-facts { display:block; padding-inline:0; }
  .pw-plan-cta { font-size:15px; padding:12px; }
  .pw-bonus-content { padding:20px 16px; }
  .pw-bonus-option { padding:14px 10px; gap:10px; }
}
@media(prefers-reduced-motion:reduce) {
  .pw-plan-monitor *,.pw-player-profile *,.pw-secret-bonus * { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
/* Review: keep the English/Japanese heading pair, with readable pixel labels. */
main > section:not(.pw-hero) .eyebrow { font-size:14px; line-height:1.5; letter-spacing:.12em; font-weight:400; }
main > section:not(.pw-hero) .eyebrow::before { margin-right:8px; vertical-align:middle; }
/* Review: the contact structure/copy stays intact; reuse the site palette. */
#contact { background:#fff0f6; color:#23344a; border:2px solid #2055b6; }
#contact::before { background:#f8c8d8; opacity:1; }
main > section #contact .section-head h2 { color:#2055b6; text-shadow:1px 2px 0 #fff,3px 4px 0 #f8c8d8; }
main > section #contact .section-head h2::before { background:#f8c8d8; }
main > section #contact .section-head h2::after { background:#2055b6; box-shadow:.16em -.16em #f8c8d8; }
main > section #contact .eyebrow { color:#2055b6; background:#fff; border-color:#2055b6; box-shadow:2px 3px #f8c8d8; }
#contact .section-head .lead,#contact .pw-contact-guide { color:#23344a; }
#contact .pw-contact-guide { background:#fff; border-color:#bfd2f3; }
#contact .line-panel { background:#fff; border-color:#2055b6; box-shadow:4px 4px 0 #f8c8d8; }
#contact :is(.line-panel h3,.contact-card h3) { color:#153e7a; }
#contact :is(.line-panel p,.line-panel .lp-sub,.line-panel .lp-eyebrow,.lp-qr-label,.contact-card p) { color:#23344a; }
#contact .contact-card { background:#f7faff; border-color:#bfd2f3; }
#contact .contact-card .c-icon { background:#2055b6; }
#contact .contact-card .status { background:#f8c8d8; color:#153e7a; }
#contact .contact-card .btn-outline { border-color:#2055b6!important; color:#153e7a!important; background:#fff; }
#contact .contact-card .btn-outline:hover { background:#e7f1ff; }
#contact .btn-line { background:#06c755; color:#23344a; }
#contact .btn-line svg { stroke:currentColor; }
