.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html,body.town-page{height:100%}body.town-page{overscroll-behavior:none;background:var(--cream);overflow:hidden}.town{position:fixed;inset:0}.town>canvas{touch-action:none;cursor:grab;-webkit-tap-highlight-color:transparent;user-select:none;width:100%;height:100%;display:block;position:absolute;inset:0}.town-bar{z-index:5;left:0;right:0;top:calc(env(safe-area-inset-top,0px) + 12px);padding-inline:max(14px, env(safe-area-inset-left,0px));pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute}.town-bar>*{pointer-events:auto}.brand{border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);line-height:0;display:block}.brand img{border-radius:var(--radius-sm);width:44px;height:44px;display:block}.hint{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 92px);white-space:nowrap;pointer-events:none;margin:0;transition:opacity .6s;position:absolute;transform:translate(-50%)}.hint.gone{opacity:0}.credit{left:max(14px, env(safe-area-inset-left,0px));bottom:calc(env(safe-area-inset-bottom,0px) + 12px);border-radius:var(--radius-sm);pointer-events:none;white-space:nowrap;font:600 .6875rem/1.3 var(--font-body);letter-spacing:.02em;color:var(--forest);background:color-mix(in srgb, var(--cream) 94%, transparent);margin:0;padding:3px 9px;position:absolute;box-shadow:0 1px 4px #011e072e}.credit__sep{opacity:.45;margin:0 .45em}@media (width<=899px){.credit{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 3px);letter-spacing:0;padding:1px 7px;font-size:.625rem;transform:translate(-50%)}.credit__sep{margin:0 .35em}.town .warp{bottom:calc(env(safe-area-inset-bottom,0px) + 26px)}.town .hint{bottom:calc(env(safe-area-inset-bottom,0px) + 100px)}}@media (width<=379px){.credit{font-size:.5625rem}}.warp{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);background:var(--gold);border-color:color-mix(in srgb, var(--gold) 70%, var(--forest));box-shadow:0 4px 18px #011e0747, 0 0 0 0 color-mix(in srgb, var(--gold) 60%, transparent);border-radius:999px;align-items:stretch;animation:2.4s ease-out 1.5s 3 warp-call;display:flex;position:absolute;overflow:hidden;transform:translate(-50%)}.warp button{font-family:var(--font-body);color:var(--forest);cursor:pointer;background:0 0;border:0}.warp button:hover{background:#ffffff38}.warp button:focus-visible{outline:3px solid var(--forest);outline-offset:-3px}.warp__go{text-align:left;align-items:center;gap:.6rem;padding:.55rem .9rem .55rem 1.1rem;display:flex}.warp__go svg{fill:currentColor;flex:none;width:22px;height:22px}.warp__go:hover svg{animation:.8s ease-in-out warp-spin}.warp__text{line-height:1.15;display:grid}.warp__text b{white-space:nowrap;font-size:1rem;font-weight:800}.warp__text small{opacity:.8;white-space:nowrap;text-overflow:ellipsis;max-width:15rem;font-size:.75rem;font-weight:600;overflow:hidden}.warp__about{place-items:center;padding:0 .7rem;display:grid;border-left:1px solid color-mix(in srgb, var(--forest) 25%, transparent)!important}.warp__about svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;width:18px;height:18px}.warp__pick{place-items:center;padding:0 .95rem 0 .8rem;display:grid;border-left:1px solid color-mix(in srgb, var(--forest) 25%, transparent)!important}.warp__pick svg{fill:none;stroke:currentColor;stroke-width:1.5px;width:17px;height:17px}@keyframes warp-call{0%{box-shadow:0 4px 18px #011e0747, 0 0 0 0 color-mix(in srgb, var(--gold) 70%, transparent)}to{box-shadow:0 4px 18px #011e0747,0 0 0 18px #0000}}@keyframes warp-spin{to{transform:rotate(180deg)scale(1.15)}}.warp-flash{pointer-events:none;z-index:40;visibility:hidden;background:radial-gradient(circle at 50% 100%, #fffaf0 0%, #fff3d6 35%, color-mix(in srgb, var(--gold) 80%, #fff) 70%, var(--gold) 100%);clip-path:circle(0% at 50% 100%);position:absolute;inset:0}.warp-flash.on{visibility:visible;clip-path:circle(150% at 50% 100%);transition:clip-path .38s cubic-bezier(.6,0,.9,.6)}.warp-flash.on.out{opacity:0;transition:opacity .7s ease-out}.warp-dest{z-index:41;text-align:center;border-radius:var(--radius-lg);border-top:4px solid var(--gold);background:var(--color-bg);width:max-content;max-width:min(88vw,460px);color:var(--color-text);pointer-events:none;opacity:0;justify-items:center;gap:.3rem;margin:0;padding:1.1rem 1.6rem 1.25rem;display:grid;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 40px #011e0759}.warp-dest small{letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);font-size:.75rem;font-weight:700}.warp-dest b{font-family:var(--font-heading);font-size:clamp(1.8rem,6vw,2.8rem);line-height:1.05}.warp-dest span{font-size:.9375rem;font-weight:500}.warp-dest.show{animation:3.2s ease-out forwards warp-dest}.warp-dest.vision{top:auto;bottom:7.5rem;transform:translate(-50%)}.warp-dest.vision.show{animation-name:warp-vision}@keyframes warp-vision{0%{opacity:0;transform:translate(-50%,8%)scale(.96)}12%{opacity:1;transform:translate(-50%)scale(1)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-4%)}}@keyframes warp-dest{0%{opacity:0;transform:translate(-50%,-40%)scale(.96)}12%{opacity:1;transform:translate(-50%,-50%)scale(1)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-54%)}}@media (width<=380px){.warp__go{gap:.45rem;padding-left:.85rem}.warp__text b{font-size:.9375rem}.warp__text small{max-width:11rem}}.sheet{background:var(--color-bg);max-height:min(70dvh,640px);color:var(--color-text);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-lg);visibility:hidden;flex-direction:column;transition:transform .3s,visibility 0s linear .3s;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(105%)}.sheet.open{visibility:visible;transition:transform .3s;transform:none}.sheet-handle{touch-action:none;cursor:grab;flex:none;justify-content:center;padding:10px 0 6px;display:flex}.sheet-body{overscroll-behavior:contain;min-height:0;padding:0 1.25rem calc(env(safe-area-inset-bottom,0px) + 1.5rem);flex:auto;overflow-y:auto}.sheet-handle span{background:var(--stone);border-radius:3px;width:42px;height:5px}.sheet-close{z-index:2;position:absolute;top:8px;right:10px}.sheet-share{z-index:2;position:absolute;top:8px;right:52px}.sheet .kicker{padding-right:5.5rem}.sheet h2{outline:none;margin:0 0 .75rem;padding-right:2.5rem}.sheet .small{font-size:.875rem}.sheet h3{margin:1.4rem 0 .25rem;font-size:1rem}.person-preview{align-items:center;gap:1rem;display:flex}.person-preview canvas{border-radius:var(--radius);background:color-mix(in srgb, var(--leaf) 12%, var(--color-surface));width:120px;height:120px}.swatch{border-radius:var(--radius-sm);width:34px;height:34px;box-shadow:inset 0 0 0 1px var(--border-subtle);flex:none;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.swatch i{display:block}@media (width>=900px){.sheet{left:auto;top:calc(env(safe-area-inset-top,0px) + 72px);border-radius:var(--radius-lg);width:clamp(460px,36vw,600px);max-height:none;padding-block:var(--radius-lg);border-top:4px solid var(--gold);bottom:16px;right:16px;transform:translate(calc(100% + 24px));box-shadow:0 10px 44px #011e074d}.sheet-handle{display:none}.sheet-body{padding:.6rem 2rem 1rem;font-size:1.0625rem}.sheet h2{font-size:1.85rem}.sheet-close{top:12px;right:12px}.sheet-share{top:12px;right:54px}}@media (prefers-reduced-motion:reduce){.sheet,.sheet.open,.hint{transition:none}.warp,.warp__go:hover svg{animation:none}.warp-dest.show{animation-duration:4s}}.share-dialog{border-radius:var(--radius-lg);background:var(--color-surface,var(--cream));width:min(440px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--color-text);border:0;padding:0;box-shadow:0 10px 40px #011e074d}.share-dialog::backdrop{background:#011e0773}.share-dialog__inner{padding:1.25rem 1.25rem 1.4rem;position:relative}.share-dialog__close{position:absolute;top:10px;right:10px}.share-dialog h2{margin:0 2.5rem .75rem 0;font-size:1.25rem}.share-dialog__formats{margin-bottom:.75rem}.share-dialog__preview{border-radius:var(--radius);background:color-mix(in srgb, var(--leaf) 12%, var(--color-surface,var(--cream)));place-items:center;min-height:180px;max-height:46dvh;display:grid;overflow:hidden}.share-dialog__preview img{object-fit:contain;max-width:100%;max-height:46dvh;display:block}.share-dialog__preview[aria-busy=true]:after{content:"";border:2px solid var(--color-primary);border-right-color:#0000;border-radius:50%;width:22px;height:22px;animation:.7s linear infinite btn-spin}.share-dialog__url{color:var(--color-text);word-break:break-all;margin:.6rem 0 0;font-size:.875rem}.share-dialog__formats{width:100%;margin-top:0;display:flex}.share-dialog__formats .seg__btn{flex:1;justify-content:center;font-size:.875rem}.share-dialog__formats .seg__btn[aria-pressed=true]{background:var(--color-text);color:var(--color-surface,var(--cream))}.share-dialog__actions{grid-auto-columns:1fr;grid-auto-flow:column;gap:.5rem;margin-top:.9rem;display:grid}.share-dialog__actions .btn{white-space:nowrap;padding-inline:.5rem}.share-dialog__actions .btn[hidden]{display:none}.sheet [data-about-intro] h2,.sheet [data-more-body] h2{font-family:var(--font-body);margin:1.4rem 0 .25rem;padding:0;font-size:1rem;font-weight:700}.sheet [data-more-body] h3{font-size:.9375rem}.md-editor__doc h2{font-family:var(--font-body);margin:1.1rem 0 .3rem;padding:0;font-size:1.125rem;font-weight:700}.md-editor__doc h3{margin:.9rem 0 .25rem;font-size:1rem}.join{width:min(520px,100vw - 24px)}.join__list{gap:.55rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.join__list li{padding-left:1.75rem;line-height:1.4;position:relative}.join__list li:before{content:"";border-left:2.5px solid var(--leaf);border-bottom:2.5px solid var(--leaf);width:.85rem;height:.45rem;position:absolute;top:.3rem;left:.15rem;transform:rotate(-45deg)}.join__btns{flex:18rem;gap:.5rem;display:flex}.join__btns .btn{white-space:nowrap;flex:1 1 0;justify-content:center}@media (width<=600px){.join .welcome__foot{flex-direction:column-reverse;align-items:stretch}.join__btns{flex-direction:column-reverse;flex:none}.join__btns .btn{flex:none;width:100%}.join .welcome__foot .link-btn{align-self:center}}.welcome{overscroll-behavior:contain;border-radius:var(--radius-lg);border:0;border-top:4px solid var(--gold);background:var(--color-bg);width:min(620px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--color-text);padding:0;overflow-y:auto;box-shadow:0 12px 48px #011e0759}.welcome::backdrop{background:#011e0780}.welcome__inner{padding:1.4rem 1.4rem 1.2rem;position:relative}.welcome__close{position:absolute;top:10px;right:10px}.welcome__logo{border-radius:var(--radius-sm);width:56px;height:56px;margin-bottom:.6rem;display:block}.welcome h2{margin:0 2.5rem .4rem 0;font-size:clamp(1.4rem,5vw,1.75rem)}.welcome__intro{margin:0 0 1rem}.welcome h2:focus{outline:none}.welcome__links{grid-template-columns:repeat(3,1fr);gap:.6rem;display:grid}.welcome__link{text-align:left;cursor:pointer;min-height:64px;font:inherit;color:var(--color-text);background:var(--color-surface,var(--cream));border:1px solid var(--color-border);border-radius:var(--radius);align-items:center;gap:.75rem;padding:.7rem .85rem;display:flex}.welcome__link:hover{background:color-mix(in srgb, var(--leaf) 12%, var(--color-surface,var(--cream)))}.welcome__link:focus-visible{outline:3px solid var(--leaf);outline-offset:2px}.welcome__link svg{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:26px;height:26px}.welcome__link span{line-height:1.25;display:grid}.welcome__link b{font-size:1rem}.welcome__link small{color:var(--color-muted);font-size:.8125rem}.welcome__link--main{background:var(--gold);border-color:color-mix(in srgb, var(--gold) 70%, var(--forest));color:var(--forest);grid-column:1/-1}.welcome__link--main:hover{background:color-mix(in srgb, var(--gold) 85%, #fff)}.welcome__link--main small{color:color-mix(in srgb, var(--forest) 75%, transparent)}.welcome__follow-title{margin:1.5rem 0 .5rem;font-size:.9375rem;font-weight:700}.welcome__social{grid-auto-columns:1fr;grid-auto-flow:column;gap:.5rem;display:grid}.welcome__social .btn{white-space:nowrap;justify-content:center;gap:.4rem;padding-inline:.5rem}.welcome__social svg{fill:none;stroke:currentColor;stroke-width:1.3px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.welcome__social svg circle[r="0.6"]{fill:currentColor;stroke:none}.welcome__foot{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:1.25rem;padding-top:1rem;display:flex}.welcome__again{cursor:pointer;align-items:center;gap:.5rem;font-size:.9375rem;display:flex}.welcome__again input{width:20px;height:20px;accent-color:var(--leaf)}@media (width<=600px){.welcome__links{grid-template-columns:1fr;gap:.5rem}.welcome__link{min-height:54px;padding:.55rem .8rem}.welcome__inner{padding:1.1rem 1.1rem 1rem}.welcome__logo{width:40px;height:40px}.welcome__foot .btn{width:100%}.welcome__social{grid-template-columns:1fr 1fr;grid-auto-flow:row}}.similar .rows{margin:.5rem 0 0}.similar p{margin:0}
