:root{--bg: #171512;--ink: #ece4d6;--ink-soft: rgba(236, 228, 214, .55);--ember: rgba(255, 240, 220, .5)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--bg);color:var(--ink);font-family:ui-serif,Georgia,Times New Roman,serif}body{background:radial-gradient(120% 90% at 50% 36%,#221d16,#171512 52%,#0f0d0a) fixed}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.1;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='700'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0045 0.006' numOctaves='3' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='700' height='700' filter='url(%23m)'/%3E%3C/svg%3E")}#sky{position:fixed;inset:0;pointer-events:none;overflow:hidden}.dust{position:fixed;left:-60vw;top:-60vh;width:220vw;height:220vh;background-repeat:repeat;transform-origin:center;will-change:transform}@keyframes dust-breathe{0%{opacity:.55}to{opacity:.9}}.star{position:absolute;left:0;top:0;will-change:transform}.star svg{display:block}.star path{fill:#f0e9d8}.star .bright,.star svg.bright{filter:drop-shadow(0 0 4px rgba(255,246,225,.45))}@keyframes twinkle{0%{opacity:var(--smin, .15);transform:rotate(var(--srot, 0deg)) scale(.94)}to{opacity:var(--smax, .9);transform:rotate(var(--srot, 0deg)) scale(1.05)}}#plate{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}#plate .paper{fill:#cdc1a0}#plate .recess{fill:none;stroke:#0806038c;stroke-width:16}#stage{position:fixed;inset:0;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:default}#stage.pan-ready{cursor:grab}#stage.panning{cursor:grabbing}#world{position:absolute;left:0;top:0;width:0;height:0;will-change:transform;transform-origin:0 0}#grain{position:fixed;inset:0;z-index:40;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E")}.item{position:absolute;left:0;top:0}.float{width:100%;height:100%}.frame{position:relative;width:100%;height:100%;border-radius:6px;box-shadow:0 0 0 1px #fff4e00d,0 6px 28px #00000073;transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s cubic-bezier(.22,.61,.36,1)}.frame img{position:relative;z-index:1;display:block;width:100%;height:100%;border-radius:6px;pointer-events:none;opacity:0;transition:opacity .8s cubic-bezier(.22,.61,.36,1)}.frame img.in{opacity:1}.frame.unborn{opacity:0}.glow{position:absolute;z-index:0;opacity:calc(.55 * var(--zf, 1));pointer-events:none}.glow-core{position:absolute;inset:0;animation:glow-breathe var(--gd, 9s) ease-in-out var(--gdel, 0s) infinite alternate}@keyframes glow-breathe{0%{opacity:.72}to{opacity:1}}.item.sel .frame{transform:scale(1.02);box-shadow:0 0 0 1px #ffeed638,0 10px 44px #0000008c}.item.sel .glow{opacity:calc(.7 * var(--zf, 1))}.corner{position:absolute;z-index:2;width:16px;height:16px;opacity:0;pointer-events:none;border:0 solid var(--ember);transform:scale(var(--hs, 1));transition:opacity .22s ease,border-color .2s ease;filter:drop-shadow(0 0 4px rgba(255,220,180,.3))}.c-nw{top:-6px;left:-6px;border-top-width:1.5px;border-left-width:1.5px;border-top-left-radius:9px;transform-origin:3px 3px;cursor:nwse-resize}.c-ne{top:-6px;right:-6px;border-top-width:1.5px;border-right-width:1.5px;border-top-right-radius:9px;transform-origin:calc(100% - 3px) 3px;cursor:nesw-resize}.c-sw{bottom:-6px;left:-6px;border-bottom-width:1.5px;border-left-width:1.5px;border-bottom-left-radius:9px;transform-origin:3px calc(100% - 3px);cursor:nesw-resize}.c-se{bottom:-6px;right:-6px;border-bottom-width:1.5px;border-right-width:1.5px;border-bottom-right-radius:9px;transform-origin:calc(100% - 3px) calc(100% - 3px);cursor:nwse-resize}.item.sel .corner{opacity:.85;pointer-events:auto}.corner:hover{opacity:1;border-color:#fff4e0d9}.kill{position:absolute;top:-10px;right:-10px;z-index:3;width:20px;height:20px;padding:0;border-radius:50%;border:1px solid rgba(255,244,224,.14);background:#1c1915d9;color:#fff0dca6;font:12px/1 ui-sans-serif,system-ui,sans-serif;opacity:0;pointer-events:none;transform:scale(var(--hs, 1));transform-origin:center;transition:opacity .2s ease}.item.sel .kill{opacity:.9;pointer-events:auto;cursor:pointer}@media(pointer:coarse){.corner{width:26px;height:26px}.kill{width:28px;height:28px;top:-14px;right:-14px;font-size:15px}}@keyframes breath-a{0%{transform:translateZ(0) rotate(0);animation-timing-function:cubic-bezier(.45,.05,.55,.95)}30%{transform:translate3d(calc(var(--ax) * .55),calc(var(--ay) * -1),0) rotate(var(--rot));animation-timing-function:cubic-bezier(.4,0,.6,1)}46%{transform:translate3d(calc(var(--ax) * .7),calc(var(--ay) * -.85),0) rotate(calc(var(--rot) * .8));animation-timing-function:cubic-bezier(.5,0,.35,1)}to{transform:translateZ(0) rotate(0)}}@keyframes breath-b{0%{transform:translateZ(0) rotate(0);animation-timing-function:cubic-bezier(.5,.05,.5,.95)}26%{transform:translate3d(var(--ax),calc(var(--ay) * -.5),0) rotate(calc(var(--rot) * -1));animation-timing-function:cubic-bezier(.45,0,.55,1)}40%{transform:translate3d(calc(var(--ax) * .85),calc(var(--ay) * -.65),0) rotate(calc(var(--rot) * -.7));animation-timing-function:cubic-bezier(.4,0,.3,1)}72%{transform:translate3d(calc(var(--ax) * -.35),calc(var(--ay) * .3),0) rotate(calc(var(--rot) * .4));animation-timing-function:cubic-bezier(.45,.05,.55,.95)}to{transform:translateZ(0) rotate(0)}}@keyframes breath-c{0%{transform:translateZ(0) rotate(0);animation-timing-function:cubic-bezier(.55,.06,.5,.95)}22%{transform:translate3d(calc(var(--ax) * -.5),calc(var(--ay) * -.8),0) rotate(calc(var(--rot) * .7));animation-timing-function:cubic-bezier(.45,0,.55,1)}34%{transform:translate3d(calc(var(--ax) * -.45),calc(var(--ay) * -.9),0) rotate(var(--rot));animation-timing-function:cubic-bezier(.5,.02,.3,1)}68%{transform:translate3d(calc(var(--ax) * .4),calc(var(--ay) * -.15),0) rotate(calc(var(--rot) * -.5));animation-timing-function:cubic-bezier(.5,.05,.55,.95)}to{transform:translateZ(0) rotate(0)}}@keyframes mist-in{0%{opacity:0;filter:blur(10px);transform:translateY(-8px)}60%{opacity:.92}to{opacity:1;filter:blur(0);transform:translateY(0)}}.frame.arrive{animation:mist-in .9s cubic-bezier(.22,.61,.36,1) both}@keyframes mist-emerge{0%{opacity:0;filter:blur(6px);transform:translateY(-5px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.frame.emerge{animation:mist-emerge 1.05s cubic-bezier(.22,.61,.36,1) both}@keyframes mist-out{to{opacity:0;filter:blur(10px);transform:translateY(-8px)}}.frame.depart{animation:mist-out .5s cubic-bezier(.4,0,.7,1) both;pointer-events:none}#map{position:fixed;right:0;bottom:48px;z-index:30;padding:9px 9px 9px 13px;background:#1a171399;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,240,220,.09);border-right:0;border-radius:12px 0 0 12px;box-shadow:0 10px 36px #0006;cursor:pointer;transform:translate(calc(100% - 15px));transition:transform .5s cubic-bezier(.22,.61,.36,1),opacity .5s ease}#map:before{content:"";position:absolute;left:5px;top:50%;width:2px;height:26px;border-radius:2px;background:#fff0dc47;transform:translateY(-50%);transition:opacity .3s ease}#map:hover,#map.out{transform:translate(0)}#map:hover:before,#map.out:before{opacity:0}#map.empty{opacity:0;pointer-events:none}#map canvas{display:block;width:190px;height:124px;border-radius:6px}#hint{position:fixed;inset:0;display:grid;place-items:center;pointer-events:none;font-style:italic;font-size:15px;letter-spacing:.06em;color:#ece4d600}body.ready #hint{transition:color 1.2s ease}#hint.on{color:#ece4d657}#add{position:fixed;right:18px;bottom:calc(174px + env(safe-area-inset-bottom));z-index:10;display:none;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,240,220,.12);background:#1a17139e;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff0dc8c;font:300 24px/1 ui-sans-serif,system-ui,sans-serif}@media(pointer:coarse){#add{display:grid;place-items:center}}#auth{position:fixed;inset:0;z-index:35;display:grid;place-items:center;background:radial-gradient(120% 100% at 50% 42%,#120f0c38,#0d0b08ad)}#auth form{display:flex;flex-direction:column;gap:16px;width:min(320px,80vw);text-align:center;--ax: 2px;--ay: 2.4px;--rot: .15deg;animation:mist-in 1.1s cubic-bezier(.22,.61,.36,1) both,breath-b 9s linear 1.1s infinite}#auth .bfly{margin:0 auto 2px;width:74px;animation:bfly-drift 7.5s ease-in-out infinite alternate;filter:drop-shadow(0 0 10px rgba(255,240,214,.14))}#auth .bfly svg{display:block;width:100%;overflow:visible}#auth .bfly path{fill:#f0e9d80d;stroke:#f0e9d8bf;stroke-width:1.1;stroke-linecap:round}#auth .bfly .body{fill:none;stroke-width:.9}#auth .wing{transform-origin:31px 24px;animation:flap 4.6s ease-in-out infinite}@keyframes flap{0%,34%,70%,to{transform:scaleX(1)}8%{transform:scaleX(.72)}16%{transform:scaleX(1)}24%{transform:scaleX(.8)}82%{transform:scaleX(.9)}}@keyframes bfly-drift{0%{transform:translateY(2px) rotate(-1.2deg)}to{transform:translateY(-4px) rotate(1.4deg)}}#auth p{margin:0 0 8px;font-style:italic;font-size:17px;letter-spacing:.14em;color:#ece4d6a8}#auth input{padding:8px 4px;border:0;border-bottom:1px solid rgba(236,228,214,.25);background:transparent;font:inherit;font-size:16px;color:var(--ink);text-align:center;outline:none;transition:border-color .35s ease,box-shadow .35s ease}#auth input:focus{border-bottom-color:#f0e2c299;box-shadow:0 14px 24px -18px #ffecc859}#auth button{align-self:center;padding:6px 20px;border:1px solid rgba(236,228,214,.22);border-radius:999px;background:transparent;font:inherit;font-size:14px;color:#ece4d6b8;cursor:pointer;transition:background .35s ease,box-shadow .35s ease,color .35s ease}#auth button:hover{background:#f0e6d20f;box-shadow:0 0 18px #ffecc81f;color:#f4ecdee6}#auth .note{min-height:1.2em;font-size:13px;font-style:italic;color:#ece4d673}@keyframes auth-burn{0%{opacity:1;filter:blur(0) brightness(1)}30%{filter:blur(2px) brightness(1.18) sepia(.25)}to{opacity:0;filter:blur(16px) brightness(1.45) sepia(.4);transform:translateY(-14px) scale(1.03)}}#auth.burn{animation:auth-burn 1.8s cubic-bezier(.4,.05,.55,.95) both;pointer-events:none}@media(prefers-reduced-motion:reduce){.float,.glow-core{animation:none!important}.star svg,.dust{animation:none!important;opacity:.45}#auth .wing,#auth .bfly,#auth form{animation:none!important}.frame.arrive,.frame.emerge,.frame.depart{animation-duration:.01s!important}#map{transition:none}}
