/* Mycelium: one descent through a night forest. 16-bit side view, fixed palette, hard steps, no glow, no gradients. */
:root{
  --void:#14100D;--soil-0:#1E1612;--soil-1:#2D2018;--soil-2:#3F2D20;--soil-3:#553E2B;--soil-4:#6E5238;
  --moss:#3A5A36;--sage:#5F8248;--leaf:#93B070;--bone:#EADFC4;--bone-2:#B9AC8A;--bone-3:#7F755C;--root:#C98B3A;--root-2:#8F5F27;
  --sap:#F2C14E;--sap-hi:#FFE59A;--stone:#57544E;--stone-hi:#7B766B;--sky0:#1E2B30;--sky1:#2A3D41;--sky2:#3A5256;--sky3:#52706C;
  --wilt:#8C8A4C;--flame:#E8892E;--red:#B5452E;
  --px:"Pixelify Sans",ui-monospace,monospace;--mono:"DM Mono",ui-monospace,monospace;--sans:"Figtree",system-ui,sans-serif;
  --depth:72px;--nav:64px;--gut:24px;
  --cur:url(/assets/art/cursor-2x.png) 0 0,auto;--cur-h:url(/assets/art/cursor-hover-2x.png) 8 2,pointer;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--void);scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--void);color:var(--bone);font:400 17px/1.5 var(--sans);cursor:var(--cur);overflow-x:hidden;min-height:100vh}
img{display:block;max-width:100%}
a{color:var(--sap);text-decoration:none}
a,button,[role=button],[role=radio],[onclick],summary,label,.ca,.hit,[data-copy],[data-copy-ca],.tl,.vol,video{cursor:pointer}
input,textarea{cursor:text}
::selection{background:var(--sap);color:var(--void)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.sapc{color:var(--sap)}.mute{color:var(--bone-2)}
.pxi,.pxc{image-rendering:pixelated;image-rendering:crisp-edges}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:4px solid var(--leaf);outline-offset:2px}
.ic{width:16px;height:16px;flex:none;display:block}

/* ---------------------------------------------------------------- nav */
.nav{position:fixed;inset:0 0 auto 0;height:var(--nav);z-index:40;display:flex;align-items:center;gap:20px;padding:0 var(--gut);background:var(--void);border-bottom:3px solid var(--soil-2)}
.home .nav{background:transparent;border-bottom-color:transparent;left:var(--depth)}
.home .nav.solid{background:var(--void);border-bottom-color:var(--soil-2)}
.brand{display:flex;align-items:center;gap:10px;min-height:44px;min-width:44px;color:var(--bone);font:700 22px/1 var(--px)}
.brand img{width:24px;height:24px;image-rendering:pixelated}
.home .nav:not(.solid) .brand span{visibility:hidden}
.links{display:flex;gap:4px;margin-left:8px}
.links a{color:var(--bone-2);font:500 16px/1 var(--px);padding:10px 10px;border-bottom:3px solid transparent}
.links a:hover{color:var(--bone)}
.links a[aria-current=page]{color:var(--bone);border-bottom-color:var(--sap)}
.nav-r{margin-left:auto;display:flex;gap:10px;align-items:center}
.nav .menu{display:none}
.drawer{position:fixed;inset:0;z-index:60;background:rgba(20,16,13,.92);display:flex;justify-content:flex-end}
.drawer[hidden]{display:none}
.drawer-in{width:min(320px,86vw);height:100%;display:flex;flex-direction:column;gap:6px;padding:72px 20px 24px;position:relative}
.drawer-in a{font:700 24px/1.2 var(--px);color:var(--bone);padding:10px 4px;border-bottom:3px solid var(--soil-2)}
.drawer-in .dx{position:absolute;top:12px;right:12px}

