@property --glow{syntax:"<color>";inherits:true;initial-value:#ffb54733}@property --near{syntax:"<color>";inherits:true;initial-value:#0504032e}@property --far{syntax:"<color>";inherits:true;initial-value:#05040380}@property --tint{syntax:"<color>";inherits:true;initial-value:#0000}@property --up{syntax:"<color>";inherits:true;initial-value:#0000}@property --r1{syntax:"<length>";inherits:true;initial-value:112px}@property --r2{syntax:"<length>";inherits:true;initial-value:300px}.shaft-view{background:#0b0c10;transition:--glow 1.6s,--near 1.6s,--far 1.6s,--tint 1.6s,--up 1.6s,--r1 1.6s,--r2 1.6s}.shaft-view.zone-topsoil{--glow:#ffb54733;--r1:112px;--r2:300px;--near:#0504032e;--far:#05040380;--tint:#0000;--up:#0000}.shaft-view.zone-bedrock{--glow:#ffb5472b;--r1:96px;--r2:250px;--near:#0504036b;--far:#050403bd;--tint:#0e0c1e1f;--up:#0000}.shaft-view.zone-caverns{--glow:#ffb54721;--r1:86px;--r2:220px;--near:#02080a85;--far:#010507d6;--tint:#00323733;--up:#0000}.shaft-view.zone-crystal{--glow:#ffc4781f;--r1:80px;--r2:200px;--near:#0406108f;--far:#02030adb;--tint:#1e32783d;--up:#0000}.shaft-view.zone-magma{--glow:#ff96461a;--r1:140px;--r2:380px;--near:#14040038;--far:#10030080;--tint:#82180024;--up:#ff5a1461}.shaft-view.zone-core{--glow:#fffae140;--r1:220px;--r2:640px;--near:#0000;--far:#320c0024;--tint:#ffc8780f;--up:#ffecaa73}.shaft-view .tint,.shaft-view .dark,.shaft-view .uplight{pointer-events:none;position:absolute;inset:0}.shaft-view .tint{z-index:1;background:var(--tint)}.shaft-view .dark{z-index:2;background:radial-gradient(circle at calc(var(--bore-x) + 30px) 56%, var(--glow) 0, transparent var(--r1), var(--near) var(--r2), var(--far) 100%);animation:3.2s ease-in-out infinite glow-flicker}.shaft-view .uplight{z-index:2;background:linear-gradient(0deg, var(--up), transparent 60%)}.world.fore{z-index:3;pointer-events:none}.world.crossing{--fall:2.1s;--fall-ease:cubic-bezier(.5, 0, .12, 1.12)}.world .ground{z-index:1}.stratum,.zone-lights{position:absolute;left:0;right:0}.stratum:before{content:"";height:12px;position:absolute;bottom:100%;left:0;right:0}.stratum.topsoil{background:radial-gradient(circle at 30% 40%, #6e5034 0 3px, transparent 4px) 0 0 / 46px 38px, radial-gradient(circle at 70% 70%, #2a1c10 0 2px, transparent 3px) 13px 9px / 31px 29px, radial-gradient(ellipse 7px 4px at 50% 50%, #7a5a3a 0 80%, transparent) 22px 31px / 97px 83px, var(--grain) 0 0 / 180px 180px, linear-gradient(180deg, #3b2a17, #5a3c22 60px, #4b321d 420px, #432d1b)}.stratum.topsoil:before{display:none}.stratum.bedrock{background:var(--grain) 0 0 / 180px 180px, repeating-linear-gradient(176deg, #4f3a29 0 38px, #6a4d34 38px 50px, #594230 50px 96px, #7a5b3d 96px 103px, #4a3727 103px 160px, #604631 160px 176px)}.stratum.bedrock:before{background:radial-gradient(circle at 50% 100%,#4f3a29 7px,#0000 8px) 0 0/22px 12px repeat-x,radial-gradient(circle at 50% 100%,#4f3a29 5px,#0000 6px) 9px 3px/15px 9px repeat-x}.stratum.caverns{background:var(--grain) 0 0 / 180px 180px, linear-gradient(90deg, #1c2523 0, transparent 16%, transparent 84%, #1c2523 100%), radial-gradient(ellipse 70% 420px at 55% 320px, #133332, transparent 70%), linear-gradient(180deg, #0d1919, #081011)}.stratum.caverns:before{z-index:1;background:linear-gradient(#4a3828, #4a3828) 0 0 / 100% 7px no-repeat, conic-gradient(from -14deg at 50% 100%, #4a3828 0 28deg, transparent 0) 0 0 / 26px 48px repeat-x, conic-gradient(from -18deg at 50% 100%, #3d2e21 0 36deg, transparent 0) 11px 0 / 37px 30px repeat-x;height:48px;top:0;bottom:auto}.stratum.crystal{background:radial-gradient(circle, #8fa6c8 0 1px, transparent 1.5px) 0 0 / 23px 19px, radial-gradient(circle, #33405a 0 2px, transparent 2.5px) 7px 11px / 37px 31px, linear-gradient(118deg, transparent 0 46%, #a0bef014 46% 48%, transparent 48%) 0 0 / 260px 340px, var(--grain) 0 0 / 180px 180px, linear-gradient(180deg, #232a3b, #1a2030 300px, #161b29)}.stratum.crystal:before{background:conic-gradient(from 135deg at 50% 0, #232a3b 0 90deg, transparent 0) 0 100% / 30px 15px repeat-x;height:18px;transform:scaleY(-1)}.stratum.magma{background:var(--grain) 0 0 / 180px 180px, radial-gradient(ellipse 60% 240px at 30% 70%, #4d1609, transparent 70%) 0 0 / 100% 520px, linear-gradient(180deg, #2a110b, #3a1309 320px, #45160a)}.stratum.magma:before{background:conic-gradient(from 135deg at 50% 0, #2a110b 0 90deg, transparent 0) 0 100% / 18px 12px repeat-x;height:14px;transform:scaleY(-1)}.stratum.magma:after{background:linear-gradient(90deg,#00000080,#1e060040 20% 80%,#00000080)}.stratum.core{background:linear-gradient(#a3360f,#e9772a 220px,#ffc864 560px,#fff0c4 900px,#fff6dc)}.stratum.core:before{background:linear-gradient(#0000,#a3360f);height:160px}.stratum.core:after{display:none}.zone-lights:before,.zone-lights:after{content:"";position:absolute;inset:0}.zone-lights.caverns:before,.zone-lights.caverns:after{background:url(/descent/glowworms.svg) 0 36px/460px 220px;animation:4.6s ease-in-out infinite twinkle;-webkit-mask-image:linear-gradient(#0000 0,#000 40px 170px,#0000004d 340px,#0000 640px);mask-image:linear-gradient(#0000 0,#000 40px 170px,#0000004d 340px,#0000 640px)}.zone-lights.caverns:after{background-position:230px 120px;background-size:400px 192px;animation-delay:-2.3s}.zone-lights.crystal:before,.zone-lights.crystal:after{background:url(/descent/glints.svg) 0 0/540px 480px;animation:3.4s ease-in-out infinite twinkle}.zone-lights.crystal:after{background-position:270px 230px;background-size:430px 384px;animation-delay:-1.7s}.zone-lights.magma:before,.zone-lights.magma:after{filter:drop-shadow(0 0 4px #ff6e1ee6);background:url(/descent/cracks.svg) 0 0/520px 460px;animation:3s ease-in-out infinite smoulder}.zone-lights.magma:after{opacity:.7;background-position:260px 300px;background-size:390px 345px;animation-delay:-1.5s}.zone-lights.core:before{background:radial-gradient(70% 260px,#fffff08c,#0000 70%) 0 400px/100% 760px repeat-y;animation:2.4s ease-in-out infinite smoulder;-webkit-mask-image:linear-gradient(#0000,#000 360px);mask-image:linear-gradient(#0000,#000 360px)}@keyframes twinkle{0%,to{opacity:.35}50%{opacity:1}}@keyframes smoulder{0%,to{opacity:.65}50%{opacity:1}}.feature{pointer-events:none;position:absolute}.feature svg{width:100%;height:100%;display:block;overflow:visible}.feature svg.flip{transform:scaleX(-1)}.feature.roots{z-index:1}.feature.thread{transform-origin:50% 0;animation:5s ease-in-out infinite dangle}.feature.thread:nth-child(2n){animation-duration:6.5s;animation-delay:-2s}.feature.pool .shimmer{animation:2.8s ease-in-out infinite twinkle}.feature.amethyst,.feature.geode{filter:drop-shadow(0 0 7px #be8cff8c)}.feature.quartz{filter:drop-shadow(0 0 7px #aad2ff8c)}.feature.lava,.feature.obsidian{filter:drop-shadow(0 0 8px #ff781eb3);animation:3.2s ease-in-out infinite smoulder}.feature.obsidian{animation-delay:-1.4s}.feature .crawl,.feature .bob,.feature .legs,.feature .tail{transform-box:fill-box;transform-origin:50%}.feature.beetle .crawl{animation:14s ease-in-out infinite pace}.feature.beetle .legs{animation:.22s steps(2,end) infinite scuttle}.feature.spider .bob{animation:7s ease-in-out infinite bob}.feature.spider .legs{transform-origin:50% 0;animation:5s ease-in-out infinite twitch}.feature.salamander{filter:drop-shadow(0 0 6px #ff781ebf)}.feature.salamander .crawl{animation:22s ease-in-out infinite pace-slow}.feature.salamander .tail{transform-origin:100%;animation:1.8s ease-in-out infinite swish}.feature:nth-child(3n) .crawl,.feature:nth-child(3n) .bob{animation-delay:-5s}@keyframes pace{0%,8%{translate:0;scale:1}40%{translate:30px;scale:1}46%,54%{translate:30px;scale:-1 1}86%{translate:0;scale:-1 1}92%,to{translate:0;scale:1}}@keyframes pace-slow{0%,15%{translate:0}50%,65%{translate:18px -1px}}@keyframes scuttle{to{translate:.6px}}@keyframes bob{0%,to{translate:0}45%{translate:0 9px}60%{translate:0 7px}}@keyframes twitch{0%,88%,to{scale:1}92%{scale:1.12 .92}}@keyframes swish{0%,to{rotate:-8deg}50%{rotate:8deg}}@keyframes dangle{0%,to{rotate:-2deg}50%{rotate:2deg}}.zone-title{z-index:4;text-align:center;font-family:var(--display);color:#fff4dc;text-shadow:0 2px 18px #000000f2,0 0 40px #ffb54759;pointer-events:none;opacity:0;font-size:clamp(1.9rem,6vw,3.2rem);font-weight:700;line-height:1.1;animation:3.4s .6s forwards zone-title;position:absolute;top:calc(56% - 135px);left:1rem;right:1rem;translate:0 -50%}.zone-title span{font-family:var(--font);letter-spacing:.32em;text-transform:uppercase;color:var(--lamp-hot);margin-bottom:.35rem;font-size:.75rem;font-weight:700;display:block}@keyframes zone-title{0%{opacity:0;letter-spacing:.1em;transform:translateY(16px)}18%{opacity:1;letter-spacing:.02em;transform:none}72%{opacity:1}to{opacity:0;transform:translateY(-10px)}}.zone-chip{color:var(--lamp-hot);letter-spacing:.08em;background:#0a080680;border:1px solid #ffd98a59;border-radius:999px;margin-left:.5rem;padding:.05rem .55rem;display:inline-block}.shaft-view{--grit:150 112 72}.shaft-view.zone-bedrock{--grit:160 156 148}.shaft-view.zone-caverns{--grit:170 235 230}.shaft-view.zone-crystal{--grit:196 184 255}.shaft-view.zone-magma{--grit:255 140 50}.shaft-view.zone-core{--grit:255 240 200}.rush{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.rush i{width:var(--size);height:var(--len);background:linear-gradient(rgb(var(--grit) / .85), rgb(var(--grit) / 0));opacity:0;border-radius:99px;animation:ease-in forwards rush;position:absolute;top:0}.zone-crystal .rush i,.zone-magma .rush i,.zone-core .rush i{box-shadow:0 0 6px rgb(var(--grit) / .8)}@keyframes rush{0%{opacity:0;transform:translateY(var(--from))}20%,70%{opacity:.85}to{opacity:0;transform:translateY(calc(var(--from) - var(--travel)))}}.drill-head.drilling .flutes{animation:flutes .2s linear var(--spins)}.drill-head.drilling{animation:bite .5s ease-out var(--drill) both}@keyframes flutes{to{transform:translateY(-8px)}}@keyframes bite{0%,to{translate:0}20%{translate:-1.5px 1px}40%{translate:1.5px}60%{translate:-1px 1px}80%{translate:1px}}.puff{position:absolute;top:0;left:0}.puff i,.puff b{opacity:0;pointer-events:none;border-radius:50%;position:absolute;top:0;left:0}.puff i{width:var(--size);height:var(--size);margin:calc(var(--size) / -2);filter:blur(1.2px);background:#e6c89b99;animation:1.1s ease-out both puff}.puff b{background:#d7b98ce6;width:3px;height:3px;animation:1.3s ease-in both crumb}@keyframes puff{0%{opacity:0;transform:translate(0)scale(.5)}15%{opacity:.9}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(2.4)}}@keyframes crumb{0%{opacity:0;transform:translate(0)}10%,60%{opacity:.9}to{opacity:0;transform:translate(var(--dx), var(--fall))}}.ambient{z-index:2;pointer-events:none;animation:2.4s both fade-in;position:absolute;inset:0;overflow:hidden}.ambient i,.ambient .bat{position:absolute}@keyframes fade-in{0%{opacity:0}}.ambient .mote{background:#ffe6b4cc;border-radius:50%;width:2px;height:2px;animation:ease-in-out infinite alternate drift;box-shadow:0 0 4px #ffc87899}@keyframes drift{0%{opacity:0;transform:translate(0)}30%,70%{opacity:.8}to{opacity:0;transform:translate(var(--dx), var(--dy))}}.ambient .bat{width:42px;height:19px;animation:13s linear infinite fly;left:0}.ambient .bat.rev{animation-name:fly-back;animation-duration:17s}.ambient .bat svg{fill:#4a3d35;stroke:#ffcd968c;stroke-width:.6px;filter:drop-shadow(0 0 3px #000000e6);width:100%;height:100%;animation:3.2s ease-in-out infinite flutter;display:block;overflow:visible}.ambient .bat .wing{transform-box:fill-box;transform-origin:50% 60%;animation:.16s ease-in-out infinite alternate flap}@keyframes fly{0%{transform:translate(-40px)}26%,to{transform:translate(calc(100cqw + 40px))}}@keyframes fly-back{0%{transform:translate(calc(100cqw + 40px))scaleX(-1)}22%,to{transform:translate(-40px)scaleX(-1)}}@keyframes flutter{0%,to{translate:0}25%{translate:0 -14px}60%{translate:0 10px}}@keyframes flap{to{scale:1 -.55}}.ambient .drip{opacity:0;background:#befaf0bf;border-radius:50%/30% 30% 70% 70%;width:2px;height:7px;animation:ease-in infinite drip;top:0;box-shadow:0 0 4px #8cf0e199}@keyframes drip{0%{opacity:0;transform:translateY(-10px)}4%{opacity:.9}24%{opacity:.9;transform:translateY(100cqh)}24.1%,to{opacity:0;transform:translateY(100cqh)}}.ambient .firefly{background:#f3e2ff;border-radius:50%;width:4px;height:4px;animation:ease-in-out infinite alternate wander,ease-in-out infinite blink;box-shadow:0 0 6px 2px #c896ffcc,0 0 18px 4px #aa78ff59}.ambient .firefly.cool{background:#e6f8ff;box-shadow:0 0 6px 2px #8cd2ffcc,0 0 18px 4px #6eb4ff59}@keyframes wander{0%{transform:translate(0)}35%{transform:translate(var(--dx), calc(var(--dy) * -.5))}70%{transform:translate(calc(var(--dx) * -.4), var(--dy))}to{transform:translate(calc(var(--dx) * .6), calc(var(--dy) * .3))}}@keyframes blink{0%,to{opacity:.15}50%{opacity:1}}.ambient .ember,.ambient .spark{width:var(--size);height:var(--size);opacity:0;border-radius:50%;animation:linear infinite rise;bottom:0}.ambient .ember{background:#ffc06a;box-shadow:0 0 6px 2px #ff6e14cc}.ambient .spark{filter:blur(.6px);background:#fffbe8;box-shadow:0 0 12px 4px #ffe6a08c}@keyframes rise{0%{opacity:0;transform:translateY(10px)}15%{opacity:.95}60%{opacity:.7;transform:translate(var(--dx), -55cqh)}to{opacity:0;transform:translate(calc(var(--dx) * -.5), -95cqh)}}@media (prefers-reduced-motion:reduce){.rush,.puff,.ambient{display:none}}.shaft-view.page{--rise-ease:cubic-bezier(.5, 0, .2, 1);z-index:0;align-self:stretch;position:relative;inset:auto;container-type:normal}.shaft-view.page .world{transition:none;transform:none}.shaft-view.page :is(.drill-at,.drill-string){transition:top var(--rise) var(--rise-ease), height var(--rise) var(--rise-ease)}.shaft-view.page :is(.tint,.dark,.uplight){transition:opacity calc(var(--rise) * .8) ease-in calc(var(--rise) * .2), visibility 0s linear var(--rise);position:fixed;inset:0}.shaft-view.page.surfaced :is(.tint,.dark,.uplight){opacity:0;visibility:hidden}.shaft-view.page .tag{filter:none;animation:none}.zone-mark{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;color:#fff0d78c;text-shadow:0 1px 4px #000c;font-size:.85rem;font-weight:700;position:absolute;right:1rem}.tag .jams{color:#8c2a12;flex-wrap:wrap;grid-column:1/-1;gap:.1rem .6rem;margin-top:.15rem;font-size:.72rem;font-weight:600;display:flex}.drill-head.broken{transition:rotate .35s cubic-bezier(.3,1.6,.5,1),translate .35s ease-out;translate:3px 6px;rotate:14deg}.drill-head.broken .lamp{fill:#4a3b2a;filter:none;animation:none}.drill-head.broken .collar{fill:#2a2d30}.tag.lost{background:linear-gradient(#d9a48f,#c4846c 60%,#a96a55)}.tag.lost :is(.label,.views){-webkit-text-decoration:line-through #50140a99;text-decoration:line-through #50140a99}.tag.lost .n{color:#f3d6c8;background:linear-gradient(#8a4a3a,#5e2f24)}.lost-stamp{color:#b8300f;letter-spacing:.12em;text-transform:uppercase;background:#ffecdceb;border:2px solid #b8300f;border-radius:4px;padding:.05rem .45rem;font-size:.72rem;font-weight:800;animation:.35s cubic-bezier(.3,1.6,.5,1) .6s backwards stamp-in;position:absolute;top:-.75rem;right:-.3rem;rotate:-8deg}.shaft-view:not(.page) .tag.lost{animation:.6s ease-in-out tag-lost}.shaft-view:not(.page) .tag.lost .n{animation:1.4s cubic-bezier(.5,0,.8,.4) .5s forwards core-fall}@keyframes stamp-in{0%{opacity:0;scale:2.2}}@keyframes tag-lost{0%,to{translate:0}20%{translate:-6px}40%{translate:5px}60%{translate:-3px}80%{translate:2px}}@keyframes core-fall{15%{transform:translateY(-50%)rotate(-12deg)}to{opacity:0;transform:translateY(120px)rotate(70deg)}}@media (prefers-reduced-motion:reduce){.lost-stamp,.shaft-view:not(.page) .tag.lost,.shaft-view:not(.page) .tag.lost .n{animation:none}.shaft-view.page :is(.drill-at,.drill-string,.tint,.dark,.uplight){transition-duration:10ms;transition-delay:0s}}
