:root{font:16px/1.45 "Nunito Sans",system-ui,sans-serif;color:#293447;background:#f7efdc;color-scheme:light;--ink:#293447;--cream:#fff8e8;--teal:#227b7d;--terracotta:#a74e32}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 0%,#f9dcae80,transparent 60%),#f7efdc}button,input,select{font:inherit}button,select{min-height:44px;padding:9px 15px;border:1.5px solid #ac9c80;border-radius:10px;color:var(--ink);background:#fff9ea}button{cursor:pointer;font-weight:750;line-height:1.25}button:hover{background:#f1e2c6}button.primary{background:var(--teal);color:#fff;border-color:var(--teal);box-shadow:0 3px 0 #185758}button.primary:hover{background:#1d686b}button:disabled{opacity:.5;cursor:default;box-shadow:none}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,#stage:focus-visible{outline:3px solid #c06c32;outline-offset:3px}h1,h2,h3,p{overflow-wrap:anywhere}h1{font-family:Georgia,serif;font-size:clamp(2rem,5vw,4rem);line-height:1.03;margin:.4em 0;color:#344a61}h2{font-family:Georgia,serif;font-size:1.5rem;margin:.2em 0 .6em}p{margin:.6em 0}.small{font-size:.86rem;color:#56606a}.kicker{font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--terracotta)}[hidden]{display:none!important}#home{max-width:1150px;margin:auto;padding:clamp(12px,3vw,32px)}.homeHeader{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.clubMark{font-size:2.3rem;color:var(--terracotta)}nav,.actions{display:flex;gap:9px;flex-wrap:wrap}nav{justify-content:flex-end}nav button{font-size:.9rem}.hero{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr);gap:28px;align-items:center;margin-bottom:30px}.heroCopy>p{max-width:40em}.cover{width:100%;height:auto;border-radius:16px;border:5px solid #fff8e5;box-shadow:0 14px 25px #5a442b20}.route{margin-top:22px}#tourMap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.rivalCard{background:var(--cream);border:1.5px solid #c6b493;border-radius:14px;overflow:hidden;display:flex;flex-direction:column}.rivalCard img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.rivalCopy{padding:13px;display:flex;flex-direction:column;gap:6px;flex:1}.rivalCopy p{font-size:.9rem;flex:1}.rivalCopy h3{font-size:1.05rem;margin:0}.rivalCopy small{color:var(--terracotta);font-weight:700}.rivalCard button{width:100%}.rivalCard.locked img{filter:grayscale(.8);opacity:.65}.matchSetup,.practiceSetup{margin-top:18px;padding:12px 16px;background:#fff8e8;border:1.5px solid #d0bea0;border-radius:12px}summary{font-weight:800;cursor:pointer;min-height:44px;padding:10px 0}.setupRow{display:flex;gap:10px;flex-wrap:wrap;align-items:end;padding:8px 0}label{display:flex;flex-direction:column;gap:5px;min-width:0}.setupRow label{flex:1 1 170px}select{width:100%;max-width:100%}#notice,#boot,#gameNotice{font-size:.9rem;color:#765326}#game{max-width:1040px;margin:auto;padding:10px max(10px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:linear-gradient(#f7efdcf5,#f7efdcdf),url('assets/rooftop.webp') center/cover fixed;min-height:100dvh}.gameHeader{display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:0;padding:8px 0;background:#f7efdcf5;z-index:3}.gameHeader strong{font-size:1.05rem}.hud{display:flex;gap:10px;flex-wrap:wrap;font-size:.86rem}.pause{flex:none;align-self:start;min-width:80px}.playLayout{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}#turn{font-weight:750;min-height:1.45em;margin:2px 0 6px}#stage{width:100%;max-width:min(100%,620px);aspect-ratio:1;margin:auto;touch-action:none;user-select:none;border-radius:8px;overflow:hidden}canvas,svg{display:block;width:100%;height:100%}.shotPanel{max-width:650px;width:100%;margin:auto}.coinCounts{display:flex;gap:14px;justify-content:center;font-size:.85rem}#queenStatus{margin:0 0 3px;text-align:center;font-size:.9rem}.controlRow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:9px 0}.controlRow label{font-weight:750;font-size:.85rem}.controlRow input{width:100%;margin:0;min-height:44px;accent-color:var(--teal);cursor:pointer}.controlRow output{font-weight:500;font-variant-numeric:tabular-nums;text-align:center;color:#59616a;font-size:.9em}#shoot{width:100%;font-size:1.05rem}#shotHint{text-align:center;margin:7px 0}#feedback{min-height:1.45em;text-align:center;font-size:.9rem}dialog{background:var(--cream);color:var(--ink);border:2px solid #ac8b65;border-radius:16px;width:min(620px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:clamp(16px,4vw,28px);overflow-y:auto;box-shadow:0 18px 60px #1b243a40}dialog::backdrop{background:#1b243a95;backdrop-filter:blur(3px)}dialog .actions{margin-top:18px}dialog h2:focus{outline:none}dialog img{max-width:100%;height:auto;border-radius:9px}#postcardGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#postcardGrid figure{margin:0}#postcardGrid img{width:100%;aspect-ratio:3/2;object-fit:cover}#postcardGrid figcaption{font-size:.85rem;font-weight:750;padding:6px 0}.lockedPostcard{aspect-ratio:3/2;background:repeating-linear-gradient(45deg,#e7d9bf,#e7d9bf 8px,#efe5d1 8px,#efe5d1 16px);border:1px dashed #a99476;border-radius:9px;display:grid;place-items:center;color:#6f624e;font-size:2rem}#recordsBody>p{padding:10px 0;border-bottom:1px solid #dac7a6}.toggle{flex-direction:row;align-items:center;min-height:44px;gap:12px;margin:8px 0}.toggle input{width:23px;height:23px;accent-color:var(--teal)}#settings>label:not(.toggle){margin:14px 0}#rules{padding-left:1.4em}#rules li{margin-bottom:13px}#resultMastery{font-size:1.25rem;font-weight:800;color:var(--teal)}#resultPostcard{width:100%;max-height:240px;object-fit:cover}#ending{font-style:italic;color:#874a33}@media(max-width:740px){.hero{grid-template-columns:1fr;gap:18px}.hero .cover{max-height:320px;object-fit:cover}.homeHeader{gap:8px}.homeHeader nav{gap:6px}.homeHeader nav button{padding:8px;font-size:.8rem}#tourMap{grid-template-columns:repeat(2,minmax(0,1fr))}.rivalCopy{padding:10px}.rivalCopy p{font-size:.85rem}}@media(max-width:380px){#tourMap{grid-template-columns:1fr}.controlRow{gap:9px}.controlRow label{font-size:.8rem}.homeHeader .clubMark{display:none}.homeHeader nav{justify-content:start}#postcardGrid{grid-template-columns:1fr}}@media(min-width:800px){#stage{max-width:min(100%,640px)}.playLayout{grid-template-columns:minmax(0,1fr) minmax(220px,.48fr);align-items:center}.controlRow{grid-template-columns:1fr;gap:5px}.shotPanel{padding:10px}#game{padding-top:12px}}@media(orientation:landscape) and (max-height:600px){.playLayout{grid-template-columns:minmax(240px,1fr) minmax(210px,.8fr);align-items:start;gap:12px}#stage{max-width:calc(100dvh - 110px)}.controlRow{grid-template-columns:1fr;gap:0}.controlRow label{display:grid;grid-template-columns:minmax(80px,.8fr) minmax(90px,1fr) 35px;align-items:center;gap:6px}.controlRow input{min-height:44px}.shotPanel{padding:0}#shotHint{font-size:.75rem}#queenStatus{font-size:.8rem}.coinCounts{font-size:.75rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.controlRow .field{min-width:0}.controlRow input[type=number]{width:100%;min-height:44px;padding:5px 8px;border:1px solid #ac9c80;border-radius:7px;color:var(--ink);background:#fff9ea;font-variant-numeric:tabular-nums}.controlRow input[type=range]{min-height:44px}@media(orientation:landscape) and (max-height:600px){.controlRow .field{display:grid;grid-template-columns:minmax(65px,.8fr) minmax(70px,1fr) 60px;gap:6px;align-items:center}.controlRow .field label{display:block}.controlRow input[type=range]{min-height:44px}.controlRow input[type=number]{min-height:44px;padding:3px}}
