/* ═══ RIZO ORIGIN ═════════════════════════════════════════════════════════
   Dark, inky, screen-printed. Everything here is hand-set: no framework,
   no utility classes, no gradients borrowed from a dashboard. */

:root{
  --bg:#09090a; --bg2:#0f0f11; --panel:#141417; --panel2:#1a1a1e;
  --line:#26262c; --line2:#34343c;
  --ink:#ece8e0; --ink2:#a5a099; --ink3:#6e6a66;
  --accent:#ff7a1a; --accent-d:#ff7a1a22;
  --rizo:#00c2ff;
  --ok:#5ad07a; --bad:#c2413f;
  --r:3px;
  --grid:74px;
  --hdr:52px;
  --shadow:0 10px 30px -12px #000;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
  --sans:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%;margin:0;overflow:hidden}
body{
  background:var(--bg); color:var(--ink);
  font:400 15px/1.45 var(--sans);
  -webkit-font-smoothing:antialiased;
  overscroll-behavior:none; touch-action:manipulation;
  user-select:none; -webkit-user-select:none;
}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
input{font:inherit;color:inherit}
::selection{background:var(--accent);color:#000}

/* paper grain — sells the print, costs nothing */
body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:900;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
.reduced body::after{opacity:.3}

/* ── shell ─────────────────────────────────────────────────────────────── */
#app{display:flex;flex-direction:column;height:100%;height:100dvh;position:relative;z-index:1}

header{
  height:var(--hdr);flex:0 0 auto;display:flex;align-items:center;gap:10px;
  padding:0 12px;border-bottom:1px solid var(--line);background:var(--bg2);
  position:relative;z-index:30;
}
.brand{display:flex;align-items:center;gap:9px;min-width:0}
.brand .mk{width:26px;height:30px;color:var(--ink);flex:0 0 auto;overflow:visible}
.brand .mk .eye{transition:transform .12s}
.wordmark{font:700 15px/1 var(--sans);letter-spacing:.24em;white-space:nowrap}
.wordmark i{font-style:normal;color:var(--ink3);letter-spacing:.18em;font-weight:400}

.hstat{margin-left:auto;display:flex;align-items:center;gap:8px}
.pill{
  font:600 11px/1 var(--mono);letter-spacing:.1em;color:var(--ink2);
  border:1px solid var(--line);border-radius:var(--r);padding:7px 9px;white-space:nowrap;
  background:var(--panel);
}
.pill b{color:var(--ink);font-weight:700}
.pill.hot{color:var(--accent);border-color:#4a2a0e}
.iconbtn{
  width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);
  border-radius:var(--r);background:var(--panel);color:var(--ink2);
}
.iconbtn:hover{color:var(--ink);border-color:var(--line2)}
.iconbtn svg{width:17px;height:17px}
.iconbtn.on{color:var(--accent);border-color:#4a2a0e}

/* ── main ──────────────────────────────────────────────────────────────── */
main{flex:1 1 auto;display:flex;min-height:0}

/* domain rail (desktop) */
#rail{
  width:190px;flex:0 0 auto;border-right:1px solid var(--line);background:var(--bg2);
  overflow-y:auto;overscroll-behavior:contain;padding:8px 8px 30px;
}
.railhead{font:600 9px/1 var(--mono);letter-spacing:.22em;color:var(--ink3);padding:8px 6px 6px}
.gbtn{
  width:100%;display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:var(--r);
  border:1px solid transparent;text-align:left;color:var(--ink2);
  font:600 11px/1.1 var(--mono);letter-spacing:.1em;
}
.gbtn:hover{background:var(--panel)}
.gbtn.sel{background:var(--panel2);border-color:var(--line2);color:var(--ink)}
.gdot{width:8px;height:8px;border-radius:1px;flex:0 0 auto;transform:rotate(45deg)}
.gname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gnum{font-size:10px;color:var(--ink3);font-weight:400}
.gbtn.sel .gnum{color:var(--ink2)}
.gbtn.fresh .gname::after{content:'';display:inline-block;width:5px;height:5px;background:var(--accent);border-radius:50%;margin-left:6px;vertical-align:middle}
.gbtn.unknown{color:var(--ink3);font-style:italic;letter-spacing:.3em}
.gbtn.unknown .gdot{background:var(--ink3);opacity:.4;animation:jit 4s steps(1) infinite}
@keyframes jit{0%,92%{transform:rotate(45deg)}94%{transform:rotate(45deg) translate(2px,-1px)}96%{transform:rotate(45deg) translate(-2px,1px)}98%{transform:rotate(45deg)}}

/* work column */
#work{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;min-height:0}

/* ── bench ─────────────────────────────────────────────────────────────── */
#bench{
  flex:0 0 auto;border-bottom:1px solid var(--line);background:var(--bg2);
  padding:14px 14px 12px;position:relative;overflow:hidden;
}
.benchrow{display:flex;align-items:center;justify-content:center;gap:12px;max-width:660px;margin:0 auto}
.slot{
  flex:0 0 auto;width:104px;height:104px;border:1px dashed var(--line2);border-radius:var(--r);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  background:var(--panel);position:relative;transition:border-color .15s,background .15s,transform .12s;
}
.slot.full{border-style:solid;background:var(--panel2)}
.slot.full:hover{border-color:var(--line2)}
.slot svg{width:44px;height:44px}
.slot .sn{font:600 9px/1.15 var(--mono);letter-spacing:.09em;text-align:center;color:var(--ink);max-width:94px;overflow:hidden}
.slot .ph{font:400 9px/1 var(--mono);letter-spacing:.2em;color:var(--ink3)}
.slot .x{position:absolute;top:4px;right:5px;width:16px;height:16px;color:var(--ink3);display:none}
.slot.full .x{display:grid;place-items:center}
.slot .x:hover{color:var(--ink)}
.op{font:300 26px/1 var(--sans);color:var(--ink3);flex:0 0 auto}

