/* Zuppilo — Minecraft-style chrome: wooden sign panels, pixel bevels, block buttons */
:root{
  --yellow:#FFC633; --sky:#1C6FE8; --crystal:#33D6F0; --grass:#4FBF3C; --cheek:#FF7FA8;
  --ink:#2a1d0f; --ink-soft:#5c4a33; --paper:#f8ecd2; --paper-2:#efdfbd; --wood:#b9885a; --wood-dark:#6b4423; --outline:#1e1610;
  --stone:#c6c6c6; --stone-dark:#8b8b8b;
  --font-display:"Baloo 2","Trebuchet MS",sans-serif; --font-body:"Atkinson Hyperlegible",Verdana,sans-serif; --font-mono:"IBM Plex Mono",Consolas,monospace; --font-pixel:"Press Start 2P","Courier New",monospace;
  --bevel:inset -4px -4px 0 rgba(0,0,0,.28),inset 4px 4px 0 rgba(255,255,255,.35);
  --planks:url(../assets/img/tex-planks.webp); --stonetex:url(../assets/img/tex-stone.webp);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@view-transition{navigation:auto}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body{margin:0;font-family:var(--font-body);font-size:17px;line-height:1.5;color:var(--ink);background:#63b3ff linear-gradient(#1f63d6,#63b3ff 55%,#d6f2ff);min-height:100vh}
a{color:var(--sky)}
:focus-visible{outline:3px solid var(--crystal);outline-offset:3px}
::selection{background:var(--yellow);color:var(--ink)}
.btn,.ip,.eyebrow,.features,.sign,.tier,.tag{-webkit-user-select:none;user-select:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
h1,h2,h3{font-family:var(--font-display);line-height:1.05;margin:0;text-wrap:balance}
p{margin:0 0 12px}
@keyframes pop{0%{opacity:0;transform:translateY(26px) scale(.94)}60%{opacity:1;transform:translateY(-4px) scale(1.01)}100%{opacity:1;transform:none}}
@keyframes drop{0%{opacity:0;transform:translateY(-18px)}100%{opacity:1;transform:none}}
@keyframes bob{50%{transform:translateY(-10px)}}
@keyframes wobble{0%,100%{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}

/* Sign panel: parchment inside a plank frame with a pixel outline and a hard block shadow */
.sign-panel,.card,.panel,.portal,.rank,.sheet,.steps li,.tile,.note,.kv>div{
  background:var(--paper);border:7px solid transparent;border-image:var(--planks) 40 round;
  box-shadow:0 0 0 3px var(--outline),8px 8px 0 rgba(20,14,8,.45);border-radius:0;
}
.steps li,.tile,.note{border-width:5px;box-shadow:0 0 0 2px var(--outline),4px 4px 0 rgba(20,14,8,.35)}

/* Header + Play bar */
.top{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;align-items:center;gap:16px;padding:10px 18px;color:#fff;background:linear-gradient(rgba(30,22,16,.72),rgba(30,22,16,.72)),var(--planks);background-size:auto,220px;border-bottom:4px solid var(--outline);box-shadow:0 4px 0 rgba(0,0,0,.25)}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:.01em;text-shadow:2px 2px 0 rgba(0,0,0,.5)}
.brand img{width:44px;height:44px;border-radius:8px;box-shadow:0 0 0 2px var(--outline)}
#site-nav{display:flex;gap:4px;margin-left:8px}
#site-nav a{color:#fff;text-decoration:none;font-weight:700;padding:8px 12px;font-size:15px;text-shadow:1px 1px 0 rgba(0,0,0,.6);border:2px solid transparent}
#site-nav a:hover,#site-nav a[aria-current="page"]{background:rgba(0,0,0,.35);border-color:var(--outline);box-shadow:var(--bevel)}
.playbar{margin-left:auto;display:flex;align-items:center;gap:8px}
.playbar .count{font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px;white-space:nowrap;text-shadow:1px 1px 0 rgba(0,0,0,.6)}
.dot{width:10px;height:10px;background:#9aa;box-shadow:0 0 0 2px var(--outline)}
.dot[data-state="ok"]{background:var(--grass)}
.dot[data-state="degraded"]{background:var(--yellow)}
.dot[data-state="down"]{background:#ff5e5e}
.ip{display:inline-flex;align-items:center;gap:10px;background:#2a2a2a;color:#fff;border:3px solid var(--outline);padding:5px 5px 5px 12px;font-family:var(--font-mono);font-weight:600;font-size:15px;cursor:pointer;box-shadow:var(--bevel);transition:transform .12s}
.ip:hover{transform:translateY(-1px)}
.ip [data-copy-label]{background:var(--yellow);color:var(--ink);padding:5px 12px;font-family:var(--font-body);font-size:13px;font-weight:700;border:2px solid var(--outline);box-shadow:var(--bevel)}
.ip.is-copied [data-copy-label]{background:var(--grass);color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:3px solid var(--outline);padding:10px 20px;font:700 16px var(--font-body);cursor:pointer;text-decoration:none;min-height:44px;background:var(--stone);color:var(--ink);box-shadow:var(--bevel),0 4px 0 var(--outline);transition:transform .1s,box-shadow .1s;image-rendering:pixelated;white-space:nowrap}
.btn:hover{transform:translateY(-2px);box-shadow:var(--bevel),0 6px 0 var(--outline)}
.btn:active{transform:translateY(3px);box-shadow:var(--bevel),0 1px 0 var(--outline)}
.btn.primary{background:var(--yellow);font-family:var(--font-display);font-size:20px;letter-spacing:.02em;padding:10px 28px}
.btn.ghost{background:#e9e9e9}
.btn.link{background:transparent;border-color:transparent;box-shadow:none;text-decoration:underline;text-underline-offset:3px}
.btn.link:hover,.btn.link:active{transform:none;box-shadow:none}
.nav-toggle{display:none;background:#2a2a2a;border:2px solid var(--outline);color:#fff;padding:6px 10px;font-weight:700;box-shadow:var(--bevel)}
.lite-toggle{background:#2a2a2a;border:2px solid var(--outline);color:#fff;padding:6px 12px;font:700 13px var(--font-body);cursor:pointer;box-shadow:var(--bevel)}

/* World canvas + loader */
#world{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0}
.lite #world{display:none}
#loader{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:linear-gradient(#1f63d6,#63b3ff);transition:opacity .6s}
#loader.is-done{opacity:0;pointer-events:none}
#loader .inner{display:grid;justify-items:center;gap:14px;color:#fff;text-align:center;font-family:var(--font-pixel);font-size:11px}
#loader img{width:140px;height:140px;box-shadow:0 0 0 4px var(--outline),8px 8px 0 rgba(0,0,0,.3)}
#loader .track{width:240px;height:18px;border:3px solid var(--outline);overflow:hidden;background:#2a2a2a;box-shadow:var(--bevel)}
#loader-bar{height:100%;width:0;background:repeating-linear-gradient(90deg,var(--grass) 0 12px,#3fa64a 12px 16px);transition:width .3s}
#skip-intro{position:fixed;right:18px;bottom:18px;z-index:31;opacity:0;animation:fadein .3s .5s forwards}
#skip-intro.is-hidden{display:none}
@keyframes fadein{to{opacity:1}}

/* Scenes */
main{position:relative;z-index:1;padding-top:68px}
.scene{min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;padding:96px 5vw 12vh;position:relative}
.scene:nth-of-type(even){justify-content:flex-end}
.scene .card{max-width:520px;padding:18px 22px;transition:transform .3s}
.scene.is-active .card{animation:pop .55s cubic-bezier(.2,.9,.3,1.15) both}
.eyebrow{font-family:var(--font-pixel);font-size:9.5px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 8px;line-height:1.6}
.scene h2{font-size:clamp(28px,4vw,44px);font-weight:800;margin-bottom:8px;text-shadow:2px 2px 0 rgba(0,0,0,.08)}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.count-big{font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px;margin:2px 0 6px}
/* Lite mode: each scene's poster sits on a pseudo-element that drifts slowly (composited transform only). */
.lite .scene{overflow:hidden}
.lite .scene::after{content:"";position:absolute;inset:-6% -5%;z-index:-1;background:center/cover no-repeat;animation:drift 22s ease-in-out infinite alternate;will-change:transform}
.lite .scene:nth-of-type(even)::after{animation-name:drift-back}
@keyframes drift{from{transform:scale(1) translate3d(0,0,0)}to{transform:scale(1.07) translate3d(1.5%,-1.2%,0)}}
@keyframes drift-back{from{transform:scale(1.07) translate3d(-1.5%,0,0)}to{transform:scale(1) translate3d(0,-1%,0)}}
.lite .scene[data-scene="1"]::after{background-image:url(../assets/img/scene-1.webp)}
.lite .scene[data-scene="2"]::after{background-image:url(../assets/img/scene-2.webp)}
.lite .scene[data-scene="3"]::after{background-image:url(../assets/img/scene-3.webp)}
.lite .scene[data-scene="4"]::after{background-image:url(../assets/img/scene-4.webp)}
.lite .scene[data-scene="5"]::after{background-image:url(../assets/img/scene-5.webp)}
.lite .scene[data-scene="6"]::after{background-image:url(../assets/img/scene-6.webp)}
.lite .scene[data-scene="7"]::after{background-image:url(../assets/img/scene-7.webp)}
.lite .scene::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(20,33,61,0) 40%,rgba(20,33,61,.55));pointer-events:none}
.lite .scene .card{position:relative}

/* Hero */
.scene.hero{flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:14px;padding-bottom:4vh}
.hero .card{max-width:460px}
.hero .sign{display:inline-block;background:var(--wood-dark);color:#fff;font-family:var(--font-display);font-weight:800;font-size:clamp(16px,2.2vw,22px);letter-spacing:.06em;padding:8px 18px;border:3px solid var(--outline);box-shadow:var(--bevel),0 4px 0 var(--outline);margin:0 0 12px;animation:wobble 4s ease-in-out infinite;text-shadow:2px 2px 0 rgba(0,0,0,.4)}
.hero .sign span{color:var(--yellow)}
@media (min-width:1024px){
  .hero .card{max-width:none;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"sign copy actions" "eyebrow copy actions" "count copy actions";column-gap:30px;row-gap:4px;align-items:center;padding:14px 24px}
  .hero .sign{grid-area:sign;margin:0;justify-self:start}
  .hero .eyebrow{grid-area:eyebrow;margin:0}
  .hero .count-big{grid-area:count;margin:0}
  .hero .card>p:not(.eyebrow){grid-area:copy;margin:0;max-width:46ch;font-size:16px}
  .hero .actions{grid-area:actions;margin:0;flex-wrap:nowrap}
}
.features{list-style:none;margin:0;padding:10px 10px 8px;display:flex;gap:6px;justify-content:space-between;width:100%;max-width:1320px;align-self:center;background:linear-gradient(rgba(30,22,16,.62),rgba(30,22,16,.62)),var(--planks);background-size:auto,220px;border:4px solid var(--outline);box-shadow:var(--bevel),6px 6px 0 rgba(20,14,8,.4);overflow-x:auto;scrollbar-width:none}
.features::-webkit-scrollbar{display:none}
.features li{display:grid;justify-items:center;gap:2px;flex:1 0 118px;text-align:center;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.7);font-size:12px;line-height:1.2;transition:transform .2s}
.features li:hover{transform:translateY(-4px)}
.scene.is-active .features li{animation:drop .5s cubic-bezier(.2,.9,.3,1.2) both}
.features li:nth-child(2){animation-delay:.06s}.features li:nth-child(3){animation-delay:.12s}.features li:nth-child(4){animation-delay:.18s}.features li:nth-child(5){animation-delay:.24s}.features li:nth-child(6){animation-delay:.3s}.features li:nth-child(7){animation-delay:.36s}
.features img{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 4px 0 rgba(0,0,0,.45))}
.features b{font-family:var(--font-pixel);font-size:9px;letter-spacing:0;text-transform:uppercase;line-height:1.5}
.features span{opacity:.92}
.hero-lite{display:none}
.lite .hero-lite{display:grid;justify-items:center;gap:8px;position:absolute;inset:100px 5vw auto 5vw;text-align:center;color:#fff}
.lite .hero-lite video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.wordmark-lite{font-family:var(--font-display);font-weight:800;font-size:clamp(44px,12vw,96px);line-height:1;letter-spacing:.04em;text-shadow:4px 4px 0 var(--outline),0 8px 0 rgba(0,0,0,.25)}
.wordmark-lite span:nth-child(1){color:#2e7bff}.wordmark-lite span:nth-child(2){color:#ff9b2e}.wordmark-lite span:nth-child(3){color:#ff5ea8}.wordmark-lite span:nth-child(4){color:#9b5cff}.wordmark-lite span:nth-child(5){color:#5ccb3c}.wordmark-lite span:nth-child(6){color:#ffd23a}.wordmark-lite span:nth-child(7){color:#33d6f0}
.mascot-lite{width:min(34vw,190px);position:absolute;right:4vw;top:190px;z-index:2;filter:drop-shadow(0 12px 18px rgba(0,0,0,.35));animation:bob 3s ease-in-out infinite;display:none;pointer-events:none}
.lite .mascot-lite{display:block}

/* Portals (scene 3) */
.portals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;width:100%;max-width:1100px;margin:0 auto;align-self:flex-end}
.portal{padding:14px 16px;transition:transform .2s;position:relative}
.portal::before{content:"";position:absolute;left:-7px;right:-7px;top:-7px;height:8px;background:var(--c);box-shadow:0 0 0 3px var(--outline)}
.portal:hover{transform:translateY(-6px)}
.scene.is-active .portal{animation:pop .55s cubic-bezier(.2,.9,.3,1.15) both}
.portal:nth-child(2){animation-delay:.1s}.portal:nth-child(3){animation-delay:.2s}
.portal h3{font-size:26px;font-weight:800;margin-bottom:4px}
.portal .ages{font-family:var(--font-pixel);font-size:8.5px;color:var(--ink-soft);margin:6px 0 4px;line-height:1.6}
.portal .poster{width:100%;aspect-ratio:16/9;object-fit:cover;margin:8px 0;border:3px solid var(--outline);display:none}
@media (min-height:820px){.portal .poster{display:block}}
.portal .live{font-size:14px;font-weight:700;display:flex;align-items:center;gap:6px;margin:4px 0 10px}

/* Rank tiles (scene 4) */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0 4px}
.tile{padding:8px 10px;text-align:center;background:var(--paper-2)}
.tile b{display:block;font-family:var(--font-display);font-size:20px}
.tile .p{font-weight:700;font-variant-numeric:tabular-nums}
.tile.knight b{color:#2f8f3a}.tile.noble b{color:#1a8fa6}.tile.royal b{color:#b8860b}
.small{font-size:14px;color:var(--ink-soft)}

/* Notes + rules (scene 5) */
.notes{display:grid;gap:10px;margin:8px 0}
.note{background:#fff8dc;padding:8px 10px;font-size:15px;transform:rotate(-.6deg)}
.note:nth-child(2){transform:rotate(.7deg)}
.rules{margin:8px 0 0;padding-left:20px;font-size:15px}

/* Join sheet */
dialog#join-sheet{border:0;padding:0;max-width:580px;width:calc(100% - 32px);background:transparent}
dialog#join-sheet::backdrop{background:rgba(20,14,8,.6)}
.sheet{padding:22px 24px;animation:pop .4s cubic-bezier(.2,.9,.3,1.15) both}
.sheet h2{font-size:30px;font-weight:800;margin-bottom:4px}
.steps{list-style:none;padding:0;margin:14px 0;display:grid;gap:12px}
.steps li{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:start;padding:10px 12px;background:var(--paper-2)}
.steps .n{width:44px;height:44px;background:var(--yellow);color:var(--ink);display:grid;place-items:center;font:800 22px var(--font-display);border:3px solid var(--outline);box-shadow:var(--bevel)}
.steps code,code{font-family:var(--font-mono);background:#e9dcc0;padding:2px 8px;border:2px solid rgba(30,22,16,.25)}
.parent-note{background:#dff4f9;border:3px solid var(--outline);border-left:8px solid var(--crystal);padding:10px 14px;font-size:15px;box-shadow:4px 4px 0 rgba(20,14,8,.3)}

/* Footer */
footer.site{position:relative;z-index:1;color:#e8e8e8;padding:28px 5vw 36px;font-size:14px;background:linear-gradient(rgba(30,30,30,.82),rgba(30,30,30,.82)),var(--stonetex);background-size:auto,200px;border-top:4px solid var(--outline)}
footer.site .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;max-width:1100px;margin:0 auto 14px}
footer.site a{color:#fff;text-decoration:none;display:block;padding:3px 0}
footer.site a:hover{text-decoration:underline}
footer.site b{display:block;color:var(--yellow);font-family:var(--font-pixel);font-size:10px;margin-bottom:8px}
footer.site .legal{max-width:1100px;margin:0 auto;color:#bdbdbd;border-top:2px solid rgba(255,255,255,.15);padding-top:12px}

/* Inner pages: the world sits behind the panels; Lite mode swaps in a scene poster. */
html.lite body[data-vantage="gate"]{background:url(../assets/img/scene-2.webp) center/cover fixed no-repeat}
html.lite body[data-vantage="portals"]{background:url(../assets/img/scene-3.webp) center/cover fixed no-repeat}
html.lite body[data-vantage="market"]{background:url(../assets/img/scene-4.webp) center/cover fixed no-repeat}
html.lite body[data-vantage="city"]{background:url(../assets/img/scene-5.webp) center/cover fixed no-repeat}
html.lite body[data-vantage="lighthouse"]{background:url(../assets/img/scene-6.webp) center/cover fixed no-repeat}
.page-main{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:110px 5vw 60px}
.panel{padding:22px 26px;margin-bottom:22px}
body.is-ready .page-main .panel{animation:pop .55s cubic-bezier(.2,.9,.3,1.15) both}
.page-main .panel:nth-of-type(2),.page-main .grid-2:nth-of-type(2) .panel{animation-delay:.1s}
.page-main .panel:nth-of-type(3),.page-main .grid-2:nth-of-type(3) .panel{animation-delay:.2s}
.panel h1{font-size:clamp(34px,5vw,56px);font-weight:800;margin-bottom:8px}
.panel h2{font-size:26px;font-weight:800;margin:18px 0 8px}
.panel h3{font-size:20px;font-weight:700;margin:14px 0 6px}
.panel p,.panel li{max-width:70ch}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}
.ranks{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;margin:14px 0}
.rank{padding:18px;display:flex;flex-direction:column;gap:6px;position:relative;background:var(--paper-2)}
.rank .tier{font-family:var(--font-pixel);font-size:8.5px;color:var(--ink-soft);line-height:1.6}
.rank .name{font-family:var(--font-display);font-size:34px;font-weight:800;line-height:1}
.rank .price{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}
.rank .price small{font-size:13px;font-weight:400;color:var(--ink-soft)}
.rank .tag{font-family:var(--font-mono);font-size:13px;background:#e9dcc0;padding:5px 9px;align-self:flex-start;border:2px solid rgba(30,22,16,.25)}
.rank ul{margin:4px 0 10px;padding-left:18px;font-size:15px;flex:1}
.rank .btn{margin-top:auto;width:100%;padding:10px 12px;font-size:15px}
.rank.knight .name{color:#2f8f3a}.rank.noble .name{color:#1a8fa6}.rank.royal .name{color:#b8860b}
table.cmp{width:100%;border-collapse:collapse;font-size:15px;margin:10px 0}
table.cmp th,table.cmp td{padding:8px 10px;border-bottom:2px solid rgba(30,22,16,.18);text-align:left}
table.cmp th{font-family:var(--font-pixel);font-size:8.5px;background:#e9dcc0;line-height:1.6}
.link-form{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
/* Store: who the rank is for (no account needed) */
.buy-for{margin:14px 0 18px}
.buy-for h2{font-size:20px;margin:0 0 4px}
.buy-for .link-form input{text-transform:none}
.link-form input{font:600 16px var(--font-mono);padding:10px 12px;border:3px solid var(--outline);background:#fff;box-shadow:var(--bevel);min-width:220px}
.status-list{list-style:none;padding:0;margin:8px 0;display:grid;gap:8px}
.status-list li{display:flex;align-items:center;gap:10px;background:var(--paper-2);border:3px solid var(--outline);padding:8px 12px;font-weight:700;box-shadow:3px 3px 0 rgba(20,14,8,.3)}
.game-hero{width:100%;aspect-ratio:16/9;object-fit:cover;margin:8px 0 12px;border:4px solid var(--outline);box-shadow:6px 6px 0 rgba(20,14,8,.35)}
.faq details{background:var(--paper-2);border:3px solid var(--outline);padding:10px 14px;margin:6px 0}
.faq summary{font-weight:700;cursor:pointer}
.kv>div{padding:12px 14px}

/* The cartoon lion that jumps into each box */
.lion{position:absolute;right:-18px;top:-64px;width:112px;height:112px;pointer-events:none;z-index:3;opacity:0;transform:translateY(40px) scale(.5)}
.lion img,.lion video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 0 rgba(20,14,8,.35))}
.lion .lion-wave,.lion .lion-clip{opacity:0}
.lion.landed .lion-jump{opacity:0}
.lion.landed .lion-wave{opacity:1;animation:lion-idle 2.6s ease-in-out infinite}
.lion.has-clip .lion-jump,.lion.has-clip .lion-wave{opacity:0}
.lion.has-clip .lion-clip{opacity:1}
.lion-in>.lion{animation:lion-jump-in .9s cubic-bezier(.2,.9,.3,1.1) both}
@keyframes lion-jump-in{0%{opacity:0;transform:translateY(46px) scale(.55) rotate(-8deg)}35%{opacity:1;transform:translateY(-38px) scale(1.12) rotate(6deg)}60%{transform:translateY(4px) scale(.96,.9)}80%{transform:translateY(-8px) scale(1.02)}100%{opacity:1;transform:none}}
@keyframes lion-idle{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.hero .lion{width:150px;height:150px;top:-104px;right:-6px}
.portal .lion{width:88px;height:88px;top:-56px;right:-14px}
.page-main .panel .lion{width:120px;height:120px;top:-72px;right:-10px}
.sheet .lion{width:110px;height:110px;top:-70px;right:-10px}
@media (max-width:720px){.lion{width:84px;height:84px;top:-52px;right:-10px}.hero .lion{width:100px;height:100px;top:-68px}}

/* Consent banner (only appears when a tag ID is configured) */
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;display:flex;justify-content:center;pointer-events:none}
.consent-inner{pointer-events:auto;max-width:720px;background:var(--paper);border:6px solid transparent;border-image:var(--planks) 40 round;box-shadow:0 0 0 3px var(--outline),8px 8px 0 rgba(20,14,8,.45);padding:14px 18px;animation:pop .45s cubic-bezier(.2,.9,.3,1.15) both}
.consent-inner p{margin:0 0 6px;font-size:15px}
.discord-widget{margin-top:12px;border:3px solid var(--outline);box-shadow:4px 4px 0 rgba(20,14,8,.3);background:#2b2d31}

/* Responsive */
@media (max-width:1024px){
  .portals{grid-template-columns:1fr}
  #site-nav{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;background:rgba(30,22,16,.96);padding:10px;border-bottom:4px solid var(--outline)}
  #site-nav.is-open{display:flex}
  .nav-toggle{display:inline-block}
}
@media (max-width:720px){
  .top{padding:8px 12px;gap:8px}
  .brand span{display:none}
  .playbar .count{display:none}
  .lite-toggle{display:none}
  .ip{font-size:13px;padding:5px 5px 5px 10px}
  .scene{padding:90px 4vw 10vh;align-items:flex-end}
  .scene .card{max-width:none;width:100%}
  .tiles{grid-template-columns:1fr 1fr 1fr;font-size:14px}
  .steps li{grid-template-columns:36px 1fr}
  .card,.panel,.portal,.rank,.sheet{box-shadow:0 0 0 3px var(--outline),5px 5px 0 rgba(20,14,8,.45)}
}

/* Social links and the share sheet (js/social.js) */
.social{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 12px}
.social[hidden]{display:none}
.social a,footer.site .social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:3px solid var(--outline);background:var(--stone);color:var(--ink);box-shadow:var(--bevel),0 3px 0 var(--outline);transition:transform .1s,box-shadow .1s;image-rendering:pixelated}
.social a:hover,footer.site .social a:hover{transform:translateY(-2px);box-shadow:var(--bevel),0 5px 0 var(--outline);text-decoration:none}
.social a:active,footer.site .social a:active{transform:translateY(2px);box-shadow:var(--bevel),0 1px 0 var(--outline)}
.social svg{width:20px;height:20px;fill:currentColor;flex:none}
.btn svg{width:18px;height:18px;fill:currentColor;flex:none}
.panel .social,.card .social{margin-top:10px}
footer.site .follow .btn{font-size:14px;padding:6px 14px;min-height:38px}
dialog#share-sheet{border:0;padding:0;max-width:560px;width:calc(100% - 32px);background:transparent}
dialog#share-sheet::backdrop{background:rgba(20,14,8,.6)}
.share-url{display:flex;gap:8px;align-items:center;margin:12px 0;padding:6px 6px 6px 12px;border:3px solid var(--outline);background:#fff;box-shadow:var(--bevel)}
.share-url code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 14px/1.4 var(--font-mono)}
.share-url .btn{min-height:38px;padding:6px 14px;font-size:14px}
.share-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:14px 0 4px}
.share-grid .btn{justify-content:flex-start;padding:10px 14px;font-size:15px}
@media (min-width:600px){footer.site .follow{grid-column:span 2}}
@media (min-width:1200px){.page-main{max-width:min(1100px,calc(100vw - 500px))}}
