/* Tokyo Works — design system: C(ゲーム画面・ワクワク)を軸に A(白と和紙の落ち着き)を混ぜる */
@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Inter:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;700;800&display=swap');
:root{--ink:#14213d;--ink2:#2b3550;--paper:#f8f5ee;--paper2:#f1ece0;--sky:#dff1ff;--sky2:#bfe4ff;--orange:#F0921B;--orange2:#d97d0f;--yellow:#FFD23F;--grass:#6FCF4B;--deep:#0b3d91;--muted:#5b6472;--line:#e3ddd0;--white:#fff;--max:1160px;--r:4px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,"Noto Sans JP","Hiragino Sans",sans-serif;color:var(--ink);background:var(--white);line-height:1.7;-webkit-font-smoothing:antialiased}
:lang(ja) body,body:lang(ja){font-family:"Noto Sans JP",Inter,"Hiragino Sans",sans-serif}
img{max-width:100%;height:auto;display:block}a{color:var(--deep)}
.px{font-family:"Press Start 2P",monospace;letter-spacing:0;line-height:1.6}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.2) blur(6px);border-bottom:3px solid var(--ink)}
.site-header .wrap{display:flex;align-items:center;gap:18px;height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:800;font-size:17px}.brand img{height:44px;width:auto}
.nav{margin-left:auto;display:flex;gap:4px;align-items:center}.nav a{color:var(--ink);text-decoration:none;font-size:14px;font-weight:600;padding:9px 12px;border-radius:var(--r)}.nav a:hover,.nav a[aria-current]{background:var(--sky)}
.lang{font-size:12px;font-weight:700;border:2px solid var(--ink);padding:7px 10px;border-radius:var(--r);text-decoration:none;color:var(--ink);margin-left:6px}
.btn{display:inline-block;padding:13px 20px;border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:var(--yellow);color:var(--ink);text-decoration:none;font-weight:800;font-size:14px;border-radius:var(--r);transition:transform .08s,box-shadow .08s}
.btn:hover{transform:translate(1px,1px);box-shadow:3px 3px 0 var(--ink)}.btn:active{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink)}
.btn.p{background:var(--orange)}.btn.w{background:#fff}.btn.sm{padding:9px 14px;font-size:12px;box-shadow:3px 3px 0 var(--ink)}.btn .px{font-size:11px}
.menu-btn{display:none;margin-left:auto;background:none;border:2px solid var(--ink);border-radius:var(--r);padding:8px 10px;font-weight:700}
/* hero (ラフ C 型: ピクセルアートを全面に敷き、窓を重ねる) */
.hero-band{background:var(--sky);border-bottom:3px solid var(--ink);padding:28px 0 40px}
.hero{position:relative;border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink);border-radius:var(--r);overflow:hidden;background:#7ad0ff url(img/hero_pixel.png) right center/cover no-repeat;image-rendering:pixelated;min-height:620px;display:flex;align-items:flex-start}
.hero .bg-m{display:none}
.win{background:rgba(255,255,255,.97);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:var(--r);padding:28px 30px;max-width:580px;margin:36px}
.winbar{display:flex;gap:6px;margin-bottom:16px}.winbar i{width:12px;height:12px;background:var(--ink);display:block;border-radius:2px}.winbar i:nth-child(2){background:var(--orange)}.winbar i:nth-child(3){background:var(--grass)}
.eyebrow{font-family:"Press Start 2P",monospace;font-size:10px;color:var(--deep);margin:0 0 14px}
h1{font-size:36px;line-height:1.2;margin:0 0 14px;font-weight:800;letter-spacing:-.01em}
.lead{font-size:15px;color:var(--ink2);margin:0 0 18px}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.badges span{font-family:"Press Start 2P",monospace;font-size:9px;background:var(--yellow);border:3px solid var(--ink);padding:8px 10px;border-radius:3px}
html[lang=ja] .badges span{font-family:"Noto Sans JP",Inter,sans-serif;font-size:12px;font-weight:700;padding:7px 10px}
.ctas{display:flex;gap:14px;flex-wrap:wrap}.ctas .btn{font-family:"Press Start 2P",monospace;font-size:11px;padding:14px 18px;border-width:4px;box-shadow:5px 5px 0 var(--ink)}
/* stage numbers */
.stage{display:grid;grid-template-columns:repeat(4,1fr);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);background:#fff;border-radius:var(--r);margin:28px auto 0;position:relative;z-index:2}
.stage div{padding:20px 18px;border-right:3px solid var(--ink)}.stage div:last-child{border:0}.stage small{font-family:"Press Start 2P",monospace;font-size:9px;color:var(--deep);display:block;margin-bottom:8px}.stage b{display:block;font-size:34px;font-weight:800;line-height:1}.stage span{font-size:12px;color:var(--muted)}
/* sections */
section{padding:72px 0}section.paper{background:var(--paper)}section.sky{background:var(--sky)}section.tight{padding:48px 0}
h2{font-size:30px;line-height:1.25;font-weight:800;margin:0 0 10px;letter-spacing:-.01em}h2 + .sub{margin:0 0 30px;color:var(--muted);font-size:15px}
.eyebrow.s{margin-bottom:10px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}.grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.card{background:#fff;border:2px solid var(--ink);border-radius:var(--r);padding:22px;box-shadow:4px 4px 0 var(--ink)}.card h3{margin:10px 0 8px;font-size:17px;font-weight:800}.card p{margin:0;font-size:14px;color:var(--ink2)}
.lv{font-family:"Press Start 2P",monospace;font-size:8px;background:var(--grass);display:inline-block;padding:5px 7px;border:2px solid var(--ink);border-radius:3px}
.quest{background:#fff;border:2px solid var(--ink);border-radius:var(--r);padding:16px;font-size:14px;font-weight:600}.quest small{font-family:"Press Start 2P",monospace;font-size:8px;display:block;margin-bottom:10px;color:var(--deep)}.quest.goal{background:var(--yellow)}
.frame{background:#fff;border:2px solid var(--ink);border-radius:var(--r);padding:8px;box-shadow:4px 4px 0 var(--ink)}.frame img{width:100%;aspect-ratio:4/3;object-fit:cover;border:2px solid var(--ink);border-radius:2px}.frame figcaption{font-size:13px;font-weight:700;padding:10px 4px 2px}.frame figcaption small{display:block;font-weight:500;color:var(--muted)}
.makers{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.makers img{height:44px;width:auto;max-width:150px;object-fit:contain;background:#fff;border:2px solid var(--ink);border-radius:var(--r);padding:8px 12px;box-sizing:border-box}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span{font-size:12px;font-weight:600;background:#fff;border:2px solid var(--ink);padding:6px 10px;border-radius:var(--r)}
.photo{border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:var(--r);overflow:hidden}.photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
table.spec{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border:2px solid var(--ink)}table.spec th,table.spec td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top}table.spec th{width:24%;background:var(--paper);font-weight:700}
.prose{max-width:760px;font-size:16px}.prose h2{font-size:24px;margin-top:40px}.prose h3{font-size:18px;margin-top:28px}.prose ul{padding-left:22px}.prose li{margin:6px 0}
.note{background:var(--yellow);border:2px solid var(--ink);border-radius:var(--r);padding:12px 16px;font-size:14px;font-weight:600}
/* forms */
form.f{display:grid;grid-template-columns:1fr 1fr;gap:14px}form.f label{font-size:12px;font-weight:700;color:var(--ink)}form.f input,form.f select,form.f textarea{display:block;width:100%;border:2px solid var(--ink);border-radius:var(--r);padding:11px 12px;font:inherit;font-size:14px;margin-top:6px;background:#fff}form.f textarea{min-height:120px}form.f .full{grid-column:1/-1}
/* footer */
.site-footer{background:var(--ink);color:#dfe6f3;padding:44px 0 30px;font-size:13px;margin-top:0}.site-footer a{color:#fff}.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px;margin-bottom:26px}.site-footer h4{margin:0 0 10px;font-size:13px;color:#fff}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:5px 0}.site-footer .fine{border-top:1px solid #35416a;padding-top:16px;color:#9fb0cf;font-size:12px}
/* blog list */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.posts .card time{font-size:12px;color:var(--muted)}
@media(max-width:1150px){.nav a{font-size:13px;padding:8px 9px}.site-header .wrap{gap:10px}.brand span{display:none}.nav .btn.sm{display:none}}
@media(max-width:860px){.hero{background:#7ad0ff;min-height:0;display:block}.hero .bg-m{display:block;width:100%;height:auto;border-bottom:3px solid var(--ink)}.win{margin:0;max-width:none;border:0;box-shadow:none;border-radius:0;padding:22px 20px}.hero-band{padding:20px 0 32px}.stage{margin-top:20px}.stage,.grid4,.grid3,.grid2,.grid5,.posts,form.f,.site-footer .cols{grid-template-columns:1fr}.stage div{border-right:0;border-bottom:3px solid var(--ink)}.stage div:last-child{border:0}.nav{display:none}.nav.open{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:72px;background:#fff;border-bottom:3px solid var(--ink);padding:10px 16px}.menu-btn{display:block}h1{font-size:30px}h2{font-size:24px}section{padding:52px 0}.win{padding:22px}}

.article{font-size:16px;line-height:1.8}.article>p:first-child em{color:var(--muted);font-size:14px}.article hr{border:0;border-top:2px solid var(--line);margin:28px 0}.article table{width:100%;border-collapse:collapse;font-size:14px;background:#fff;border:2px solid var(--ink);margin:18px 0;display:block;overflow-x:auto}.article th,.article td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}.article th{background:var(--paper);font-weight:700;white-space:nowrap}.article ol{padding-left:24px}.article li{margin:6px 0}.article h3{font-size:16px}.article a{word-break:break-all}.post-link{display:block;color:inherit;text-decoration:none}.post-link:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}.post-link .more{margin-top:12px;font-weight:700;color:var(--deep)}

.figure{max-width:900px;border:3px solid var(--ink);border-radius:var(--r);overflow:hidden;box-shadow:6px 6px 0 var(--ink);background:#faf8f3}.figure svg{display:block}

.notice{max-width:760px;margin:0 0 16px;padding:12px 16px;background:var(--yellow);border:3px solid var(--ink);border-radius:var(--r);box-shadow:4px 4px 0 var(--ink);font-size:14px;font-weight:700;line-height:1.6}
