:root{--bg:#0f172a;--bg-panel:#1e293b;--bg-panel-2:#283548;--border:#334155;--text:#e2e8f0;--text-dim:#94a3b8;--accent:#34d399;--accent-dark:#059669;--danger:#f87171;--gold:#fbbf24;--radius:10px;font-family:Hiragino Kaku Gothic ProN,Noto Sans JP,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0;line-height:1.7}a{color:var(--accent)}.container{max-width:960px;margin:0 auto;padding:0 16px}.site-header{background:var(--bg-panel);border-bottom:1px solid var(--border);z-index:20;position:sticky;top:0}.site-header .container{flex-wrap:wrap;align-items:center;gap:16px;min-height:56px;display:flex}.site-header__title a{color:var(--text);font-size:1.05rem;font-weight:700;text-decoration:none}.site-nav{flex-wrap:wrap;flex:1;gap:4px;display:flex}.site-nav a{color:var(--text-dim);border-radius:6px;padding:6px 12px;font-size:.95rem;text-decoration:none}.site-nav a:hover{color:var(--text);background:var(--bg-panel-2)}.site-nav a.active{color:var(--accent);background:var(--bg-panel-2)}.lang-switch{border:1px solid var(--border);color:var(--text-dim);border-radius:6px;padding:4px 10px;font-size:.85rem;text-decoration:none}.main{min-height:70vh;padding:24px 0 48px}.site-footer{border-top:1px solid var(--border);color:var(--text-dim);text-align:center;padding:24px 0;font-size:.85rem}.site-footer__links a{color:var(--text-dim)}.page-title{margin:0 0 4px;font-size:1.6rem}.page-tagline{color:var(--text-dim);margin-top:0}.loading{text-align:center;color:var(--text-dim);padding:40px}.btn{background:var(--bg-panel-2);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:9px 16px;font-size:.95rem;transition:filter .15s,transform 50ms;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(1.2)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--accent-dark);border-color:var(--accent);font-weight:700}.btn--danger{border-color:var(--danger);background:#7f1d1d}.btn--ghost{background:0 0}.btn--small{padding:5px 12px;font-size:.85rem}.game-root{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin:16px 0 32px;padding:16px}.game-root--loading{text-align:center;color:var(--text-dim);padding:60px 16px}.notice{color:var(--accent);font-size:.9rem}.notice--error{color:var(--danger)}.notice--inline{margin-left:8px}.intro__title{margin-top:0}.intro__name-label{margin:12px 0;font-weight:600;display:block}.intro__name-input{border:1px solid var(--border);background:var(--bg);width:100%;max-width:320px;color:var(--text);border-radius:8px;margin-top:6px;padding:10px 12px;font-size:1rem;display:block}.intro__starters{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:12px 0 20px;display:grid}.starter-card{background:var(--bg-panel-2);border:2px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:8px;padding:16px;display:flex}.starter-card--selected{border-color:var(--accent);box-shadow:0 0 12px #34d39959}.starter-card__name{font-weight:700}.starter-card__desc{color:var(--text-dim);font-size:.8rem}.mon-sprite{background:var(--bg);border:2px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:30px;display:inline-flex}.mon-sprite--big{width:76px;height:76px;font-size:44px}.mon-sprite--battle{width:84px;height:84px;font-size:50px}.mon-sprite--fainted{filter:grayscale();opacity:.5}.mon-sprite--evolved{animation:.6s pop}@keyframes pop{0%{transform:scale(.3)}70%{transform:scale(1.15)}to{transform:scale(1)}}.type-badge{color:#0f172a;border-radius:4px;margin-right:4px;padding:1px 7px;font-size:.7rem;font-weight:700;display:inline-block}.status-tag{color:#0f172a;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:.68rem;font-weight:700;display:inline-block}.status-tag--poison{background:#c084fc}.status-tag--burn{background:#fb923c}.status-tag--paralysis{background:#fde047}.status-tag--sleep{background:#94a3b8}.hp-bar{background:var(--bg);border:1px solid var(--border);border-radius:4px;height:8px;overflow:hidden}.hp-bar__fill{height:100%;transition:width .5s}.hp-bar__fill--high{background:#4ade80}.hp-bar__fill--mid{background:#facc15}.hp-bar__fill--low{background:#f87171}.mon-card{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);text-align:left;cursor:default;align-items:center;gap:12px;padding:10px 12px;display:flex}button.mon-card{cursor:pointer}.mon-card--selected{border-color:var(--accent)}.mon-card__info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.mon-card__name{font-weight:700}.mon-card__hp{color:var(--text-dim);font-size:.75rem}.hub-status{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:16px;margin-bottom:10px;padding-bottom:10px;font-size:.9rem;display:flex}.hub-status__name{font-weight:700}.hub-tabs{flex-wrap:wrap;gap:4px;margin-bottom:14px;display:flex}.hub-tab{color:var(--text-dim);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:.85rem}.hub-tab--active{color:#0f172a;background:var(--accent);border-color:var(--accent);font-weight:700}.hub-content__map-link{margin-bottom:8px}.overworld__header{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:8px;display:flex}.overworld__area{font-size:1.05rem;font-weight:700}.overworld__hint{color:var(--text-dim);font-size:.75rem}.overworld__notice{margin:0 0 8px}.overworld__viewport{border:2px solid var(--border);border-radius:var(--radius);-webkit-user-select:none;user-select:none;background:#d9c8a3;width:100%;max-width:720px;margin:0 auto;position:relative;overflow:hidden}.overworld__row{display:flex}.tile{aspect-ratio:1;flex:1 1 0;justify-content:center;align-items:center;font-size:clamp(9px,2.9vw,24px);line-height:1;display:flex}.tile--path{background:#d9c8a3}.tile--g{background:#3f9e4d linear-gradient(45deg,#00000014 25%,#0000 25% 75%,#00000014 75%) 0 0/8px 8px}.tile--f{background:#b7d077}.tile--T{background:#2e7d3a}.tile--r{background:#cdbb95}.tile--water{background:#3a7bd5 linear-gradient(#0000 50%,#ffffff1a 50%) 0 0/100% 10px}.tile--h{background:#c9b287}.tile--H,.tile--S,.tile--G,.tile--L{background:#e7d9b0;box-shadow:inset 0 0 0 2px #fbbf248c}.overworld__player,.overworld__npc{pointer-events:none;justify-content:center;align-items:center;width:5.55556%;height:8.33333%;font-size:clamp(9px,2.9vw,24px);line-height:1;transition:left .12s linear,top .12s linear;display:flex;position:absolute}.overworld__player{z-index:3;filter:drop-shadow(0 2px 2px #00000073)}.overworld__npc{z-index:2}.overworld__npc--defeated{opacity:.45;filter:grayscale(.8)}.dpad{grid-template-rows:48px 48px;grid-template-columns:56px 56px 56px;justify-content:center;gap:4px;margin-top:12px;display:grid}.dpad__btn{background:var(--bg-panel-2);color:var(--text);border:1px solid var(--border);cursor:pointer;touch-action:manipulation;border-radius:8px;font-size:1.1rem}.dpad__btn:active{background:var(--accent-dark)}.dpad__btn--up{grid-area:1/2}.dpad__btn--left{grid-area:2/1}.dpad__btn--down{grid-area:2/2}.dpad__btn--right{grid-area:2/3}.map-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.map-item{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;padding:10px 14px;display:flex}.map-item--locked{opacity:.55}.map-item__icon{font-size:1.5rem}.map-item__info{flex-direction:column;flex:1;display:flex}.map-item__name{font-weight:700}.map-item__current{color:#0f172a;background:var(--gold);border-radius:4px;margin-left:8px;padding:1px 6px;font-size:.7rem}.map-item__desc{color:var(--text-dim);font-size:.8rem}.area-screen__name{margin:0 0 4px}.area-screen__desc{color:var(--text-dim);margin-top:0}.area-screen__actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.area-section{border-top:1px dashed var(--border);margin-top:18px;padding-top:12px}.area-section h3{margin:0 0 8px;font-size:1rem}.area-section--gym{border-radius:var(--radius);background:linear-gradient(135deg,#fbbf2414,#0000);padding:12px}.wild-chip{background:var(--bg);border:1px solid var(--border);border-radius:6px;margin:0 6px 6px 0;padding:3px 8px;font-size:.85rem;display:inline-block}.trainer-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.trainer-row{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:10px;padding:8px 12px;display:flex}.trainer-row__info{flex-direction:column;flex:1;display:flex}.trainer-row__name{font-weight:700}.trainer-row__team{gap:8px;font-size:1.1rem;display:flex}.trainer-row__team small{color:var(--text-dim);font-size:.7rem}.trainer-row__done{color:var(--accent);font-size:.85rem}.party-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.party-item{position:relative}.party-item__lead{background:var(--gold);color:#0f172a;border-radius:4px;padding:0 6px;font-size:.65rem;font-weight:700;position:absolute;top:-6px;left:10px}.box-item{align-items:center;gap:8px;display:flex}.mon-detail{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);margin-top:4px;padding:12px}.mon-detail__desc{color:var(--text-dim);margin-top:0;font-size:.85rem}.mon-detail__stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px;margin:0;display:grid}.mon-detail__stats div{background:var(--bg-panel-2);border-radius:6px;padding:5px 8px}.mon-detail__stats dt{color:var(--text-dim);font-size:.7rem}.mon-detail__stats dd{margin:0;font-weight:700}.mon-detail h4{margin:12px 0 6px}.mon-detail__moves{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.mon-detail__moves li{align-items:center;gap:8px;font-size:.9rem;display:flex}.mon-detail__moves small{color:var(--text-dim)}.mon-detail__actions{align-items:center;gap:8px;margin-top:12px;display:flex}.item-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.item-row{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:10px;padding:8px 12px;display:flex}.item-row__info{flex-direction:column;flex:1;display:flex}.item-row__name{font-weight:600}.item-row__name small{color:var(--text-dim);font-weight:400}.item-row__desc{color:var(--text-dim);font-size:.8rem}.dex-screen__count{font-weight:700}.dex-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.dex-cell{background:var(--bg-panel-2);border:1px solid var(--border);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;display:flex;position:relative}.dex-cell--unknown{opacity:.5}.dex-cell--caught{border-color:var(--accent)}.dex-cell__no{color:var(--text-dim);font-size:.65rem}.dex-cell__emoji{font-size:1.7rem}.dex-cell__name{font-size:.75rem;font-weight:600}.dex-cell__ball{font-size:.7rem;position:absolute;top:4px;right:6px}.code-input{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--border);resize:vertical;border-radius:8px;margin-bottom:8px;padding:10px;font-family:monospace;font-size:.8rem}.arena-opponent{background:var(--bg);border-radius:var(--radius);margin-top:10px;padding:10px 12px}.arena-opponent__team{flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 8px;display:flex}.battle__stage{border-radius:var(--radius);cursor:pointer;background:linear-gradient(#1e3a5f 0%,#14532d 100%);flex-direction:column;gap:12px;min-height:220px;padding:18px;display:flex}.battle__side--enemy{flex-direction:column;align-self:flex-end;align-items:flex-end;display:flex}.battle__side--player{align-self:flex-start}.battle__trainer{color:var(--gold);margin-bottom:4px;font-size:.8rem;font-weight:700}.combatant{border-radius:var(--radius);background:#0f172abf;align-items:center;gap:12px;min-width:240px;padding:10px 14px;display:flex}.combatant__name{margin-bottom:4px;font-weight:700}.combatant__hp{color:var(--text-dim);margin-top:2px;font-size:.75rem}.battle__message{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;min-height:52px;margin:10px 0;padding:12px 16px;font-weight:600}.battle__actions,.battle__submenu{flex-wrap:wrap;gap:8px;display:flex}.battle__submenu{flex-direction:column;align-items:stretch}.battle__move-btn,.battle__switch-btn{justify-content:flex-start}.battle__move-btn small,.battle__switch-btn small{color:var(--text-dim);margin-left:auto}.modal-backdrop{z-index:50;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:440px;max-height:85vh;padding:20px;overflow-y:auto}.modal__title{margin-top:0;font-weight:700}.modal__choices{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.modal--evolution{text-align:center}.evolution-visual{justify-content:center;align-items:center;gap:16px;margin-bottom:8px;display:flex}.seo-section{margin-top:32px}.seo-section h2{border-left:4px solid var(--accent);padding-left:10px;font-size:1.2rem}.faq-list dt{margin-top:14px;font-weight:700}.faq-list dd{color:var(--text-dim);margin:4px 0 0}.guide__section h2{border-left:4px solid var(--accent);padding-left:10px;font-size:1.2rem}.dex-table-wrap{margin:16px 0;overflow-x:auto}.dex-table,.chart-table{border-collapse:collapse;width:100%;font-size:.85rem}.dex-table th,.dex-table td,.chart-table th,.chart-table td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 8px}.dex-table thead th,.chart-table thead th{background:var(--bg-panel)}.dex-table__name{white-space:nowrap;font-weight:600}.dex-table__stats{white-space:nowrap;font-family:monospace}.dex-table__desc{color:var(--text-dim);min-width:200px}.chart-table td{text-align:center}.chart-cell--x2{background:#34d39940;font-weight:700}.chart-cell--xhalf{background:#f8717126}.chart-cell--x0{background:#64748b4d}@media (width<=600px){.combatant{min-width:0}.battle__stage{padding:12px}.mon-sprite--battle{width:64px;height:64px;font-size:38px}}
