.pc2d-viewtoggle{display:inline-flex;gap:4px;border:1px solid rgba(31,42,55,.2);border-radius:999px;padding:3px}
.pc2d-viewtoggle button{min-height:44px;min-width:44px;padding:0 14px;border:0;border-radius:999px;background:transparent;font:inherit;cursor:pointer}
.pc2d-viewtoggle button[aria-pressed="true"]{background:#1f2a37;color:#fff}
.pc2d,.pc2d-title-screen{display:none}
body.pc2d-on .pc2d{display:block;margin:0 0 16px}
body.pc2d-on .pc2d[hidden]{display:none}
.pc2d-stage{position:relative}
.pc2d canvas{display:block;width:100%;height:auto;aspect-ratio:8/5;border-radius:18px;background:#f7f3ea;touch-action:none;box-shadow:0 2px 0 rgba(0,0,0,.06)}
.pc2d canvas:focus-visible{outline:4px solid #2563eb;outline-offset:3px}
.pc2d-help{margin:8px 2px 0;font-size:.9rem;opacity:.85}
.pc2d-textlink{margin:6px 0 0}
.pc2d-linkbtn{min-height:44px;padding:0 12px;border:1px solid rgba(31,42,55,.25);border-radius:999px;background:#fff;font:inherit;cursor:pointer}
.pc2d-pad{display:none;grid-template-areas:". up ." "left ok right" ". down .";grid-template-columns:repeat(3,48px);gap:6px;justify-content:center;margin-top:10px}
.pc2d-pad button{min-width:48px;min-height:48px;border-radius:12px;border:1px solid rgba(31,42,55,.25);background:#fff;font-size:18px;cursor:pointer}
.pc2d-pad [data-dir=up]{grid-area:up}.pc2d-pad [data-dir=left]{grid-area:left}.pc2d-pad [data-dir=ok]{grid-area:ok}.pc2d-pad [data-dir=right]{grid-area:right}.pc2d-pad [data-dir=down]{grid-area:down}
@media (pointer:coarse),(max-width:720px){.pc2d-pad{display:grid}.pc2d-help{font-size:.82rem}}
/* 2D mode: gameplay lives in the canvas; text panels are available via "Show text panels" or List view */
body.pc2d-on:not(.pc2d-showtext) #pcPlayWrap>.pc-stats,body.pc2d-on:not(.pc2d-showtext) #pcNeedsWrap,body.pc2d-on:not(.pc2d-showtext) #pcResultWrap,body.pc2d-on:not(.pc2d-showtext) #pcPlayWrap>.pc-layout,body.pc2d-on:not(.pc2d-showtext) #pcActionsWrap{display:none}
body.pc2d-on .pc-map-panel{display:none}
body.pc2d-titling #pcPlayWrap,body.pc2d-titling #pcSetupWrap,body.pc2d-titling #pcGateWrap{display:none}
/* Title screen */
body.pc2d-on .pc2d-title-screen{display:block;position:relative;margin:0 0 16px}
body.pc2d-on .pc2d-title-screen[hidden]{display:none}
.pc2d-title-screen canvas{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:20px;background:#cfe8f5}
.pc2d-title-ui{position:absolute;left:0;right:0;bottom:6%;display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 12px}
.pc2d-title-buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.pc2d-tbtn{min-height:48px;min-width:140px;padding:0 22px;border-radius:999px;border:2px solid #1d2b6b;background:#fff;color:#1d2b6b;font:inherit;font-weight:700;font-size:1.05rem;cursor:pointer;box-shadow:0 4px 0 rgba(29,43,107,.25)}
.pc2d-tbtn.primary{background:#1d2b6b;color:#fff}
.pc2d-tbtn:focus-visible{outline:4px solid #f59e0b;outline-offset:3px}
.pc2d-howto{background:rgba(255,255,255,.96);border-radius:16px;padding:12px 18px;max-width:620px;box-shadow:0 6px 20px rgba(0,0,0,.12)}
.pc2d-howto h3{margin:0 0 6px}.pc2d-howto ul{margin:0;padding-left:18px}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Visual onboarding (setup form restyled, same controls) */
body.pc2d-on #pcSetupWrap .pc-setup{position:relative;background:linear-gradient(rgba(246,241,230,.86),rgba(246,241,230,.94)),url(/v2d-assets/place_harbor.webp) center top/cover no-repeat;border-radius:20px;padding:24px 24px 24px 220px;overflow:hidden}
body.pc2d-on #pcSetupWrap .pc-setup::before{content:"";position:absolute;left:24px;bottom:0;width:170px;height:420px;background:url(/v2d-assets/wardrobe_1.webp) center bottom/contain no-repeat}
body.pc2d-on #pcSetupWrap .pc-avatar{background:#fff 12px center/48px 48px no-repeat;padding-left:70px;min-height:64px;border-radius:16px;text-align:left}
body.pc2d-on #pcSetupWrap .pc-avatar.selected,body.pc2d-on #pcSetupWrap .pc-avatar[aria-pressed="true"]{outline:3px solid #1d2b6b}
body.pc2d-on #pcSetupWrap h2{font-size:2rem;color:#1d2b6b}
@media (max-width:720px){body.pc2d-on #pcSetupWrap .pc-setup{padding:170px 16px 16px}body.pc2d-on #pcSetupWrap .pc-setup::before{left:50%;transform:translateX(-50%);top:8px;bottom:auto;width:90px;height:150px}}
@media (prefers-reduced-motion:reduce){.pc2d *,.pc2d-title-screen *{transition:none!important;animation:none!important}}
@media (max-width:720px){.pc2d-title-ui{position:static;margin-top:12px}.pc2d-tbtn{min-width:120px}}

body.pc2d-on #pcSetupWrap .pc-avatar[data-avatar="mara"]{background-image:url(/v2d-assets/p_av_mara.webp)}
body.pc2d-on #pcSetupWrap .pc-avatar[data-avatar="rio"]{background-image:url(/v2d-assets/p_av_rio.webp)}
body.pc2d-on #pcSetupWrap .pc-avatar[data-avatar="jules"]{background-image:url(/v2d-assets/p_av_jules.webp)}
body.pc2d-on #pcSetupWrap .pc-avatar[data-avatar="sol"]{background-image:url(/v2d-assets/p_av_sol.webp)}
body.pc2d-on #pcSetupWrap .pc-avatar>span{display:none}
body.pc2d-on #pcSetupWrap .pc-setup::before{background-image:url(/v2d-assets/av_mara.webp)}
body.pc2d-on #pcSetupWrap .pc-setup:has([data-avatar="rio"][aria-pressed="true"])::before{background-image:url(/v2d-assets/wardrobe_1.webp)}
body.pc2d-on #pcSetupWrap .pc-setup:has([data-avatar="jules"][aria-pressed="true"])::before{background-image:url(/v2d-assets/av_jules.webp)}
body.pc2d-on #pcSetupWrap .pc-setup:has([data-avatar="sol"][aria-pressed="true"])::before{background-image:url(/v2d-assets/av_sol.webp)}
body.pc2d-on #pcSetupWrap .pc-avatar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
