.visitors{position:fixed;top:max(.6rem,env(safe-area-inset-top));right:.7rem;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.visitors__btn{all:unset;box-sizing:border-box;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;border:2.5px solid #2b2724;border-radius:14px;background:#fff;box-shadow:2px 3px #2b2724;-webkit-tap-highlight-color:transparent;transition:transform .2s cubic-bezier(.2,.8,.2,1)}.visitors__btn svg{width:24px;height:24px;fill:none;stroke:#2b2724;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.visitors__btn:hover{transform:translateY(-2px) rotate(-6deg)}.visitors__btn:focus-visible{outline:3px solid #2b2724;outline-offset:3px}.visitors__pop{display:flex;flex-direction:column;align-items:center;min-width:112px;padding:.55rem 1rem .65rem;border:2.5px solid #2b2724;border-radius:14px;background:#fffdf7;box-shadow:3px 4px #2b2724;animation:visitors-pop .2s cubic-bezier(.2,.8,.2,1);transform-origin:100% 0}.visitors__label{font-family:Cabin Sketch,cursive;font-weight:700;font-size:.95rem;color:#4a4a48}.visitors__num{font-family:Cabin Sketch,cursive;font-weight:700;font-size:2rem;line-height:1.1;color:#1a1a1a}@keyframes visitors-pop{0%{transform:scale(.6);opacity:0}}@media(prefers-reduced-motion:reduce){.visitors__pop,.visitors__btn{animation:none;transition:none}}:root{--line: #2b2724;--toggle-bg: #ffffff;--bg: #f5f5f2;--bg2: #e8e8e4;--text: #1a1a1a;--text-soft: #4a4a48;--asphalt: #2a2a2d;--asphalt-lit: #55555a;--road-line: #ffffff;--road-outline: #1a1a1a;--ring: #ffffff;--room-bg: #f4f4f1;--room-frame: #fbfbf8}.hall{position:absolute;inset:0;z-index:20;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:max(1rem,env(safe-area-inset-top)) 1rem max(2rem,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;text-align:center;background:linear-gradient(var(--bg),var(--bg2));animation:hall-in .9s ease both}.hall--hidden{visibility:hidden}.hall__sun{position:absolute;top:1.2rem;right:8%;width:62px;height:62px;border-radius:50%;background:#fbe9a8;border:3px solid var(--line);opacity:.9;animation:sun-bob 7s ease-in-out infinite;pointer-events:none}@media(max-width:700px){.hall__sun{display:none}}.hall__title{position:relative;font-family:Cabin Sketch,cursive;font-weight:700;font-size:clamp(1.7rem,7vw,3rem);line-height:1.1;margin:1.2rem 0 .4rem;color:var(--text)}.hall__tagline{position:relative;max-width:34rem;font-family:Cabin Sketch,cursive;font-size:clamp(.95rem,3.6vw,1.15rem);color:var(--text-soft);margin-bottom:.5rem}.map{position:relative;container-type:inline-size;width:100%;max-width:520px}.map__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;stroke:var(--line);stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.scenery{stroke:var(--line);stroke-width:2}.road{fill:none}.road__outline{stroke:var(--road-outline);stroke-width:54}.road__edge{stroke:var(--road-line);stroke-width:48}.road__dirt{stroke:var(--asphalt);stroke-width:41}.road__dash{stroke:var(--road-line);stroke-width:3.4;stroke-dasharray:13 11;opacity:.95}.road__trail{fill:none;stroke:var(--asphalt-lit);stroke-width:41;stroke-opacity:.55}.stake__ring{fill:var(--ring);stroke:var(--road-line);stroke-width:2.6;transition:fill .3s}.stake__dot{fill:#9a9a96;stroke:none;transition:fill .3s}.stake.is-reached .stake__ring{fill:var(--ring)}.stake.is-reached .stake__dot{fill:#e0675a}.finish{stroke:var(--line)}.post{position:absolute;width:41cqw;transform:translate(-50%,-50%);perspective:500px;z-index:1;pointer-events:none}.post__pole{position:absolute;left:50%;top:40%;width:3.4cqw;height:20cqw;transform:translate(-50%);background:linear-gradient(90deg,#7a4f2e,#a8693f 40%,#7a4f2e);border:.6cqw solid #2b2724;border-radius:.6cqw .6cqw 1cqw 1cqw;box-shadow:0 1.2cqw #2b27242e;opacity:0;transform:translate(-50%) scaleY(.1);transform-origin:50% 0;transition:opacity .2s,transform .45s cubic-bezier(.25,1,.5,1)}.post.is-reached .post__pole{opacity:1;transform:translate(-50%)}.post__sign{all:unset;box-sizing:border-box;pointer-events:auto;position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:2.2cqw 6cqw 2.2cqw 3cqw;cursor:pointer;font-family:Cabin Sketch,cursive;font-weight:700;font-size:max(4.7cqw,15px);line-height:1.12;color:var(--ink, #2b1d12);text-align:center;-webkit-tap-highlight-color:transparent;transform-origin:50% 0;transform:rotate(var(--tilt)) scale(.2);opacity:0;transition:transform .25s ease,filter .25s ease;--shape: polygon(0 0, 88% 0, 100% 50%, 88% 100%, 0 100%);background:#2b2724;clip-path:var(--shape);isolation:isolate}.post__sign:before{content:"";position:absolute;inset:.7cqw;clip-path:var(--shape);background:repeating-linear-gradient(8deg,transparent 0 9px,rgba(43,29,18,.12) 9px 10px),linear-gradient(var(--wood),color-mix(in srgb,var(--wood) 82%,#000));z-index:-1}.post__sign:after{content:"";position:absolute;inset:.7cqw;clip-path:var(--shape);background:radial-gradient(circle at 5% 50%,#3a3a3a 0 .7cqw,transparent .9cqw),radial-gradient(circle at 86% 18%,#3a3a3a 0 .6cqw,transparent .8cqw),radial-gradient(circle at 86% 82%,#3a3a3a 0 .6cqw,transparent .8cqw);pointer-events:none}.post__label{position:relative;z-index:2;padding-left:1cqw}.post--right .post__sign{--shape: polygon(12% 0, 100% 0, 100% 100%, 12% 100%, 0 50%);padding:2.2cqw 3cqw 2.2cqw 6cqw}.post--right .post__sign:after{background:radial-gradient(circle at 95% 50%,#3a3a3a 0 .7cqw,transparent .9cqw),radial-gradient(circle at 14% 18%,#3a3a3a 0 .6cqw,transparent .8cqw),radial-gradient(circle at 14% 82%,#3a3a3a 0 .6cqw,transparent .8cqw)}.post[data-shape=round] .post__sign{--shape: inset(0 round 7cqw);padding:2.4cqw 6cqw}.post[data-shape=bevel] .post__sign{--shape: polygon(0 16%, 5% 0, 95% 0, 100% 16%, 100% 84%, 95% 100%, 5% 100%, 0 84%);padding:2.4cqw 6cqw}.post[data-shape=hex] .post__sign{--shape: polygon(7% 0, 93% 0, 100% 50%, 93% 100%, 7% 100%, 0 50%);padding:2.4cqw 7cqw}.post[data-shape=crown] .post__sign{--shape: polygon(0 22%, 10% 0, 20% 22%, 30% 0, 40% 22%, 50% 0, 60% 22%, 70% 0, 80% 22%, 90% 0, 100% 22%, 100% 100%, 0 100%);padding:5cqw 6cqw 2.4cqw}.post[data-shape=plaque] .post__sign{--shape: inset(0 round 1.6cqw);padding:2.4cqw 6cqw}.post[data-shape=tag] .post__sign{--shape: polygon(10% 0, 100% 0, 100% 100%, 10% 100%, 0 50%);padding:2.4cqw 4cqw 2.4cqw 8cqw}.post[data-shape=tag] .post__sign:after{background:radial-gradient(circle at 5% 50%,#fff7e0 0 .9cqw,#3a3a3a 1cqw 1.5cqw,transparent 1.6cqw)}.post[data-shape=bevel] .post__sign:after,.post[data-shape=round] .post__sign:after,.post[data-shape=hex] .post__sign:after,.post[data-shape=crown] .post__sign:after,.post[data-shape=plaque] .post__sign:after{background:none}.post.is-reached .post__sign{opacity:1;transform:rotate(var(--tilt)) scale(1);animation:sign-creak 5.5s ease-in-out calc(var(--i) * -.7s) infinite,sign-drop .7s cubic-bezier(.25,1,.5,1) backwards}.post__sign:hover,.post__sign:focus-visible{transform:rotateY(calc(var(--dir, 1) * -10deg)) rotate(0) scale(1.06)!important;animation:none!important;filter:drop-shadow(0 1.5cqw 0 rgba(43,39,36,.3))}.post--right{--dir: -1}.post__sign:focus-visible{outline:3px solid #1a1a1a;outline-offset:3px}.walker{position:absolute;z-index:2;left:0;top:0;width:18cqw;transform:translate(-50%,-92%);will-change:transform;pointer-events:none}.walker__fig{position:relative;transform-origin:50% 100%}.walker__body{display:block;width:100%;height:auto}.walker.is-walking .walker__body{animation:walk-bob .8s ease-in-out infinite}.walker__head{position:absolute;transform-origin:50% 92%;animation:head-idle 8.4s ease-in-out infinite}.walker__head img{display:block;width:100%;height:100%}.walker.is-walking .walker__head{animation:head-bob .8s ease-in-out infinite}.walker__lid{position:absolute;transform:translate(-50%,-50%) scaleY(0);transform-origin:50% 20%;background:var(--skin);border-radius:50%;box-shadow:inset 0 -2px #2b2724;animation:blink 10.8s infinite}.walker__grin{position:absolute;transform:translate(-50%,-30%) scale(.2);transform-origin:50% 0;opacity:0;animation:grin 15s infinite}@keyframes head-idle{0%,to{transform:rotate(-1.2deg) translateY(0)}50%{transform:rotate(1.4deg) translateY(-.5%)}}@keyframes head-bob{0%,to{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-1.4%)}}@keyframes blink{0%,93%,to{transform:translate(-50%,-50%) scaleY(0)}94.6%,95.6%{transform:translate(-50%,-50%) scaleY(1)}}@keyframes grin{0%,64%,to{opacity:0;transform:translate(-50%,-30%) scale(.2)}68%,76%{opacity:1;transform:translate(-50%,-30%) scale(1)}}@keyframes walk-bob{0%,to{translate:0 0;rotate:-1.2deg}50%{translate:0 -.9cqw;rotate:1.2deg}}@keyframes sign-creak{0%,to{transform:rotate(var(--tilt))}50%{transform:rotate(calc(var(--tilt) * -.6))}}@keyframes sign-drop{0%{transform:rotate(-14deg) scale(.3) translateY(-6cqw);opacity:0}}@keyframes sun-bob{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes hall-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.hall,.hall__sun,.post__sign,.walker__body,.walker__head,.walker__lid,.walker__grin{animation:none!important}.post__sign{opacity:1;transform:none}}.pl{position:absolute;inset:0;pointer-events:none;will-change:transform}.scene{stroke:var(--line);stroke-width:1.8;opacity:0;transition:opacity .6s ease}.scene.is-on{opacity:1}.scene .anim,.scene .anim *{animation-play-state:paused}.scene.is-on[data-vis="1"] .anim{animation-play-state:running}.scene.is-on .scene__in{animation:scene-pop .7s cubic-bezier(.25,1,.5,1) backwards;transform-origin:50% 100%;transform-box:fill-box}.anim,.cloud,.bird,.tumbleweed,.sway,.windmill__blades{transform-box:fill-box}.windmill__blades{transform-origin:50% 50%;animation:spin 14s linear infinite}.sway{transform-origin:50% 100%;animation:sway 4.5s ease-in-out infinite}.cloud{animation:cloud-drift var(--d, 50s) linear infinite alternate;stroke-width:1.6}.bird{animation:bird-fly var(--d, 19s) linear infinite}.tumbleweed{stroke-width:1.6;transform-box:view-box;animation:tumble 14s linear infinite}.tumbleweed--b{animation-duration:19s;animation-delay:-7s;animation-direction:reverse}.a-window{animation:window-glow 2.8s ease-in-out infinite}.a-flag{animation:flag-pop 3.2s ease-in-out infinite}.a-page{animation:page-fly 3.3s ease-in infinite;animation-delay:var(--d, 0s);opacity:0}.a-scope{animation:scope 6s ease-in-out infinite}.a-bubble{animation:bubble 2.1s ease-in infinite;animation-delay:var(--d, 0s)}.a-flag2{animation:flag-wave 1.6s ease-in-out infinite}.a-toss{animation:toss 3s ease-in-out infinite}.a-spin{animation:spin 5s linear infinite}.a-wave{animation:wave 1.1s ease-in-out infinite}.a-shine{animation:shine 1.8s ease-in-out infinite}.a-confetti{animation:confetti 2.7s linear infinite;animation-delay:var(--d, 0s)}.a-bob{animation:bob 2.4s ease-in-out infinite;animation-delay:var(--d, 0s)}.a-letter{animation:letter 3.2s ease-in infinite;animation-delay:var(--d, 0s)}.a-plane{animation:plane 7s ease-in-out infinite}@keyframes scene-pop{0%{transform:scale(.2)}}@keyframes sway{0%,to{transform:rotate(-1.8deg)}50%{transform:rotate(1.8deg)}}@keyframes cloud-drift{0%{transform:translate(-26px)}to{transform:translate(26px)}}@keyframes bird-fly{0%{transform:translate(-30px)}50%{transform:translate(120px,-14px)}to{transform:translate(280px,4px)}}@keyframes tumble{0%{transform:translate(-40px,var(--y)) rotate(0)}to{transform:translate(440px,var(--y)) rotate(900deg)}}@keyframes window-glow{0%,to{fill-opacity:.25}50%{fill-opacity:1}}@keyframes flag-pop{0%,55%,to{transform:rotate(80deg)}65%,90%{transform:rotate(0)}}@keyframes page-fly{0%{transform:translate(0) rotate(0);opacity:0}12%{opacity:1}to{transform:translate(64px,-70px) rotate(300deg);opacity:0}}@keyframes scope{0%,to{transform:rotate(-9deg)}50%{transform:rotate(10deg)}}@keyframes bubble{0%{transform:translateY(0);opacity:0}20%{opacity:1}to{transform:translateY(-22px);opacity:0}}@keyframes flag-wave{0%,to{transform:skewY(-8deg) scaleX(1)}50%{transform:skewY(8deg) scaleX(.82)}}@keyframes toss{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-48px) rotate(360deg)}to{transform:translateY(0) rotate(720deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes wave{0%,to{transform:rotate(-24deg)}50%{transform:rotate(26deg)}}@keyframes shine{0%,to{transform:scale(.6) rotate(0);opacity:.6}50%{transform:scale(1.15) rotate(30deg);opacity:1}}@keyframes confetti{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(66px) rotate(300deg);opacity:0}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes letter{0%{transform:translate(0) rotate(-8deg);opacity:0}15%{opacity:1}85%{opacity:1}to{transform:translate(56px,30px) rotate(12deg);opacity:0}}@keyframes plane{0%{transform:translate(-30px,14px)}50%{transform:translate(60px,-26px)}to{transform:translate(150px,8px)}}@media(prefers-reduced-motion:reduce){.windmill__blades,.scene,.scene__in,.anim,.cloud,.bird,.tumbleweed,.sway{animation:none!important;transition:none!important}.scene{opacity:1}}.hall--hidden .map *{animation-play-state:paused!important}.room{position:absolute;inset:0;z-index:30;display:flex;justify-content:center;background:var(--room-bg) url(/textures/paper-texture.webp) center/cover;background-blend-mode:normal;animation:room-in .45s ease both}.room__frame{width:100%;max-width:980px;height:100%;border:0;background:var(--room-frame);box-shadow:0 0 0 1px #00000014,0 0 40px #0000001f}.room__back{all:unset;position:absolute;top:max(.6rem,env(safe-area-inset-top));left:.6rem;z-index:3;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;background:#fff;border:2px solid #1a1a1a;border-radius:3px 10px;box-shadow:2px 2px #0000002e;-webkit-tap-highlight-color:transparent}.room__back svg{width:22px;height:22px;fill:none;stroke:#1a1a1a;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.room__back:focus-visible{outline:3px solid #4a90d9;outline-offset:2px}.room__banner{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:1rem;text-align:center;pointer-events:none;background:#faf8f3f0;font-family:Cabin Sketch,cursive;font-weight:700;font-size:clamp(2rem,9vw,4rem);color:#1a1a1a;animation:banner 2s ease both}@keyframes room-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes banner{0%{opacity:0}15%{opacity:1}70%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.room,.room__banner{animation:none}}.dr{position:fixed;inset:0;z-index:60;perspective:1000px;perspective-origin:50% 42%;overflow:hidden;transition:opacity .22s ease;--w: min(58vw, 270px, 34vh);--r: 6px}.dr.is-fade{opacity:0;pointer-events:none}.dr__zoom{position:absolute;inset:0;display:grid;place-items:center;transform-origin:50% 50%;transition:transform .5s cubic-bezier(.55,0,.2,1);will-change:transform}.dr.is-zoom .dr__zoom{transform:scale(20)}.dr.is-still .dr__zoom{transition:none}.dr__wall{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 22px,rgba(43,39,36,.16) 22px 24px),repeating-linear-gradient(90deg,transparent 0 46px,rgba(43,39,36,.1) 46px 48px),linear-gradient(#f1e4c6,#e4d1a4)}.dr__door{position:relative;width:calc(var(--w) * var(--dw, 1));height:calc(var(--w) * 1.6 * var(--dh, 1));transform-style:preserve-3d;animation:dr-in .22s ease-out backwards}.dr__hole{position:absolute;inset:0;border-radius:var(--r);background:radial-gradient(ellipse at 50% 62%,#fffef2,#ffeaa6 62%,#f5d37a);box-shadow:inset 0 0 28px #3c280a80}.dr__frame{position:absolute;inset:-9px;border:9px solid #5b3a22;border-radius:var(--r);box-shadow:0 0 0 3px #2b2724,0 14px 30px #2b272459;pointer-events:none}.dr__leaf{position:absolute;inset:0;border-radius:var(--r);border:4px solid #2b2724;background:var(--c);box-shadow:inset 0 0 0 7px color-mix(in srgb,var(--c) 72%,#000),inset 0 0 26px #0000002e;transform-origin:0 50%;transition:transform .62s cubic-bezier(.45,0,.2,1);will-change:transform}.dr__leaf:before,.dr__leaf:after{content:"";position:absolute;left:15%;right:15%;border:3px solid rgba(43,39,36,.5);border-radius:5px;background:#ffffff12}.dr__leaf:before{top:9%;height:36%}.dr__leaf:after{bottom:9%;height:36%}.dr__knob{position:absolute;top:52%;right:9%;width:9%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6c6,#f0c24a 55%,#b8862a);border:3px solid #2b2724;box-shadow:0 0 0 5px #2b272438,0 3px 4px #0000004d;z-index:2}.dr__hinge{position:absolute;left:0;width:5%;height:7%;background:linear-gradient(#5a5a5a,#2f2f2f);border:2px solid #2b2724;border-radius:2px;z-index:2}.dr__hinge--t{top:11%}.dr__hinge--b{bottom:11%}.dr[data-type=barn] .dr__hinge,.dr[data-type=garage] .dr__hinge,.dr[data-type=drawbridge] .dr__hinge{display:none}.dr[data-type=mail] .dr__hinge,.dr[data-type=saloon] .dr__leaf--r .dr__hinge,.dr[data-type=double] .dr__leaf--r .dr__hinge{left:auto;right:0}.dr[data-type=arch]{--r: 50% 50% 3px 3px / 24% 24% 3px 3px}.dr[data-type=arch] .dr__leaf:before{left:30%;right:30%;top:12%;height:auto;aspect-ratio:1;border-radius:50%;background:linear-gradient(90deg,transparent 47%,rgba(43,39,36,.6) 47% 53%,transparent 53%),linear-gradient(transparent 47%,rgba(43,39,36,.6) 47% 53%,transparent 53%),#fff4c8d9}.dr.is-open[data-type=arch] .dr__leaf{transform:rotateY(-112deg)}.dr[data-type=saloon]{--dw: 1.3;--dh: .7}.dr[data-type=saloon] .dr__leaf{top:22%;bottom:22%;width:50%;background:repeating-linear-gradient(0deg,var(--c) 0 9px,color-mix(in srgb,var(--c) 65%,#000) 9px 11px);border-radius:3px;transition:transform .7s cubic-bezier(.3,1.5,.5,1)}.dr[data-type=saloon] .dr__leaf:before,.dr[data-type=saloon] .dr__leaf:after{display:none}.dr[data-type=saloon] .dr__leaf--l{left:0;right:auto;transform-origin:0 50%}.dr[data-type=saloon] .dr__leaf--r{left:50%;right:auto;transform-origin:100% 50%}.dr[data-type=saloon] .dr__knob{display:none}.dr.is-open[data-type=saloon] .dr__leaf--l{transform:rotateY(-54deg)}.dr.is-open[data-type=saloon] .dr__leaf--r{transform:rotateY(54deg)}.dr[data-type=vault]{--dw: 1.2;--dh: .75;--r: 50%}.dr[data-type=vault] .dr__leaf{background:radial-gradient(circle at 50% 50%,transparent 0 56%,rgba(0,0,0,.28) 57% 60%,transparent 61%),radial-gradient(circle at 50% 50%,transparent 0 80%,rgba(0,0,0,.22) 81% 84%,transparent 85%),radial-gradient(circle at 50% 9%,#2b2724 0 2.2%,transparent 2.6%),radial-gradient(circle at 50% 91%,#2b2724 0 2.2%,transparent 2.6%),radial-gradient(circle at 9% 50%,#2b2724 0 2.2%,transparent 2.6%),radial-gradient(circle at 91% 50%,#2b2724 0 2.2%,transparent 2.6%),radial-gradient(circle at 21% 21%,#2b2724 0 2.2%,transparent 2.6%),radial-gradient(circle at 79% 21%,#2b2724 0 2.2%,transparent 2.6%),radial-gradient(circle at 21% 79%,#2b2724 0 2.2%,transparent 2.6%),radial-gradient(circle at 79% 79%,#2b2724 0 2.2%,transparent 2.6%),var(--c)}.dr[data-type=vault] .dr__leaf:before,.dr[data-type=vault] .dr__leaf:after{display:none}.dr[data-type=vault] .dr__leaf{transition-delay:.22s}.dr[data-type=vault] .dr__knob{top:50%;left:50%;right:auto;width:34%;background:conic-gradient(from 0deg,#d8dde0 0 12%,transparent 12% 25%,#d8dde0 25% 37%,transparent 37% 50%,#d8dde0 50% 62%,transparent 62% 75%,#d8dde0 75% 87%,transparent 87%);border-radius:50%;box-shadow:inset 0 0 0 5px #c7ccd1;transform:translate(-50%,-50%) rotate(0);transition:transform .3s ease}.dr.is-open[data-type=vault] .dr__leaf{transform:rotateY(-100deg)}.dr.is-open[data-type=vault] .dr__knob{transform:translate(-50%,-50%) rotate(300deg)}.dr[data-type=double]{--dw: 1.3;--r: 50% 50% 3px 3px / 24% 24% 3px 3px}.dr[data-type=double] .dr__leaf{width:50%}.dr[data-type=double] .dr__leaf--l{left:0;right:auto;border-radius:100% 0 3px 3px/24% 0 3px 3px;transform-origin:0 50%}.dr[data-type=double] .dr__leaf--r{left:50%;right:auto;border-radius:0 100% 3px 3px/0 24% 3px 3px;transform-origin:100% 50%}.dr[data-type=double] .dr__leaf--l .dr__knob{right:8%}.dr[data-type=double] .dr__leaf--r .dr__knob{right:auto;left:8%}.dr.is-open[data-type=double] .dr__leaf--l{transform:rotateY(-112deg)}.dr.is-open[data-type=double] .dr__leaf--r{transform:rotateY(112deg)}.dr[data-type=barn]{--dw: 1.35;--dh: .85;--r: 3px}.dr[data-type=barn] .dr__leaf{background:linear-gradient(to top right,transparent calc(50% - 5px),rgba(43,39,36,.8) calc(50% - 4px) calc(50% + 4px),transparent calc(50% + 5px)),linear-gradient(to bottom right,transparent calc(50% - 5px),rgba(43,39,36,.8) calc(50% - 4px) calc(50% + 4px),transparent calc(50% + 5px)),repeating-linear-gradient(90deg,var(--c) 0 28px,color-mix(in srgb,var(--c) 70%,#000) 28px 31px)}.dr[data-type=barn] .dr__leaf:before,.dr[data-type=barn] .dr__leaf:after{display:none}.dr[data-type=barn] .dr__leaf{transition:transform .65s cubic-bezier(.45,0,.2,1)}.dr[data-type=barn] .dr__knob{right:auto;left:8%;top:40%;width:4.5%;aspect-ratio:.22;border-radius:4px}.dr.is-open[data-type=barn] .dr__leaf{transform:translate(-104%)}.dr[data-type=garage]{--dw: 1.3;--dh: .8;--r: 4px}.dr[data-type=garage] .dr__leaf{transform-origin:50% 0;background:repeating-linear-gradient(0deg,var(--c) 0 34px,color-mix(in srgb,var(--c) 60%,#000) 34px 38px);transition:transform .7s cubic-bezier(.45,0,.2,1)}.dr[data-type=garage] .dr__leaf:after{display:none}.dr[data-type=garage] .dr__leaf:before{left:9%;right:9%;top:12%;height:12%;border-radius:3px;background:repeating-linear-gradient(90deg,rgba(207,227,242,.85) 0 22%,transparent 22% 25%)}.dr[data-type=garage] .dr__knob{top:86%;right:50%;transform:translate(50%);width:12%;border-radius:4px;aspect-ratio:2.4}.dr.is-open[data-type=garage] .dr__leaf{transform:scaleY(.14)}.dr[data-type=mail]{--dw: .95;--r: 6px 6px 3px 3px}.dr[data-type=mail] .dr__leaf{transform-origin:100% 50%}.dr[data-type=mail] .dr__leaf:before{left:22%;right:22%;top:10%;height:28%;border-radius:50% 50% 4px 4px;background:#cfe3f2bf}.dr[data-type=mail] .dr__leaf:after{inset:auto 26% 36%;height:7%;background:#2b2724;border-radius:3px;border:0}.dr[data-type=mail] .dr__knob{right:auto;left:9%}.dr.is-open[data-type=mail] .dr__leaf{transform:rotateY(112deg)}.dr[data-type=drawbridge]{--dw: 1.1;--r: 5px}.dr[data-type=drawbridge] .dr__leaf{transform-origin:50% 100%;background:repeating-linear-gradient(90deg,transparent 0 22px,rgba(43,39,36,.35) 22px 25px),var(--c)}.dr[data-type=drawbridge] .dr__leaf:before{left:-2%;right:-2%;top:16%;height:6%;border:0;border-radius:2px;background:#2b272480}.dr[data-type=drawbridge] .dr__leaf:after{left:-2%;right:-2%;bottom:16%;height:6%;border:0;border-radius:2px;background:#2b272480}.dr[data-type=drawbridge] .dr__knob{top:14%;right:50%;transform:translate(50%)}.dr.is-open[data-type=drawbridge] .dr__leaf{transform:rotateX(-78deg)}@keyframes dr-in{0%{transform:scale(.88);opacity:0}}@media(prefers-reduced-motion:reduce){.dr{display:none}}.sr-overlay{position:fixed;inset:0;z-index:1;pointer-events:none}.sr-overlay button,.sr-overlay a{pointer-events:auto}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.sr-focusable:focus{position:fixed!important;top:8px;left:8px;width:auto!important;height:auto!important;padding:12px 20px!important;margin:0!important;overflow:visible!important;clip:auto!important;white-space:normal!important;z-index:10000;background:#1a1a1a;color:#fff;font-size:14px;font-family:system-ui,sans-serif;font-weight:600;border-radius:8px;text-decoration:none;box-shadow:0 4px 12px #0000004d}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}@media(max-width:767px){html{font-size:14px}}body{font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif;background-color:#fafafa;color:#0a0a0a;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-ms-overflow-style:none;scrollbar-width:none}body::-webkit-scrollbar{display:none}.app{width:100%;height:100vh;height:100dvh;position:relative;overflow:hidden}.canvas-wrapper{position:absolute;inset:0;z-index:1}.ui-overlay{position:fixed;inset:0;pointer-events:none;z-index:50}.scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;animation:fadeIn 1s ease .5s both}.scroll-hint__text{font-family:Caveat,cursive;font-size:1rem;color:#666}.scroll-hint__arrow{font-size:1.5rem;color:#0a0a0a;animation:bounce 2s ease infinite}.instructions{position:absolute;bottom:1rem;right:1rem}.instructions p{font-family:Caveat,cursive;font-size:.9rem;color:#888;background:#ffffffe6;padding:.5rem 1rem;border-radius:20px;border:1px solid #eee}@media(max-width:767px){.instructions{bottom:auto;top:1rem;right:1rem}.instructions p{font-size:.75rem}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}.ui-overlay,.scroll-hint,.instructions{-webkit-user-select:none;user-select:none}a{color:inherit;text-decoration:none}button{background:none;border:none;cursor:pointer;font:inherit;color:inherit}@font-face{font-family:Cabin Sketch;src:url(/fonts/CabinSketch-Bold-latin.ttf) format("truetype");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/nunito-500-800.woff2) format("woff2");font-weight:500 800;font-style:normal;font-display:swap}@font-face{font-family:Caveat;src:url(/fonts/caveat-400-700.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}.preloader{position:fixed;inset:0;width:100%;height:100%;z-index:100;pointer-events:auto;cursor:auto}.preloader__half{position:absolute;top:0;bottom:0;width:100%;height:100%;background-color:#fff;background-image:url(/textures/paper-texture.webp);background-size:cover;background-position:center;will-change:transform;filter:drop-shadow(0 0 10px rgba(0,0,0,.1))}.preloader__half--left{left:0}.preloader__half--right{right:0}.preloader__overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}.preloader__percentage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:Caveat,cursive;font-size:2rem;color:#0a0a0a;z-index:20;mix-blend-mode:multiply}.preloader__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;z-index:20;pointer-events:none}.preloader__pct{font-family:Cabin Sketch,cursive;font-weight:700;font-size:1.4rem;color:#1a1a1a}.preloader__title{position:absolute;left:0;right:0;top:calc(50% + min(26vmin,160px));text-align:center;font-family:Cabin Sketch,cursive;font-weight:700;font-size:clamp(1.4rem,5.5vw,2.6rem);color:#1a1a1a;opacity:0;transform:translateY(10px)}.arc-reactor{width:min(52vmin,320px);height:min(52vmin,320px);overflow:visible}.arc-reactor .arc-line{fill:none;stroke:#1a1a1a;stroke-width:.7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;--t: clamp(0, calc(var(--p, 0) * 14 - var(--i, 0)), 1);stroke-dashoffset:calc(1 - var(--t))}.arc-reactor g{--i: 0}.arc-reactor .arc-core{fill:#8fd0f5;opacity:calc(var(--p, 0) * var(--p, 0));filter:drop-shadow(0 0 6px #8fd0f5)}
