@font-face{font-family:Cormorant Garamond;src:url(../fonts/cormorant-garamond-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(../fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212;font-display:swap}@font-face{font-family:Montserrat;src:url(../fonts/montserrat-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;font-display:swap}@font-face{font-family:Montserrat;src:url(../fonts/montserrat-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212;font-display:swap}:root{--plaster: #e4e2dd;--plaster-deep: #d3d0ca;--surface: rgba(238, 236, 232, .92);--surface-solid: #eeece8;--graphite: #2e2f31;--ink-2: #5f5d58;--ink-3: #8a877f;--line: rgba(46, 47, 49, .14);--led: #e3a95e;--led-soft: rgba(255, 179, 92, .42);--danger: #8f3a2c;--serif: "Cormorant Garamond", "Times New Roman", serif;--sans: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--gutter: 16px;--tap: 44px;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--plaster);color:var(--graphite);font:15px/1.45 var(--sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none}body{overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.35;cursor:default}button:focus-visible,.chip:focus-visible{outline:2px solid var(--graphite);outline-offset:2px}svg.lucide{width:20px;height:20px;flex:none}[hidden]{display:none!important}.app{position:fixed;top:0;right:0;bottom:0;left:0;height:100dvh}.viewport{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;user-select:none;-webkit-user-select:none}.viewport-canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.topbar{position:absolute;left:0;right:0;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(8px + var(--safe-t)) calc(var(--gutter) + var(--safe-r)) 8px calc(var(--gutter) + var(--safe-l));background:linear-gradient(to bottom,#e4e2ddf2 55%,#e4e2dd00);pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;flex-direction:column;min-width:0}.wordmark{font:400 22px/1 var(--serif);letter-spacing:.34em;margin-right:-.34em;white-space:nowrap}.brand-sub{font-size:11px;color:var(--ink-2);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}.brand-sub.saved{color:var(--graphite)}.top-actions{display:flex;align-items:center;gap:2px}.icon-btn{width:var(--tap);height:var(--tap);display:grid;place-items:center;border-radius:50%}.icon-btn:active:not(:disabled){background:var(--line)}.pill-btn{height:40px;padding:0 14px;margin-left:4px;display:inline-flex;align-items:center;gap:8px;border-radius:20px;background:var(--graphite);color:#f4f2ee}.pill-btn svg.lucide{width:18px;height:18px}.views{position:absolute;z-index:3;left:0;right:0;top:calc(62px + var(--safe-t));display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:0 calc(var(--gutter) + var(--safe-r)) 6px calc(var(--gutter) + var(--safe-l))}.views::-webkit-scrollbar{display:none}.views button{flex:none;height:36px;padding:0 14px;border-radius:18px;font-size:13px;background:#eeece8db;border:1px solid var(--line);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.views button.active{background:var(--graphite);color:#f4f2ee;border-color:var(--graphite);box-shadow:0 6px 16px -8px var(--led-soft),inset 0 -2px 0 var(--led)}.app:not([data-mode=orbit]) .views{display:none}.dock{position:absolute;z-index:4;left:0;right:0;bottom:0;padding:10px calc(var(--gutter) + var(--safe-r)) calc(10px + var(--safe-b)) calc(var(--gutter) + var(--safe-l));display:grid;gap:8px;background:linear-gradient(to top,#e4e2ddf5 65%,#e4e2dd00)}.modes{display:grid;grid-template-columns:repeat(3,1fr);background:#2e2f3112;border-radius:14px;padding:4px}.modes button{height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:14px;color:var(--ink-2)}.modes button svg.lucide{width:18px;height:18px}.modes button.active{background:var(--surface-solid);color:var(--graphite);box-shadow:0 1px 2px #2e2f311f,inset 0 -2px 0 var(--led)}.dock-actions{display:grid;grid-template-columns:1.3fr 1fr;gap:8px}.primary-btn,.secondary-btn{height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px}.primary-btn{background:var(--graphite);color:#f4f2ee}.secondary-btn{background:var(--surface-solid);border:1px solid var(--line)}.primary-btn:active,.secondary-btn:active,.pill-btn:active{transform:translateY(1px)}.app.sheet-open .dock{visibility:hidden}.app[data-mode=walk] .dock-actions{display:none}.app.view-only .edit-only{display:none!important}.app:not(.view-only) .view-only-show{display:none!important}.coach{position:absolute;z-index:5;left:calc(var(--gutter) + var(--safe-l));right:calc(var(--gutter) + var(--safe-r));top:calc(110px + var(--safe-t));max-width:420px;margin:0 auto;padding:14px 16px;border-radius:16px;background:var(--graphite);color:#f1efea;box-shadow:0 16px 36px -18px #00000080;display:flex;gap:12px;align-items:flex-end}.coach p{margin:0;font-size:13.5px;line-height:1.5;flex:1}.text-btn{height:var(--tap);padding:0 6px;color:var(--led);font-size:14px;white-space:nowrap}.joystick{position:absolute;z-index:4;left:calc(24px + var(--safe-l));bottom:calc(96px + var(--safe-b));width:128px;height:128px;border-radius:50%;background:#eeece88c;border:1px solid rgba(255,255,255,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);touch-action:none}.stick{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:var(--graphite);box-shadow:0 0 0 4px #ffb35c40}.walk-hint{position:absolute;z-index:3;right:calc(var(--gutter) + var(--safe-r));left:168px;bottom:calc(110px + var(--safe-b));margin:0;font-size:12.5px;color:var(--ink-2);text-align:right;text-shadow:0 1px 0 rgba(255,255,255,.6)}.sheet{position:absolute;z-index:6;left:0;right:0;bottom:0;max-height:min(56dvh,520px);display:flex;flex-direction:column;background:var(--surface);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:22px 22px 0 0;box-shadow:0 -14px 40px -24px #2e2f3173;padding-bottom:var(--safe-b);animation:sheet-in .22s ease-out}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}}.sheet-handle{display:block;width:100%;height:22px;flex:none;position:relative}.sheet-handle:before{content:"";position:absolute;left:50%;top:9px;width:40px;height:4px;margin-left:-20px;border-radius:2px;background:#2e2f3138}.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:0 calc(var(--gutter) + var(--safe-r)) 16px calc(var(--gutter) + var(--safe-l))}.sheet-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.sheet-head .pict{width:40px;height:40px;flex:none;color:var(--ink-2);margin-top:2px}.sheet-head h2{margin:0;font:400 27px/1.08 var(--serif)}.sheet-head p{margin:4px 0 0;font-size:13px;color:var(--ink-2)}.sheet-head .icon-btn{margin:-6px -10px 0 auto;flex:none}.sheet h3{margin:16px 0 8px;font:400 13px/1.3 var(--sans);color:var(--ink-2)}.sheet .note{margin:10px 0 0;font-size:12.5px;color:var(--ink-3)}.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) 2px}.chips::-webkit-scrollbar{display:none}.chip{flex:none;min-height:40px;padding:0 14px;border-radius:20px;font-size:14px;border:1px solid var(--line);background:#ffffff73;display:inline-flex;align-items:center;gap:8px}.chip.active{background:var(--graphite);color:#f4f2ee;border-color:var(--graphite);box-shadow:inset 0 -2px 0 var(--led)}.swatch{width:18px;height:18px;border-radius:50%;border:1px solid rgba(46,47,49,.25)}.move{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}.pad{display:grid;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,40px);gap:3px}.pad button,.row-btn{border-radius:12px;background:#ffffff80;border:1px solid var(--line);display:grid;place-items:center}.pad button:active,.row-btn:active{background:var(--plaster-deep)}.pad .up{grid-area:1 / 2}.pad .left{grid-area:2 / 1}.pad .right{grid-area:2 / 3}.pad .down{grid-area:3 / 2}.pad .mid{grid-area:2 / 2;font-size:11px;color:var(--ink-3);border:0;background:none;text-align:center;line-height:1.15}.pad.wall{grid-template-columns:repeat(2,64px);grid-template-rows:44px}.pad.wall .left,.pad.wall .right{grid-area:auto}.move-side{display:grid;gap:6px}.row-btn{height:44px;padding:0 12px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px}.row-pair{display:grid;grid-template-columns:1fr 1fr;gap:6px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.actions .danger{color:var(--danger)}.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.catalog button{min-height:112px;padding:12px 8px 10px;border-radius:14px;border:1px solid var(--line);background:#ffffff80;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;text-align:center}.catalog button:active{background:var(--plaster-deep)}.catalog .pict{width:40px;height:40px;color:var(--graphite)}.catalog b{font-weight:400;font-size:13.5px;line-height:1.2}.catalog small{font-size:11.5px;color:var(--ink-3)}.stack{display:grid;gap:8px}.stack .row-btn{justify-content:flex-start;height:50px;padding:0 14px}.stack .row-btn small{margin-left:auto;color:var(--ink-3);font-size:12px}.help-list{margin:0;padding:0;list-style:none;display:grid;gap:10px;font-size:14px}.help-list li{display:grid;grid-template-columns:112px 1fr;gap:10px}.help-list b{font-weight:400;color:var(--ink-2)}.toast{position:absolute;z-index:9;left:50%;bottom:calc(132px + var(--safe-b));transform:translate(-50%,12px);max-width:calc(100% - 32px);width:max-content;padding:11px 16px;border-radius:14px;background:var(--graphite);color:#f1efea;font-size:13.5px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%)}.app.sheet-open .toast{bottom:calc(min(56dvh,520px) + 12px)}.gl-error{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;place-content:center;text-align:center;padding:24px;color:var(--ink-2)}@media(max-width:520px){.wordmark{font-size:18px;letter-spacing:.26em;margin-right:-.26em}.brand-sub{font-size:10.5px}.pill-btn{width:var(--tap);height:var(--tap);padding:0;justify-content:center;border-radius:50%}.pill-btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.top-actions{gap:0}}@media(min-width:900px){:root{--gutter: 24px}.wordmark{font-size:26px}.views{top:calc(72px + var(--safe-t))}.dock{left:50%;right:auto;transform:translate(-50%);width:560px;grid-template-columns:1.2fr 1fr;align-items:center;background:none}.modes{background:#eeece8e6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 10px 30px -18px #2e2f3166}.dock-actions{grid-template-columns:1fr 1fr}.app.sheet-open .dock{visibility:visible}.sheet{left:auto;right:20px;top:calc(76px + var(--safe-t));bottom:auto;width:380px;max-height:calc(100dvh - 180px);border-radius:20px;box-shadow:0 20px 50px -24px #2e2f3173}.sheet-handle{height:12px}.sheet-handle:before{display:none}.toast,.app.sheet-open .toast,.joystick{bottom:110px}.walk-hint{left:auto;width:340px;bottom:120px}}@media(prefers-reduced-motion:reduce){.sheet{animation:none}.toast{transition:none}}