.result{
  flex:0 0 auto;min-width:104px;height:104px;border:1px solid var(--line);border-radius:var(--r);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  background:var(--panel);padding:0 12px;position:relative;overflow:hidden;
}
.result.empty{border-style:dashed;border-color:var(--line);background:transparent}
.result svg{width:44px;height:44px}
.result .sn{font:700 10px/1.15 var(--mono);letter-spacing:.09em;text-align:center}
.result .tag{font:400 8px/1 var(--mono);letter-spacing:.2em;color:var(--ink3)}
.result.got{cursor:pointer}
.result.got::after{
  content:'TAP TO USE';position:absolute;left:0;right:0;bottom:4px;text-align:center;
  font:400 7px/1 var(--mono);letter-spacing:.18em;color:var(--ink3);
}
.result.got:hover{border-color:var(--line2);background:var(--panel2)}
.result.nope{border-color:#3a2020}
.result.nope .sn{color:var(--ink3);font-weight:400}

.hintline{
  max-width:660px;margin:10px auto 0;min-height:17px;text-align:center;
  font:400 12px/1.35 var(--sans);color:var(--ink2);
}
.hintline b{color:var(--accent);font-weight:600;letter-spacing:.06em}
.hintline .q{color:var(--ink3);letter-spacing:.3em}

/* ── grid ──────────────────────────────────────────────────────────────── */
#gridwrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;position:relative}
#gridwrap::before{
  content:'';position:absolute;left:0;right:0;top:8%;bottom:0;pointer-events:none;z-index:0;
  background:url(../assets/rizo-watermark.png) center 46%/auto 58% no-repeat;opacity:.035;
}
#tools{
  flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:9px 14px;
  border-bottom:1px solid var(--line);background:var(--bg);
}
#search{
  flex:0 1 380px;min-width:0;margin-right:auto;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r);padding:7px 10px;font:400 12px/1.2 var(--mono);letter-spacing:.06em;
  color:var(--ink);outline:none;
}
#search:focus{border-color:var(--line2)}
#search::placeholder{color:var(--ink3);letter-spacing:.14em}
.chip{
  font:600 10px/1 var(--mono);letter-spacing:.13em;color:var(--ink3);
  border:1px solid var(--line);border-radius:var(--r);padding:7px 9px;white-space:nowrap;background:var(--panel);
}
.chip.on{color:var(--ink);border-color:var(--line2);background:var(--panel2)}
.chip:hover{color:var(--ink2)}

#grid{
  position:relative;z-index:1;
  flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;
  padding:12px 14px 90px;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--grid),1fr));gap:8px;
  align-content:start;
}
.el{
  position:relative;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);
  padding:9px 4px 7px;display:flex;flex-direction:column;align-items:center;gap:5px;
  transition:transform .1s,border-color .12s,background .12s;
}
.el:hover{border-color:var(--line2);background:var(--panel2)}
.el:active{transform:scale(.94)}
.el svg{width:32px;height:32px;flex:0 0 auto}
.el .en{
  font:600 8.5px/1.15 var(--mono);letter-spacing:.05em;color:var(--ink2);text-align:center;
  width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.el.sel{border-color:var(--ink3);background:var(--panel2)}
.el.sel .en{color:var(--ink)}
.el.new::before{
  content:'';position:absolute;top:-1px;right:-1px;width:0;height:0;
  border-top:11px solid var(--accent);border-left:11px solid transparent;border-radius:0 var(--r) 0 0;
}
.el.fav::after{
  content:'';position:absolute;top:5px;left:5px;width:5px;height:5px;background:var(--ink3);
  transform:rotate(45deg);
}
.empty{grid-column:1/-1;text-align:center;color:var(--ink3);font:400 12px/1.6 var(--mono);letter-spacing:.1em;padding:40px 10px}

/* ── shake / sputter ───────────────────────────────────────────────────── */
@keyframes shk{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(4px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
.shake{animation:shk .26s}
@keyframes pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08);opacity:1}100%{transform:scale(1);opacity:1}}
.pop{animation:pop .22s cubic-bezier(.2,1.4,.4,1)}
@keyframes nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.reduced .shake,.reduced .pop{animation:none!important}

#ink{position:fixed;inset:0;pointer-events:none;z-index:400}
.spl{position:absolute;border-radius:50%;background:var(--accent);pointer-events:none}

/* ── discovery card ────────────────────────────────────────────────────── */
#card{
  position:fixed;left:50%;top:calc(var(--hdr) + 14px);transform:translateX(-50%);
  z-index:500;pointer-events:none;width:min(420px,calc(100vw - 28px));
}
.dcard{
  border:1px solid var(--line2);border-radius:var(--r);background:#131316;
  box-shadow:var(--shadow);padding:13px 15px;display:flex;gap:13px;align-items:center;
  position:relative;overflow:hidden;pointer-events:auto;
}
.dcard::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.dcard svg.big{width:52px;height:52px;flex:0 0 auto;color:var(--accent)}
.dc-t{font:400 8px/1 var(--mono);letter-spacing:.28em;color:var(--accent)}
.dc-n{font:700 17px/1.1 var(--sans);letter-spacing:.06em;margin:4px 0 3px}
.dc-f{font:400 12.5px/1.35 var(--sans);color:var(--ink2)}
.dc-g{font:400 8px/1 var(--mono);letter-spacing:.22em;color:var(--ink3);margin-top:5px}
@keyframes cardin{from{opacity:0;transform:translateY(-12px) scale(.97)}to{opacity:1;transform:none}}
@keyframes cardout{to{opacity:0;transform:translateY(-8px)}}
.dcard{animation:cardin .2s cubic-bezier(.2,1.2,.4,1)}
.dcard.out{animation:cardout .18s forwards}
.reduced .dcard{animation:none}

