/* DMZ Tactical website. Reuses the app's HAJIN material, type and controls (docs/HAJIN-STYLE.md). */
@font-face{font-family:"DMZ Condensed";src:url("fonts/BarlowCondensed-SemiBold.ttf") format("truetype");font-weight:600;font-display:swap}
:root{
 --gold:#dbb970;--gold-hi:#f0d59b;--cream:#e9e8df;--muted:#a4aa9b;--text:#d3d6cb;
 --hud:"DMZ Condensed","Barlow Condensed","Arial Narrow",sans-serif;
 --cut:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
 --cut-lg:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px));
 --card:linear-gradient(110deg,#ced8be0d,#ced8be04);
 --card-hover:#d1b57a16;
 --row:#20282099;--row-hover:#30392bc9;
 --primary:linear-gradient(110deg,#c5a25d,#e3c982);
 --ease:cubic-bezier(.16,1,.3,1);
 --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
body{margin:0;color:var(--text);font:15px/1.6 Arial,"Helvetica Neue",sans-serif;min-height:100vh;
 background:linear-gradient(110deg,#0d1716,#141c16 52%,#10170e) fixed}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
 background:radial-gradient(1000px 620px at 82% -12%,#dbb97014,transparent 62%),radial-gradient(900px 640px at -12% 40%,#3c5a3e24,transparent 62%)}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold);text-underline-offset:3px}
a:hover{color:var(--gold-hi)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
h1,h2,h3{font-family:var(--hud);font-weight:600;line-height:1.08;margin:0;color:var(--cream);text-wrap:balance}
h1{font-size:clamp(2.4rem,5vw,3.9rem);text-transform:uppercase;letter-spacing:.005em}
h2{font-size:clamp(1.9rem,3.2vw,2.5rem);text-transform:uppercase}
h3{font-size:1.4rem}
p{margin:0 0 1em}
.wrap{width:min(var(--max),100% - 40px);margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:#111;padding:8px 14px;z-index:20}
.skip:focus{left:12px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header: app tab row */
.top{position:sticky;top:0;z-index:10;background:linear-gradient(110deg,#0d1716f2,#141c16f2 52%,#10170ef2);backdrop-filter:blur(12px) saturate(.65)}
.top .wrap{display:flex;align-items:center;gap:16px;height:66px}
.brand{display:flex;align-items:center;flex:none;margin-right:6px}
.brand img{height:40px;width:auto}
.nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}
.nav::-webkit-scrollbar{display:none}
.nav a,.lang{font:600 16px/1 var(--hud);text-transform:uppercase;letter-spacing:.04em;color:var(--cream);text-decoration:none;padding:12px 14px;white-space:nowrap;clip-path:var(--cut);transition:background .16s,color .16s}
.nav a:hover,.lang:hover{background:var(--card-hover);color:var(--gold)}
.nav a[aria-current=page]{background:#ced8be14;color:var(--gold)}
.lang{color:var(--muted);flex:none}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:600 18px/1 var(--hud);text-transform:uppercase;letter-spacing:.05em;text-decoration:none;padding:14px 26px;min-height:52px;clip-path:var(--cut);transition:background .16s,filter .16s,color .16s}
.btn-primary{background:var(--primary);color:#172017}
.btn-primary:hover{filter:brightness(1.07);color:#172017}
.btn-secondary{background:#ced8be12;color:var(--cream)}
.btn-secondary:hover{background:var(--card-hover);color:var(--gold)}
.top .btn{min-height:40px;padding:10px 16px;font-size:16px;flex:none}
.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.actions .btn{min-height:66px}
.install{display:inline-block;line-height:0;transition:filter .16s}
.install img{width:330px;height:auto}
.install:hover{filter:brightness(1.07)}

/* hero */
.hero{padding:60px 0 44px}
.hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:52px;align-items:stretch}
/* The app shot fills the text column exactly: same top and bottom edge. The panel side stays when it crops. */
.hero-grid>div>:last-child{margin-bottom:0}
.hero-media{position:relative;min-height:420px}
.hero-media .shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:100% 0}
.eyebrow{font:600 16px/1 var(--hud);text-transform:uppercase;letter-spacing:.14em;color:var(--gold);margin-bottom:16px}
.lead{font-size:17px;line-height:1.6;color:#c9cec1;margin:20px 0 28px;max-width:34em}
.meta{color:var(--muted);font-size:13px;margin-top:16px}
.shot{clip-path:var(--cut-lg);box-shadow:0 30px 80px #0009;background:#0b0e0c}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0 0;padding:0;list-style:none}
.facts li{background:var(--card);clip-path:var(--cut);padding:18px 20px}
.facts b{display:block;font:600 22px/1.2 var(--hud);color:var(--cream)}
.facts span{display:block;color:var(--muted);font-size:13px;margin-top:4px}

/* sections */
section{padding:76px 0}
.section-head{max-width:46em;margin-bottom:34px}
.section-head p{color:#c9cec1;font-size:16px;margin-top:14px}
.feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:52px;align-items:center;padding:34px 0}
.feature:nth-child(even) .feature-media{order:-1}
.feature h3{font-size:30px;text-transform:uppercase;margin-bottom:12px}
.feature p{color:#c9cec1}
.feature ul{margin:0;padding:0;list-style:none}
.feature li{position:relative;padding:5px 0 5px 16px;color:#e0e3d8}
.feature li::before{content:"";position:absolute;left:0;top:14px;width:5px;height:5px;background:var(--gold)}
.feature-media.tall{max-width:340px;justify-self:center}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;list-style:none;margin:0;padding:0;counter-reset:s}
.steps li{background:var(--card);clip-path:var(--cut);padding:26px 24px;counter-increment:s}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font:600 40px/1 var(--hud);color:var(--gold);margin-bottom:12px}
.steps h3{text-transform:uppercase;margin-bottom:8px}
.steps p{color:var(--muted);margin:0;font-size:14px}
.trust{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.trust div{background:var(--card);clip-path:var(--cut);padding:24px}
.trust h3{font-size:20px;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.trust p{margin:0;color:#c9cec1;font-size:14px}
.roadmap img{width:100%;max-width:900px;margin:0 auto}
.road{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px}
.road li{display:grid;grid-template-columns:180px 1fr;gap:20px;background:var(--row);padding:12px 18px}
.road b{font:600 18px var(--hud);color:var(--gold)}
.road-text{margin-top:18px}
.road-text summary,.more summary{cursor:pointer;color:var(--gold);font:600 16px var(--hud);text-transform:uppercase;letter-spacing:.04em;padding:8px 0}
.note{color:var(--muted);font-size:13px;margin-top:12px}

/* start-action cards (app start screen) */
.db-links{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.task{display:grid;grid-template-columns:44px minmax(0,1fr) 18px;align-items:center;gap:14px;min-height:88px;padding:14px 16px;background:var(--card);clip-path:var(--cut);text-decoration:none;transition:background .16s}
.task:hover{background:var(--card-hover)}
.task img{width:44px;height:44px}
.task strong{display:block;font:600 24px/1.15 var(--hud);color:var(--cream)}
.task small{display:block;font-size:13px;color:var(--muted);margin-top:4px}
.task:hover strong{color:var(--gold-hi)}
.chev{width:18px;height:18px;fill:none;stroke:var(--gold);stroke-width:1.7}

/* faq */
.faq{display:grid;gap:6px}
.faq details{background:var(--card);clip-path:var(--cut)}
.faq summary{cursor:pointer;list-style:none;padding:18px 56px 18px 22px;font:600 21px/1.25 var(--hud);color:var(--cream);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:26px}
.faq details[open] summary::after{content:"\2212"}
.faq details[open] summary{color:var(--gold)}
.faq .a{padding:0 22px 18px;color:#c9cec1;font-size:15px}
.faq .a p:last-child{margin:0}

/* raid card CTA (app "Prepare for a raid") */
.cta{padding:30px 0 70px}
.cta .wrap{position:relative;isolation:isolate;overflow:hidden;clip-path:var(--cut-lg);background:#16221b;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;padding:46px 40px;min-height:220px}
.cta .wrap::before{content:"";position:absolute;inset:0;z-index:-1;background:url("img/app-map-en.webp") 18% 62%/190% auto;opacity:.6}
.cta .wrap::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#09120ff5,#101a13c0 55%,#101a1340)}
.cta h2{font-size:clamp(2rem,3.6vw,2.8rem);text-transform:none}
.cta .meta{color:#c9cec1;font-size:14px;margin:8px 0 0}

/* documents (download, privacy, keys, items) */
.doc{padding:44px 0 80px}
.doc .wrap{max-width:860px}
.doc h1{font-size:clamp(2.3rem,4.6vw,3.4rem);margin-bottom:12px}
.doc h2{display:flex;align-items:center;gap:12px;font-size:23px;margin:40px 0 14px;color:var(--gold)}
.doc p,.doc li{color:#d3d6cb}
.doc ul,.doc ol{padding-left:1.3em}
.doc li{margin:.35em 0}
.doc table{width:100%;border-collapse:separate;border-spacing:0 4px;margin:0 0 1em}
.doc th{text-align:left;padding:4px 14px;font:600 13px var(--hud);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.doc td{padding:12px 14px;background:var(--row)}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:20px}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--gold)}
code,pre{font-family:Consolas,"Cascadia Mono",monospace;font-size:14px}
pre{background:#0008;padding:14px 16px;overflow-x:auto;margin:0 0 1em;clip-path:var(--cut)}
.hash{word-break:break-all;color:var(--cream);background:#0006;padding:2px 6px}

/* label / answer rows (app detail view) */
.kv,.facts-list{display:grid;grid-template-columns:130px minmax(0,1fr);column-gap:20px;margin:6px 0 16px}
.kv dt,.kv dd,.facts-list dt,.facts-list dd{margin:0;padding:11px 0;border-top:1px solid #ced8be12}
.kv dt,.facts-list dt{font:600 14px/1.5 var(--hud);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.kv dd,.facts-list dd{color:#e0e3d8}
.kv dt:first-of-type,.kv dt:first-of-type+dd,.facts-list dt:first-of-type,.facts-list dt:first-of-type+dd{border-top:0}

/* key and item details */
.rarity{font:600 15px var(--hud);text-transform:uppercase;letter-spacing:.06em}
.grid{font:600 18px var(--hud);color:var(--gold);letter-spacing:.03em}
.tag{font:600 13px/1 var(--hud);text-transform:none;letter-spacing:.02em;color:#c9cec1;background:#ced8be14;padding:6px 10px;clip-path:var(--cut)}
.item-head{display:flex;align-items:center;gap:22px;margin-bottom:10px}
.item-head h1{margin-bottom:6px}
.item-head .meta{margin:0;font-size:14px}
.item-head .art{width:96px;height:96px;flex:none;object-fit:contain}
.item-head .art.framed{clip-path:var(--cut)}
.item-icon{object-fit:contain;flex:none}
.rows{list-style:none;margin:0 0 1em;padding:0;display:grid;gap:4px}
.doc .rows li{margin:0}
.row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;padding:8px 14px 8px 10px;background:var(--row);text-decoration:none;color:#e0e3d8}
a.row:hover{background:var(--row-hover)}
a.row:hover strong{color:var(--gold)}
.row img{width:40px;height:40px;object-fit:contain}
.row strong{display:block;font:600 18px/1.2 var(--hud);color:var(--cream);overflow-wrap:anywhere}
.row small{display:block;font-size:12px;line-height:1.35;color:var(--muted);margin-top:2px}
.row .end{display:flex;align-items:center;gap:12px;justify-self:end}
.row .qty{font:600 18px var(--hud);color:var(--gold)}
.row.place{grid-template-columns:48px minmax(0,1fr) auto}
.row.place .grid{font-size:21px}
.rows.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.chips{list-style:none;padding:0;margin:0 0 1em;display:flex;flex-wrap:wrap;gap:6px}
.doc .chips li{margin:0}
.chips a{display:block;padding:8px 14px;background:var(--card);clip-path:var(--cut);font:600 16px var(--hud);color:var(--cream);text-decoration:none}
.chips a:hover{background:var(--card-hover);color:var(--gold)}
.toc{margin:6px 0 14px}
.item-grid{list-style:none;margin:0 0 1em;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}
.doc .item-grid li{margin:0}
.item-grid a{display:flex;align-items:center;gap:12px;background:var(--card);clip-path:var(--cut);padding:10px 14px;min-height:68px;color:var(--cream);text-decoration:none;font:600 17px/1.2 var(--hud)}
.item-grid a:hover{background:var(--card-hover);color:var(--gold)}
.item-grid img{width:48px;height:48px}
.doc.wide .wrap{max-width:1080px}
.db-cta{position:relative;isolation:isolate;overflow:hidden;margin-top:52px;padding:30px 28px;clip-path:var(--cut-lg);background:#16221b;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px}
.db-cta::before{content:"";position:absolute;inset:0;z-index:-1;background:url("img/app-map-en.webp") 30% 55%/190% auto;opacity:.5}
.db-cta::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#09120ff5,#101a13c8 60%,#101a1350)}
.db-cta p{margin:0;font:600 28px/1.1 var(--hud);color:var(--cream);max-width:14em}

/* footer */
footer{padding:44px 0 56px;color:var(--muted);font-size:13px;background:#0005}
footer .wrap{display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:start}
footer nav{display:flex;flex-wrap:wrap;gap:6px 22px;margin-bottom:14px}
footer nav a{color:var(--cream);text-decoration:none;font:600 16px var(--hud);text-transform:uppercase;letter-spacing:.04em}
footer nav a:hover{color:var(--gold)}
footer p{margin:0 0 .5em}

@media (max-width:900px){
 .hero-grid,.feature{grid-template-columns:1fr;gap:28px}
 .hero-media{min-height:0}
 .hero-media .shot{position:static;height:auto}
 .feature:nth-child(even) .feature-media{order:0}
 .facts{grid-template-columns:repeat(2,1fr)}
 .steps,.trust,.db-links{grid-template-columns:1fr}
 section{padding:54px 0}
 footer .wrap{grid-template-columns:1fr}
 .rows.two{grid-template-columns:1fr}
}
@media (max-width:600px){
 .top .wrap{gap:6px;height:58px}
 .brand img{height:32px}
 .top .btn{display:none}
 .nav a{padding:10px 8px;font-size:15px}
 .nav a[href*="#features"],.nav a[href*="#faq"]{display:none}
 .hero{padding:32px 0 24px}
 .actions .btn,.install,.install img{width:100%}
 .road li{grid-template-columns:1fr;gap:4px}
 .kv,.facts-list{grid-template-columns:100px minmax(0,1fr);column-gap:12px}
 .facts li{padding:14px}
 .cta .wrap{padding:30px 22px}
 .item-head .art{width:72px;height:72px}
 .row{padding-right:10px}
}
.doc ul.rows,.doc ul.chips,.doc ul.item-grid{padding-left:0}
/* every filled card and row uses the same cut corners */
.row,.road li{clip-path:var(--cut)}
.doc td:first-child{clip-path:polygon(0 0,100% 0,100% 100%,10px 100%,0 calc(100% - 10px))}
.doc td:last-child{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}
.doc td:only-child{clip-path:var(--cut)}
/* clipped controls keep a visible focus ring inside the cut */
.row:focus-visible,.task:focus-visible,.chips a:focus-visible,.item-grid a:focus-visible,.nav a:focus-visible,.lang:focus-visible,.btn:focus-visible,.faq summary:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
/* external brand buttons: original colours and logos, same size as the install button */
.btn-brand{width:330px;min-height:66px;justify-content:flex-start;gap:16px;padding:12px 22px;color:#fff;font-size:19px}
.btn-brand:hover{color:#fff;filter:brightness(1.08)}
.brand-logo{width:30px;height:30px;flex:none}
.btn-discord{background:#5865f2}
.btn-github{background:#24292f}
.btn-windows{background:#0078d4}
.btn-brand:focus-visible{outline:2px solid #fff;outline-offset:-4px}
@media (max-width:600px){.btn-brand{width:100%}}
/* plain chips (rewards) and objective rows */
.chips .chip{display:block;padding:8px 14px;background:var(--card);clip-path:var(--cut);font:600 16px var(--hud);color:var(--cream)}
.db-links{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:600px){.nav a[href$="download/"],.nav a[href$="items/"],.nav a[href$="orders/"]{display:none}}
/* map guide and boss list layout */
.h-icon{width:32px;height:32px;flex:none}
.group-h{font:600 18px/1.2 var(--hud);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:26px 0 10px}
.rows.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.map-block{padding:10px 0 20px}
.map-block>h2{margin-top:30px}
.map-split{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:20px;align-items:start}
.map-fig{margin:0}
.map-fig .shot{width:100%;height:auto}
.doc ol.rows{padding-left:0;list-style:none}
.row.loc{grid-template-columns:30px minmax(0,1fr) auto;min-height:44px;padding:6px 12px}
.row.loc strong{font-size:17px}
.row .num{display:grid;place-items:center;width:26px;height:26px;background:var(--gold);color:#172017;font:600 15px var(--hud);clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,0 100%)}
.row.loc .grid{font-size:16px}
.rows.locs{gap:3px}
.x01-card{display:grid;grid-template-columns:72px minmax(0,1fr) auto 18px;align-items:center;gap:20px;padding:18px 20px;background:var(--card);clip-path:var(--cut-lg);text-decoration:none;transition:background .16s}
.x01-card:hover{background:var(--card-hover)}
.x01-card strong{display:block;font:600 28px/1.1 var(--hud);color:var(--cream)}
.x01-card small{display:block;color:var(--muted);font-size:14px;margin-top:4px}
.x01-card dl{display:flex;gap:26px;margin:0}
.x01-card dt{font:600 13px var(--hud);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.x01-card dd{margin:0;font:600 26px var(--hud);color:var(--gold)}
.x01-card:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
.row .end .tag{white-space:nowrap}
@media (max-width:900px){
 .map-split,.rows.three{grid-template-columns:1fr}
 .x01-card{grid-template-columns:56px minmax(0,1fr) 18px}
 .x01-card img{width:56px;height:56px}
 .x01-card dl{grid-column:1/-1;grid-row:2}
}
@media (max-width:600px){.row .end .tag{display:none}}
.row .end .tag.slot{min-width:84px;text-align:center}.row .end .tag.ghost{visibility:hidden}
/* map switch on the boss list */
.map-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:6px 0 10px}
.map-switch a{display:flex;align-items:center;gap:14px;padding:14px 18px;background:var(--card);clip-path:var(--cut);text-decoration:none;transition:background .16s}
.map-switch a:hover{background:var(--card-hover)}
.map-switch strong{display:block;font:600 22px/1.1 var(--hud);color:var(--cream)}
.map-switch small{display:block;color:var(--muted);font-size:13px;margin-top:3px}
.map-switch a:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
.group-h.with-icon{display:flex;align-items:center;gap:10px}
.group-h .h-icon{width:28px;height:28px}
.row.plain{grid-template-columns:minmax(0,1fr) auto;padding-left:16px}
.map-block{scroll-margin-top:80px}
/* open the browser map from the hero */
.webmap-link{display:grid;grid-template-columns:36px minmax(0,1fr) 18px;align-items:center;gap:14px;max-width:670px;margin-top:10px;padding:12px 16px;background:var(--card);clip-path:var(--cut);text-decoration:none;transition:background .16s}
.webmap-link:hover{background:var(--card-hover)}
.webmap-link strong{display:block;font:600 20px/1.15 var(--hud);text-transform:uppercase;letter-spacing:.03em;color:var(--cream)}
.webmap-link small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.webmap-link:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
/* browser app under the website header */
body.app-page{height:100vh;height:100dvh;overflow:hidden}
.app-page .top{position:fixed;left:0;right:0;top:0}
.app-frame{position:fixed;left:0;right:0;bottom:0;top:66px;width:100%;height:calc(100dvh - 66px);border:0;background:#0d1716}
@media (max-width:600px){.app-frame{top:58px;height:calc(100dvh - 58px)}}
/* interactive map: the site's main tool in the header. A radar ping (like a contact in the app), a soft glow that
   breathes with it and a slow CTA sheen. The cut shape sits on ::before so the glow is not clipped. */
.nav{padding-block:10px;margin-block:-10px}
.nav a.nav-map{position:relative;display:inline-flex;align-items:center;gap:10px;padding-left:16px;clip-path:none;isolation:isolate;
 color:var(--gold-hi);text-shadow:0 0 12px #dbb97099;filter:drop-shadow(0 0 7px #dbb97040);animation:navGlow 2.4s ease-in-out infinite}
.nav a.nav-map::before,.nav a.nav-map::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;clip-path:var(--cut)}
.nav a.nav-map::before{background:linear-gradient(110deg,#dbb97038,#dbb97012 75%);transition:background .16s}
.nav a.nav-map::after{background:linear-gradient(105deg,transparent 36%,#f6e2b04d 50%,transparent 64%) no-repeat;background-size:100% 100%;
 animation:navSheen 6s var(--ease) 1s infinite;background-position:-200px 0}
.nav a.nav-map:hover,.nav a.nav-map[aria-current=page]{background:none;color:#fff3d6}
.nav a.nav-map:hover::before,.nav a.nav-map[aria-current=page]::before{background:linear-gradient(110deg,#dbb97052,#dbb9701c 75%)}
.ping{position:relative;width:8px;height:8px;flex:none;background:var(--gold-hi);transform:rotate(45deg);box-shadow:0 0 10px #f0d59bc0}
.ping::before{content:"";position:absolute;inset:-1px;border:1.5px solid var(--gold-hi);animation:navPing 2.4s cubic-bezier(.2,.7,.3,1) infinite}
@keyframes navPing{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(3.4);opacity:0}}
@keyframes navGlow{0%,100%{filter:drop-shadow(0 0 5px #dbb97030)}12%{filter:drop-shadow(0 0 12px #dbb97070)}}
@keyframes navSheen{0%{background-position:-220px 0}30%,100%{background-position:260px 0}}
@media (prefers-reduced-motion:reduce){.nav a.nav-map,.nav a.nav-map::after,.ping::before{animation:none!important}.nav a.nav-map::after{display:none}}
@media (max-width:600px){.nm-long{display:none}.nav a.nav-map{padding-left:12px;gap:8px}}
/* ---- 2026-11-07 polish: one content width, stencil accents, footer at the bottom ---- */
/* The app's map lettering (Black Ops One, "DMZStencil" in map/location-labels.css): only for short HUD labels,
   grid squares and numbers. Headings and names stay in DMZ Condensed, body text in Arial. */
@font-face{font-family:"DMZ Stencil";src:url("fonts/BlackOpsOne.ttf") format("truetype");font-weight:400;font-display:swap}
:root{--stencil:"DMZ Stencil",var(--hud)}
body:not(.app-page){display:flex;flex-direction:column}
body:not(.app-page)>main{flex:1 0 auto}
section{padding:64px 0}
.eyebrow{font:400 15px/1 var(--stencil);letter-spacing:.14em}
.steps li::before{font-family:var(--stencil);font-weight:400;font-size:38px}
.grid,.row .grid,.row.place .grid,.road b{font-family:var(--stencil);font-weight:400;letter-spacing:.04em}
.row.place .grid{font-size:19px}
.x01-card dd{font-family:var(--stencil);font-weight:400}
.map-block>h2{font-family:var(--stencil);font-weight:400;letter-spacing:.05em}
/* documents: one reading column, lists aligned to the same edges as the text */
.doc .wrap{max-width:920px}
.doc.wide .wrap{max-width:var(--max)}
.doc .lead{max-width:none;font-size:17px;color:#c9cec1;margin:12px 0 30px}
.crumbs{font:600 13px/1.2 var(--hud);text-transform:uppercase;letter-spacing:.08em;margin-bottom:24px}
.crumbs a{text-decoration:none}
.crumbs [aria-current]{color:var(--cream)}
/* "find it on the map": text on the left, the two ways to open it on the right */
.db-cta{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:center;gap:28px;padding:34px 32px}
.db-cta p.db-cta-h{margin:0;max-width:none;font:600 32px/1.05 var(--hud);text-transform:uppercase;color:var(--cream)}
.db-cta p.db-cta-p{margin:10px 0 0;max-width:30em;font:15px/1.55 Arial,"Helvetica Neue",sans-serif;color:#c9cec1}
.db-cta-actions{display:grid;gap:8px}
.map-btn{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 20px;background:#0c1411d9;clip-path:var(--cut);
 font:600 18px/1 var(--hud);text-transform:uppercase;letter-spacing:.04em;color:var(--gold-hi);text-decoration:none;transition:background .16s}
.map-btn:hover{background:#1d2a20e6;color:#fff3d6}
.map-btn:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
@media (max-width:760px){.db-cta{grid-template-columns:1fr;padding:28px 20px}.db-cta-actions .install,.db-cta-actions .install img{width:100%}}
.doc.wide .lead{max-width:52em}