/* ---------------------------------------------------------------- buttons (hard bottom edge, steps only) */
.btn{--lift:0px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:0;border-radius:0;font:700 17px/1 var(--px);letter-spacing:.02em;color:var(--bone);background:var(--void);text-decoration:none;transform:translateY(var(--lift));transition:transform 0s;white-space:nowrap;position:relative}
.btn.sec{box-shadow:inset 0 0 0 3px var(--sage),0 6px 0 var(--moss);margin-bottom:6px}
.btn.sec:hover{--lift:-3px;box-shadow:inset 0 0 0 3px var(--leaf),0 9px 0 var(--moss)}
.btn.sec:active{--lift:6px;box-shadow:inset 0 0 0 3px var(--leaf),0 0 0 var(--moss)}
.btn.pri{min-height:56px;padding:0 26px;font-size:22px;color:var(--void);background:var(--sap);box-shadow:inset 0 0 0 3px var(--void),inset 0 0 0 6px var(--sap-hi),0 6px 0 var(--root-2);margin-bottom:6px}
.btn.pri:hover{--lift:-3px;box-shadow:inset 0 0 0 3px var(--void),inset 0 0 0 6px var(--sap-hi),0 9px 0 var(--root-2)}
.btn.pri:active{--lift:6px;box-shadow:inset 0 0 0 3px var(--void),inset 0 0 0 6px var(--sap-hi),0 0 0 var(--root-2)}
.btn:disabled{opacity:.45;pointer-events:none}
.btn.busy::after{content:"";width:32px;height:32px;background:url(/assets/art/mushroom.png) 0 0/64px 32px;image-rendering:pixelated;animation:shroom .5s steps(2) infinite}
@keyframes shroom{to{background-position:-64px 0}}
.btn.sq{width:44px;padding:0}
.btn.sm{min-height:36px;font-size:15px;padding:0 12px}
.btn.wide{width:100%}
.btn .ic{width:16px;height:16px}

/* ---------------------------------------------------------------- CA chip, chips, tooltips */
.lab{font:500 14px/1 var(--px);color:var(--bone-2);letter-spacing:.06em}
.ca,.foot-ca,.carow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cachip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;background:var(--void);color:var(--bone);border:0;box-shadow:inset 0 0 0 3px var(--soil-4);font:500 16px/1 var(--mono)}
.cachip:hover{box-shadow:inset 0 0 0 3px var(--bone-2)}
.cachip .cg{color:var(--bone-2)}
.cachip .cl{font:500 13px/1 var(--px);color:var(--bone-2)}
.cachip.copied{box-shadow:inset 0 0 0 3px var(--bone)}
.cachip.copied .cl{color:var(--bone)}
.cachip:disabled{opacity:1;color:var(--bone-2)}
.carow .lk{font:500 14px/1 var(--px);color:var(--leaf);padding:12px 4px;border-bottom:3px solid transparent}
.carow .lk:hover{border-bottom-color:var(--leaf)}
.chip{display:inline-block;font:700 14px/1 var(--px);padding:6px 8px;box-shadow:inset 0 0 0 3px currentColor;background:var(--void);letter-spacing:.04em;vertical-align:middle}
.chip.fed{color:var(--sap)}.chip.alive{color:var(--leaf)}.chip.dead{color:var(--stone-hi)}.chip.trouble{color:var(--wilt)}
.tip,.tipx{position:absolute;z-index:30;background:var(--void);color:var(--bone);box-shadow:inset 0 0 0 3px var(--bone-2),3px 3px 0 var(--soil-3);padding:12px 14px;font:400 14px/1.45 var(--mono);pointer-events:none}
.tip{transform:translate(-50%,calc(-100% - 10px));min-width:220px}
.tip::after,.tipx::after{content:"";position:absolute;left:calc(50% - 4px);bottom:-7px;width:8px;height:4px;background:var(--bone-2);box-shadow:2px 3px 0 -0px var(--bone-2)}
.tip .tt-n{font:700 18px/1 var(--px);margin-right:6px}
.tip dl{display:grid;grid-template-columns:auto auto;gap:4px 16px;margin:10px 0 0}
.tip dt{color:var(--bone-2);font-family:var(--sans)}.tip dd{margin:0;text-align:right}
.tip p{margin:8px 0 0;font-family:var(--sans)}

/* ---------------------------------------------------------------- depth column */
.depth{position:fixed;left:0;top:0;bottom:0;width:var(--depth);z-index:45;background:var(--soil-0);box-shadow:inset -3px 0 0 var(--soil-2);display:flex;flex-direction:column;align-items:stretch;justify-content:space-around;padding:84px 0 24px}
.depth::before{content:"";position:absolute;inset:0 3px 0 0;background:linear-gradient(var(--sky1) 0 25%,var(--soil-2) 25% 50%,var(--soil-1) 50% 75%,var(--void) 75% 100%);opacity:.55;z-index:-1}
.depth a{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--bone-2);font:500 13px/1 var(--px);letter-spacing:.06em;padding:8px 0;z-index:1}
.depth a:hover,.depth a[aria-current]{color:var(--bone)}
.depth a[aria-current] .di{box-shadow:0 0 0 3px var(--sap)}
.di{width:32px;height:32px;background:url(/assets/art/depth-icons-2x.png) 0 0/128px 32px;image-rendering:pixelated;background-color:var(--void)}
.di-1{background-position:-32px 0}.di-2{background-position:-64px 0}.di-3{background-position:-96px 0}
.depth-bar{position:absolute;right:3px;top:var(--nav);bottom:0;width:6px;background:var(--soil-1)}
.depth-mark{position:absolute;left:0;top:0;width:6px;height:24px;background:var(--sap)}
.home .descent{margin-left:var(--depth)}
.home .foot{margin-left:var(--depth)}