/* ── full-screen moments ───────────────────────────────────────────────── */
#stage{
  position:fixed;inset:0;z-index:700;display:none;place-items:center;
  background:#000000e0;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  padding:24px;text-align:center;
}
#stage.on{display:grid}
.stg{max-width:520px;animation:stgin .34s cubic-bezier(.2,1.1,.3,1)}
@keyframes stgin{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
.reduced .stg{animation:none}
.stg .mark{width:104px;height:104px;margin:0 auto 14px;display:block}
.stg .kick{font:400 9px/1 var(--mono);letter-spacing:.4em;color:var(--ink3);margin-bottom:14px}
.stg h1{font:800 34px/1.05 var(--sans);letter-spacing:.03em;margin:0 0 10px}
.stg h1.sm{font-size:26px}
.stg p{font:400 15px/1.5 var(--sans);color:var(--ink2);margin:0 auto;max-width:38ch}
.stg .go{
  margin-top:22px;border:1px solid var(--line2);border-radius:var(--r);padding:11px 22px;
  font:700 11px/1 var(--mono);letter-spacing:.22em;background:var(--panel);
}
.stg .go:hover{background:var(--panel2);border-color:var(--ink3)}
.bignum{font:800 54px/1 var(--mono);letter-spacing:-.02em}
.bignum s{text-decoration:none;color:var(--ink3)}

@keyframes flash{0%{opacity:.85}100%{opacity:0}}
#flash{position:fixed;inset:0;background:#fff;z-index:690;pointer-events:none;opacity:0}
#flash.go{animation:flash .3s ease-out}
.reduced #flash.go{animation:none}

/* ── sheets (encyclopedia / achievements / settings) ───────────────────── */
#sheet{
  position:fixed;inset:0;z-index:600;display:none;background:#000000c9;
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
}
#sheet.on{display:block}
.sh{
  position:absolute;right:0;top:0;bottom:0;width:min(560px,100%);
  background:var(--bg2);border-left:1px solid var(--line);display:flex;flex-direction:column;
  animation:shin .2s ease-out;
}
@keyframes shin{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
.reduced .sh{animation:none}
.shhead{
  flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid var(--line);
}
.shhead h2{font:700 13px/1 var(--sans);letter-spacing:.26em;margin:0;flex:1}
.shbody{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:14px 14px 60px}
.shtabs{display:flex;gap:6px;padding:0 14px 12px;flex-wrap:wrap}

.row{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--line)}
.row svg{width:30px;height:30px;flex:0 0 auto}
.row .rn{font:700 12px/1.2 var(--mono);letter-spacing:.07em}
.row .rf{font:400 12px/1.35 var(--sans);color:var(--ink2);margin-top:2px}
.row .rg{font:400 8px/1 var(--mono);letter-spacing:.2em;color:var(--ink3);margin-top:4px}
.row .rt{flex:1;min-width:0}
.row .fav{width:26px;height:26px;display:grid;place-items:center;color:var(--ink3);flex:0 0 auto}
.row .fav.on{color:var(--accent)}
.recipes{padding:2px 0 10px 41px;display:flex;flex-wrap:wrap;gap:5px}
.rc{
  font:600 9px/1 var(--mono);letter-spacing:.06em;color:var(--ink2);
  border:1px solid var(--line);border-radius:var(--r);padding:5px 7px;background:var(--panel);
}
.rc em{font-style:normal;color:var(--ink3);margin:0 3px}

.ach{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid var(--line);align-items:flex-start}
.ach .bx{
  width:30px;height:30px;flex:0 0 auto;border:1px solid var(--line2);border-radius:var(--r);
  display:grid;place-items:center;font:700 12px/1 var(--mono);color:var(--ink3);
}
.ach.got .bx{border-color:var(--accent);color:var(--accent)}
.ach .an{font:700 11px/1.2 var(--mono);letter-spacing:.12em;color:var(--ink3)}
.ach.got .an{color:var(--ink)}
.ach .ad{font:400 12px/1.35 var(--sans);color:var(--ink3);margin-top:3px}
.ach.got .ad{color:var(--ink2)}

.stat{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);
  font:400 12px/1.3 var(--mono);letter-spacing:.08em;color:var(--ink2)}
.stat b{color:var(--ink);font-weight:700}
.bar{height:3px;background:var(--line);border-radius:2px;overflow:hidden;margin:12px 0 18px}
.bar i{display:block;height:100%;background:var(--accent)}

.btn{
  border:1px solid var(--line2);border-radius:var(--r);padding:10px 14px;background:var(--panel);
  font:700 10px/1 var(--mono);letter-spacing:.18em;color:var(--ink2);
}
.btn:hover{color:var(--ink);background:var(--panel2)}
.btn.danger:hover{color:var(--bad);border-color:#4a1f1f}
.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.note{font:400 12px/1.5 var(--sans);color:var(--ink3);margin:8px 0 18px}
.setrow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.setrow span{font:600 11px/1.2 var(--mono);letter-spacing:.12em}
.tg{width:42px;height:23px;border:1px solid var(--line2);border-radius:12px;background:var(--panel);position:relative;flex:0 0 auto}
.tg i{position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:var(--ink3);transition:.15s}
.tg.on{border-color:var(--accent)}
.tg.on i{left:21px;background:var(--accent)}
textarea{
  width:100%;height:110px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  color:var(--ink2);font:400 10px/1.4 var(--mono);padding:9px;resize:none;outline:none;
}

/* ── mobile ────────────────────────────────────────────────────────────── */
#mrail{display:none}
@media (max-width:860px){
  :root{--grid:70px;--hdr:48px}
  #rail{display:none}
  #mrail{
    display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;
    padding:8px 12px;border-bottom:1px solid var(--line);background:var(--bg2);
    flex:0 0 auto;scrollbar-width:none;
  }
  #mrail::-webkit-scrollbar{display:none}
  #mrail .gbtn{width:auto;flex:0 0 auto;border:1px solid var(--line);background:var(--panel);padding:7px 10px}
  #mrail .gnum{margin-left:2px}
  #bench{padding:11px 11px 10px}
  .slot{width:84px;height:84px}
  .slot svg{width:36px;height:36px}
  .slot .sn{font-size:8px;max-width:76px}
  .result{min-width:84px;height:84px;padding:0 9px}
  .result svg{width:36px;height:36px}
  .benchrow{gap:8px}
  .op{font-size:20px}
  #grid{padding:10px 11px 80px;gap:7px}
  #tools{padding:8px 11px}
  .sh{width:100%;border-left:0}
  .stg h1{font-size:27px}
  .stg h1.sm{font-size:21px}
  .stg .mark{width:82px;height:82px}
  .bignum{font-size:42px}
  .wordmark{font-size:13px;letter-spacing:.18em}
  .wordmark i{display:none}
}
@media (max-width:560px){
  .wordmark{display:none}
  #pSecret{display:none!important}
  .iconbtn{width:31px;height:31px}
  .iconbtn svg{width:16px;height:16px}
  .hstat{gap:6px}
  header{padding:0 9px;gap:8px}
  .pill{padding:7px 8px;font-size:10.5px;letter-spacing:.06em}
}
@media (max-width:400px){
  :root{--grid:62px}
  .slot{width:74px;height:74px}
  .slot svg{width:32px;height:32px}
  .result{min-width:74px;height:74px}
  .result svg{width:32px;height:32px}
  .benchrow{gap:6px}
  .op{font-size:17px}
  .dcard{padding:11px 12px;gap:10px}
  .dcard svg.big{width:42px;height:42px}
  .dc-n{font-size:15px}
}
/* wide screens: keep the board tight instead of letting it sprawl */
@media (min-width:1120px){
  .benchrow{max-width:740px}
  .slot{width:118px;height:118px}
  .slot svg{width:50px;height:50px}
  .result{min-width:118px;height:118px}
  #grid{padding-left:max(14px,calc((100% - 1120px)/2));padding-right:max(14px,calc((100% - 1120px)/2))}
  #tools{padding-left:max(14px,calc((100% - 1120px)/2));padding-right:max(14px,calc((100% - 1120px)/2))}
  #bench{padding-top:20px;padding-bottom:16px}
}
@media (min-width:1500px){ :root{--grid:80px} }

