@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./instrument-sans-latin-ext-400-normal-Q_nF8v4l.woff2) format("woff2"),url(./instrument-sans-latin-ext-400-normal-r32jotim.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(./instrument-sans-latin-400-normal-DRC__1Mx.woff2) format("woff2"),url(./instrument-sans-latin-400-normal-D1W7dsQl.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./instrument-sans-latin-ext-500-normal-CTEe1bJa.woff2) format("woff2"),url(./instrument-sans-latin-ext-500-normal-CAxz3nsc.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(./instrument-sans-latin-500-normal-Dk9ku72i.woff2) format("woff2"),url(./instrument-sans-latin-500-normal-Z6ESRlEs.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./instrument-sans-latin-ext-600-normal-BsaQcF38.woff2) format("woff2"),url(./instrument-sans-latin-ext-600-normal-DMks36a2.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(./instrument-sans-latin-600-normal-B7fBEWYG.woff2) format("woff2"),url(./instrument-sans-latin-600-normal-B9e8oLYv.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-semi-condensed-vietnamese-400-normal-Dj7eBp_3.woff2) format("woff2"),url(./barlow-semi-condensed-vietnamese-400-normal-D1YxRXwC.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-semi-condensed-latin-ext-400-normal-BDztQS4c.woff2) format("woff2"),url(./barlow-semi-condensed-latin-ext-400-normal-Bm5hzUPR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-semi-condensed-latin-400-normal-DlzeKIMS.woff2) format("woff2"),url(./barlow-semi-condensed-latin-400-normal-CwTnoNB3.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-semi-condensed-vietnamese-500-normal-DGADhYWF.woff2) format("woff2"),url(./barlow-semi-condensed-vietnamese-500-normal-hJ2t9k9e.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-semi-condensed-latin-ext-500-normal-BXdp1BvY.woff2) format("woff2"),url(./barlow-semi-condensed-latin-ext-500-normal-rZeYuEMb.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-semi-condensed-latin-500-normal-G0uxJNrM.woff2) format("woff2"),url(./barlow-semi-condensed-latin-500-normal-CFOoVYFH.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-semi-condensed-vietnamese-600-normal-b1FQiZcx.woff2) format("woff2"),url(./barlow-semi-condensed-vietnamese-600-normal-DzVrjA0Q.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-semi-condensed-latin-ext-600-normal-BkQ9hN72.woff2) format("woff2"),url(./barlow-semi-condensed-latin-ext-600-normal-BuP8AaxH.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-semi-condensed-latin-600-normal-BkLiAYu4.woff2) format("woff2"),url(./barlow-semi-condensed-latin-600-normal-DyOfdMBA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #fbfbf9;--paper-glass: rgb(251 251 249 / .86);--paper-sunk: #f0efeb;--ink: #23272b;--ink-soft: #545a60;--ink-faint: #858b90;--hairline: rgb(35 39 43 / .12);--hairline-strong: rgb(35 39 43 / .24);--blue: #2f6fb5;--blue-soft: rgb(47 111 181 / .12);--blue-ink: #1f4f86;--conflict: #c8392d;--conflict-soft: rgb(200 57 45 / .12);--on-blue: #ffffff;--on-ink-soft: rgb(255 255 255 / .12);--on-ink-hover: rgb(255 255 255 / .22);--plan-line: #2b2e31;--plan-line-night: #e6e3dc;--plan-dim: #4b5157;--plan-dim-night: #c9c6bf;--plan-halo: rgb(251 251 249 / .92);--plan-halo-night: rgb(20 22 26 / .8);--photo-stage: #1d2023;--photo-scrim: rgb(16 18 21 / .94);--photo-veil: rgb(20 22 26 / .56);--on-photo: #fbfbf9;--on-photo-soft: rgb(251 251 249 / .68);--sky-night: #2a3142;--sky-dawn: #e7a878;--sky-noon: #f3eee2;--sky-dusk: #e28a5c;--font-ui: "Instrument Sans", system-ui, sans-serif;--font-figures: "Barlow Semi Condensed", "Instrument Sans", sans-serif;--size-xs: 11px;--size-s: 12.5px;--size-m: 14px;--size-l: 17px;--size-xl: 26px;--weight-regular: 400;--weight-medium: 500;--weight-strong: 600;--tracking-figures: .01em;--leading: 1.4;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 28px;--radius-s: 6px;--radius-m: 10px;--radius-l: 14px;--radius-pill: 999px;--shadow-float: 0 1px 2px rgb(20 22 26 / .06), 0 8px 28px rgb(20 22 26 / .1);--shadow-chip: 0 0 0 1px rgb(35 39 43 / .14) inset;--blur: 14px;--touch-target: 44px;--pill-button: 38px;--stick-size: 84px;--sheet-half: 45dvh;--ease-out: cubic-bezier(.2, .8, .2, 1);--quick: .16s;--settle: .32s;--panel-width: 320px;--inspector-width: 264px;--swatch: 44px;--bar-height: 44px}@media(prefers-reduced-motion:reduce){:root{--quick: 0ms;--settle: 0ms}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);font-size:var(--size-m);line-height:var(--leading);color:var(--ink);background:var(--paper-sunk);-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.app{position:fixed;inset:0;--dock-clear: calc(var(--bar-height) + var(--space-3))}.view{position:absolute;inset:0;overflow:hidden}.view-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.panel{position:absolute;background:var(--paper-glass);backdrop-filter:blur(var(--blur)) saturate(1.1);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.1);border:1px solid var(--hairline);border-radius:var(--radius-l);box-shadow:var(--shadow-float)}.topbar{position:absolute;top:var(--space-3);left:var(--space-3);right:var(--space-3);height:var(--bar-height);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-3);pointer-events:none}.topbar>*{pointer-events:auto}.tools{grid-column:3;justify-self:end;display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1);background:var(--paper-glass);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--hairline);border-radius:var(--radius-pill);box-shadow:var(--shadow-float)}.tool-gap{width:1px;height:20px;background:var(--hairline);margin:0 var(--space-1)}.conflict-count{display:inline-flex;align-items:center;gap:var(--space-1);height:30px;padding:0 var(--space-2) 0 var(--space-3);border:0;border-radius:var(--radius-pill);background:transparent;cursor:pointer;color:var(--conflict);font-size:var(--size-s);font-weight:var(--weight-medium);white-space:nowrap;transition:background var(--quick) var(--ease-out)}.conflict-count:hover{background:var(--conflict-soft)}.confirm{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--size-s);padding-left:var(--space-2)}.saves-button{position:relative}.topbar:has(.saves){z-index:1}.saves{top:calc(100% + var(--space-3));right:calc(-1 * var(--space-1));width:min(340px,calc(100vw - 2 * var(--space-3)));padding:var(--space-4);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.saves h2{display:flex;justify-content:space-between;align-items:baseline;margin:0;font-size:var(--size-m);font-weight:var(--weight-strong)}.saves h2 .current{font-size:var(--size-s);font-weight:var(--weight-regular);color:var(--ink-soft)}.saves .side-note{margin:0}.help{--help-keys: 13rem;width:min(600px,calc(100vw - 2 * var(--space-3)));max-height:calc(100vh - var(--bar-height) - 4 * var(--space-5));overflow-y:auto;scrollbar-gutter:stable;padding:var(--space-5) var(--space-6);gap:var(--space-5);background:var(--paper)}.help-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3)}.help-head h1{margin:0;font-size:var(--size-l);font-weight:var(--weight-strong)}.help-close{font-size:var(--size-xs);color:var(--ink-soft);white-space:nowrap}.help-groups{display:grid;gap:var(--space-6)}.help-other{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-5);margin-top:calc(-1 * var(--space-3));font-size:var(--size-s)}.help-other-lead{color:var(--ink-soft)}.help-other-mode{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.help-other-detail{color:var(--ink-soft);font-size:var(--size-xs);padding-left:var(--space-1)}.help h2{display:block;margin:0 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--hairline)}.help dl{margin:0;display:grid;gap:var(--space-2)}.help dl div{display:grid;grid-template-columns:var(--help-keys) 1fr;gap:var(--space-4);align-items:start;font-size:var(--size-s);line-height:1.35}.help dt{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.help kbd{margin:0}.help .kbd-mouse{grid-auto-flow:column;gap:var(--space-1);padding-right:var(--space-2)}.help-plus,.help-or{color:var(--ink-faint);font-family:var(--font-figures)}.help-or{padding:0 var(--space-1)}.help-where{color:var(--ink-soft)}.help dd{margin:0;color:var(--ink)}.help-detail{display:block;margin-top:calc(var(--space-1) / 2);font-size:var(--size-xs);color:var(--ink-soft)}@media(max-width:480px){.help dl div{grid-template-columns:1fr;gap:var(--space-1)}}.save-form{display:flex;gap:var(--space-2)}.save-form input{flex:1;min-width:0;width:0;height:30px;padding:0 var(--space-3);border:1px solid var(--hairline-strong);border-radius:var(--radius-pill);background:var(--paper);font:inherit;font-size:var(--size-s);color:var(--ink)}.save-form input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.save-form .button{flex:none}.save-form .button:disabled{opacity:.4;cursor:default}.save-list{list-style:none;margin:0;padding:0;display:grid;max-height:50vh;overflow-y:auto}.save-list li{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:var(--space-2);padding:var(--space-2) 0;border-top:1px solid var(--hairline)}.save-name{font-size:var(--size-s);font-weight:var(--weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-meta{grid-row:2;font-size:var(--size-xs);color:var(--ink-soft)}.save-actions{grid-row:1 / 3;grid-column:2;display:flex;align-items:center;gap:2px}.save-confirm{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.save-question{flex:1 1 100%;font-size:var(--size-s);color:var(--ink)}.icon-button{display:inline-grid;place-items:center;width:34px;height:34px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--ink-soft);cursor:pointer;transition:background var(--quick) var(--ease-out),color var(--quick) var(--ease-out)}.icon-button:hover:not(:disabled){background:var(--paper-sunk);color:var(--ink)}.icon-button:disabled{opacity:.35;cursor:default}.icon-button.is-on{background:var(--blue-soft);color:var(--blue-ink)}.icon-button.small{width:28px;height:28px}.button{display:inline-flex;align-items:center;gap:var(--space-1);height:30px;padding:0 var(--space-3);border:1px solid var(--hairline-strong);border-radius:var(--radius-pill);background:var(--paper);color:var(--ink);font-size:var(--size-s);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--quick) var(--ease-out),border-color var(--quick) var(--ease-out)}.button:hover{border-color:var(--ink-faint)}.button.small{height:28px;padding:0 var(--space-2)}.button.quiet{border-color:var(--hairline)}.button.danger{color:var(--conflict);border-color:var(--conflict-soft)}.button.danger:hover{background:var(--conflict-soft)}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--paper-glass);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--hairline);border-radius:var(--radius-pill);box-shadow:var(--shadow-float)}.segmented button{display:inline-flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-4);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--ink-soft);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--quick) var(--ease-out),color var(--quick) var(--ease-out)}.segmented button:hover{color:var(--ink)}.segmented button.is-on{background:var(--ink);color:var(--paper)}.segmented.full{display:flex;box-shadow:none;background:var(--paper-sunk)}.segmented.full button{flex:1;justify-content:center;height:30px}.side{top:var(--space-3);left:var(--space-3);bottom:var(--space-3);width:var(--panel-width);display:flex;flex-direction:column;padding:var(--space-3);gap:var(--space-3)}.side-display{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1)}.side-display-label{grid-column:1 / -1;font-size:var(--size-s);color:var(--ink-soft)}.side-display .button{justify-content:flex-start}.side-display .button kbd{margin-left:auto}.side-display .button:disabled{opacity:.45;cursor:default}.side-display .button.is-wide,.side-display .side-look{grid-column:1 / -1}.side-scroll{overflow-y:auto;margin:0 calc(-1 * var(--space-3));padding:0 var(--space-3) var(--space-2);scrollbar-width:thin}.group{padding:var(--space-3) 0;border-top:1px solid var(--hairline)}.group:first-child{border-top:0;padding-top:var(--space-1)}.group h2{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 var(--space-2);font-size:var(--size-m);font-weight:var(--weight-strong)}.group h2 .current{font-size:var(--size-s);font-weight:var(--weight-regular);color:var(--ink-soft)}.stimmungen{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.stimmung{display:grid;gap:2px;text-align:left;padding:var(--space-2);border:1px solid var(--hairline);border-radius:var(--radius-m);background:var(--paper);cursor:pointer;transition:border-color var(--quick) var(--ease-out),transform var(--quick) var(--ease-out)}.stimmung:hover{border-color:var(--hairline-strong);transform:translateY(-1px)}.stimmung-strip{display:flex;height:26px;border-radius:var(--radius-s);overflow:hidden;margin-bottom:var(--space-1);box-shadow:var(--shadow-chip)}.stimmung-strip i{flex:1}.stimmung-name{font-weight:var(--weight-strong);font-size:var(--size-s)}.stimmung-note{font-size:var(--size-xs);color:var(--ink-soft)}.furnishing-fill{margin-bottom:var(--space-2)}.furnishing{position:relative}.furnishing.is-active{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.furnishing-badge{margin-left:var(--space-1);padding:1px 6px;border-radius:999px;vertical-align:1px;background:var(--blue-soft);color:var(--blue-ink);font-size:var(--size-xs);font-weight:var(--weight-medium)}.furnishing:disabled{cursor:progress;opacity:.55;transform:none}.furnishing:disabled .stimmung-strip{filter:grayscale(.7)}.furnishing-progress{display:block;height:3px;margin-top:var(--space-1);border-radius:3px;background:var(--hairline);overflow:hidden}.furnishing-progress i{display:block;height:100%;background:var(--blue);transition:width var(--quick) var(--ease-out)}.furnishing-progress:not(.is-running){background:repeating-linear-gradient(90deg,var(--hairline) 0 6px,transparent 6px 10px)}.furnishing-state{display:block;margin-top:2px;font-size:var(--size-xs);color:var(--ink-soft)}.swatches{display:flex;flex-wrap:wrap;gap:var(--space-2)}.swatch{width:var(--swatch);height:var(--swatch);border:0;border-radius:var(--radius-m);background-size:cover;background-position:center;box-shadow:var(--shadow-chip);cursor:pointer;transition:transform var(--quick) var(--ease-out),box-shadow var(--quick) var(--ease-out)}.swatch:hover{transform:scale(1.06)}.swatch:active{cursor:pointer}.swatch.is-on{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--blue)}.side-note{margin:var(--space-2) 0 0;font-size:var(--size-s);color:var(--ink-soft)}.side-credit{flex:none;margin:0 calc(-1 * var(--space-3)) calc(-1 * var(--space-1));padding:var(--space-2) var(--space-3) 0;border-top:1px solid var(--hairline);font-size:var(--size-xs);color:var(--ink-faint);letter-spacing:.02em}.side-credit a{color:var(--ink-soft);font-weight:var(--weight-medium);text-decoration:none;transition:color var(--quick) var(--ease-out)}.side-credit a:hover,.side-credit a:focus-visible{color:var(--blue);text-decoration:underline;text-underline-offset:2px}.piece-keys{margin:0;display:grid;gap:var(--space-1)}.piece-keys div{display:grid;grid-template-columns:8.5rem 1fr;gap:var(--space-2);font-size:var(--size-s)}.piece-keys dt{font-weight:var(--weight-strong)}.piece-keys dd{margin:0;color:var(--ink-soft)}.library{list-style:none;margin:0;padding:0;display:grid;gap:2px}.library-item{width:100%;display:grid;grid-template-columns:1fr auto 20px;align-items:center;gap:var(--space-2);padding:var(--space-2);border:0;border-radius:var(--radius-s);background:transparent;text-align:left;cursor:grab}.library-item:hover{background:var(--paper-sunk)}.library-name{font-size:var(--size-s);font-weight:var(--weight-medium)}.library-size{font-family:var(--font-figures);font-size:var(--size-s);color:var(--ink-soft);letter-spacing:var(--tracking-figures)}.library-plus{color:var(--ink-faint)}.library-item:hover .library-plus{color:var(--blue)}.library .parked{display:flex;align-items:center;gap:var(--space-1)}.library .parked .library-item{flex:1;min-width:0}.drop-dock{flex:1;display:grid;grid-template-rows:1fr 1fr;gap:var(--space-3)}.drop-zone{display:grid;align-content:center;justify-items:center;gap:var(--space-1);padding:var(--space-4);text-align:center;border:1.5px dashed var(--hairline-strong);border-radius:var(--radius-m);color:var(--ink-soft);transition:background var(--quick) var(--ease-out),border-color var(--quick) var(--ease-out),color var(--quick) var(--ease-out)}.drop-zone strong{font-size:var(--size-m);font-weight:var(--weight-strong);color:var(--ink)}.drop-zone span{font-size:var(--size-s);max-width:22ch}.drop-zone.is-hot{background:var(--blue-soft);border-color:var(--blue);border-style:solid;color:var(--blue-ink)}.drop-zone.is-hot strong{color:var(--blue-ink)}.drop-zone.is-delete.is-hot{background:var(--conflict-soft);border-color:var(--conflict);color:var(--conflict)}.drop-zone.is-delete.is-hot strong{color:var(--conflict)}.inspector{top:calc(var(--bar-height) + var(--space-5));right:var(--space-3);width:var(--inspector-width);padding:var(--space-4);display:grid;gap:var(--space-3);animation:slide-in var(--settle) var(--ease-out)}@keyframes slide-in{0%{opacity:0;transform:translate(12px)}}.inspector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2)}.inspector-head h2{margin:0;font-size:var(--size-m);font-weight:var(--weight-strong);line-height:1.3}.fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.field{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:var(--space-1);padding:var(--space-1) var(--space-2);border:1px solid var(--hairline);border-radius:var(--radius-s);background:var(--paper)}.field span{grid-column:1 / -1;font-size:var(--size-xs);color:var(--ink-soft)}.field input{width:100%;min-width:0;border:0;padding:0;background:transparent;font-family:var(--font-figures);font-size:var(--size-l);font-weight:var(--weight-medium);color:var(--ink);letter-spacing:var(--tracking-figures)}.field input:focus{outline:none}.field:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.field em{font-style:normal;font-size:var(--size-s);color:var(--ink-faint)}.field-note{margin:calc(-1 * var(--space-1)) 0 0;font-size:var(--size-s);color:var(--ink-soft)}.row{display:flex;align-items:center;gap:var(--space-1)}.row-label{font-size:var(--size-s);color:var(--ink-soft);margin-right:auto}.row.actions{flex-wrap:wrap;gap:var(--space-2)}.figure{font-family:var(--font-figures);font-size:var(--size-m);min-width:36px;text-align:center;letter-spacing:var(--tracking-figures)}.conflict,.accepted{display:grid;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-m);font-size:var(--size-s)}.conflict{background:var(--conflict-soft);color:var(--conflict)}.accepted{background:var(--paper-sunk);color:var(--ink-soft)}.conflict p,.accepted p{margin:0}.conflict .button,.accepted .button{justify-self:start}.dock{--dock-left: calc(var(--space-3) + var(--panel-width) + var(--space-3));--dock-right: var(--space-3);left:var(--dock-left);right:var(--dock-right);bottom:var(--space-3);width:fit-content;max-width:calc(100% - var(--dock-left) - var(--dock-right));margin:0 auto;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-1);border-radius:var(--radius-pill)}.dock-gap{width:1px;height:20px;background:var(--hairline);flex:none}.dock button{white-space:nowrap}.dock>*{flex:none}.dock[data-keys=off] kbd,.dock[data-words] .dock-switch .dock-label,.dock[data-words] .mini-label,.dock[data-words=none] .dock-label{display:none}.dock[data-words] .dock-switch,.dock[data-words] .segmented.inset button{padding:0 var(--space-2)}.dock[data-wrap]{flex-wrap:wrap;gap:var(--space-1);border-radius:var(--radius-l)}.dock[data-wrap] .dock-gap{display:none}.segmented.inset{background:var(--paper-sunk);border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.segmented.inset button{height:30px;padding:0 var(--space-3)}.button.is-on{background:var(--blue-soft);border-color:transparent;color:var(--blue-ink)}.button:disabled{opacity:.4;cursor:default}.button:disabled:hover{border-color:var(--hairline)}kbd{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 var(--space-1);margin-left:var(--space-1);border:1px solid var(--hairline-strong);border-radius:var(--radius-s);background:var(--paper);color:var(--ink-soft);font-family:var(--font-figures);font-size:var(--size-xs);font-weight:var(--weight-medium);line-height:1}kbd.key-wide{padding:0 var(--space-3)}.segmented button.is-on kbd{background:transparent;border-color:var(--on-ink-hover);color:var(--paper-sunk)}.timedial{flex:none;display:grid;gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--hairline)}.time-readout{display:grid;grid-template-columns:1fr auto;align-items:baseline;column-gap:var(--space-2);line-height:1.15}.time-title{font-size:var(--size-m);font-weight:var(--weight-strong)}.time-sun{grid-row:2;font-size:var(--size-xs);color:var(--ink-soft)}.time-figure{grid-row:1 / 3;grid-column:2;align-self:center;font-family:var(--font-figures);font-size:var(--size-l);font-weight:var(--weight-medium);letter-spacing:var(--tracking-figures)}.time-track{-webkit-appearance:none;appearance:none;width:100%;height:22px;margin:0;background:transparent;cursor:pointer}.time-track::-webkit-slider-runnable-track{height:8px;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--sky-night) 0%,var(--sky-dawn) 10%,var(--sky-noon) 40%,var(--sky-noon) 58%,var(--sky-dusk) 75%,var(--sky-night) 88%,var(--sky-night) 100%);box-shadow:var(--shadow-chip)}.time-track::-moz-range-track{height:8px;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--sky-night) 0%,var(--sky-dawn) 10%,var(--sky-noon) 40%,var(--sky-noon) 58%,var(--sky-dusk) 75%,var(--sky-night) 88%,var(--sky-night) 100%)}.time-track::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;margin-top:-7px;border-radius:50%;background:var(--paper);border:2px solid var(--ink);box-shadow:var(--shadow-float)}.time-track::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--paper);border:2px solid var(--ink)}.presets{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-1)}.preset{display:flex;align-items:center;justify-content:center;gap:var(--space-1);height:30px;padding:0 var(--space-1);border:1px solid transparent;border-radius:var(--radius-m);background:transparent;cursor:pointer;color:var(--ink-soft);font-size:var(--size-s);font-weight:var(--weight-medium);transition:background var(--quick) var(--ease-out),color var(--quick) var(--ease-out)}.preset svg{flex:none}.preset:hover{background:var(--paper-sunk);color:var(--ink)}.preset.is-on{background:var(--ink);color:var(--paper)}.hints{position:absolute;right:var(--space-4);bottom:calc(var(--dock-clear) + var(--space-3));margin:0;display:grid;gap:2px;font-size:var(--size-s);color:var(--ink-soft);pointer-events:none}.hints div{display:flex;gap:var(--space-2);justify-content:flex-end}.hints dt{font-weight:var(--weight-strong);color:var(--ink)}.hints dd{margin:0}.app:has(.view[data-dark=true]) .hints{color:var(--plan-dim-night)}.app:has(.view[data-dark=true]) .hints dt{color:var(--plan-line-night)}.notice{position:absolute;top:calc(var(--bar-height) + var(--space-5));left:50%;transform:translate(-50%);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--ink);color:var(--paper);font-size:var(--size-s);box-shadow:var(--shadow-float)}.overlay text{font-family:var(--font-figures);letter-spacing:var(--tracking-figures);text-anchor:middle;paint-order:stroke;stroke:var(--plan-halo);stroke-width:3px;stroke-linejoin:round}.overlay .dim,.overlay .dim-tick{stroke:var(--plan-dim);stroke-width:1}.overlay .dim-ext{stroke:var(--plan-dim);stroke-width:.6;stroke-dasharray:2 3}.overlay .dim-label{font-size:var(--size-s);fill:var(--plan-line);font-weight:var(--weight-medium)}.overlay .room-name{font-family:var(--font-ui);font-size:var(--size-s);font-weight:var(--weight-strong);fill:var(--plan-line);letter-spacing:.08em}.overlay .room-area{font-size:var(--size-m);fill:var(--plan-line)}.overlay .room-name,.overlay .room-area,.overlay .dim-label{stroke:var(--plan-halo);stroke-width:3px}.overlay .swing{fill:var(--blue-soft);stroke:var(--plan-dim);stroke-width:.8;stroke-dasharray:3 3}.overlay .roof-strip{fill:none;stroke:var(--plan-dim);stroke-width:1;stroke-dasharray:6 4}.overlay .roof-line{stroke:var(--plan-dim);stroke-width:.8;stroke-dasharray:2 3}.overlay .stair-line{stroke:var(--plan-line);stroke-width:1}.overlay .stair-dot{fill:var(--plan-line);stroke:none}.overlay .slope-line{stroke:var(--plan-line);stroke-width:.9;stroke-dasharray:5 3}.overlay .slope-line.is-knee,.overlay .slope-line.is-ceiling{stroke:var(--plan-dim)}.overlay .slope-label{font-size:var(--size-xs);fill:var(--plan-line);font-weight:var(--weight-medium)}.overlay .piece-outline{fill:var(--blue-soft);stroke:var(--blue);stroke-width:1.5}.overlay .piece-outline.is-conflict{fill:var(--conflict-soft);stroke:var(--conflict)}.overlay .distance{stroke:var(--blue);stroke-width:1;stroke-dasharray:3 3}.overlay .guide{stroke:var(--blue);stroke-width:1.5}.overlay .fixture-box{stroke:var(--plan-dim);stroke-width:1}.overlay .fixture-box.is-hidden{stroke-dasharray:4 3}.overlay .fixture-box.is-selected{stroke:var(--blue);stroke-width:1.8}.overlay .inst{fill:var(--paper);stroke:var(--plan-line);stroke-width:1.2}.overlay .inst.lead{stroke-width:.9}.overlay .inst.fill{fill:var(--plan-line)}.overlay .inst.is-likely{stroke:var(--plan-dim)}.overlay .inst.is-likely.fill{fill:var(--plan-dim)}.overlay .inst.is-guess{stroke:var(--plan-dim);stroke-dasharray:2 1.5}.overlay .inst.is-guess.fill{fill:var(--plan-dim)}.overlay text.inst.letter{stroke:none;fill:var(--plan-line);font-size:9px;font-weight:var(--weight-strong)}.overlay text.inst.letter.is-likely,.overlay text.inst.letter.is-guess{fill:var(--plan-dim)}.overlay g rect{fill:var(--paper);stroke:var(--hairline-strong)}.overlay g text{stroke:none;font-size:var(--size-s);fill:var(--ink);font-weight:var(--weight-medium)}.overlay .distance-label rect{fill:var(--blue);stroke:none}.overlay .distance-label text{fill:var(--on-blue)}.overlay .size-label rect{fill:var(--ink);stroke:none}.overlay .size-label text{fill:var(--paper)}.overlay .hover-label text{font-family:var(--font-ui)}.overlay .roof-label rect{fill:var(--paper)}.overlay .scale rect{stroke:var(--plan-line);stroke-width:1}.overlay .scale .scale-a{fill:var(--plan-line)}.overlay .scale .scale-b{fill:var(--paper)}.overlay .scale text{text-anchor:start;font-size:var(--size-xs);fill:var(--plan-line);stroke:none}.overlay .scale text:last-child{text-anchor:end}.overlay .north circle{fill:var(--paper-glass);stroke:var(--hairline-strong)}.overlay .north path{fill:var(--plan-line)}.overlay .north text{font-family:var(--font-ui);font-size:var(--size-xs);font-weight:var(--weight-strong);fill:var(--plan-line);stroke:none}.view[data-dark=true] .overlay text{stroke:var(--plan-halo-night)}.view[data-dark=true] .overlay .dim,.view[data-dark=true] .overlay .dim-tick,.view[data-dark=true] .overlay .dim-ext,.view[data-dark=true] .overlay .roof-strip,.view[data-dark=true] .overlay .roof-line{stroke:var(--plan-dim-night)}.view[data-dark=true] .overlay .slope-line,.view[data-dark=true] .overlay .stair-line{stroke:var(--plan-line-night)}.view[data-dark=true] .overlay .stair-dot{fill:var(--plan-line-night)}.view[data-dark=true] .overlay .slope-line.is-knee,.view[data-dark=true] .overlay .slope-line.is-ceiling{stroke:var(--plan-dim-night)}.view[data-dark=true] .overlay .dim-label,.view[data-dark=true] .overlay .room-name,.view[data-dark=true] .overlay .room-area,.view[data-dark=true] .overlay .slope-label{fill:var(--plan-line-night)}.view[data-dark=true] .overlay .scale text,.view[data-dark=true] .overlay .north text{fill:var(--plan-line-night)}@media(max-width:860px),(max-height:500px){.hints{display:none}.topbar{top:calc(var(--space-2) + env(safe-area-inset-top));left:calc(var(--space-2) + env(safe-area-inset-left));right:calc(var(--space-2) + env(safe-area-inset-right));grid-template-columns:auto 1fr auto}.tools-left{grid-column:1;justify-self:start}.tools-right{grid-column:3;justify-self:end}.tools{gap:0}.tools .icon-button{width:var(--pill-button);height:var(--pill-button)}.conflict-word{display:none}.conflict-count{padding:0 var(--space-1) 0 var(--space-2)}.settings{max-height:calc(100dvh - var(--bar-height) - 2 * var(--space-5));overflow-y:auto}.settings .saves-button .saves{position:static;width:auto;margin-top:var(--space-2);box-shadow:none}.settings .help{max-height:none;padding:var(--space-3)}.side{top:auto;bottom:0;left:env(safe-area-inset-left);right:env(safe-area-inset-right);width:auto;height:var(--sheet-half);border-radius:var(--radius-l) var(--radius-l) 0 0;padding-top:0;padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom));transition:transform var(--settle) var(--ease-out),height var(--settle) var(--ease-out)}.side[data-sheet=closed]{transform:translateY(100%);visibility:hidden}.side[data-sheet=full]{height:calc(100dvh - var(--bar-height) - 2 * var(--space-3) - env(safe-area-inset-top))}.side-scroll{touch-action:pan-y;overscroll-behavior:contain}.side .sheet-handle{flex:none;display:grid;place-items:center;height:var(--touch-target);margin-bottom:calc(-1 * var(--space-3));border:0;background:transparent;cursor:grab;touch-action:none}.app[data-touch] .side .sheet-handle{touch-action:none}.sheet-handle span{width:36px;height:4px;border-radius:2px;background:var(--hairline-strong)}.side-display-wide{grid-column:1 / -1;display:flex}.dock{--dock-left: calc(var(--space-2) + env(safe-area-inset-left));--dock-right: calc(var(--space-2) + env(safe-area-inset-right));bottom:calc(var(--space-2) + env(safe-area-inset-bottom));width:auto;justify-content:space-between}.app[data-sheet=half] .dock{bottom:calc(var(--sheet-half) + var(--space-2))}.app[data-sheet=full] .dock{display:none}.dock button{min-height:var(--touch-target)}.dock[data-words=none] button{width:var(--touch-target);padding:0;justify-content:center}.inspector{top:auto;left:calc(var(--space-2) + env(safe-area-inset-left));right:calc(var(--space-2) + env(safe-area-inset-right));width:auto;bottom:calc(var(--dock-clear) + var(--space-2));max-height:50dvh;overflow-y:auto}.app[data-mode=walk][data-touch] .inspector{right:calc(var(--touch-target) + 2 * var(--space-4) + env(safe-area-inset-right));bottom:calc(var(--stick-size) + 2 * var(--space-4) + env(safe-area-inset-bottom))}.help{max-height:calc(100dvh - var(--bar-height) - 4 * var(--space-5))}}@media(max-height:500px){.app[data-sheet=half] .dock{display:none}}.overlay .handle-stem{stroke:var(--blue);stroke-width:1;stroke-dasharray:2 3}.overlay .handle circle{fill:var(--paper);stroke:var(--blue);stroke-width:1.5}.overlay .handle path{fill:none;stroke:var(--blue-ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.overlay .handle.is-on circle{fill:var(--blue)}.overlay .handle.is-on path{stroke:var(--on-blue)}.swatch.is-original{position:relative}.swatch.is-original:after{content:"";position:absolute;right:-3px;top:-3px;width:10px;height:10px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 2px var(--paper)}.back{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);margin:0 0 var(--space-1) calc(-1 * var(--space-2));border:0;border-radius:var(--radius-pill);background:transparent;font-size:var(--size-s);color:var(--ink-soft);cursor:pointer}.back:hover{background:var(--paper-sunk);color:var(--ink)}.row.turn{display:grid;grid-template-columns:1fr auto auto auto;gap:var(--space-1)}.slider{display:grid;gap:var(--space-1);font-size:var(--size-s);color:var(--ink-soft)}.slider em{font-style:normal;font-family:var(--font-figures);color:var(--ink);letter-spacing:var(--tracking-figures)}.slider input{width:100%;accent-color:var(--blue)}.toast{position:absolute;left:50%;bottom:calc(var(--space-3) + 124px);transform:translate(-50%);margin-left:calc(var(--panel-width) / 2);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-4);border-radius:var(--radius-pill);background:var(--ink);color:var(--paper);font-size:var(--size-s);box-shadow:var(--shadow-float);animation:toast-in var(--settle) var(--ease-out)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.toast-action{display:inline-flex;align-items:center;gap:var(--space-1);height:28px;padding:0 var(--space-3);border:0;border-radius:var(--radius-pill);background:#ffffff1f;color:var(--paper);font-size:var(--size-s);font-weight:var(--weight-medium);cursor:pointer}.toast-action:hover{background:var(--on-ink-hover)}.toast kbd{font-family:var(--font-figures);font-size:var(--size-xs);opacity:.7;background:transparent;border-color:var(--on-ink-hover);color:inherit}.overlay .room-outline{fill:var(--blue-soft);stroke:var(--blue);stroke-width:1.5;stroke-dasharray:6 4}.rooms{list-style:none;margin:0;padding:0;display:grid;gap:2px}.room-item{width:100%;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:var(--space-3);padding:var(--space-2);border:0;border-radius:var(--radius-m);background:transparent;text-align:left;cursor:pointer;transition:background var(--quick) var(--ease-out)}.room-item:hover{background:var(--paper-sunk)}.room-chip{display:inline-flex;width:32px;height:22px;border-radius:var(--radius-s);overflow:hidden;box-shadow:var(--shadow-chip)}.room-chip i{flex:1}.room-name-cell{font-size:var(--size-m);font-weight:var(--weight-medium)}.room-go{color:var(--ink-faint);margin-left:calc(-1 * var(--space-1));transition:color var(--quick) var(--ease-out),transform var(--quick) var(--ease-out)}.room-item:hover .room-go{color:var(--blue);transform:translate(2px)}.rooms-total{cursor:default;margin-top:var(--space-1);border-top:1px solid var(--hairline);border-radius:0}.rooms-total:hover{background:transparent}.rooms-total .room-chip,.rooms-total .room-go{box-shadow:none;visibility:hidden}.room-meta{font-family:var(--font-figures);font-size:var(--size-s);color:var(--ink-soft);letter-spacing:var(--tracking-figures)}.mini-segmented{display:inline-flex;align-items:center;gap:2px;padding:0 var(--space-1)}.mini-label{font-size:var(--size-xs);color:var(--ink-soft);margin-right:var(--space-1)}.mini-segmented button{height:28px;padding:0 var(--space-2);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--ink-soft);font-size:var(--size-s);cursor:pointer}.mini-segmented button:hover{color:var(--ink)}.mini-segmented button.is-on{background:var(--ink);color:var(--paper)}.facts{margin:0;display:grid;gap:var(--space-1)}.facts div{display:flex;justify-content:space-between;font-size:var(--size-s)}.facts dt{color:var(--ink-soft)}.facts dd{margin:0;font-family:var(--font-figures);font-size:var(--size-m);letter-spacing:var(--tracking-figures)}.grab-ghost{position:fixed;z-index:60;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 10px 14px rgb(0 0 0 / .22))}.library-card{position:fixed;z-index:50;pointer-events:none;display:grid;gap:var(--space-1);padding:var(--space-3);animation:library-card-in .14s ease-out}.library-card strong{font-size:var(--size-s);font-weight:var(--weight-strong);line-height:1.3}.library-card-picture{border-radius:var(--radius-s);background:var(--paper-sunk)}.library-card-picture img{display:block}.library-card-note{font-size:var(--size-xs);color:var(--ink-soft);line-height:1.35}@keyframes library-card-in{0%{opacity:0;transform:translate(-4px)}}@media(prefers-reduced-motion:reduce){.library-card{animation:none}}.app[data-touch] button,.app[data-touch] .panel,.app[data-touch] .tools{touch-action:manipulation}.app[data-touch] kbd,.app[data-touch] .kbd-mouse{display:none}.touch-walk{position:absolute;z-index:3;left:calc(var(--space-4) + env(safe-area-inset-left));bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}.touch-stick{width:var(--stick-size);height:var(--stick-size);border-radius:50%;display:grid;place-items:center;touch-action:none;user-select:none;-webkit-user-select:none;background:var(--paper-glass);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));border:1px solid var(--hairline);box-shadow:var(--shadow-float)}.touch-thumb{width:calc(var(--stick-size) * .36);height:calc(var(--stick-size) * .36);border-radius:50%;background:var(--ink);pointer-events:none}.walk-corner{position:absolute;z-index:3;right:calc(var(--space-4) + env(safe-area-inset-right));bottom:calc(var(--space-4) + env(safe-area-inset-bottom));display:flex;flex-direction:column-reverse;align-items:flex-end;gap:var(--space-2)}.corner-button{min-width:var(--touch-target);height:var(--touch-target);padding:0 var(--space-3);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);border:1px solid var(--hairline);border-radius:var(--radius-pill);color:var(--ink);background:var(--paper-glass);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));box-shadow:var(--shadow-float);font-weight:var(--weight-medium);cursor:pointer}.corner-button.is-on{background:var(--ink);color:var(--paper)}.time-chip{display:inline-flex;align-items:center;gap:var(--space-1);height:30px;padding:0 var(--space-3);border:0;border-radius:var(--radius-pill);background:transparent;cursor:pointer;font-family:var(--font-figures);letter-spacing:var(--tracking-figures);white-space:nowrap}.time-chip:hover,.time-chip.is-on{background:var(--paper-sunk)}.time-pop{width:min(340px,calc(100vw - 2 * var(--space-3)));background:var(--paper)}.settings-row{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}@media(max-width:860px),(max-height:500px){.toast{margin-left:0;bottom:calc(var(--dock-clear) + var(--space-3))}}.piece-bar{display:flex;align-items:center;gap:0}.piece-bar strong{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--space-2) 0 var(--space-3);font-size:var(--size-s);font-weight:var(--weight-medium)}.piece-bar .icon-button{flex:none;width:var(--touch-target);height:var(--touch-target)}.piece-bar .icon-button.is-on{background:var(--ink);color:var(--paper)}.app[data-photos] .side:not(.photos-panel){visibility:hidden}.photos-stage{position:absolute;inset:0;overflow:hidden;background:var(--photo-stage)}.photos-host{position:absolute;inset:0}.pano-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;outline:none;opacity:0;transition:opacity var(--settle) var(--ease-out)}.photos-stage[data-ready] .pano-canvas{opacity:1}.pano-canvas[data-dragging]{cursor:grabbing}.photos-head{flex:none;display:grid;gap:var(--space-1);padding:var(--space-1) var(--space-1) var(--space-3);border-bottom:1px solid var(--hairline)}.photos-kicker{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--size-xs);font-weight:var(--weight-strong);letter-spacing:.08em;text-transform:uppercase;color:var(--blue-ink)}.photos-head h1{margin:0;font-size:var(--size-l);font-weight:var(--weight-strong);line-height:1.25}.photos-head p{margin:0;font-size:var(--size-s);color:var(--ink-soft)}.photos-room{grid-template-columns:1fr auto auto}.photos-room.is-on{background:var(--blue-soft)}.photos-room.is-on .room-name-cell{color:var(--blue-ink)}.photos-room.is-on .room-go{color:var(--blue)}.photos-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-l);background:var(--paper-glass);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));box-shadow:var(--shadow-float);font-size:var(--size-s);color:var(--ink-soft);white-space:nowrap;font-variant-numeric:tabular-nums;pointer-events:none;animation:photos-appear var(--settle) var(--ease-out) .18s both}.photos-stage .photos-loading{margin-left:calc(var(--panel-width) / 2)}.photos-bar{position:relative;width:180px;height:3px;border-radius:3px;background:var(--hairline);overflow:hidden}.photos-bar i{display:block;height:100%;border-radius:3px;background:var(--blue);transition:width var(--quick) linear}.photos-bar.is-unknown i{width:40%;animation:photos-sweep 1.3s cubic-bezier(.45,0,.25,1) infinite}@keyframes photos-sweep{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes photos-appear{0%{opacity:0}}.photos-error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--paper);box-shadow:var(--shadow-float);font-size:var(--size-s);color:var(--ink)}.photos-stage .photos-error{margin-left:calc(var(--panel-width) / 2)}.photos-hint{position:absolute;left:50%;top:calc(var(--space-4) + env(safe-area-inset-top));transform:translate(-50%);margin:0 0 0 calc(var(--panel-width) / 2);padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);background:var(--photo-veil);color:var(--on-photo);font-size:var(--size-s);white-space:nowrap;pointer-events:none;backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));animation:photos-appear var(--settle) var(--ease-out) .4s both,photos-fade .6s ease-in 7s forwards}@keyframes photos-fade{to{opacity:0}}.photos-stills{--dock-left: calc(var(--space-3) + var(--panel-width) + var(--space-3));left:var(--dock-left);right:var(--space-3);bottom:calc(var(--dock-clear) + var(--space-2));width:fit-content;max-width:calc(100% - var(--dock-left) - var(--space-3));margin:0 auto;display:flex;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-l);overflow-x:auto;scrollbar-width:thin;overscroll-behavior:contain}.photos-still{flex:none;width:128px;display:grid;gap:var(--space-1);padding:0;border:0;background:transparent;text-align:left;cursor:zoom-in}.photos-still-picture{display:block;aspect-ratio:16 / 9;border-radius:var(--radius-s);overflow:hidden;background:var(--paper-sunk);box-shadow:var(--shadow-chip)}.photos-still-picture img{display:block;width:100%;height:100%;object-fit:cover;transition:transform var(--settle) var(--ease-out);animation:photos-appear var(--settle) var(--ease-out)}.photos-still:hover .photos-still-picture img{transform:scale(1.05)}.photos-still-name{padding:0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--size-xs);font-weight:var(--weight-medium);color:var(--ink-soft)}.photos-still:hover .photos-still-name{color:var(--ink)}.photos-caption{position:absolute;left:50%;top:calc(var(--space-2) + env(safe-area-inset-top));transform:translate(-50%);max-width:calc(100% - 2 * var(--space-2));display:grid;justify-items:center;gap:1px;padding:var(--space-1) var(--space-4) calc(var(--space-1) + 1px);border:1px solid var(--hairline);border-radius:var(--radius-l);background:var(--paper-glass);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));box-shadow:var(--shadow-float);color:var(--ink);cursor:pointer}.photos-caption-lead{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--size-xs);color:var(--ink-soft);white-space:nowrap}.photos-caption-where{display:inline-flex;align-items:center;gap:2px;font-size:var(--size-s);font-weight:var(--weight-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.app[data-photos][data-sheet=half] .photos-hint,.app[data-photos][data-sheet=full] .photos-hint{display:none}.lightbox{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:var(--space-6) calc(var(--space-6) + var(--touch-target));background:var(--photo-scrim);animation:photos-appear var(--settle) var(--ease-out)}.lightbox-figure{position:relative;margin:0;display:grid;justify-items:center;gap:var(--space-3);min-width:0;min-height:0;max-width:100%}.lightbox-figure img{display:block;max-width:100%;max-height:calc(100dvh - 2 * var(--space-6) - 2.5em);object-fit:contain;border-radius:var(--radius-s);box-shadow:0 24px 64px #00000073;user-select:none;-webkit-user-select:none;transition:opacity var(--quick) var(--ease-out)}.lightbox-figure img.is-stale{opacity:.35}.lightbox .photos-loading,.lightbox .photos-error{position:fixed}.lightbox figcaption{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:var(--space-1) var(--space-3);font-size:var(--size-s);color:var(--on-photo)}.lightbox figcaption strong{font-weight:var(--weight-strong)}.lightbox figcaption span{color:var(--on-photo-soft)}.lightbox-close,.lightbox-step{position:fixed;display:grid;place-items:center;width:var(--touch-target);height:var(--touch-target);border:0;border-radius:var(--radius-pill);background:var(--on-ink-soft);color:var(--on-photo);cursor:pointer;transition:background var(--quick) var(--ease-out)}.lightbox-close:hover,.lightbox-step:hover{background:var(--on-ink-hover)}.lightbox-close{top:calc(var(--space-3) + env(safe-area-inset-top));right:calc(var(--space-3) + env(safe-area-inset-right))}.lightbox-step{top:50%;transform:translateY(-50%)}.lightbox-step.is-prev{left:calc(var(--space-3) + env(safe-area-inset-left))}.lightbox-step.is-next{right:calc(var(--space-3) + env(safe-area-inset-right))}.render-view-button{position:relative}.topbar:has(.render-view){z-index:1}.render-view{top:calc(100% + var(--space-3));right:calc(-1 * var(--space-1));width:min(360px,calc(100vw - 2 * var(--space-3)));padding:var(--space-4);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);background:var(--paper)}.render-view h2{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2);margin:0;font-size:var(--size-m);font-weight:var(--weight-strong)}.render-view h2 .current{font-size:var(--size-s);font-weight:var(--weight-regular);color:var(--ink-soft);white-space:nowrap}.render-view .side-note{margin:0}.render-view-figures{margin:0;display:grid;gap:2px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-m);background:var(--paper-sunk)}.render-view-figures div{display:grid;grid-template-columns:4.5rem 1fr;gap:var(--space-2);font-size:var(--size-s)}.render-view-figures dt{color:var(--ink-soft)}.render-view-figures dd{margin:0;font-family:var(--font-figures);letter-spacing:var(--tracking-figures)}.render-view-field,.render-view-row{display:grid;gap:var(--space-1);font-size:var(--size-s)}.render-view-field>span,.render-view-row>span{color:var(--ink-soft)}.render-view-field input,.render-view-field select{height:32px;min-width:0;padding:0 var(--space-3);border:1px solid var(--hairline-strong);border-radius:var(--radius-m);background:var(--paper);font:inherit;font-size:var(--size-s);color:var(--ink)}.render-view-field input:focus,.render-view-field select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.render-view-field em,.render-view-row em{font-style:normal;font-size:var(--size-xs);color:var(--ink-faint)}.render-view-field em{font-family:var(--font-figures);letter-spacing:var(--tracking-figures)}.render-view .segmented.full button{gap:var(--space-1);padding:0 var(--space-2);font-size:var(--size-s)}.render-view-actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-2)}.render-view-note{margin-right:auto;font-size:var(--size-xs);color:var(--ink-soft)}.render-view-save{background:var(--ink);border-color:var(--ink);color:var(--paper)}.render-view-save:hover:not(:disabled){background:var(--blue-ink);border-color:var(--blue-ink)}.render-view-error{margin:0;font-size:var(--size-s);color:var(--conflict)}@media(max-width:860px),(max-height:500px){.photos-stage .photos-loading,.photos-stage .photos-error{margin-left:0}.photos-hint{margin-left:0;top:calc(var(--space-2) + env(safe-area-inset-top) + 56px)}.photos-stills{--dock-left: calc(var(--space-2) + env(safe-area-inset-left));right:calc(var(--space-2) + env(safe-area-inset-right));max-width:calc(100% - 2 * var(--space-2))}.photos-still{width:104px}.photos-head h1{font-size:var(--size-m)}.photos-head p{font-size:var(--size-xs)}.app[data-photos][data-sheet=half] .photos-stills{display:none}.lightbox{padding:calc(var(--space-6) + var(--touch-target)) var(--space-2) var(--space-6)}.lightbox-step{top:auto;bottom:calc(var(--space-3) + env(safe-area-inset-bottom));transform:none}.settings .render-view-button .render-view{position:static;width:auto;margin-top:var(--space-2);box-shadow:none}}@media(prefers-reduced-motion:reduce){.photos-hint{animation:none}.photos-bar.is-unknown i{animation:none;width:100%;opacity:.5}}
