.worldmap-wrap{width:100%;position:relative}.worldmap{touch-action:none;cursor:grab;width:100%;height:auto;display:block}.worldmap:active{cursor:grabbing}.worldmap.static,.worldmap.static:active{cursor:default}.worldmap path{stroke:#36434f;stroke-width:.7px;vector-effect:non-scaling-stroke;transition:fill .2s}.worldmap path.playable{cursor:pointer}.worldmap path.playable:hover{filter:brightness(1.35)}.worldmap.static path.playable:hover{filter:brightness(1.18)}.worldmap path.hover-outline{stroke:#d8e4ee;stroke-width:1.6px;pointer-events:none;filter:drop-shadow(0 0 3px #d8e4ee73)}@keyframes country-pulse{0%,to{stroke:var(--jade);stroke-width:1.2px}50%{stroke:#aef0cf;stroke-width:2.4px}}.worldmap path.pulse{animation:1.1s ease-in-out infinite country-pulse}.worldmap.aiming,.worldmap.aiming path.playable{cursor:none}.flag-layer{z-index:25;pointer-events:none;position:absolute;inset:0}.flagdetail{max-width:920px;margin:0 auto;padding:2rem 1.5rem 4rem;animation:.36s both rise}.studypage{z-index:60;-webkit-overflow-scrolling:touch;background:radial-gradient(120% 90% at 50% 0%, #101a26 0%, var(--ocean) 55%, var(--ocean-deep) 100%);animation:.2s both studyfade;position:fixed;inset:0;overflow-y:auto}@keyframes studyfade{0%{opacity:0}to{opacity:1}}.flagdetail--study{animation:none}.flagdetail--study .flagdetail__back{z-index:2;background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--panel-edge);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;padding:.5rem .85rem;position:sticky;top:.5rem}.flagdetail--study .flagdetail__neighbor{cursor:default}.flagdetail__back{cursor:pointer;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);background:0 0;border:none;margin-bottom:1.4rem;padding:0;font-size:.7rem;text-decoration:none;transition:color .13s;display:inline-block}.flagdetail__back:hover{color:var(--brass)}.flagdetail__hero{align-items:center;gap:1.4rem;margin-bottom:1.6rem;display:flex}@media (width<=560px){.flagdetail__hero{gap:1.1rem}.flagdetail__flag{width:min(180px,42vw)}}.flagdetail__flag{width:min(280px,48vw);box-shadow:0 10px 40px #0000008c, 0 0 0 1px var(--panel-edge), 0 0 0 5px var(--ocean-deep), 0 0 0 6px var(--brass-soft);background:var(--panel);border-radius:3px}.flagdetail__title h1{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;line-height:1.05}.flagdetail__title p{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);align-items:center;gap:.6rem;margin-top:.4rem;font-size:.78rem;display:flex}.flagdetail__tag{border:1px solid var(--panel-edge);color:var(--ink-dim);border-radius:999px;padding:.12rem .45rem;font-size:.6rem}.flagdetail__hgmeta{flex-wrap:wrap;align-items:center;gap:.55rem .9rem;margin-top:.8rem;display:flex}.flagdetail__diff{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);align-items:center;gap:.5rem;font-size:.6rem;display:inline-flex}.flagdetail__mastered{border:1px solid var(--brass);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brass);background:color-mix(in srgb, var(--brass) 12%, transparent);border-radius:999px;align-items:center;gap:.35rem;padding:.22rem .65rem;font-size:.6rem;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.flagdetail__mastered:after{content:"";pointer-events:none;opacity:0;mix-blend-mode:screen;background:linear-gradient(115deg,#0000 34%,#ffe7a038 48%,#fffdf46b 50.5%,#ffe7a038 53%,#0000 66%) 150% 0/250% 100%;animation:9s ease-in-out infinite flagcell-sheen;position:absolute;inset:0}@keyframes flagcell-sheen{0%{opacity:0;background-position:150% 0}10%{opacity:1}28%{opacity:1}38%{opacity:0;background-position:-50% 0}to{opacity:0;background-position:-50% 0}}@media (prefers-reduced-motion:reduce){.flagdetail__mastered:after{animation:none}}.flagdetail__flagsec{margin-bottom:1.8rem}.flagdetail__flaghead{flex-direction:column;align-items:center;gap:.8rem;display:flex}.flagdetail__flagmini-btn{cursor:zoom-in;background:0 0;border:none;border-radius:2px;flex:none;padding:0;transition:transform .14s;display:block}.flagdetail__flagmini-btn:hover{transform:translateY(-2px)}.flagdetail__flagmini{width:88px;box-shadow:0 3px 12px #00000073, 0 0 0 1px var(--panel-edge);border-radius:2px;transition:box-shadow .14s;display:block}.flagdetail__flagmini-btn:hover .flagdetail__flagmini{box-shadow:0 8px 22px #00000080, 0 0 0 1px var(--brass-soft)}.flaglightbox{z-index:100;cursor:zoom-out;background:color-mix(in srgb, var(--ocean-deep) 78%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);place-items:center;padding:6vmin;animation:.18s both lightbox-fade;display:grid;position:fixed;inset:0}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}.flaglightbox__img{cursor:default;width:auto;max-width:min(900px,92vw);height:auto;max-height:86vh;box-shadow:0 24px 80px #0009, 0 0 0 1px var(--panel-edge);border-radius:4px;animation:.24s cubic-bezier(.2,.8,.2,1) both lightbox-zoom}@keyframes lightbox-zoom{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}.flaglightbox__close{border:1px solid var(--panel-edge);width:2.4rem;height:2.4rem;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;font-size:1.5rem;line-height:1;transition:border-color .13s,color .13s;display:grid;position:absolute;top:1.2rem;right:1.4rem}.flaglightbox__close:hover{border-color:var(--brass-soft);color:var(--brass)}.flagcompare{z-index:100;background:color-mix(in srgb, var(--ocean-deep) 80%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);place-items:center;padding:5vmin;animation:.18s both lightbox-fade;display:grid;position:fixed;inset:0}.flagcompare__panel{background:var(--panel);border:1px solid var(--panel-edge);border-radius:var(--radius);width:min(800px,96vw);max-height:90vh;padding:1.7rem 1.6rem 1.5rem;animation:.24s cubic-bezier(.2,.8,.2,1) both lightbox-zoom;position:relative;overflow:auto;box-shadow:0 24px 80px #0009}.flagcompare__close{border:1px solid var(--panel-edge);width:2rem;height:2rem;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;font-size:1.3rem;line-height:1;transition:border-color .13s,color .13s;display:grid;position:absolute;top:.9rem;right:1rem}.flagcompare__close:hover{border-color:var(--brass-soft);color:var(--brass)}.flagcompare__title{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);text-align:center;margin-bottom:1.3rem;font-size:.62rem}.flagcompare__pair{grid-template-columns:1fr auto 1fr;align-items:start;gap:1rem;display:grid}.flagcompare__sidewrap{flex-direction:column;align-items:center;gap:.9rem;display:flex}.flagcompare__side{text-align:center;flex-direction:column;align-items:center;gap:.45rem;display:flex}.flagcompare__tag{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);font-size:.56rem}.flagcompare__flag{border-radius:3px;width:auto;max-width:100%;height:132px;box-shadow:0 10px 30px #00000073}.flagcompare__name{font-size:1.05rem;font-weight:700;line-height:1.2}.flagcompare__region{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);font-size:.58rem}.flagcompare__vs{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--brass);align-self:center;margin-top:2.6rem;font-size:.62rem}.flagcompare__open{background:color-mix(in srgb, var(--brass) 12%, transparent);border:1px solid var(--brass-soft);color:var(--brass);font-family:var(--font-mono);letter-spacing:.04em;cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.5rem .95rem;font-size:.66rem;transition:background .13s,border-color .13s;display:inline-flex}.flagcompare__open:hover{background:color-mix(in srgb, var(--brass) 22%, transparent);border-color:var(--brass)}.flagcompare__switcher{border-top:1px solid var(--panel-edge);margin-top:1.5rem;padding-top:1.3rem}.flagcompare__switch-label{text-align:center;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:.7rem;font-size:.56rem;display:block}.flagcompare__chips{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.flagcompare__chip{background:var(--ocean);border:1px solid var(--panel-edge);color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:.45rem;padding:.35rem .7rem .35rem .4rem;font-family:inherit;font-size:.76rem;transition:border-color .13s,color .13s,background .13s;display:inline-flex}.flagcompare__chip img{object-fit:contain;border-radius:1px;width:26px;height:18px}.flagcompare__chip:hover{border-color:var(--brass-soft)}.flagcompare__chip.is-active{border-color:var(--brass);color:var(--brass);background:color-mix(in srgb, var(--brass) 10%, transparent)}@media (width<=600px){.flagcompare__pair{grid-template-columns:1fr;gap:.6rem}.flagcompare__vs{margin-top:0}}.flagdetail__flaggrid{grid-template-columns:1fr 1fr;align-items:start;gap:1.4rem 2.4rem;margin-top:.9rem;display:grid}@media (width<=720px){.flagdetail__flaggrid{grid-template-columns:1fr;gap:1.5rem}}.flagdetail__subhead{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--brass-soft);margin-bottom:.6rem;font-size:.62rem;font-weight:600}.flagdetail__vex{max-width:60ch}.flagdetail__vex-text{color:var(--ink);white-space:pre-line;font-size:.92rem;line-height:1.6}.flagdetail__vex-actions{align-items:center;gap:1.1rem;margin-top:.6rem;display:flex}.flagdetail__vex-more{font-family:var(--font-mono);letter-spacing:.04em;color:var(--brass);font-size:.66rem;text-decoration:none}.flagdetail__vex-more:hover{text-decoration:underline}.flagdetail__vex-skel{flex-direction:column;gap:.45rem;max-width:52ch;margin-top:.95rem;display:flex}.flagdetail__vex-skel span{background:linear-gradient(100deg, color-mix(in srgb, var(--panel) 80%, transparent) 30%, color-mix(in srgb, var(--ink-dim) 22%, var(--panel)) 50%, color-mix(in srgb, var(--panel) 80%, transparent) 70%);background-size:220% 100%;border-radius:3px;height:.7rem;animation:1.3s linear infinite shimmer}.flagdetail__vex-skel span:nth-child(2){width:78%}.flagdetail__map{margin-bottom:.55rem;padding:.6rem;overflow:hidden}.flagdetail__map .worldmap-wrap{border-radius:3px;overflow:hidden}.flagdetail__maphint{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);text-align:center;margin:0 0 1.8rem;font-size:.6rem}.flagdetail__facts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-bottom:1.8rem;display:grid}.flagdetail__fact{background:color-mix(in srgb, var(--panel) 72%, transparent);border:1px solid var(--panel-edge);border-radius:var(--radius);flex-direction:column;gap:.25rem;padding:.8rem .9rem;display:flex}.flagdetail__fact-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);font-size:.6rem}.flagdetail__fact-value{color:var(--ink);font-size:.95rem;line-height:1.3}.flagdetail__lookalikes{margin-bottom:1.8rem}.flagdetail__lookalike-hint{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink-dim);margin-top:.35rem;font-size:.66rem}.flagdetail__lookalikes-grid{flex-wrap:wrap;gap:.8rem;margin-top:1rem;display:flex}.flagdetail__lookalike{background:color-mix(in srgb, var(--panel) 72%, transparent);border:1px solid var(--panel-edge);border-radius:var(--radius);width:120px;color:var(--ink);text-align:center;cursor:pointer;flex-direction:column;gap:.5rem;padding:.55rem;font-family:inherit;transition:border-color .14s,transform .14s;display:flex}.flagdetail__lookalike:hover{border-color:var(--brass-soft);transform:translateY(-2px)}.flagdetail__lookalike-flag{aspect-ratio:3/2;object-fit:contain;border-radius:2px;width:100%}.flagdetail__lookalike-name{color:var(--ink);font-size:.72rem;line-height:1.25}.flagdetail__neighbors{flex-wrap:wrap;gap:.6rem;margin-top:.8rem;display:flex}.flagdetail__neighbor{background:color-mix(in srgb, var(--panel) 72%, transparent);border:1px solid var(--panel-edge);color:var(--ink);border-radius:999px;align-items:center;gap:.5rem;padding:.4rem .7rem .4rem .45rem;font-size:.82rem;text-decoration:none;transition:border-color .13s,transform .13s;display:flex}.flagdetail__neighbor:hover{border-color:var(--brass-soft);transform:translateY(-1px)}.flagdetail__neighbor img{object-fit:contain;border-radius:1px;width:26px;height:18px}.flagdetail__about{margin-bottom:1.8rem}.flagdetail__blurb{color:var(--ink);max-width:64ch;margin-top:.7rem;font-size:1rem;line-height:1.65}.flagdetail__more{font-family:var(--font-mono);letter-spacing:.06em;color:var(--brass);margin-top:.7rem;font-size:.72rem;text-decoration:none;display:inline-block}.flagdetail__more:hover{text-decoration:underline}.flagdetail__muted{color:var(--ink-dim);margin-top:.7rem;font-size:.9rem}.flagdetail__photos-sec{margin-bottom:1.8rem}.flagdetail__photos{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem;margin-top:.8rem;display:grid}.flagdetail__photo{border-radius:var(--radius);box-shadow:0 0 0 1px var(--panel-edge);aspect-ratio:4/3;display:block;overflow:hidden}.flagdetail__photo img{object-fit:cover;width:100%;height:100%;transition:transform .24s;display:block}.flagdetail__photo:hover img{transform:scale(1.05)}.flagdetail__skeleton{flex-direction:column;gap:.5rem;margin-top:.8rem;display:flex}.flagdetail__skeleton span{border-radius:3px;height:.85rem}.flagdetail__skeleton span:nth-child(2){width:92%}.flagdetail__skeleton span:nth-child(3){width:70%}.flagdetail__photo-skel{aspect-ratio:4/3;border-radius:var(--radius)}.flagdetail__skeleton span,.flagdetail__photo-skel{background:linear-gradient(100deg, color-mix(in srgb, var(--panel) 80%, transparent) 30%, color-mix(in srgb, var(--ink-dim) 22%, var(--panel)) 50%, color-mix(in srgb, var(--panel) 80%, transparent) 70%);background-size:220% 100%;animation:1.3s linear infinite shimmer}@keyframes shimmer{to{background-position:-220% 0}}.flagdetail__notfound{text-align:center;color:var(--ink-dim);padding:3rem 1rem}.flagdetail__notfound a{color:var(--brass)}.flagdetail__compare-links{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.flagdetail__compare-link{color:var(--ink-dim);border:1px solid var(--panel-edge);border-radius:999px;padding:4px 11px;font-family:IBM Plex Mono,monospace;font-size:.76rem;text-decoration:none}.flagdetail__compare-link:hover{color:var(--ink);border-color:var(--brass-soft)}.flagdetail__explore{border-top:1px solid var(--panel-edge);flex-wrap:wrap;gap:18px;margin:40px 0 8px;padding-top:20px;display:flex}.flagdetail__explore a{color:var(--brass);font-family:IBM Plex Mono,monospace;font-size:.82rem;text-decoration:none}.flagdetail__explore a:hover{color:var(--ink)}
