:root{color-scheme:light;--ink:#173f36;--paper:#faf7ef;--gold:#e2b657;--muted:#61746c;--line:#d8dfd5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,sans-serif;line-height:1.55}header{display:flex;align-items:center;justify-content:space-between;padding:18px max(20px,env(safe-area-inset-left));border-bottom:1px solid var(--line);max-width:1100px;margin:auto}header a{text-decoration:none;color:var(--ink);font-size:22px;font-weight:800}select{background:transparent;color:var(--ink);padding:9px;border:1px solid var(--line);border-radius:20px;font-size:16px}main{max-width:760px;margin:auto;padding:26px 20px 40px}h1,h2{line-height:1.1;letter-spacing:-.035em}h1{font-size:clamp(36px,8vw,60px);margin:14px 0 20px}h2{font-size:30px}p{margin:14px 0}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:800;color:var(--muted)}.hero{position:relative;border-radius:24px;overflow:hidden;background:var(--ink);aspect-ratio:4/3;margin:0 0 26px}.hero img{width:100%;height:100%;object-fit:cover}.hero:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#173f36bb)}.hero span{position:absolute;bottom:20px;left:22px;color:white;font-weight:600;z-index:1}.card{background:white;border:1px solid var(--line);padding:22px;border-radius:22px;margin:18px 0}.notice{border-left:4px solid var(--gold);background:#f3e9cc;padding:14px 18px;border-radius:12px}.muted{color:var(--muted);font-size:14px}label{display:block;font-weight:700;margin:12px 0 6px}input[type=text]{width:100%;padding:16px;border:1px solid #a7b7ac;border-radius:12px;font:inherit;font-size:18px;background:white;color:var(--ink)}button,.button{border:0;cursor:pointer;background:var(--ink);color:white;padding:15px 20px;min-height:48px;border-radius:14px;font:inherit;font-weight:700;display:inline-block;text-align:center;text-decoration:none}button:disabled{opacity:.5;cursor:wait}.secondary{background:#e6ece5;color:var(--ink)}.gold{background:var(--gold);color:var(--ink)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.actions>*{flex:1}.wide{width:100%}.reference{width:100%;max-height:58vh;object-fit:contain;background:#e6e9e0;border-radius:18px;display:block}.progress{height:7px;background:#e0e6db;border-radius:8px;overflow:hidden;margin:14px 0 24px}.progress div{height:100%;background:var(--gold)}.meta{display:flex;justify-content:space-between;gap:12px;font-size:14px}.compare,.gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px}.compare img,.gallery img{width:100%;height:210px;object-fit:contain;background:#eef0e9;border-radius:14px}figure{margin:0}figcaption{font-size:13px;color:var(--muted);padding:6px 0}.success{font-size:48px}.stats{display:flex;justify-content:space-around;text-align:center}.stats strong{display:block;font-size:27px}details{margin:16px 0}summary{cursor:pointer;font-weight:700;padding:12px 0}ol{padding-left:24px}li{margin:10px 0}footer{text-align:center;color:var(--muted);font-size:12px;padding:20px 20px max(24px,env(safe-area-inset-bottom))}#status{margin:16px 0;white-space:pre-line}.error{color:#92372b}a{color:var(--ink)}:focus-visible{outline:3px solid #b77d21;outline-offset:4px}.hidden{display:none}.download{font-size:13px;padding:8px;min-height:44px}.timer{font-variant-numeric:tabular-nums}@media(min-width:700px){main{padding-top:40px}.hero{aspect-ratio:16/8}.compare img,.gallery img{height:290px}}@media(prefers-reduced-motion:no-preference){button{transition:transform .15s}button:active{transform:scale(.98)}}

.mission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.mission-tile{padding:0;background:white;color:var(--ink);border:1px solid var(--line);text-align:left;overflow:hidden;display:flex;flex-direction:column}.mission-tile img{width:100%;height:160px;object-fit:cover}.mission-tile span{padding:10px 12px 4px;font-size:14px}.mission-tile small{padding:0 12px 12px;font-weight:500}.mission-tile.done{border:2px solid var(--ink)}.mission-tile.done small{font-weight:800}.stats{flex-wrap:wrap;gap:16px}@media(min-width:700px){.mission-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.village-map{margin:1.5rem 0}.map-image{position:relative}.map-image .reference{display:block;width:100%;height:auto;margin:0}.map-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:.45rem .65rem;border-radius:.5rem;background:rgba(255,255,255,.92);color:#183a39;font-size:clamp(.95rem,4vw,1.35rem);font-weight:800;white-space:nowrap;box-shadow:0 2px 8px #0003}.village-map figcaption{text-align:center;margin-top:.5rem}

dialog{max-width:min(90vw,620px);max-height:85vh;overflow:auto;border:0;border-radius:18px;padding:1.5rem}dialog::backdrop{background:#0008}.upload-label{display:block;margin-bottom:.6rem}#upload-photo{max-width:100%}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.6rem;border-bottom:1px solid #ccc}
.game-tile{min-width:0}.game-tile img{height:auto;aspect-ratio:4/3;object-fit:cover}.game-tile span{font-size:18px;overflow-wrap:anywhere}

.game-copy{white-space:pre-wrap}.game-story h2{font-size:28px}
.portal-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem;margin:1.5rem 0}.portal-actions button{width:100%;min-height:64px}#catalog-search{margin-bottom:1rem}#notification-dialog{width:min(90vw,520px)}#notification-dialog p{white-space:pre-wrap;overflow-wrap:anywhere}#notification-dialog button{width:100%;margin-top:1rem}#admin-language{max-width:160px;margin-left:auto}#admin form label,#app form label{display:block;margin-bottom:1rem}#admin .card textarea{width:100%}

header{flex-wrap:wrap;gap:12px}#home-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 0 auto}#home-nav button{width:auto;min-height:44px;padding:10px 14px;font-size:14px}@media(max-width:850px){#home-nav{flex-basis:100%;margin:0;justify-content:center}}
