@font-face{font-family:Nunito;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/nunito-latin-var.woff2)format("woff2")}@font-face{font-family:Cornerlet Display;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/baloo2-wordmark.woff2)format("woff2")}:root{--face:"Nunito", ui-rounded, "SF Pro Rounded", "Segoe UI Variable", system-ui, -apple-system, sans-serif;--face-display:"Cornerlet Display", var(--face);--face-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--ink-rgb:61 36 24;--ink:#3d2418;--ink-2:#6b4c3a;--ink-3:#8d7161;--ink-hair:rgb(var(--ink-rgb) / .1);--ink-rule:rgb(var(--ink-rgb) / .14);--ink-well:rgb(var(--ink-rgb) / .06);--ink-press:rgb(var(--ink-rgb) / .12);--paper:#e9dcc9;--paper-2:#f3ebdd;--paper-shade:#dbc9b0;--sheet:#fffcf6;--paper-veil:#fffcf6c7;--accent:#c1622e;--accent-deep:#9c4a1d;--accent-veil:#c1622e26;--away:#a05a44;--edge:inset 0 0 0 1px var(--ink-hair);--edge-strong:inset 0 0 0 1px var(--ink-rule);--lift-1:0 1px 1px rgb(var(--ink-rgb) / .05), 0 2px 4px rgb(var(--ink-rgb) / .07);--lift-2:0 1px 2px rgb(var(--ink-rgb) / .06), 0 4px 12px rgb(var(--ink-rgb) / .1);--lift-3:0 2px 4px rgb(var(--ink-rgb) / .07), 0 12px 30px rgb(var(--ink-rgb) / .16);--r-1:10px;--r-2:14px;--r-3:20px;--r-4:26px;--r-pill:999px;--below-scene:8.35rem;--sheets-min:13.55rem;--toolbar-h:2.95rem;--chip:clamp(2.125rem, 9.5vw, 2.5rem)}*{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);font:400 16px/1.45 var(--face);-webkit-text-size-adjust:100%;overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}.u-wordmark{font-family:var(--face-display);letter-spacing:-.005em;font-weight:800;line-height:1}.u-label{letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);font-size:.78rem;font-weight:700}.u-say{color:var(--ink-2);font-size:.95rem;font-weight:400}.mark{display:block;overflow:visible}.mark-wall{fill:var(--paper-shade)}.mark-wall--lit{fill:var(--sheet)}.mark-floor{fill:var(--paper-2)}.mark-sticker{fill:var(--accent);stroke:var(--ink);stroke-width:2.4px;stroke-linejoin:round}.mark-ink{fill:none;stroke:var(--ink);stroke-width:2.4px;stroke-linejoin:round;stroke-linecap:round}.lockup{align-items:center;gap:.7rem;display:flex}.lockup-mark{flex:none;width:3.1rem}.lockup-words{min-width:0}.lockup-name{color:var(--ink);margin:0;font-size:2rem}.lockup-tagline{color:var(--ink-2);margin:.15rem 0 0;font-size:.92rem}#root{height:100%}.app{height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;align-items:center;display:flex}.stage{flex:1;place-items:center;width:100%;min-height:0;padding:0 .5rem;display:grid;position:relative}.app--composing .room{width:min(100%, calc(100dvh - var(--sheets-min) - var(--toolbar-h) - 1.5rem))}.app--composing .stage{flex-direction:column;flex:none;align-items:center;gap:.4rem;padding:.4rem .5rem;display:flex}.room{width:min(100%, calc(100dvh - var(--below-scene) - 1.5rem));max-height:100%;position:relative}.scene{aspect-ratio:1;border-radius:var(--r-4);background-color:var(--paper-2);width:100%;box-shadow:var(--edge-strong), var(--lift-3);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.scene-view{transform-origin:0 0;background-position:50%;background-size:cover;position:absolute;inset:0}.scene-view--looking{will-change:transform}.zoomer,.room-ways,.dbg-fab{background:var(--paper-veil);box-shadow:var(--edge), var(--lift-1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ink)}.zoomer{z-index:9200;border-radius:var(--r-pill);flex-direction:column;gap:2px;padding:2px;display:flex;position:absolute;bottom:8px;left:8px}.zoomer-button{width:max(var(--chip), 2.5rem);height:var(--chip);border-radius:var(--r-pill);color:var(--ink);-webkit-tap-highlight-color:transparent;touch-action:manipulation;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.zoomer-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1.2rem;height:1.2rem}.zoomer-button:active{background:var(--ink-press)}.zoomer-button:disabled{opacity:.3}.sticker{pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}.sticker-art{pointer-events:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.dbg-overlay{z-index:9000;pointer-events:none;position:absolute;inset:0}.dbg-box{background:#0080ff0f;border:1px solid #0080ffe6;position:absolute}.dbg-box-label{color:#fff;white-space:nowrap;background:#0060c8e6;padding:2px 3px;font-size:9px;line-height:1;position:absolute;top:-1.1em;left:0}.dbg-anchor{background:#ff3b6b;border-radius:50%;width:9px;height:9px;margin:-5px 0 0 -5px;position:absolute;box-shadow:0 0 0 2px #fff}.dbg-anchor--center{background:#ffd400}.dbg-fab{left:10px;top:calc(8px + env(safe-area-inset-top));z-index:10000;border-radius:var(--r-pill);color:var(--ink-2);font:inherit;letter-spacing:.07em;text-transform:uppercase;border:0;padding:6px 10px;font-size:.7rem;font-weight:700;position:fixed}.dbg{z-index:10000;width:min(380px,100%);padding:12px 14px calc(28px + env(safe-area-inset-bottom));background:var(--sheet);border-left:1px solid var(--ink-rule);box-shadow:-12px 0 34px rgb(var(--ink-rgb) / .18);font-size:.82rem;position:fixed;inset:0 0 0 auto;overflow-y:auto}.dbg-header{background:var(--sheet);border-bottom:1px solid var(--ink-rule);justify-content:space-between;align-items:center;margin:-12px -14px 8px;padding:12px 14px;display:flex;position:sticky;top:-12px}.dbg h2{margin:0;font-size:.95rem}.dbg h3{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin:0 0 6px;font-size:.8rem}.dbg h4{color:var(--accent);margin:10px 0 4px;font-size:.72rem;font-weight:600}.dbg-section{border-bottom:1px solid var(--ink-rule);padding:10px 0}.dbg-row{flex-wrap:wrap;gap:6px;display:flex}.dbg-row--between{justify-content:space-between;align-items:center}.dbg-button{border:1px solid var(--ink-rule);border-radius:var(--r-1);background:var(--sheet);color:var(--ink);font:inherit;padding:7px 11px;font-size:.78rem}.dbg-button:active{background:var(--paper-2)}.dbg-hint{color:var(--ink-2);margin:6px 0;font-size:.72rem}.dbg-toggle{align-items:center;gap:8px;padding:5px 0;display:flex}.dbg-slider{margin:6px 0;display:block}.dbg-slider-head{color:var(--ink-2);justify-content:space-between;gap:8px;font-size:.74rem;display:flex}.dbg-slider-head b{font-variant-numeric:tabular-nums;color:var(--ink)}.dbg-slider input{width:100%;margin:2px 0 0}.dbg-slider--dirty .dbg-slider-head b{color:var(--accent)}.dbg-json{border:1px solid var(--ink-rule);border-radius:var(--r-1);background:var(--sheet);width:100%;height:220px;color:var(--ink);resize:vertical;margin-top:6px;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.slot{border-radius:var(--r-1);font:inherit;color:var(--ink-2);touch-action:none;-webkit-tap-highlight-color:transparent;cursor:grab;background:0 0;border:0;justify-content:center;align-items:flex-end;padding:0;display:flex;position:absolute}.slot>img{object-fit:contain;pointer-events:none;-webkit-user-drag:none;filter:drop-shadow(0 1.5px 2.5px rgb(var(--ink-rgb) / .3));opacity:0;transition:opacity .22s ease-out}.slot>img.is-in{opacity:1}.slot--taken{background:var(--ink-well)}.slot--taken>img{opacity:.35}.carried{z-index:9500;pointer-events:none;transition:opacity .12s ease-out;position:fixed}.sheets{min-height:var(--sheets-min);-webkit-user-select:none;user-select:none;flex-direction:column;flex:auto;gap:.3rem;width:100%;padding:.4rem .6rem;display:flex}.sheets-card{border-radius:var(--r-3);background:var(--sheet);min-height:0;box-shadow:var(--edge), var(--lift-2);flex:1;padding:.45rem}.sheets-stack{height:100%;position:relative;overflow:hidden}.sheets-page{visibility:hidden;transition:transform .3s cubic-bezier(.3,.72,.28,1);position:absolute;inset:0}.sheets-page--near{visibility:visible}.sheets-page--near:not(.sheets-page--on){pointer-events:none}.sheets-page--on{visibility:visible}@media (prefers-reduced-motion:reduce){.sheets-page{transition:none}}.sheets-pager{flex:none;grid-template-columns:minmax(4.4rem,1fr) auto minmax(4.4rem,1fr);align-items:center;display:grid;position:relative}.pager-turn{justify-content:center;align-items:center;gap:.55rem;display:flex}.pager-zoom{border-radius:var(--r-pill);background:var(--ink-well);justify-self:start;align-items:center;gap:0;display:flex}.pager-zoom-button{border-radius:var(--r-pill);width:2.2rem;height:2.75rem;color:var(--ink-2);-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.pager-zoom-button svg{fill:currentColor;width:1.05rem;height:1.05rem}.pager-zoom-button:active{color:var(--ink)}.pager-zoom-button:disabled{opacity:.25}.pager-step{border-radius:var(--r-pill);background:var(--sheet);width:2.9rem;height:2.9rem;box-shadow:var(--edge), var(--lift-1);color:var(--ink);-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:0;justify-content:center;align-items:center;padding:0;display:flex}.pager-step svg{fill:currentColor;width:1.25rem;height:1.25rem}.pager-step:active{background:var(--paper-2)}.pager-step:disabled{opacity:.28}.pager-dots{align-items:center;gap:.4rem;display:flex}.pager-dots i{background:rgb(var(--ink-rgb) / .3);border-radius:50%;width:9px;height:9px;transition:transform .14s ease-out}.pager-dots i.on{background:var(--accent);transform:scale(1.25)}.pager-dots i.faded{transform:scale(.55)}@media (width>=60rem) and (orientation:landscape),(orientation:landscape) and (height<=34rem){.app--composing{padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right));--room-air:clamp(1.5rem, 8dvh, 4.5rem);--room-max:calc(100dvh - var(--toolbar-h) - var(--room-air));--chip:clamp(2.125rem, 9.5dvh, 2.5rem);--binder-h:min(calc(var(--room-max) + var(--toolbar-h) - 4.4rem), 48rem);flex-direction:row;justify-content:center;align-items:stretch;gap:1.5rem}.app--composing .stage{min-width:0;max-width:calc(var(--room-max) + 1.2rem);flex:1 1 0;justify-content:center;padding:.6rem 0}.app--composing .room{width:min(100%, var(--room-max))}.app--composing .sheets{width:calc(var(--binder-h) * 3 / 4);flex:none;align-self:center;min-width:0;min-height:0;padding:.6rem 0}.app--composing .sheets-card{height:var(--binder-h);flex:none;width:100%}}.sticker--ghost{opacity:.82}.toolbar{height:var(--toolbar-h);border-radius:var(--r-pill);background:var(--sheet);max-width:calc(100% - 1rem);box-shadow:var(--edge), var(--lift-2);flex:none;align-items:center;gap:.1rem;padding:.2rem;transition:opacity .12s ease-out;display:flex}.toolbar--idle{opacity:0;pointer-events:none}.toolbar--place{box-shadow:none;pointer-events:none;background:0 0;justify-content:center}.toolbar-place--first{color:var(--accent-deep)}.toolbar-place{color:var(--ink-2);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.room-ways{z-index:10000;border-radius:var(--r-pill);align-items:center;gap:2px;padding:2px;display:flex;position:absolute;top:8px;right:8px}.way{width:var(--chip);height:max(var(--chip), 2.5rem);border-radius:var(--r-pill);color:var(--ink);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;place-items:center;padding:0;transition:background .16s ease-out,color .16s ease-out,transform .12s ease-out;display:grid}.way svg{width:1.35rem;height:1.35rem}.way--save{color:var(--accent-deep)}.way--done{background:var(--ink);color:var(--sheet)}.way:active{background:var(--ink-press);transform:translateY(1px)}.way:disabled{opacity:.55}@media (hover:hover){.way:not(.way--done):hover{background:var(--ink-press)}}.toolbar-button{border-radius:var(--r-pill);width:2.5rem;min-width:2.1rem;height:2.5rem;color:var(--ink);-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:0 0;border:0;flex:0 auto;justify-content:center;align-items:center;padding:0;display:flex}.toolbar-button svg{fill:currentColor;width:1.35rem;height:1.35rem}.toolbar-button--primary{background:var(--accent-veil);color:var(--accent);width:3rem;min-width:2.5rem}.toolbar-button--primary svg{width:1.6rem;height:1.6rem}.toolbar-pair{border-radius:var(--r-pill);background:var(--ink-well);align-items:center;gap:0;display:flex}.toolbar-pair .toolbar-button{width:2.5rem;min-width:2rem}.toolbar-button--remove{margin-inline-start:.55rem;position:relative}.toolbar-button--remove:before{content:"";background:var(--ink-rule);width:1px;position:absolute;top:24%;bottom:24%;left:-.3rem}.toolbar--undo{justify-content:center;padding-inline:.6rem}.undo-button{border-radius:var(--r-pill);background:var(--ink-well);height:2.75rem;color:var(--ink);font:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:0;align-items:center;gap:.5rem;padding:0 1rem;font-size:.95rem;display:flex}.undo-button svg{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1.15rem;height:1.15rem}.icon-line{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.toolbar-button:active{background:var(--ink-press)}.toolbar-button:disabled{opacity:.3}.toolbar-button--remove{color:var(--away)}.dbg-floor{z-index:8500;pointer-events:none;position:absolute;inset:0}.dbg-floor polygon{fill:#0080ff1a;stroke:#0060c8d9;stroke-width:.4px;vector-effect:non-scaling-stroke}.dbg-carry{z-index:8500;pointer-events:none;position:absolute;inset:0}.dbg-carry line{stroke:#b92b9fe6;stroke-width:1.5px;stroke-dasharray:3 2;vector-effect:non-scaling-stroke}.dbg-button--on{background:var(--accent);border-color:var(--accent);color:#fff}.shelf{--shelf-w:56rem;min-height:100dvh;padding:calc(22px + env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom));background:var(--paper);flex-direction:column;align-items:center;gap:22px;display:flex}.shelf-head{width:100%;max-width:var(--shelf-w)}.shelf-head--row{flex-wrap:wrap;align-items:center;gap:.5rem .8rem;display:flex}.shelf-share{border-radius:var(--r-pill);background:var(--sheet);min-height:2.5rem;box-shadow:var(--edge), var(--lift-1);color:var(--ink-2);font:inherit;white-space:nowrap;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;flex:none;align-items:center;gap:.45rem;margin-inline-start:auto;padding:0 .95rem 0 .8rem;font-size:.85rem;font-weight:700;transition:background .16s ease-out,color .16s ease-out,transform .12s ease-out;display:inline-flex}.shelf-share svg{flex:none;width:1.15rem;height:1.15rem}.shelf-share--done{background:var(--ink);color:var(--sheet)}.shelf-share:active{transform:translateY(1px)}@media (hover:hover){.shelf-share:not(.shelf-share--done):hover{background:var(--paper-2);color:var(--ink)}}.shelf-sheet{width:100%;max-width:var(--shelf-w)}.shelf-section{margin:0 0 12px}.shelf-rooms{grid-template-columns:repeat(auto-fill,minmax(clamp(9rem,22vw,15rem),1fr));align-items:start;gap:20px 14px;display:grid}.shelf-card{flex-direction:column;gap:9px;min-width:0;display:flex}.shelf-room{border-radius:var(--r-3);background:var(--sheet);box-shadow:var(--edge), var(--lift-2);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;padding:7px;transition:transform .13s ease-out,box-shadow .13s ease-out}.shelf-room:active{box-shadow:var(--edge), var(--lift-1);transform:translateY(1px)}.shelf-room img{aspect-ratio:1;border-radius:var(--r-2);outline:1px solid var(--ink-hair);outline-offset:-1px;width:100%;display:block}.shelf-room-loading{aspect-ratio:1;border-radius:var(--r-2);background:var(--ink-well);width:100%;display:block}.shelf-caption{justify-content:space-between;align-items:flex-start;gap:4px;padding:0 4px;display:flex}.shelf-name{color:var(--ink);text-wrap:balance;font-size:.84rem;font-weight:700;line-height:1.25}.shelf-room--new{aspect-ratio:1;box-shadow:none;color:var(--ink-3);background:0 0;border:0;place-items:center;display:grid;position:relative}.shelf-room--new:before{content:"";border:2px dashed var(--ink-rule);border-radius:var(--r-2);position:absolute;inset:7px}.shelf-room--new svg{fill:currentColor;width:30%;height:30%}.shelf-room--new:active:before{border-color:var(--accent)}.shelf-room--new:active{color:var(--accent-deep);box-shadow:none}.picker{flex-direction:column;align-items:center;gap:1.1rem;width:100%;display:flex}.picker-stage{touch-action:pan-y;-webkit-user-select:none;user-select:none;width:100%;position:relative;overflow:clip visible;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 9% 91%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 9% 91%,#0000 100%)}.picker-card{border-radius:var(--r-3);background:var(--sheet);box-shadow:var(--edge), var(--lift-2);transform-origin:50% 42%;cursor:pointer;touch-action:pan-y;-webkit-tap-highlight-color:transparent;border:0;padding:8px;transition:transform .34s cubic-bezier(.2,.7,.3,1),opacity .26s ease-out,box-shadow .26s ease-out;position:absolute;top:0;left:50%}.picker-card--held{box-shadow:var(--edge), var(--lift-3)}.picker-card>img{aspect-ratio:1;border-radius:var(--r-2);outline:1px solid var(--ink-hair);outline-offset:-1px;width:100%;display:block}.picker-spill{pointer-events:none;justify-content:center;align-items:flex-end;gap:3%;display:flex;position:absolute;bottom:-14px;left:0;right:0}.picker-spill img{object-fit:contain;width:auto;max-width:26%;filter:drop-shadow(0 2px 3px rgb(var(--ink-rgb) / .32))}.picker-plate{text-align:center;flex-direction:column;align-items:center;gap:.4rem;display:flex}.picker-name{color:var(--ink);margin:0;font-size:clamp(1.3rem,5vw,1.75rem)}.picker-count{border-radius:var(--r-pill);background:var(--ink-well);box-shadow:var(--edge);color:var(--ink-2);letter-spacing:.02em;font-variant-numeric:tabular-nums;padding:.22rem .62rem;font-size:.78rem;font-weight:700}.picker-nav{align-items:center;gap:.7rem;display:flex}.picker-go{border-radius:var(--r-pill);background:var(--accent-deep);min-height:3rem;box-shadow:var(--lift-2);color:var(--sheet);font:inherit;letter-spacing:.01em;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:0;align-items:center;gap:.55rem;padding:0 1.5rem 0 1.1rem;font-size:1.02rem;font-weight:800;transition:transform .12s ease-out,box-shadow .12s ease-out;display:flex}.picker-go-mark{flex:none;width:1.65rem}.picker-go .mark-wall{fill:#fffcf68c}.picker-go .mark-wall--lit{fill:#fffcf6eb}.picker-go .mark-floor{fill:#fffcf6bf}.picker-go .mark-ink,.picker-go .mark-sticker{stroke:var(--ink)}.picker-go .mark-sticker{fill:var(--accent)}.picker-go:active{box-shadow:var(--lift-1);transform:translateY(1px)}@media (hover:hover){.picker-go:hover{background:#8a3f16}.picker-card:not(.picker-card--held):hover{opacity:.92}}.shelf-sheet--pick{flex-direction:column;align-items:center;gap:.9rem;max-width:100%;display:flex}.shelf--pick{justify-content:center}.shelf--pick .shelf-head,.shelf--pick .shelf-section{text-align:center;justify-content:center;display:flex}.shelf-forget{border-radius:var(--r-1);min-width:34px;height:30px;color:var(--ink-3);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex:none;padding:4px}.shelf-forget svg{fill:currentColor;width:20px;height:20px}.shelf-forget:active{color:var(--away);background:var(--ink-well)}.shelf-forget--sure{background:var(--away);color:var(--sheet);padding:4px 10px}.shelf-forget-word{font-size:.8rem;font-weight:700}.shelf-back{border-radius:var(--r-pill);color:var(--ink-2);font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;margin-top:2px;padding:11px 20px;font-weight:600}.shelf-back:active{background:var(--ink-well);color:var(--ink)}@media (hover:hover){.shelf-room:hover{box-shadow:var(--edge), var(--lift-3);transform:translateY(-2px)}.shelf-room--new:hover{color:var(--accent-deep);box-shadow:none;transform:none}.shelf-room--new:hover:before{border-color:var(--accent)}.shelf-forget:not(.shelf-forget--sure):hover{color:var(--away)}.shelf-back:hover{color:var(--ink)}}.way--shelf svg{fill:currentColor;stroke:none;width:1.2rem;height:1.2rem}.room-ways .way--shelf:not(:first-child){margin-inline-start:.35rem;position:relative}.room-ways .way--shelf:not(:first-child):before{content:"";background:var(--ink-rule);width:1px;position:absolute;top:26%;bottom:26%;left:-.2rem}@media (hover:hover){.slot{cursor:grab;transition:transform .12s}.slot:hover{transform:translateY(-3px)}}.sticker--returning{opacity:.4}
