:root{--wave-top:calc(var(--hero-pad) + 10px);--wave-s:.4;--wave-h:calc(120px * var(--wave-s))}@media (width>=640px){:root{--wave-s:1}}.carrier{padding-left:var(--indent);position:relative}.sec{padding-top:var(--sec-pad);position:relative}.sec:before,.hero:before,.sec--end h2:after{content:"";left:calc(var(--line-x) - var(--indent) - var(--line-w) / 2);width:var(--line-w);background:var(--accent);position:absolute}.sec:before{top:0;bottom:0}.hero:before{top:calc(var(--wave-top) + var(--wave-h) - 1px);bottom:0}.sec--end:before{display:none}.sec--end h2:after{top:calc(-1 * var(--sec-pad));height:calc(var(--sec-pad) + .6em)}.sec--end{padding-bottom:var(--sec-pad)}.js .sec:before,.js .hero:before,.js .sec--end h2:after{background:var(--track)}.line-fill{display:none}.js .line-fill{z-index:1;left:calc(var(--line-x) - 1px);pointer-events:none;width:2px;height:0;display:block;position:absolute;top:0;overflow:visible}.line-fill line{stroke:var(--accent);stroke-width:var(--line-w);stroke-dasharray:100000;stroke-dashoffset:100000px}.wave{left:calc(var(--line-x) - var(--indent) - 32px * var(--wave-s));top:var(--wave-top);width:calc(64px * var(--wave-s));height:var(--wave-h);position:absolute;overflow:visible}.wave path{fill:none;stroke:var(--accent);stroke-width:calc(var(--line-w) / var(--wave-s));stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1;stroke-dashoffset:0}.node{position:relative}.node:before{content:"";z-index:2;left:calc(var(--line-x) - var(--indent) - 4px);background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 5px var(--bg);border-radius:50%;transition:background-color .3s,box-shadow .3s;position:absolute;top:calc(.6em - 4px)}.node--sm:before{left:calc(var(--line-x) - var(--indent) - 3.5px);width:7px;height:7px;top:calc(.6em - 3.5px)}.node--end:before{left:calc(var(--line-x) - var(--indent) - 6.5px);width:13px;height:13px;box-shadow:0 0 0 5px var(--bg), 0 0 0 6.5px var(--accent);top:calc(.6em - 6.5px)}.js .node:not(.is-lit):before{background:var(--bg);box-shadow:0 0 0 5px var(--bg), inset 0 0 0 1.5px var(--track)}.js .node--end:not(.is-lit):before{box-shadow:0 0 0 5px var(--bg), 0 0 0 6.5px var(--track), inset 0 0 0 1.5px var(--track)}.node--end.is-glow:before{animation:2.4s ease-in-out infinite endglow}@keyframes endglow{0%,to{box-shadow:0 0 0 5px var(--bg), 0 0 0 6.5px var(--accent), 0 0 0 6.5px #8b6cff00}50%{box-shadow:0 0 0 5px var(--bg), 0 0 0 6.5px var(--accent), 0 0 18px 11px #8b6cff6b}}.carrier:after{content:"";z-index:3;left:calc(var(--line-x) - 14px);width:calc(var(--indent) - var(--line-x) + 10px);top:calc(var(--wave-top) + var(--wave-h) - 2px);background:var(--bg);transform-origin:50% 100%;pointer-events:none;position:absolute;bottom:0;transform:scaleY(0)}.js .carrier:after{display:none}@media (prefers-reduced-motion:no-preference){.wave path{animation:1.4s cubic-bezier(.35,.1,.25,1) .15s backwards draw}.carrier:after{animation:2.6s cubic-bezier(.55,0,1,.45) 1.3s backwards reveal}}@keyframes draw{0%{stroke-dashoffset:1px}}@keyframes reveal{0%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.carrier:after{display:none}}.stages{gap:52px;display:grid}.stage h3{position:relative}.stage h3:before{content:"";z-index:2;left:calc(var(--line-x) - var(--indent) - 5.5px);background:var(--bg);border:1.5px solid var(--accent);border-radius:50%;width:11px;height:11px;position:absolute;top:calc(.6em - 5.5px)}.stage h3:after{content:"";left:calc(var(--line-x) - var(--indent) + 10px);width:calc(var(--indent) - var(--line-x) - 26px);background:var(--accent);height:1px;position:absolute;top:.6em}@media (width<=639px){.stage h3:after{display:none}}.stage p{color:var(--muted);max-width:var(--measure);margin-top:8px}.sheet{border:1px solid var(--hair);background:var(--bg);padding:12px;position:relative}.sheet:before{content:"";pointer-events:none;--m:color-mix(in srgb, var(--text) 45%, transparent);background:linear-gradient(var(--m), var(--m)) left top / 15px 1px no-repeat, linear-gradient(var(--m), var(--m)) left top / 1px 15px no-repeat, linear-gradient(var(--m), var(--m)) right top / 15px 1px no-repeat, linear-gradient(var(--m), var(--m)) right top / 1px 15px no-repeat, linear-gradient(var(--m), var(--m)) left bottom / 15px 1px no-repeat, linear-gradient(var(--m), var(--m)) left bottom / 1px 15px no-repeat, linear-gradient(var(--m), var(--m)) right bottom / 15px 1px no-repeat, linear-gradient(var(--m), var(--m)) right bottom / 1px 15px no-repeat;position:absolute;inset:-7px}.sheet.glow{animation:2.4s ease-in-out sheetglow}@keyframes sheetglow{40%{border-color:var(--accent);box-shadow:0 0 40px -8px #8b6cff73}}.plan-box{position:relative}.tblock{flex-wrap:wrap;justify-content:flex-end;margin-top:10px;padding-left:1px;display:flex}.tblock span{border:1px solid var(--hair-strong);color:var(--muted);white-space:nowrap;margin-left:-1px;padding:5px 11px;font-size:.8125rem;line-height:1.35}.tblock span:first-child{color:var(--text);font-weight:500}.sheet--hero .map{opacity:.62;transition:opacity 1.8s}.sheet--hero .map.live{opacity:1;transition-duration:.4s}.map-cap{min-height:3.1em;color:var(--text);align-items:baseline;gap:12px;margin-top:14px;font-size:.96875rem;line-height:1.5;display:flex}.map-cap:before{content:"";background:var(--accent);flex:none;width:18px;height:1px;transform:translateY(-.3em)}.map-cap.in span{animation:.45s both capin}@keyframes capin{0%{opacity:0;transform:translateY(4px)}}.slice{display:none}@media (width<=1023.98px){.js .slice{border:1px solid var(--hair);background:var(--bg);width:100%;max-width:520px;margin:12px 0 22px;display:block;position:relative;overflow:hidden}.js .slice .map{position:absolute}}.map{--fs:13;--u:1;aspect-ratio:720/572;background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-position:0 0;background-size:3.33333% 4.19581%;position:relative;container-type:inline-size}.map canvas.fxc{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.map.still canvas.fxc{display:none}.map svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.map svg *{transform-box:fill-box;transform-origin:50%}.map text{font-family:var(--font-body);font-size:calc(var(--fs) * 1px);letter-spacing:.01em;fill:var(--muted);paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round;font-weight:500}.map text.off,.map text.cut,.map rect.off{display:none}.map .t-room{fill:var(--text)}.map .t-zone{text-transform:uppercase;letter-spacing:.12em;font-weight:600}.map .t-sec{fill:var(--tint)}.map .t-chip{fill:var(--text);stroke:none;font-weight:600}.map .w-o,.map .w-i,.map .win{fill:none;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset 1.3s cubic-bezier(.4, 0, .2, 1) var(--gd,0s)}.map .w-o{stroke:var(--wall);stroke-width:7px;stroke-linejoin:miter}.map .w-o.int{stroke-width:5px}.map .w-i{stroke:var(--bg);stroke-width:5px;stroke-linejoin:miter}.map .w-i.int{stroke-width:3.2px}.map .win{stroke:var(--wall);stroke-width:.9px}.map .g0.on .w-o,.map .g0.on .w-i,.map .g0.on .win{stroke-dashoffset:0}.map .g0 .fade,.map .g0.fade{opacity:0;transition:opacity .6s ease calc(var(--gd,0s) + .65s)}.map .g0.on .fade,.map .g0.on.fade{opacity:1}.map .zone{fill:none;stroke:var(--hair-strong);stroke-width:1px;stroke-dasharray:5 4}.map .fx{fill:none;stroke:var(--fixture);stroke-width:1px}.map .jamb{stroke:var(--wall);stroke-width:1px}.map .door{fill:none;stroke:var(--fixture);stroke-width:.9px}.map .leaf{fill:none;stroke:var(--wall);stroke-width:1.2px}.map .dv *{fill:var(--bg);stroke:color-mix(in srgb, var(--text) 55%, transparent);stroke-width:1.1px}.map .north *{fill:none;stroke:var(--fixture);stroke-width:1px}.map .cbl,.map .cl{fill:none;stroke-linejoin:round;display:none}.map.still .cbl{stroke:color-mix(in srgb, var(--text) 24%, transparent);stroke-width:.9px;display:inline}.map.still .cl.on{stroke:var(--accent);stroke-width:1.6px;display:inline}.map .rv{opacity:0;transition:opacity .5s}.map .rv.on{opacity:1}.map .pop{transition:opacity .45s,transform .7s cubic-bezier(.2,.9,.25,1.25);transform:scale(.5)}.map .pop.on{transform:none}.map .rv.on.ctx,.map .th.on.ctx{opacity:.35}.map .jdot{fill:var(--accent)}.map .th{opacity:0;transition:opacity .4s}.map .th.on{opacity:1}.map .trail{fill:none;stroke:var(--muted);stroke-width:1.1px;stroke-dasharray:3 4;opacity:.85}.map .tstart{fill:var(--muted);opacity:.85}.map .tmark{fill:var(--bg);stroke:var(--muted);stroke-width:1.2px;stroke-dasharray:3 2.4}.map .xcut{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;opacity:0}.map .th.x .xcut{opacity:1;animation:.5s ease-out backwards cutin}@keyframes cutin{0%{opacity:0;transform:scale(.2)}60%{opacity:1;transform:scale(1.5)}to{opacity:1;transform:none}}.map .gate{fill:var(--bg);stroke:var(--accent);stroke-width:1.5px}.map .gate-in{fill:var(--accent)}.map .chip-base{fill:var(--raised);stroke:var(--hair-strong);stroke-width:1px}.map .chip{fill:var(--raised);stroke:var(--accent);stroke-width:1.25px}.map .evt{fill:#8b6cff12;stroke:none}.map .dv-on *{fill:#8b6cff24;stroke:var(--accent);stroke-width:1.3px}.map .badge{fill:var(--bg);stroke:var(--accent);stroke-width:1.2px;transition:transform .55s cubic-bezier(.2,.9,.25,1.3);transform:scale(.4)}.map .chk.on .badge{transform:none}.map .tick{fill:none;stroke:var(--tint);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .45s .2s}.map .chk.on .tick{stroke-dashoffset:0}.map .tile{background:var(--raised);border:1px solid var(--hair-strong);opacity:0;border-radius:3px;justify-content:center;align-items:center;gap:1.1cqi;padding:0 .8cqi;transition:opacity .5s,transform .9s cubic-bezier(.2,.9,.3,1.2),border-color .8s;display:flex;position:absolute;transform:translateY(-12%)scale(.94)}.map .tile.on{opacity:1;border-color:color-mix(in srgb, var(--accent) 45%, var(--hair-strong));transform:none}.map .tile.on.ctx{opacity:.35}.map .tile img{flex:none;max-width:100%;display:block}.map .tile span{font-size:max(12px, calc(var(--u) * 13px));color:var(--text);white-space:nowrap;font-weight:600;line-height:1}.map.still *,.map.still :before{transition:none!important;animation:none!important}.map.bare text:not(.t-keep),.map.bare .tile span{display:none}@media (prefers-reduced-motion:reduce){.map canvas.fxc{display:none}}
