:root{--paper: #f4efe4;--paper-deep: #ebe3d3;--ink: #241c14;--muted: #7a6e60;--line: #d3c7b4;--county-empty: #e7dece;--county-revealed: #c9bba6;--ocean: #d9e4dc;--card: #fffaf1;--leinster: #2f6b4f;--munster: #c56a1a;--connacht: #1d5a8a;--ulster: #b42318;--shadow: 0 18px 50px rgba(48, 32, 16, .12);color:var(--ink);font-family:Nunito,sans-serif;background:radial-gradient(1200px 700px at 50% -10%,#fffaf2 0%,var(--paper) 55%,#e8dfcf 100%)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{min-height:100dvh}button,input{font:inherit}.app{width:min(1120px,calc(100% - 28px));margin:0 auto;padding:22px 0 28px;display:grid;gap:16px}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.eyebrow{margin:0;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:800}h1{margin:0;font-family:Fraunces,serif;font-size:clamp(2.1rem,5vw,3.3rem);font-weight:700;letter-spacing:.04em;text-align:center}.icon-btn{justify-self:end;width:38px;height:38px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stats div{background:color-mix(in srgb,var(--card) 86%,white);border:1px solid var(--line);border-radius:16px;padding:10px 12px 8px;text-align:center}.stats span{display:block;font-family:Fraunces,serif;font-size:1.45rem;line-height:1.1}.stats small{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;font-weight:800}.stage{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:18px;align-items:stretch}.map-wrap{background:radial-gradient(circle at 50% 42%,#eef4ee 0%,var(--ocean) 70%);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);min-height:62vh;overflow:hidden}#map{display:block;width:100%;height:100%;min-height:62vh}.ocean{fill:transparent}.county{fill-rule:evenodd;stroke:#b9ab96;stroke-width:1.1;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .28s ease,stroke .28s ease,filter .28s ease}.county.found{stroke:#2b2118;stroke-width:1.25}.county.just-found{filter:brightness(1.12)}.county.revealed{stroke:#8c7d6a}.county-label{font-family:Nunito,sans-serif;font-size:11px;font-weight:800;fill:#fffaf1;text-anchor:middle;dominant-baseline:middle;pointer-events:none;opacity:0;paint-order:stroke;stroke:#140c0859;stroke-width:2.5}.county-label.compact{font-size:9px}.county-label.visible{opacity:1}.county-label.missed{fill:#4a3d30;stroke:#f4efe4b3}.rail{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:16px 14px;display:flex;flex-direction:column;min-height:62vh}.rail h2{margin:0 0 10px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}#found-list{list-style:none;margin:0;padding:0;overflow:auto;flex:1;display:grid;gap:6px;align-content:start}#found-list li{display:flex;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:10px;background:var(--paper-deep);font-size:.92rem}#found-list li em{font-style:normal;color:var(--muted);font-size:.78rem}#found-list li[data-province=Leinster] span{color:var(--leinster)}#found-list li[data-province=Munster] span{color:var(--munster)}#found-list li[data-province=Connacht] span{color:var(--connacht)}#found-list li[data-province=Ulster] span{color:var(--ulster)}.legend{margin:12px 0 0;color:var(--muted);font-size:.78rem;display:grid;grid-template-columns:12px 1fr 12px 1fr;gap:6px 8px;align-items:center}.swatch{width:10px;height:10px;border-radius:999px}.swatch.leinster{background:var(--leinster)}.swatch.munster{background:var(--munster)}.swatch.connacht{background:var(--connacht)}.swatch.ulster{background:var(--ulster)}.dock{display:grid;gap:10px}#status{margin:0;min-height:1.4em;text-align:center;color:var(--muted)}#status[data-kind=ok]{color:var(--leinster)}#status[data-kind=bad]{color:var(--ulster)}#status[data-kind=win]{color:var(--leinster);font-weight:800}#status[data-kind=giveup]{color:var(--munster)}#guess-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.suggest-wrap{position:relative;min-width:0}#guess-suggest{position:absolute;left:0;right:0;bottom:calc(100% + 8px);margin:0;padding:6px;list-style:none;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);max-height:min(40vh,280px);overflow:auto;z-index:6}#guess-suggest button{width:100%;margin:0;border:0;border-radius:12px;padding:12px 14px;background:transparent;color:var(--ink);font:inherit;font-weight:700;text-align:left;cursor:pointer}#guess-suggest button[aria-selected=true],#guess-suggest button:hover{background:var(--paper-deep)}#guess{width:100%;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:14px 18px;outline:none;box-shadow:inset 0 1px #ffffffb3}#guess:focus{border-color:#a89274}#guess-form>button,.sheet button,.win-actions button{border:0;border-radius:999px;padding:14px 20px;background:var(--ink);color:#f7f1e6;font-weight:800;cursor:pointer}.ghost,.sheet .ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.actions .ghost{padding:8px 14px;font-size:.9rem}.credit{margin:0;text-align:center;color:var(--muted);font-size:.75rem}.shake{animation:shake .36s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.sheet{width:min(460px,calc(100% - 32px));border:1px solid var(--line);border-radius:24px;background:var(--card);padding:28px 24px;box-shadow:var(--shadow)}.sheet::backdrop{background:#241c1459}.sheet h2{margin:0 0 10px;font-family:Fraunces,serif}.sheet p,.sheet li{color:#4d4338;line-height:1.5}.sheet ul{padding-left:18px}.sheet button{margin-top:16px}.win-actions{display:flex;gap:10px}.map-tooltip{position:fixed;z-index:5;pointer-events:none;background:var(--ink);color:#f7f1e6;padding:6px 9px;border-radius:8px;font-size:.82rem;font-weight:700}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media(max-width:820px){.stage{grid-template-columns:1fr}.rail{min-height:0;max-height:220px}.topbar{grid-template-columns:1fr auto}.eyebrow{display:none}h1{justify-self:start}}@media(max-width:560px){.stats{grid-template-columns:repeat(2,1fr)}#map,.map-wrap{min-height:52vh}}.globle-app{width:min(1120px,100%);min-height:100dvh;min-height:100svh;padding:max(10px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));gap:8px;grid-template-rows:auto auto minmax(0,1fr) auto}.globle-stage{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;min-height:0;gap:10px}.globle-map{position:relative;min-height:0;height:100%;touch-action:none;user-select:none;-webkit-user-select:none}.globle-app #map{touch-action:none}.map-zoom{position:absolute;right:10px;bottom:10px;display:grid;gap:8px;z-index:2}.map-zoom button{width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--card) 92%,white);color:var(--ink);font-size:1.4rem;font-weight:800;line-height:1;cursor:pointer;box-shadow:var(--shadow)}.globle-app #map,.globle-app .map-wrap{min-height:0;height:100%}.globle-app .rail{min-height:0;max-height:26vh;padding:10px 12px}.globle-app #guess{font-size:16px}.globle-app .stats span{font-size:clamp(1rem,3.6vw,1.45rem)}.globle-legend{grid-template-columns:1fr auto auto;gap:6px 10px}.heat-bar{grid-column:1 / -1;height:8px;border-radius:999px;background:linear-gradient(90deg,#f4efe4,#e8b48a,#c1121f);border:1px solid var(--line)}.globle-app #found-list li{border-left:5px solid var(--heat, var(--line))}.county.solved{stroke:#2b2118;stroke-width:1.4}.globle-world .county{fill-rule:nonzero}@media(min-width:900px){.globle-stage{grid-template-columns:minmax(0,1fr) 220px;grid-template-rows:minmax(0,1fr)}.globle-app .rail{max-height:none;height:100%}}