/* the rail signs off */
.railfoot{
  margin-top:18px;padding:12px 8px 0;border-top:1px solid var(--line);
  font:400 8px/1.6 var(--mono);letter-spacing:.2em;color:#3a3a41;
}

/* ═══════════════════════════════════════════════════════════════════════════
   RIZO RESCUE V2 — THE BOARD
   The original shell was correct but read like a developer dashboard. These
   overrides keep the fast information density while turning the interface into
   a physical, printed discovery board built around the artwork.
   ═══════════════════════════════════════════════════════════════════════════ */
:root{
  --bg:#090908;
  --bg2:#0d0d0c;
  --panel:#131311;
  --panel2:#191916;
  --tile:#151513;
  --slot-bg:#11110f;
  --card-bg:#121210;
  --line:#2a2924;
  --line2:#403d34;
  --ink:#eee9dc;
  --ink2:#aaa397;
  --ink3:#6f6a61;
  --accent:#d87435;
  --accent-d:#d874351d;
  --rizo:#2ba7c8;
  --r:1px;
  --grid:88px;
  --hdr:50px;
  --shadow:0 16px 45px -16px #000;
  --display:Georgia,"Times New Roman",serif;
}

body{
  background:
    radial-gradient(circle at 50% 20%,rgba(255,255,255,.018),transparent 33%),
    var(--bg);
}
body::after{opacity:.19;mix-blend-mode:screen}