/* ---------------------------------------------------------------- layers (soil tiles get darker as you dig) */
.layer{position:relative;padding:96px 0 112px;background-repeat:repeat;background-size:480px 480px;image-rendering:pixelated}
.layer:not(.crown)::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px;background:inherit;background-size:480px 480px;-webkit-mask:url(/assets/art/stair.png) repeat-x 0 0/48px 12px;mask:url(/assets/art/stair.png) repeat-x 0 0/48px 12px;z-index:2}
.l1{background-image:url(/assets/art/tile-1.png);background-color:var(--soil-3)}
.l2,.l2b{background-image:url(/assets/art/tile-2.png);background-color:var(--soil-2)}
.l3,.l3b{background-image:url(/assets/art/tile-3.png);background-color:var(--soil-1)}
.l4{background-image:url(/assets/art/tile-4.png);background-color:var(--soil-0)}
.l2b::before,.l3b::before{display:none}
.wrap{position:relative;z-index:3;max-width:1180px;margin:0 auto;padding:0 var(--gut)}
.wrap.narrow{max-width:860px}
.st{font:700 48px/1.05 var(--px);margin:0 0 18px;color:var(--bone)}
.st::after{content:"";display:block;width:156px;height:6px;margin-top:14px;background:repeating-linear-gradient(90deg,var(--sap) 0 12px,transparent 12px 16px)}
.st2{font:700 28px/1.1 var(--px);margin:0 0 12px}
.sub{font:700 24px/1.2 var(--px);margin:40px 0 16px}
.lead{max-width:58ch;font-size:18px;margin:0 0 32px;color:var(--bone)}
.h-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.panel{position:relative;background:var(--soil-1);box-shadow:inset 0 0 0 3px var(--soil-4)}
.panel.lip{margin-top:30px}
.panel.lip::before{content:"";position:absolute;left:0;right:0;top:-27px;height:36px;background:url(/assets/art/tile-grass-edge.png) repeat-x 0 0/96px 36px;image-rendering:pixelated;pointer-events:none}
.scene{margin:0;display:flex;justify-content:center}
.scene canvas,.scene img{box-shadow:0 0 0 3px var(--void)}

