:root{font-family:system-ui,sans-serif;color:#263144;background:#e9e1ca}html{font-size:16px}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% 0%,#fff6db,#d6e3d7 75%)}header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:.8rem max(1rem,calc((100vw - 800px)/2));background:#223f4b;color:#fff9e8;box-shadow:0 3px 12px #17303b44}header strong{font-family:Georgia,serif;font-size:1.3rem;letter-spacing:.03em}#stats{font-weight:600}#game{width:min(calc(100% - 1rem),800px);margin:1rem auto;overflow:hidden;border:5px solid #866d4f;border-radius:.8rem;box-shadow:0 12px 28px #293d4766}#game canvas{display:block}#panel{width:min(calc(100% - 1rem),800px);min-height:5rem;margin:1rem auto 2rem;padding:1.15rem 1.35rem;background:linear-gradient(150deg,#fffdf5,#f5edda);border:2px solid #b89966;border-radius:.8rem;box-shadow:0 4px 16px #6d5c3926;line-height:1.55}#panel h2{font-family:Georgia,serif;margin:.6rem 0 1rem}#panel h3{font-family:Georgia,serif;color:#284c56}#panel .question{padding:.9rem 1rem;border-left:4px solid #af8752;background:#fffaf0;border-radius:.35rem;white-space:pre-line}#panel .answer-choice{display:block;width:100%;margin:.4rem 0;padding:.8rem 1rem;text-align:left;background:#f7f4eb;border:2px solid #9aaeb0;color:#203845;font-size:1rem;line-height:1.4}#panel .answer-choice:hover{background:#e2f0e9;border-color:#315c73}#panel .result-success{padding:.65rem .8rem;background:#e3f2e5;border-left:4px solid #3c7855}#panel .result-review{padding:.65rem .8rem;background:#fff1dc;border-left:4px solid #a86b22}button{padding:.7rem 1rem;margin:.3rem;border:0;border-radius:.5rem;color:#fff;background:#315c73;font-weight:700;cursor:pointer}button:hover{background:#244a5e}button:disabled{opacity:.5;cursor:default}button:focus-visible{outline:3px solid #f5b739;outline-offset:2px}input:focus-visible,select:focus-visible{outline:3px solid #bc7830;outline-offset:2px}.login{max-width:420px;margin:10vh auto;padding:2rem;background:#fffaf0;border:1px solid #d2b987;border-radius:.8rem;box-shadow:0 12px 28px #293d4733}.login h1{font-family:Georgia,serif;color:#244a5e}label{display:block;margin:1rem 0}input,select{display:block;width:100%;padding:.7rem;border:1px solid #a7a59b;border-radius:.4rem;font:inherit;background:#fff}.question{font-family:Georgia,serif;font-size:clamp(1.15rem,3vw,1.5rem);font-weight:700;line-height:1.4}.subject-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.45rem}.subject-list button{text-align:left;min-height:4.3rem}.subject-list small{display:block;margin-top:.3rem;font-weight:400;color:#e8f4f0}.shop-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:.8rem 0}.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;margin-top:.8rem}.shop-card{padding:.8rem;border:2px solid var(--rarity, #89919a);border-radius:.7rem;background:#fffdf8;box-shadow:0 3px 10px #26314418}.shop-card h3{margin:.25rem 0;font-family:Georgia,serif}.shop-card p{margin:.35rem 0;line-height:1.35}.shop-meta{font-weight:700;color:var(--rarity, #68717c)}.shop-status{font-size:.9rem;padding:.3rem .5rem;border-radius:.35rem;background:#f2efe6}.shop-status.is-equipped{background:#d9eee1;color:#185b38;font-weight:750}.shop-status.is-owned{background:#e6edf5;color:#254c72;font-weight:650}.shop-visual{font-size:.85rem;color:#4b5663}.shop-actions{display:flex;flex-wrap:wrap;gap:.2rem}.shop-actions button{font-size:.88rem;margin:.2rem 0}.shop-icon{width:88px;height:88px;margin:0 auto .5rem;background-image:url(/assets/shop-icons-v1.png);background-size:400% 400%;background-repeat:no-repeat}.rarity-common{--rarity: #68717c}.rarity-rare{--rarity: #2677bd}.rarity-epic{--rarity: #8544be}.rarity-legendary{--rarity: #a87508}.rarity-mythic{--rarity: #c83782}@media(max-width:600px){header{justify-content:center;text-align:center}#panel button{min-height:44px}#game{margin-top:.5rem}}@media(max-width:600px){.shop-filters{grid-template-columns:1fr}}.message{color:#a02b2b}#mission-strip{display:block;width:min(calc(100% - 1rem),800px);margin:-.4rem auto 0;padding:.65rem 1rem;background:#e6d9ad;color:#37434b;border-radius:.55rem;font-weight:650;text-align:left}#mission-strip:hover{background:#dcc992}#adventure-strip{display:block;width:min(calc(100% - 1rem),800px);margin:.8rem auto -.2rem;padding:.65rem 1rem;background:#dce9d8;color:#244c3d;border:1px solid #a6c2a6;border-radius:.55rem;font-weight:650;text-align:left}#adventure-strip:hover{background:#c9dfc8}.quest-card{padding:.8rem 1rem;margin:.7rem 0;background:#fffdf7;border:1px solid #d8cba7;border-radius:.65rem}.quest-card h4{margin:.1rem 0 .45rem;font-family:Georgia,serif;font-size:1.05rem}.quest-card p{margin:.35rem 0}.quest-card progress{display:block;width:100%;height:1rem;accent-color:#487760}.quest-reward{font-weight:700;color:#45644b}.quest-notice{padding:.7rem;background:#e1f2df;border-radius:.4rem}.album-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:.75rem;margin:.8rem 0}.album-card{min-height:195px;padding:.8rem;border:2px solid var(--rarity, #89919a);border-radius:.65rem;background:#fffdf6;box-shadow:0 3px 9px #26314418}.album-card h3{font-family:Georgia,serif;font-size:1.05rem;margin:.3rem 0}.album-card p{font-size:.9rem;line-height:1.35}.album-card.is-locked{background:#e8e5dc;color:#4c5560;border-style:dashed}.album-placeholder{width:62px;height:62px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--rarity, #889) 30%,white);font-size:2.2rem;color:var(--rarity, #678)}.album-card.is-locked .album-placeholder{background:#c8c8c5;color:#5b6264}@media(prefers-reduced-motion:no-preference){.album-card.is-new{animation:card-reveal .65s ease-out both}}@keyframes card-reveal{0%{opacity:.3;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.npc-portrait{float:left;width:64px;height:80px;margin:0 1rem .5rem 0;object-fit:contain;border-radius:.45rem;background:#dce9d6}.adventure-dialogue{font-family:Georgia,serif;font-size:1.1rem;line-height:1.5;min-height:4.5rem}#panel progress{display:block;width:100%;height:1rem;accent-color:#628c70}#touch-controls{display:none;width:min(calc(100% - 1rem),800px);margin:-.4rem auto .6rem;align-items:center;justify-content:space-between;gap:1rem}.touch-pad{display:grid;grid-template-columns:repeat(3,3.25rem);grid-template-rows:repeat(2,3.25rem);gap:.15rem}.touch-pad button{margin:0;padding:0;font-size:1.5rem;touch-action:none;-webkit-user-select:none;user-select:none}.touch-pad [data-direction=up]{grid-column:2;grid-row:1}.touch-pad [data-direction=left]{grid-column:1;grid-row:2}.touch-pad [data-direction=down]{grid-column:2;grid-row:2}.touch-pad [data-direction=right]{grid-column:3;grid-row:2}#touch-action{min-height:3.25rem}@media(hover:none),(pointer:coarse){#touch-controls{display:flex}.panel-open #touch-controls{display:none}}@media(max-width:600px){header{gap:.35rem;padding:.7rem}header button{padding:.55rem .65rem;margin:.12rem}#panel{padding:.9rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.wardrobe-preview{display:flex;align-items:center;gap:1rem;padding:.7rem;background:#e7eadc;border-radius:.6rem}.hero-preview{flex:0 0 104px;width:104px;height:105px;background:#d4e6df url(/assets/hero-walk-v1.png) 0 0 / 400% 400% no-repeat;border:2px solid #7f9b92;border-radius:.5rem}.outfit-form{display:flex;flex-wrap:wrap;align-items:end;gap:.5rem}.outfit-form label{flex:1 1 220px;margin:.4rem 0}.outfit-card{padding:.7rem .8rem;margin:.6rem 0;background:#fffdf6;border:1px solid #b8a782;border-radius:.55rem}.outfit-card h4{font-family:Georgia,serif;margin:.1rem 0 .4rem}.outfit-card p{margin:.3rem 0}.look-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem;margin:1rem 0}.look-choice{display:grid;justify-items:center;gap:.45rem;margin:0;padding:.7rem;background:#f5f0e3;border:2px solid #a99876;color:#263144;font:inherit}.look-choice[aria-pressed=true]{border-color:#235d4c;box-shadow:0 0 0 2px #9bceb9;background:#e3f0e9}.look-choice:hover{background:#e5eee6}.look-directions{display:flex;flex-wrap:wrap;gap:.25rem}