/* header: a masthead, not a toolbar */
header{
  background:#0b0b0a;
  border-bottom-color:#302e28;
  padding:0 14px;
}
.brand{gap:10px}
.brand .mk{width:27px;height:31px;filter:drop-shadow(0 0 7px rgba(238,233,220,.05))}
.wordmark{font:800 13px/1 var(--sans);letter-spacing:.31em}
.wordmark i{font-size:11px;color:#777066;letter-spacing:.24em}
.pill,.iconbtn{
  background:#11110f;border-color:#302e28;border-radius:1px;
  box-shadow:inset 0 1px rgba(255,255,255,.015);
}
.iconbtn:hover,.pill:hover{border-color:#534e42;background:#171613}

/* left domain index */
#rail{
  width:184px;background:#0b0b0a;border-right-color:#302e28;padding:10px 8px 34px;
}
.railhead{letter-spacing:.27em;color:#68635b;padding-top:9px}
.gbtn{border-radius:0;padding:7px 8px;position:relative}
.gbtn::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;opacity:.28;transition:width .16s}
.gbtn:hover::after,.gbtn.sel::after{width:100%}
.gbtn.sel{background:#171613;border-color:#3b3931}
.gdot{border-radius:0}
.railfoot{color:#46423b;letter-spacing:.24em}

/* Workbench becomes the visual ritual space. */
#bench{
  background:
    repeating-linear-gradient(90deg,transparent 0 39px,rgba(255,255,255,.012) 40px),
    repeating-linear-gradient(0deg,transparent 0 39px,rgba(255,255,255,.008) 40px),
    #0d0d0c;
  border-bottom-color:#302e28;
  padding:11px 18px 12px;
}
#bench::before{
  content:'';position:absolute;left:50%;top:47px;width:min(720px,76%);height:1px;
  transform:translateX(-50%);background:linear-gradient(90deg,transparent,#312f29 15%,#312f29 85%,transparent);
  opacity:.72;pointer-events:none;
}
.bench-caption{
  width:min(710px,100%);margin:0 auto 9px;display:flex;align-items:center;justify-content:space-between;gap:18px;
  font:700 8px/1 var(--mono);letter-spacing:.24em;color:#706a60;text-transform:uppercase;
}
.bench-caption>span:first-child{color:#c2baac;white-space:nowrap}
#benchCue{font-weight:500;letter-spacing:.16em;text-align:right;color:#776f65}
.benchrow{max-width:600px;gap:11px;position:relative;z-index:1}
.slot,.result{
  width:92px;height:92px;min-width:92px;border-radius:0;background:#11110f;
  clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px));
  box-shadow:inset 0 0 0 1px #34322c;
  border:0;
}
.slot{border:0!important;outline:1px dashed #3a3831;outline-offset:-1px}
.slot.full{outline-style:solid;background:#171613}
.slot.full::before,.result.got::before{
  content:'';position:absolute;left:7px;right:7px;top:5px;height:1px;background:currentColor;opacity:.3;
}
.slot-art,.result-art{display:grid;place-items:center;width:56px;height:56px}
.slot-art svg,.result-art svg{width:56px!important;height:56px!important}
.slot .sn,.result .sn{font-weight:750;letter-spacing:.1em}
.slot .ph,.result .ph{font-size:8px;letter-spacing:.23em;color:#777066}
.op{font-family:var(--display);font-size:23px;color:#827a6f}
.op.arrow{font-family:var(--mono);font-size:16px;color:#625d55}
.result.empty{background:rgba(0,0,0,.08);box-shadow:inset 0 0 0 1px #282720;outline:1px dashed #302e28;outline-offset:-1px}
.result.got{box-shadow:inset 0 0 0 1px #4d493e,0 0 20px rgba(255,255,255,.018)}
.result.got::after{bottom:3px;color:#70695e}
.hintline{margin-top:8px;min-height:15px;font-size:11.5px;color:#948d81}

/* collection masthead */
.collection-head{
  position:relative;z-index:2;display:flex;align-items:end;justify-content:space-between;gap:20px;
  padding:15px 18px 7px;background:var(--bg);
}
.collection-head::after{content:'';position:absolute;left:18px;right:18px;bottom:0;height:1px;background:#24231f}
.collection-head h1{
  margin:0;font:700 20px/.95 var(--display);letter-spacing:.025em;text-transform:uppercase;color:var(--ink);
}
.collection-head span{
  font:600 8px/1 var(--mono);letter-spacing:.18em;color:#746e64;text-align:right;text-transform:uppercase;
}
#tools{padding:8px 18px 9px;background:#090908;border-bottom-color:#292721;gap:7px}
#search{
  flex-basis:330px;background:#11110f;border:1px solid #302e28;border-radius:0;padding:8px 10px;
  letter-spacing:.04em;
}
#search:focus{border-color:#5b5549;background:#151411}
#search::placeholder{letter-spacing:.1em;color:#6b655c}
.chip{border-radius:0;background:#11110f;border-color:#2c2b25;padding:8px 9px}
.chip.on{background:#1b1a16;border-color:#4c483e;color:#f1ecdf}

/* collection surface */
#gridwrap::before{opacity:.018;background-size:auto 52%;background-position:center 57%}
#grid{
  padding:11px 18px 90px;gap:8px;
  grid-template-columns:repeat(auto-fill,minmax(var(--grid),1fr));
}
.el{
  min-height:100px;border:0;border-radius:0;background:#141412;padding:8px 5px 7px;gap:4px;
  clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px));
  box-shadow:inset 0 0 0 1px #2e2c27;
  isolation:isolate;
}
.el::after{
  content:'';position:absolute;left:6px;right:6px;top:4px;height:1px;background:var(--domain);opacity:.45;z-index:-1;
}
.el:hover{background:#1a1916;box-shadow:inset 0 0 0 1px #4c483e;transform:translateY(-1px)}
.el:active{transform:scale(.96)}
.el.sel{background:#1d1c18;box-shadow:inset 0 0 0 1px #6c6456,0 0 0 1px rgba(255,255,255,.02)}
.el-art{width:60px;height:60px;display:grid;place-items:center;margin-top:1px}
.el-art svg{width:58px!important;height:58px!important;overflow:visible;filter:drop-shadow(0 1px rgba(0,0,0,.35))}
.el .en{
  margin-top:auto;font-size:8px;line-height:1.1;letter-spacing:.075em;color:#b5aea1;text-transform:uppercase;
}
.el.sel .en{color:#f4eee1}
.el.new::before{
  border-top-width:13px;border-left-width:13px;border-top-color:var(--domain,var(--accent));border-radius:0;z-index:4;
}
.el.fav::after{top:6px;left:6px;right:auto;bottom:auto;width:5px;height:5px;background:var(--ink2);opacity:.75;z-index:5}
.illustration.art-authored{filter:drop-shadow(0 1px rgba(0,0,0,.32))}
.illustration.art-derived{opacity:.92}

/* discovery cards are tiny collectible plates */
#card{top:calc(var(--hdr) + 12px);width:min(470px,calc(100vw - 24px))}
.dcard{
  border:0;border-radius:0;background:#151411;padding:12px 14px 12px 12px;gap:13px;
  box-shadow:inset 0 0 0 1px #464239,var(--shadow);
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
}
.dcard::before{width:4px;background:var(--accent)}
.dcard-art{display:grid;place-items:center;flex:0 0 auto;width:70px;height:70px;border-right:1px solid #302e28;padding-right:8px}
.dcard-art svg.big{width:62px!important;height:62px!important}
.dc-t{letter-spacing:.32em}
.dc-n{font:700 19px/1.05 var(--display);letter-spacing:.02em;text-transform:uppercase}
.dc-f{color:#bbb3a6}
.dc-g{letter-spacing:.24em}

/* full screen reveals become an occult print plate, not a modal */
#stage{
  background:rgba(5,5,4,.94);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:20px;
}
#stage::before{
  content:'';position:absolute;inset:18px;pointer-events:none;border:1px solid #2f2c26;
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
}
#stage::after{
  content:'';position:absolute;inset:31px;pointer-events:none;
  background:linear-gradient(90deg,#514b3d 0 18px,transparent 18px calc(100% - 18px),#514b3d calc(100% - 18px)) top/100% 1px no-repeat,
             linear-gradient(90deg,#514b3d 0 18px,transparent 18px calc(100% - 18px),#514b3d calc(100% - 18px)) bottom/100% 1px no-repeat;
  opacity:.34;
}
.stg{width:min(570px,100%);max-width:570px;position:relative;z-index:1;padding:18px 12px}
.stg .kick{letter-spacing:.43em;color:#7f786d}
.stg h1{font:700 38px/.96 var(--display);letter-spacing:.015em;text-transform:uppercase}
.stg h1.sm{font-size:31px}
.stg p{font-size:15px;color:#bcb4a7}
.stg .go{border-radius:0;background:#161511;border-color:#4b473c;padding:12px 25px;clip-path:polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,5px 100%,0 calc(100% - 5px))}
.stage-art{width:140px;height:140px;display:grid;place-items:center;margin:0 auto 13px;position:relative}
.stage-art::before,.stage-art::after{content:'';position:absolute;inset:5px;border:1px solid currentColor;opacity:.13;transform:rotate(4deg)}
.stage-art::after{transform:rotate(-5deg);inset:13px;opacity:.08}
.stage-art svg{width:132px!important;height:132px!important;position:relative;z-index:1;overflow:visible}
.stage-domain{width:128px;height:128px;display:grid;place-items:center;margin:0 auto 14px;position:relative}
.stage-domain::before{content:'';position:absolute;inset:2px;border:1px solid currentColor;transform:rotate(45deg);opacity:.25}
.stage-domain svg{width:112px!important;height:112px!important;position:relative;z-index:1}

/* side sheets feel like field notes */
.sh{background:#0d0d0c;border-left-color:#37342c}
.shhead{border-bottom-color:#302e28;background:#11110f}
.shhead h2{letter-spacing:.3em}
.row{border-bottom-color:#292720}
.row svg{width:38px;height:38px}
.rc,.btn,textarea{border-radius:0;background:#141411;border-color:#302e28}
.ach .bx{border-radius:0}
.tg{border-radius:1px}.tg i{border-radius:1px}

/* mobile is an intentionally different composition */
@media (max-width:860px){
  :root{--hdr:48px;--grid:76px}
  #mrail{padding:7px 10px;background:#0c0c0b;border-bottom-color:#2e2c26}
  #mrail .gbtn{border-radius:0;background:#121210;border-color:#2e2c26;padding:7px 9px}
  #bench{padding:8px 9px 9px}
  #bench::before{top:39px;width:90%}
  .bench-caption{margin-bottom:7px;padding:0 1px}
  .benchrow{gap:6px;max-width:390px}
  .slot,.result{width:76px;height:76px;min-width:76px}
  .slot-art,.result-art{width:44px;height:44px}
  .slot-art svg,.result-art svg{width:44px!important;height:44px!important}
  .slot .sn,.result .sn{font-size:7.5px;max-width:69px}
  .result.got::after{display:none}
  .op{font-size:18px}.op.arrow{font-size:13px}
  .hintline{margin-top:6px;font-size:10.5px;min-height:13px}
  .collection-head{padding:11px 10px 7px;align-items:center}
  .collection-head::after{left:10px;right:10px}
  .collection-head h1{font-size:18px}
  .collection-head span{font-size:7.5px;letter-spacing:.13em;max-width:45%}
  #tools{padding:7px 10px 8px;display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
  #search{grid-column:1/-1;width:100%;max-width:none;padding:7px 9px;font-size:11px;margin:0}
  .chip{padding:7px 4px;text-align:center;font-size:8.5px;letter-spacing:.1em}
  #grid{padding:9px 9px 72px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .el{min-height:88px;padding:6px 3px 6px}
  .el-art{width:50px;height:50px}
  .el-art svg{width:49px!important;height:49px!important}
  .el .en{font-size:7.2px;letter-spacing:.045em;padding:0 1px}
  .sh{width:100%;border-left:0}
  .stage-art{width:116px;height:116px}.stage-art svg{width:110px!important;height:110px!important}
  .stage-domain{width:110px;height:110px}.stage-domain svg{width:96px!important;height:96px!important}
  .stg h1{font-size:30px}.stg h1.sm{font-size:25px}
  .stg p{font-size:14px}
  .bignum{font-size:40px}
}

@media (max-width:560px){
  header{padding:0 8px}
  .brand .mk{width:25px;height:28px}
  .hstat{gap:5px}
  .pill{padding:7px 7px;font-size:9.5px}
  .iconbtn{width:31px;height:31px}
  .bench-caption{font-size:7px;letter-spacing:.16em;gap:10px}
  #benchCue{font-size:6.8px;letter-spacing:.09em}
  #mrail{gap:5px}
  .collection-head h1{font-size:17px}
  .dcard{padding:9px 10px 9px 9px;gap:9px}
  .dcard-art{width:58px;height:58px;padding-right:7px}
  .dcard-art svg.big{width:51px!important;height:51px!important}
  .dc-n{font-size:16px}.dc-f{font-size:11.5px}
}

@media (max-width:390px){
  :root{--grid:70px}
  .slot,.result{width:70px;height:70px;min-width:70px}
  .slot-art,.result-art{width:40px;height:40px}
  .slot-art svg,.result-art svg{width:40px!important;height:40px!important}
  .benchrow{gap:5px}.op{font-size:16px}.op.arrow{font-size:11px}
  .el{min-height:82px}.el-art{width:46px;height:46px}.el-art svg{width:45px!important;height:45px!important}
}

@media (min-width:1120px){
  :root{--grid:92px}
  .benchrow{max-width:620px}
  .slot,.result{width:96px;height:96px;min-width:96px}
  #bench{padding-top:11px;padding-bottom:12px}
  #grid,#tools,.collection-head{padding-left:max(18px,calc((100% - 1120px)/2));padding-right:max(18px,calc((100% - 1120px)/2))}
  .collection-head::after{left:max(18px,calc((100% - 1120px)/2));right:max(18px,calc((100% - 1120px)/2))}
}
#card{display:grid;gap:6px}

/* ═══ RIZO JUICE PASS — the board should feel alive ═════════════════════ */
:root{--world-ink:var(--rizo)}

/* sound is never an invisible setting again */
#bSound{position:relative}
#bSound.alive::before{content:'';position:absolute;right:3px;top:3px;width:4px;height:4px;background:var(--ok);transform:rotate(45deg);box-shadow:0 0 8px var(--ok)}
#bSound.muted{color:var(--bad);border-color:#472424}
#bSound.muted .waves{display:none}
#bSound.muted::after{content:'';position:absolute;width:18px;height:1px;background:currentColor;transform:rotate(-45deg)}

/* global reaction layer */
#reactionFX{position:fixed;inset:0;z-index:620;pointer-events:none;overflow:hidden}
.pickghost{position:fixed;width:52px;height:52px;display:grid;place-items:center;filter:drop-shadow(0 4px 10px #000);will-change:transform,opacity}
.pickghost svg{width:50px!important;height:50px!important;overflow:visible}
.rxring{position:fixed;width:34px;height:34px;border:2px solid currentColor;transform:translate(-50%,-50%) rotate(45deg);opacity:.9;animation:rxring .5s cubic-bezier(.1,.72,.26,1) forwards;box-shadow:0 0 18px currentColor}
.rxring.major{width:46px;height:46px;border-width:3px;animation-duration:.74s;box-shadow:0 0 30px currentColor}
@keyframes rxring{0%{transform:translate(-50%,-50%) rotate(45deg) scale(.28);opacity:1}72%{opacity:.48}100%{transform:translate(-50%,-50%) rotate(225deg) scale(4.2);opacity:0}}

/* tactile screen response */
@keyframes kickHit{0%,100%{transform:none}24%{transform:translateY(1px) scale(.999)}48%{transform:translateY(-1px)}}
@keyframes kickFail{0%,100%{transform:none}20%{transform:translateX(-3px)}40%{transform:translateX(3px)}62%{transform:translateX(-2px)}82%{transform:translateX(1px)}}
@keyframes kickMajor{0%,100%{transform:none}18%{transform:scale(1.004)}42%{transform:translateY(2px) scale(.998)}68%{transform:translateY(-1px)}}
#app.kick-hit{animation:kickHit .23s ease-out}
#app.kick-fail{animation:kickFail .25s ease-out}
#app.kick-major{animation:kickMajor .4s cubic-bezier(.18,.8,.25,1)}

/* ingredient placement */
@keyframes slotHit{0%{transform:scale(.88);box-shadow:inset 0 0 0 1px #777,0 0 0 currentColor}55%{transform:scale(1.045);box-shadow:inset 0 0 0 1px #777,0 0 20px currentColor}100%{transform:none}}
.slot.slot-hit{animation:slotHit .25s cubic-bezier(.15,.9,.25,1)}

/* the two ingredients physically commit to a reaction before the answer */
#bench.reacting{z-index:2}
#bench.reacting #slotA{animation:fuseA .19s cubic-bezier(.2,.8,.25,1) both}
#bench.reacting #slotB{animation:fuseB .19s cubic-bezier(.2,.8,.25,1) both}
#bench.reacting .op{animation:opHot .19s steps(2,end) infinite;color:var(--ink)}
#bench.reacting .result{animation:reactorWake .19s ease-out both}
#bench.reacting::after{content:'REACTION';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-4deg);z-index:0;font:800 46px/1 var(--display);letter-spacing:.18em;color:var(--mix-a,var(--ink3));opacity:.055;pointer-events:none;white-space:nowrap}
@keyframes fuseA{0%{transform:none}70%{transform:translateX(8px) rotate(1deg) scale(1.03)}100%{transform:translateX(5px) scale(.98)}}
@keyframes fuseB{0%{transform:none}70%{transform:translateX(-8px) rotate(-1deg) scale(1.03)}100%{transform:translateX(-5px) scale(.98)}}
@keyframes opHot{0%{opacity:.35;transform:scale(.85)}100%{opacity:1;transform:scale(1.15)}}
@keyframes reactorWake{0%{box-shadow:inset 0 0 0 1px #282720}100%{box-shadow:inset 0 0 0 1px var(--mix-b,#777),0 0 26px rgba(255,255,255,.08)}}

/* a newborn result stamps into the bench instead of merely appearing */
.result.fresh-result{isolation:isolate}
.result.fresh-result::before{opacity:.75!important;animation:freshLine 1.1s ease-out}
.result.fresh-result .result-art{animation:freshArt .48s cubic-bezier(.1,1.15,.25,1)}
.result.fresh-result .sn{animation:freshName .6s cubic-bezier(.1,.85,.2,1)}
@keyframes freshArt{0%{transform:scale(.2) rotate(-12deg);opacity:0;filter:blur(5px)}60%{transform:scale(1.14) rotate(2deg);opacity:1;filter:blur(0)}100%{transform:none}}
@keyframes freshName{0%{opacity:0;letter-spacing:.35em}100%{opacity:1}}
@keyframes freshLine{0%{transform:scaleX(0);transform-origin:left}100%{transform:scaleX(1)}}

/* current discovery briefly stains the physical board */
body.world-hit #bench{box-shadow:inset 0 -2px 0 var(--world-ink),0 6px 28px -24px var(--world-ink)}
body.world-hit #collectionTitle{text-shadow:0 0 18px var(--world-ink)}

/* RIZO HEAT is ephemeral: momentum, not a second currency */
#chain{position:fixed;left:50%;top:auto;bottom:calc(18px + env(safe-area-inset-bottom));z-index:660;transform:translate(-50%,-12px) rotate(-1deg);pointer-events:none;opacity:0;min-width:220px;max-width:calc(100vw - 28px);text-align:center;background:#0b0b0a;box-shadow:inset 0 0 0 1px var(--heat,var(--accent)),6px 7px 0 rgba(0,0,0,.35);padding:8px 16px 7px;clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px))}
#chain.on{animation:chainIn 1.65s cubic-bezier(.12,.8,.2,1) forwards}
.chain-k{font:800 12px/1 var(--mono);letter-spacing:.18em;color:var(--heat,var(--accent));text-transform:uppercase}
.chain-s{margin-top:4px;font:650 8px/1.2 var(--mono);letter-spacing:.18em;color:var(--ink2);text-transform:uppercase}
@keyframes chainIn{0%{opacity:0;transform:translate(-50%,-18px) rotate(-2deg) scale(.82)}14%{opacity:1;transform:translate(-50%,0) rotate(1deg) scale(1.04)}22%,72%{opacity:1;transform:translate(-50%,0) rotate(-1deg) scale(1)}100%{opacity:0;transform:translate(-50%,-8px) rotate(-1deg) scale(.97)}}

/* discovery card hierarchy */
.dc-copy{flex:1;min-width:0}
.dc-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.dc-ix{font:600 7px/1 var(--mono);letter-spacing:.17em;color:#6f695f;white-space:nowrap}
.dcard{transform-origin:50% 0}
.dcard .dcard-art{animation:cardPlate .34s cubic-bezier(.12,1,.3,1)}
@keyframes cardPlate{0%{transform:scale(.5) rotate(-7deg);opacity:0}65%{transform:scale(1.08) rotate(2deg);opacity:1}100%{transform:none}}

/* first-run seal: four elements orbit the RIZO mark like a printed ritual */
.origin-seal{width:124px;height:124px;margin:0 auto 8px;position:relative;display:grid;place-items:center}
.origin-seal::before,.origin-seal::after{content:'';position:absolute;inset:5px;border:1px solid currentColor;opacity:.28;transform:rotate(45deg);animation:sealTurn 8s linear infinite}
.origin-seal::after{inset:18px;opacity:.16;animation-direction:reverse;animation-duration:5s}
.origin-seal .mark{width:94px!important;height:94px!important;margin:0!important;filter:drop-shadow(0 0 18px rgba(0,194,255,.18))}
.origin-four{display:flex;justify-content:center;gap:10px;margin:15px auto 13px}
.origin-piece{width:56px;height:56px;display:grid;place-items:center;background:#11110f;box-shadow:inset 0 0 0 1px #3a3730;clip-path:polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,5px 100%,0 calc(100% - 5px));animation:originPiece 2.4s ease-in-out infinite}
.origin-piece:nth-child(2){animation-delay:-.6s}.origin-piece:nth-child(3){animation-delay:-1.2s}.origin-piece:nth-child(4){animation-delay:-1.8s}
.origin-piece svg{width:43px!important;height:43px!important}
.origin-law{margin-top:14px!important;font:800 10px/1 var(--mono)!important;letter-spacing:.32em!important;color:var(--rizo)!important}
@keyframes sealTurn{to{transform:rotate(405deg)}}
@keyframes originPiece{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
#stage .go{transition:transform .12s,box-shadow .12s,border-color .12s}
#stage .go:hover{transform:translateY(-2px);box-shadow:0 7px 0 #000;border-color:var(--rizo)}
#stage .go:active{transform:translateY(1px);box-shadow:0 2px 0 #000}

/* make ordinary element taps feel authored rather than web-button-ish */
.el{touch-action:manipulation}
.el::before{transition:opacity .12s,transform .12s}
.el:active .el-art{transform:scale(.92) rotate(-2deg)}
.el-art{transition:transform .12s cubic-bezier(.2,.8,.3,1)}

.reduced #reactionFX,.reduced #chain{display:none!important}
.reduced #app,.reduced .slot,.reduced .result,.reduced .origin-seal::before,.reduced .origin-seal::after,.reduced .origin-piece,.reduced .dcard-art{animation:none!important}

@media(max-width:560px){
  #chain{top:auto;bottom:calc(12px + env(safe-area-inset-bottom));min-width:190px;padding:7px 12px}
  .chain-k{font-size:10px}.chain-s{font-size:7px}
  .origin-seal{width:104px;height:104px}.origin-seal .mark{width:80px!important;height:80px!important}
  .origin-four{gap:6px;margin-top:12px}.origin-piece{width:48px;height:48px}.origin-piece svg{width:37px!important;height:37px!important}
  #bench.reacting::after{font-size:30px;letter-spacing:.12em}
  .dc-ix{font-size:6.5px}
}

.moment-stamp{display:inline-block;margin-top:18px;padding:6px 9px;border:1px solid currentColor;font:700 8px/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;opacity:.72;transform:rotate(-1deg);box-shadow:4px 4px 0 #000}
#stage.on .stage-domain{animation:domainBreach .8s cubic-bezier(.12,1,.24,1)}
#stage.on .stage-art{animation:landmarkDrop .62s cubic-bezier(.12,1.15,.24,1)}
@keyframes domainBreach{0%{transform:scale(.2) rotate(-24deg);opacity:0}48%{transform:scale(1.18) rotate(5deg);opacity:1}72%{transform:scale(.96) rotate(-2deg)}100%{transform:none}}
@keyframes landmarkDrop{0%{transform:translateY(-34px) scale(1.35) rotate(-8deg);opacity:0}58%{transform:translateY(3px) scale(.96) rotate(2deg);opacity:1}100%{transform:none}}
.reduced #stage .stage-domain,.reduced #stage .stage-art{animation:none!important}

.el.birth{animation:tileBorn .58s cubic-bezier(.12,1.1,.24,1)}
.el.birth .el-art{animation:tileGlyph .58s cubic-bezier(.12,1.2,.22,1)}
@keyframes tileBorn{0%{opacity:0;transform:translateY(12px) rotate(-2deg);box-shadow:inset 0 0 0 1px var(--domain)}55%{opacity:1;transform:translateY(-3px) rotate(1deg);box-shadow:inset 0 0 0 1px var(--domain),0 0 22px var(--domain)}100%{transform:none}}
@keyframes tileGlyph{0%{transform:scale(.25) rotate(-14deg)}64%{transform:scale(1.15) rotate(3deg)}100%{transform:none}}
.reduced .el.birth,.reduced .el.birth .el-art{animation:none!important}

#pFound.count-pop{animation:countPop .42s cubic-bezier(.12,1.15,.22,1)}
@keyframes countPop{0%{transform:scale(.88);border-color:var(--world-ink)}45%{transform:scale(1.12);color:var(--world-ink);box-shadow:0 0 16px var(--world-ink)}100%{transform:none}}
.reduced #pFound.count-pop{animation:none!important}