/* ---------------------------------------------------------------- crown (hero) */
.layer.crown{padding:0;background:var(--sky0)}
.hero{position:relative;overflow:hidden;min-height:640px;background:var(--void)}
.hero-c{position:absolute;left:0;top:0}
.hero-hits{position:absolute;left:0;top:0;width:0;height:0;z-index:4}
.hit{position:absolute;background:transparent;border:0;padding:0}
.hit:focus-visible{outline:3px solid var(--sap);outline-offset:-3px}
.sky{position:relative;z-index:5;display:flex;flex-direction:column;align-items:center;text-align:center;padding:calc(var(--nav) + 20px) var(--gut) 0;pointer-events:none}
.sky>*{pointer-events:auto}
.sky-row{position:absolute;top:calc(var(--nav) + 12px);right:var(--gut);display:flex;gap:10px;align-items:center}
.sky .ca .lab{color:var(--bone)}
.name{font:700 96px/1 var(--px);margin:40px 0 10px;color:var(--bone);letter-spacing:.01em;text-shadow:none}
.line{font:400 20px/1.4 var(--sans);margin:0 0 22px;color:var(--bone)}
.plaque{position:absolute;z-index:5;left:50%;top:calc(var(--ground) + 18px);transform:translateX(-50%);display:flex;background:var(--void);box-shadow:inset 0 0 0 3px var(--bone-2),3px 3px 0 var(--soil-3)}
.plaque>div{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 22px;min-width:170px}
.plaque>div+div{box-shadow:inset 3px 0 0 var(--soil-3)}
.plaque b{font:500 26px/1 var(--mono)}
.plaque span{font:500 13px/1.2 var(--px);color:var(--bone-2);letter-spacing:.04em}
.demo-tag{position:absolute;z-index:5;left:var(--gut);top:calc(var(--ground) - 58px);background:var(--void);color:#fff;font:700 16px/1 var(--px);padding:8px 12px;box-shadow:inset 0 0 0 3px var(--bone)}

/* ---------------------------------------------------------------- roots: the split */
.roots-grid{display:grid;grid-template-columns:auto minmax(320px,1fr);gap:40px;align-items:center}
.split{padding:22px 24px 20px}
.split-h{display:flex;justify-content:space-between;font:500 15px/1 var(--px);color:var(--bone-2);margin-bottom:12px}
.bar{position:relative;display:grid;grid-template-columns:110px 1fr 54px;grid-template-rows:auto auto;gap:4px 12px;align-items:center;padding:10px 0;outline-offset:4px}
.bar+.bar{box-shadow:0 -3px 0 var(--soil-2)}
.bar-l{font:700 16px/1 var(--px)}
.bar-t{height:18px;background:var(--void);box-shadow:inset 0 0 0 3px var(--soil-3);position:relative}
.bar-f{position:absolute;left:3px;top:3px;bottom:3px;max-width:calc(100% - 6px);background:var(--sap)}
.bar-f.leaf{background:var(--leaf)}.bar-f.root{background:var(--root)}.bar-f.stone{background:var(--stone-hi)}
.bar b{font:500 20px/1 var(--mono);text-align:right}
.bar-v{grid-column:2/4;font-size:13px;color:var(--bone-2)}
.tipx{display:none;left:110px;bottom:calc(100% + 4px);max-width:320px;font-family:var(--sans);font-size:14px}
.tipx::after{left:20px}
.bar:hover .tipx,.bar:focus .tipx{display:block}

/* ---------------------------------------------------------------- network: tests */
.tests{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.test{padding:22px 20px 20px;display:flex;flex-direction:column;gap:8px}
.test b{font:500 30px/1 var(--mono);color:var(--sap)}
.test span{font-size:16px;color:var(--bone)}
.ti{width:32px;height:32px;image-rendering:pixelated;background:url(/assets/art/depth-icons-2x.png) -32px 0/128px 32px}
.ti-0{background-position:0 0}.ti-2{background-position:-64px 0}

/* ---------------------------------------------------------------- rescue */
.switch{display:inline-flex;align-items:center;gap:12px;font:500 15px/1 var(--px);color:var(--bone-2)}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.sw-t{position:relative;width:64px;height:32px;background:var(--moss);box-shadow:inset 0 0 0 3px var(--void)}
.sw-k{position:absolute;left:6px;top:6px;width:20px;height:20px;background:var(--sap);box-shadow:inset -3px -3px 0 var(--root-2);transition:transform .24s steps(2)}
.switch input:checked+.sw-t{background:var(--sage)}
.switch input:checked+.sw-t .sw-k{transform:translateX(32px)}
.switch input:focus-visible+.sw-t{outline:4px solid var(--leaf);outline-offset:2px}
.switch input:not(:checked)~.sw-l:first-of-type,.switch input:checked~.sw-l:last-of-type{color:var(--bone)}
.switch .sw-l:first-child{color:var(--bone)}
.switch input:checked~.sw-l:last-child{color:var(--bone)}
.honest{font:700 24px/1.3 var(--px);max-width:36ch;margin:28px auto 0;text-align:center}
.rescue-facts{max-width:860px;margin:0 auto}
.fact,.fact-empty{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;padding:20px 24px;color:var(--bone)}
.fact-empty{flex-direction:column;align-items:flex-start}
.fact-empty p{margin:0}
.fact:hover{box-shadow:inset 0 0 0 3px var(--bone-2)}
.fact-h{display:flex;gap:10px;align-items:center;width:100%;font:700 20px/1 var(--px)}
.fact b.mono{font-size:18px}

/* ---------------------------------------------------------------- film player */
.player{padding:12px 12px 0;max-width:980px;margin:30px auto 0}
.pv{position:relative;background:var(--void);aspect-ratio:16/9}
.pv video{width:100%;height:100%;display:block;object-fit:contain;background:var(--void);image-rendering:pixelated}
.pv-big{position:absolute;left:50%;top:50%;width:88px;height:88px;transform:translate(-50%,-50%);border:0;background:var(--sap);color:var(--void);box-shadow:inset 0 0 0 3px var(--void),inset 0 0 0 6px var(--sap-hi),0 6px 0 var(--root-2);display:grid;place-items:center}
.pv-big .ic{width:32px;height:32px}
.pv-big{pointer-events:none}
.player.playing .pv-big{display:none}
.pc{display:flex;align-items:center;gap:12px;padding:12px 4px 14px}
.pbtn{width:44px;height:44px;display:grid;place-items:center;background:var(--void);color:var(--bone);border:0;box-shadow:inset 0 0 0 3px var(--soil-4)}
.pbtn:hover{box-shadow:inset 0 0 0 3px var(--bone-2)}
.ico-pause,.player.playing .ico-play,.ico-mute,.player.muted .ico-sound{display:none}
.player.playing .ico-pause,.player.muted .ico-mute{display:block}
.tl{position:relative;flex:1;height:44px;touch-action:none}
.tl::before{content:"";position:absolute;left:0;right:0;top:17px;height:10px;background:var(--soil-0);box-shadow:inset 0 0 0 2px var(--soil-3)}
.tl-buf,.tl-fill{position:absolute;left:0;top:17px;height:10px;width:0}
.tl-buf{background:var(--soil-3)}.tl-fill{background:var(--sap)}
.tl-k{position:absolute;top:12px;left:-5px;width:10px;height:20px;background:var(--bone);box-shadow:0 3px 0 var(--soil-4)}
.pt{font-size:15px;color:var(--bone-2);min-width:96px;text-align:center}
.vol{display:flex;align-items:flex-end;gap:3px;height:44px;padding:10px 4px;touch-action:none}
.vol i{width:6px;background:var(--soil-3)}
.vol i:nth-child(1){height:8px}.vol i:nth-child(2){height:12px}.vol i:nth-child(3){height:17px}.vol i:nth-child(4){height:22px}
.vol i.on{background:var(--bone)}
.player.fs{max-width:none;margin:0;display:flex;flex-direction:column;justify-content:center;background:var(--void)}
.player.fs .pv{flex:1;aspect-ratio:auto}

/* ---------------------------------------------------------------- guards, mother, list */
.guards{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:8px}
.g{padding:22px 24px}.g h3{font:700 22px/1.2 var(--px);margin:0 0 8px}.g p{margin:0}
.mother-grid{display:grid;grid-template-columns:auto minmax(300px,1fr);gap:36px;align-items:start}
.mnums{padding:18px 22px;display:grid;gap:14px}
.mn{display:flex;flex-direction:column;gap:2px}
.mn b{font:500 22px/1.1 var(--mono)}.mn span{font-size:15px;color:var(--bone-2)}
.mn-tok{display:flex;flex-direction:column;gap:8px;padding-top:12px;box-shadow:0 -3px 0 var(--soil-3)}
.mn-tok span:not(.lab){font-size:15px}
.forest{margin-top:72px}
.st2{color:var(--bone)}
.search input{width:min(320px,80vw)}
input,textarea{font:400 17px/1.3 var(--sans);color:var(--bone);background:var(--soil-1);border:0;border-radius:0;box-shadow:inset 0 0 0 3px var(--soil-4),inset 6px 6px 0 var(--void);padding:12px 14px;min-height:46px;caret-color:var(--sap);width:100%}
input:focus,textarea:focus{outline:0;box-shadow:inset 0 0 0 3px var(--bone-2),inset 6px 6px 0 var(--void)}
input::placeholder{color:var(--bone-3)}
.fld{display:flex;flex-direction:column;gap:8px;font:500 15px/1 var(--px);color:var(--bone-2);border:0;margin:0;padding:0;min-width:0}
.fld legend{padding:0;margin-bottom:8px}
.fld.err input,.fld.err textarea{box-shadow:inset 0 0 0 3px var(--red),inset 6px 6px 0 var(--void)}
.up{text-transform:uppercase}
.list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px 24px}
.tree{padding:20px 20px 16px;display:flex;flex-direction:column;gap:14px}
.tree-a{display:flex;align-items:center;gap:14px;color:var(--bone)}
.tree-a:hover .tree-n b{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px}
.tree-pic{width:64px;height:64px;image-rendering:pixelated;box-shadow:0 0 0 3px var(--bone-2);background:var(--void);object-fit:cover}
.tree-n{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.tree-n b{font:700 20px/1.1 var(--px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tree-d{display:grid;grid-template-columns:repeat(4,auto);gap:8px 16px;margin:0}
.tree-d dt{font-size:13px;color:var(--bone-2)}.tree-d dd{margin:2px 0 0;font-size:16px}
.tree-why{margin:0;font-size:14px;color:var(--bone-2)}
.tree-f{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tree-f .btn{margin-bottom:6px}
.plots{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.plot{height:120px;background:url(/assets/art/tile-2.png) 0 0/480px 480px;image-rendering:pixelated;box-shadow:inset 0 0 0 3px var(--soil-4);display:grid;place-items:end center;padding-bottom:18px}
.sprout{width:48px;height:48px;background:url(/assets/art/cursor-hover.png) 0 0/48px 48px;image-rendering:pixelated;display:block}
.plots-cta{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.plots-cta p{margin:0;font:700 22px/1.2 var(--px)}

/* ---------------------------------------------------------------- footer */
.foot{position:relative;background:url(/assets/art/tile-4.png) 0 0/480px 480px;image-rendering:pixelated;padding:64px var(--gut) 0}
.foot-in{max-width:1180px;margin:0 auto;padding:26px 24px 22px;display:grid;gap:18px}
.foot-ca .cachip.full .mono{word-break:break-all;font-size:15px}
.foot-links{display:flex;gap:12px;flex-wrap:wrap}
.foot-note{margin:0;font-size:14px;color:var(--bone-2)}
.foot-note a{color:var(--leaf);display:inline-block;padding:10px 0}
.bedrock{height:64px;margin:48px calc(var(--gut) * -1) 0;background:var(--void);-webkit-mask:url(/assets/art/stair.png) repeat-x 0 0/48px 12px;mask:none;box-shadow:0 -12px 0 var(--soil-0)}

/* ---------------------------------------------------------------- inner pages */
.inner .page{padding:calc(var(--nav) + 56px) 0 96px;min-height:70vh}
.inner{background-color:var(--void)}
.inner.l1 .page{background:url(/assets/art/tile-1.png) 0 0/480px 480px;image-rendering:pixelated}
.inner.l2 .page{background:url(/assets/art/tile-2.png) 0 0/480px 480px;image-rendering:pixelated}
.inner.l3 .page{background:url(/assets/art/tile-3.png) 0 0/480px 480px;image-rendering:pixelated}
.inner.l4 .page{background:url(/assets/art/tile-4.png) 0 0/480px 480px;image-rendering:pixelated}
.page .wrap{image-rendering:auto}
.lform{padding:26px 26px 22px;display:grid;grid-template-columns:200px 1fr;gap:24px}
.lf-pic{grid-row:span 2}
.pick{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px;background:var(--void);box-shadow:inset 0 0 0 3px var(--soil-4);font:500 15px/1.2 var(--px);color:var(--bone-2);text-align:center;height:100%;justify-content:center}
.pick:hover{box-shadow:inset 0 0 0 3px var(--bone-2)}
.pick img{width:96px;height:96px;object-fit:cover;box-shadow:0 0 0 3px var(--bone-2)}
.pick-e{width:96px;height:96px;display:grid;place-items:center;background:url(/assets/art/tile-2.png) 0 0/160px 160px;image-rendering:pixelated}
#lf-file:focus-visible+.pick,.lf-pic:focus-within .pick{outline:4px solid var(--leaf)}
.lf-f{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.lf-f .wide{grid-column:1/-1}
.seg{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.seg button{min-width:56px;min-height:44px;background:var(--void);color:var(--bone);border:0;font:500 16px/1 var(--mono);box-shadow:inset 0 0 0 3px var(--soil-4)}
.seg button[aria-checked=true]{background:var(--sap);color:var(--void);box-shadow:inset 0 0 0 3px var(--void)}
.seg input{width:110px}
.lf-sum{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0;padding:16px 0 0;box-shadow:0 -3px 0 var(--soil-3)}
.lf-sum dt{font-size:13px;color:var(--bone-2)}.lf-sum dd{margin:4px 0 0;font-size:18px}
.lform>.btn{grid-column:1/-1}
.fine{grid-column:1/-1;margin:0;font-size:14px;color:var(--bone-2)}
.mine{display:grid;gap:12px}
.claimall{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:22px 24px}
.claimall>div{display:flex;flex-direction:column;gap:6px}
.claimall b{font:500 34px/1 var(--mono)}
.mylist{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px 24px}
.handover summary{font:500 15px/1.2 var(--px);color:var(--leaf);padding:8px 0}
.handover form,.don{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.handover .fld{flex:1;min-width:200px}
.hand{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.hand p{margin:0}
.donate{padding:22px 24px;margin-top:60px}.donate p{margin:0 0 14px;max-width:58ch}
.don .fld{width:160px}
.ch{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:12px}
.ch-tree{width:64px;height:96px}
.ch-pic{width:96px;height:96px;image-rendering:pixelated;box-shadow:0 0 0 3px var(--bone-2);object-fit:cover}
.ch-t{flex:1;min-width:240px}.ch-t .st{font-size:48px;margin-bottom:6px;overflow-wrap:anywhere}.ch-t .st::after{display:none}.ch-t p{margin:0 0 8px;display:flex;gap:10px;align-items:center}
.health,.feeding,.ledger,.cranks{padding:22px 24px;margin-top:44px}
.dd{position:relative;height:26px;margin:18px 0 6px;background:var(--void);box-shadow:inset 0 0 0 3px var(--soil-3)}
.dd-fill{position:absolute;left:3px;top:3px;bottom:3px;background:var(--wilt);max-width:calc(100% - 6px)}
.dd-line{position:absolute;top:-8px;bottom:-8px;width:3px;background:var(--bone)}
.dd-line span{position:absolute;top:-22px;left:-14px;font-size:13px}
.dd-l{display:flex;justify-content:space-between;font-size:13px;color:var(--bone-2)}
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px 24px;margin:18px 0 0}
.kv dt{font-size:13px;color:var(--bone-2)}.kv dd{margin:4px 0 0;font-size:19px}
.chunks{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 4px}
.chunks i{width:24px;height:24px;background:var(--void);box-shadow:inset 0 0 0 3px var(--soil-4)}
.chunks i.on{background:var(--sap);box-shadow:inset 0 0 0 3px var(--root-2)}
.cr-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px}
.cranks p{margin:0}
.killer{font:700 40px/1.2 var(--px);max-width:24ch;margin:0 0 32px}
.killer b{font:500 40px/1.2 var(--mono)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 24px}
.sc{padding:20px 22px;display:flex;flex-direction:column;gap:6px}
.sc b{font:500 26px/1.1 var(--mono)}.sc span{font-size:15px;color:var(--bone-2)}
.docs section{margin-top:56px}
.docs p,.docs li{max-width:68ch}
.dl{padding-left:0;list-style:none;display:grid;gap:10px}
.dl li{padding-left:26px;position:relative}
.dl li::before{content:"";position:absolute;left:4px;top:.55em;width:10px;height:10px;background:var(--sap)}
.toc{display:flex;gap:6px 20px;flex-wrap:wrap;padding:16px 20px}
.toc a{font:500 16px/1.4 var(--px);color:var(--leaf);padding:6px 0}
.ptable{padding:8px 18px;overflow-x:auto}
.ptable table{width:100%;border-collapse:collapse}
.ptable th,.ptable td{text-align:left;padding:10px 8px;vertical-align:top;font-size:15px}
.ptable th{font-weight:600;color:var(--bone-2);width:42%}
.ptable tr+tr th,.ptable tr+tr td{box-shadow:0 -2px 0 var(--soil-2)}
.nf-m{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;background:url(/assets/art/tile-3.png) 0 0/480px 480px;image-rendering:pixelated}
.nf-art{width:1024px;max-width:calc(100% - 32px);height:auto;aspect-ratio:256/160;margin-bottom:22px}
.nf-m .st::after{margin-left:auto;margin-right:auto}
.nf-m p{margin:0 0 20px}

/* ---------------------------------------------------------------- toasts, modals (wallet picker) */
.tstack{position:fixed;right:16px;bottom:16px;z-index:90;display:flex;flex-direction:column;gap:10px;max-width:min(420px,calc(100vw - 32px))}
.toast{background:var(--void);color:var(--bone);box-shadow:inset 0 0 0 3px var(--bone-2),3px 3px 0 var(--soil-3);padding:14px 44px 14px 16px;position:relative;font-size:15px}
.toast.ok{box-shadow:inset 0 0 0 3px var(--leaf),3px 3px 0 var(--soil-3)}
.toast.err{box-shadow:inset 0 0 0 3px var(--red),3px 3px 0 var(--soil-3)}
.toast a{display:block;margin-top:6px;color:var(--sap)}
.toast .tx{position:absolute;right:4px;top:4px;width:36px;height:36px;border:0;background:transparent;color:var(--bone);font-size:22px}
.mdl,.wmodal,.wm{z-index:95}
.mdl{position:fixed;inset:0;background:rgba(20,16,13,.9);display:grid;place-items:center;padding:16px}
.dlg-box{position:relative;background:var(--soil-1);box-shadow:inset 0 0 0 3px var(--bone-2);padding:24px;width:min(440px,100%)}
.dlg-x{position:absolute;right:8px;top:8px;width:40px;height:40px;border:0;background:transparent;color:var(--bone);font-size:24px}

/* ---------------------------------------------------------------- responsive */
@media (max-width:1200px){.roots-grid,.mother-grid{grid-template-columns:1fr}.roots-grid .scene,.mother-grid .scene{justify-content:center}.split,.mnums{max-width:720px;width:100%;margin-left:auto;margin-right:auto}}
@media (max-width:1080px){.name{font-size:80px}.links{display:none}.nav .menu{display:grid}}
@media (max-width:860px){.tests,.guards{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.lform{grid-template-columns:1fr}.lf-pic{grid-row:auto}.lf-sum{grid-template-columns:1fr 1fr}}
@media (max-width:760px){
  :root{--depth:20px;--nav:56px;--gut:16px}
  .depth{padding:0;justify-content:flex-start}
  .depth a{position:absolute;left:0;width:20px;height:25%;padding:0;opacity:0}
  .depth a:nth-of-type(1){top:0}.depth a:nth-of-type(2){top:25%}.depth a:nth-of-type(3){top:50%}.depth a:nth-of-type(4){top:75%}
  .depth-bar{right:0;left:auto;width:5px;top:0}
  .depth-mark{width:5px}
  .home .nav{left:var(--depth)}
  .home .nav:not(.solid) .brand{visibility:visible}
  .brand span{display:none}
  .nav{gap:8px;padding:0 12px}
  .wal{padding:0 12px}
  .sky{padding-top:calc(var(--nav) + 12px)}
  .sky-row{position:static;order:4;flex-wrap:wrap;justify-content:center;margin-top:18px}
  .name{font-size:56px;margin:10px 0 8px}
  .line{font-size:18px;margin-bottom:16px}
  .btn.pri{font-size:20px;min-height:52px}
  .plaque{left:calc(50% + 0px);width:calc(100% - 24px);max-width:420px}
  .plaque>div{min-width:0;flex:1;padding:10px 10px}
  .plaque b{font-size:18px}.plaque span{font-size:11px}
  .st{font-size:32px}
  .layer{padding:72px 0 88px}
  .lead{font-size:17px}
  .bar{grid-template-columns:96px 1fr 44px}
  .tipx{left:0;max-width:calc(100vw - 72px)}
  .h-row .switch{width:100%;justify-content:space-between}
  .switch{font-size:13px;gap:8px}
  .honest{font-size:20px}
  .pc{flex-wrap:wrap;gap:8px}
  .tl{order:-1;flex-basis:100%}
  .pt{min-width:0;margin-right:auto}
  .list,.mylist{grid-template-columns:1fr}
  .tree-d{grid-template-columns:repeat(2,auto)}
  .plots{grid-template-columns:repeat(3,1fr)}.plots .plot:nth-child(n+4){display:none}
  .killer,.killer b{font-size:28px}
  .stats{grid-template-columns:1fr}
  .ch-t .st{font-size:34px}
  .claimall b{font-size:28px}
  .tip{min-width:200px}
}
@media (max-width:400px){.sky-row .ca .cl{display:none}.lf-sum{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.btn.busy::after,.sw-k{animation:none;transition:none}}
dialog.dlg{border:0;border-radius:0;background:var(--soil-1);box-shadow:inset 0 0 0 3px var(--bone-2),6px 6px 0 var(--void);color:var(--bone);padding:26px 22px 22px;width:min(440px,calc(100vw - 32px));max-height:90vh}
dialog.dlg::backdrop{background:rgba(20,16,13,.88)}
dialog.dlg h2{font:700 26px/1.1 var(--px);margin:0 0 16px;padding-right:50px}
dialog.dlg .dlg-x,.dlg-box .dlg-x{position:absolute;top:10px;right:10px;width:44px;height:44px;border:0;background:var(--void);color:var(--bone);box-shadow:inset 0 0 0 3px var(--soil-4);font-size:26px;line-height:1}
.wp-list{display:grid;gap:10px}
.wp-item{display:flex;gap:12px;align-items:center;padding:12px;border:0;font:700 17px/1 var(--px);text-align:left;color:var(--bone);background:var(--void);box-shadow:inset 0 0 0 3px var(--soil-4),0 6px 0 var(--soil-0);min-height:54px;margin-bottom:6px}
.wp-item:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 3px var(--sap),0 9px 0 var(--soil-0)}
.wp-item img{width:28px;height:28px}
.wp-dot{width:28px;height:28px;background:var(--sap);display:inline-block}
.wp-get{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px;font-size:14px}.wp-get a{color:var(--leaf);padding:6px 0}
.wp-cur,.wp-none{font-size:15px;margin:0 0 12px;color:var(--bone-2)}
.wp-off{margin-top:14px;box-shadow:inset 0 0 0 3px var(--sage),0 6px 0 var(--moss)}
.wp-err{margin-top:10px;font-size:14px;color:var(--red)}
/* scene sizes: integer scales only */
.roots-grid .scene img{width:640px;height:360px}
.mother-grid .scene{width:640px}
.tree-d{grid-template-columns:1fr 1fr}
@media (max-width:1200px){.mother-grid .scene{width:100%}}
@media (max-width:700px){.roots-grid .scene img{width:320px;height:180px}}
[hidden]{display:none!important}
