:root{--bg:#0f0f0f;--surface:#141414;--surface-deep:#0a0a0a;--text:#9c9c95;--text-h:#e5e5e5;--border:#ffffff1a;--code-bg:#1a1a1a;--accent:#4ade80;--accent-hover:#3ed673;--accent-contrast:#0a0a0a;--accent-bg:#4ade801a;--accent-border:#4ade804d;--danger:#f87171;--warn:#fbbf24;--shadow:#00000080 0 10px 15px -3px, #0000004d 0 4px 6px -2px;--radius:12px;--radius-lg:20px;--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Instrument Serif", Georgia, serif;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;font:17px/145% var(--sans);letter-spacing:.1px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}body{background:var(--bg);margin:0}#root{box-sizing:border-box;border-inline:1px solid var(--border);flex-direction:column;width:1440px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);letter-spacing:-.01em;font-weight:400}h1{margin:0 0 4px;font-size:44px}@media (width<=1024px){h1{font-size:34px}}h2{margin:0 0 8px;font-size:24px;line-height:118%}p{margin:0}code{font-family:var(--mono);background:var(--code-bg);color:var(--text-h);border-radius:4px;padding:4px 8px;font-size:14px}::selection{background:var(--accent);color:var(--accent-contrast)}.nav{border-bottom:1px solid var(--border);background:var(--surface-deep);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.demo-banner{background:var(--accent);color:var(--accent-contrast);font-family:var(--mono);text-align:center;padding:6px 24px;font-size:12px;font-weight:600}.nav-side{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.brand{font:inherit;border-radius:var(--radius);color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.brand:hover .wordmark{color:var(--accent)}.brand:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.wordmark{font-family:var(--heading);letter-spacing:.005em;color:var(--text-h);font-size:21px;transition:color .2s}.brand-sub{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);padding-top:3px;font-size:12px}.footer{border-top:1px solid var(--border);background:var(--surface-deep);align-items:center;gap:10px;padding:18px 24px;font-size:13px;display:flex}.nav-links{align-items:center;gap:20px;display:flex}.who{font-family:var(--mono);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:4px 10px;font-size:13px}main{flex:1;padding:28px 24px 48px}.view{flex-direction:column;gap:20px;max-width:860px;margin-inline:auto;display:flex}.view.roomy{max-width:1180px}.view.wide{max-width:none}.view-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.view h2{margin:4px 0 0;font-size:20px}.back{align-self:flex-start}.blog-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;display:grid}@media (width<=960px){.blog-layout{grid-template-columns:1fr}}.feed-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;gap:14px;padding:18px 20px;display:flex;position:sticky;top:20px}.feed-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.feed-head h2{margin:0;font-size:20px}.feed-notes{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;max-height:min(62vh,620px);margin-right:-8px;padding-right:8px;display:flex;overflow-y:auto}.feed-notes::-webkit-scrollbar{width:8px}.feed-notes::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.feed-notes::-webkit-scrollbar-thumb:hover{background:#fff3}.feed-note{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding:14px 0;display:flex}.feed-note:first-child{border-top:0;padding-top:0}.feed-note .note-text{font-size:14px;line-height:150%}.note-images{border-radius:var(--radius);gap:4px;display:grid;overflow:hidden}.note-images[data-count="2"],.note-images[data-count="3"],.note-images[data-count="4"]{grid-template-columns:1fr 1fr}.note-images img{object-fit:cover;background:var(--surface-deep);width:100%;height:100%;display:block}.note-images[data-count="1"] img{max-height:260px}.note-images:not([data-count="1"]) img{aspect-ratio:1}.note-images[data-count="3"] img:first-child{aspect-ratio:16/9;grid-column:span 2}.events{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.events li{display:flex}.event{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:100%;color:inherit;flex-direction:column;text-decoration:none;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.event:hover{border-color:var(--accent);box-shadow:var(--shadow)}.event:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.event-cover{aspect-ratio:40/21;object-fit:cover;background:var(--surface-deep);width:100%;display:block}.event-body{flex-direction:column;flex:1;gap:6px;padding:18px 20px 16px;display:flex}.event-when{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.event-day{font-family:var(--mono);color:var(--text-h);font-size:13px}.event-title{font-family:var(--heading);color:var(--text-h);font-size:21px;line-height:125%}.event-blurb{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.event-cta{margin-top:auto;padding-top:10px}.articles{flex-direction:column;gap:14px;display:flex}.article{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:left;flex-direction:column;gap:10px;padding:22px 24px;display:flex}.article-link{font:inherit;color:inherit;cursor:pointer;transition:border-color .2s,box-shadow .2s}.article-link:hover{border-color:var(--accent);box-shadow:var(--shadow)}.article-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.article-head{flex-direction:column;gap:6px;display:flex}.article-head h1,.article-head h2{margin:0;font-size:26px}.article-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.note-text{color:var(--text-h);white-space:pre-wrap;max-width:660px;font-size:16px;line-height:155%}.article.reading{max-width:660px}.prose{flex-direction:column;gap:12px;max-width:660px;display:flex}.prose p{font-size:16px;line-height:160%}.prose h3,.prose h4{font-family:var(--heading);color:var(--text-h);margin:6px 0 0;font-weight:400}.prose h3{font-size:20px}.prose h4{font-size:17px}.prose ul{flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:16px;line-height:160%;display:flex}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:2px solid var(--accent-border);color:var(--text-h);margin:0;padding-left:14px;font-size:16px;line-height:160%}.prose a{color:var(--accent)}.prose a:hover{color:var(--accent-hover)}.prose code{font-size:14px}.signin{flex:1;place-items:center;padding:32px 24px;display:grid}.signin-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:100%;max-width:380px;box-shadow:var(--shadow);flex-direction:column;gap:18px;padding:32px;display:flex}.signin-card h1{font-size:32px}.signin-brand{margin-bottom:4px}.signin-note{opacity:.75;margin-top:2px}.signin-card strong{color:var(--text-h);font-weight:500}.btn{font:inherit;background:var(--accent);color:var(--accent-contrast);cursor:pointer;border:1px solid #0000;border-radius:999px;padding:10px 18px;font-size:15px;font-weight:500;transition:background .2s,border-color .2s}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{border-color:var(--border);color:var(--text-h);background:0 0}.btn.ghost:hover:not(:disabled){border-color:var(--accent);background:0 0}.link{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:15px}.link:hover{color:var(--accent-hover);text-decoration:underline}.link.current{color:var(--text-h);font-weight:500;text-decoration:none}.filters{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-wrap:wrap;align-items:flex-end;gap:16px;padding:16px 18px;display:flex}label{letter-spacing:.02em;text-transform:uppercase;color:var(--text);flex-direction:column;gap:6px;font-size:13px;display:flex}select,input{font:inherit;text-transform:none;letter-spacing:normal;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-deep);color:var(--text-h);padding:9px 12px;font-size:15px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%234ade80' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:38px}select::-ms-expand{display:none}select:hover,input:hover{border-color:#fff3}select:focus-visible,input:focus-visible,.btn:focus-visible,.link:focus-visible,.card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.card{font:inherit;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:100%;height:100%;color:var(--text);cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:8px;padding:20px;transition:border-color .2s,box-shadow .2s;display:flex}.card:hover{border-color:var(--accent);box-shadow:var(--shadow)}.card-title{font-family:var(--heading);color:var(--text-h);font-size:24px}.card-meta{text-transform:none;letter-spacing:normal;font-size:14px}.pill{font-family:var(--mono);border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);border-radius:999px;padding:3px 10px;font-size:12px}.card-art{border-radius:var(--radius);background:var(--surface-deep);width:100%;margin-bottom:2px;display:block}.card-art svg{width:100%;height:auto;display:block;overflow:visible}.wf-main{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.wf-accent{fill:none;stroke:#e2e2d84d;stroke-width:.9px;stroke-linecap:round}.wf-body{fill:var(--surface-deep);stroke:var(--accent);stroke-width:1.4px;stroke-linejoin:round}.card:hover .wf-main,.card:hover .wf-body{stroke:var(--accent-hover)}.daybar{align-items:center;gap:10px;display:flex}.date-field{align-items:center;gap:8px;display:flex}.date-field>span,.booking-policy{font-family:var(--mono);font-size:12px}.range-modes{flex-wrap:wrap;gap:8px;display:flex}.availability-note{border:1px solid var(--accent-border);border-radius:var(--radius);background:var(--accent-bg);color:var(--accent);padding:12px 16px;font-size:14px}.availability-note.conflict{color:var(--danger);background:#f8717114;border-color:#f871714d}.occupied-ranges{color:var(--text);border-top:1px solid;margin-top:10px;padding-top:10px}.occupied-ranges strong{color:var(--text-h);font-size:13px}.occupied-ranges ul{margin:5px 0 0;padding-left:20px}.timeline{--gutter:52px;flex-direction:column;gap:6px;display:flex}.week-head{grid-template-columns:var(--gutter) repeat(7, 1fr);gap:0;display:grid}.day-head{font:inherit;border-radius:var(--radius);color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;display:flex}.day-head:hover{color:var(--text-h)}.day-head.on{border-color:var(--accent-border);background:var(--accent-bg);color:var(--accent)}.day-head:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.day-name{text-transform:uppercase;letter-spacing:.06em;font-size:11px}.day-number{font-family:var(--mono);color:var(--text-h);font-size:14px}.day-head.on .day-number{color:var(--accent)}.day-head.today .day-number{text-underline-offset:3px;text-decoration:underline}.week-body{grid-template-columns:var(--gutter) 1fr;display:grid}.hours{font-size:11px;font-family:var(--mono);border-block:1px solid #0000;position:relative}.hours span{white-space:nowrap;line-height:1;position:absolute;right:8px;transform:translateY(-50%)}.tracks{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-deep);grid-template-columns:repeat(7,1fr);height:340px;display:grid;overflow:hidden}.track{border-right:1px solid var(--border);flex-direction:column;display:flex;position:relative}.track:last-child{border-right:0}.track.on{background:#ffffff05}.hour-line{border-bottom:1px solid #ffffff0d;flex:1}.hour-line:last-child{border-bottom:0}.now{border-top:2px solid var(--danger);z-index:2;pointer-events:none;height:0;position:absolute;left:0;right:0}.now:before{content:"";background:var(--danger);border-radius:50%;width:8px;height:8px;position:absolute;top:-5px;left:0}.block{box-sizing:border-box;border-radius:6px;align-items:center;padding:0 6px;display:flex;position:absolute;left:3px;right:3px;overflow:hidden;container-type:size}.block>span:not(.grip){white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:clamp(8px,75cqh,11px);line-height:1.1;overflow:hidden}.block.busy{color:#f87171b8;background:#f8717112;border:1px solid #f8717133}.block.selected{background:var(--accent-bg);border:1px solid var(--accent);color:var(--accent);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.block.selected:active{cursor:grabbing}.block.selected:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.grip{cursor:ns-resize;height:min(9px,30%);position:absolute;left:0;right:0}.grip.top{top:0}.grip.bottom{bottom:0}.grip:hover:after{content:"";opacity:.7;border-top:2px solid;position:absolute;top:50%;left:25%;right:25%}.panel{flex-direction:column;gap:14px;display:flex}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.panel-head h2{margin:0}.map{aspect-ratio:2.2;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-deep);perspective:1800px;perspective-origin:50% 45%;place-items:center;padding:12px;display:grid;overflow:hidden}.map.angled{background:radial-gradient(ellipse 70% 60% at 50% 62%, #4ade800f, var(--surface-deep) 70%)}.map-tilt{aspect-ratio:100/49;transform-origin:50%;width:auto;height:100%;transform-style:preserve-3d;transition:transform .5s;position:relative;transform:scale(.95)}.map.angled .map-tilt{transform:translateY(-4.9%)rotateX(42deg)scale(.9)}@media (prefers-reduced-motion:reduce){.map-tilt,.room,.room-cell,.room-hatch{transition:none}}.map svg{width:100%;height:100%;display:block}.head-actions{gap:10px;display:flex}.map-suite{fill:none;stroke:var(--text-h);stroke-width:.7px;opacity:.5;pointer-events:none}.map-area{stroke-width:.4px;stroke:#ffffff12;fill:#ffffff06}.motif{fill:none;stroke:#ffffff29;stroke-width:.3px;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.motif .solid{fill:#ffffff0d}.motif .dashed{stroke:#ffffff1a;stroke-dasharray:1 1.2}.rooms{transform-style:preserve-3d;pointer-events:none;position:absolute;inset:0}@property --rise{syntax:"<number>";inherits:true;initial-value:0}.room{--rise:0;--lift-height:22px;font:inherit;color:inherit;cursor:pointer;transform:translateZ(calc(var(--rise) * var(--lift-height)));transform-style:preserve-3d;background:0 0;border:0;padding:0;transition:--rise .7s cubic-bezier(.25,.8,.25,1);position:absolute}.room-cell:before{content:"";position:absolute;inset:-1.5px}.room-hatch{opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .6s cubic-bezier(.25,.8,.25,1);position:absolute;inset:0;overflow:visible;transform:translateZ(.02px)}.room.excluded.lifted .room-hatch,.room.unavailable.lifted .room-hatch{opacity:1;transition:opacity .24s cubic-bezier(.2,.9,.3,1)}.room-cell{box-sizing:border-box;pointer-events:auto;transform-style:preserve-3d;background-clip:padding-box;border-style:solid;transition:background .7s cubic-bezier(.25,.8,.25,1),border-color .7s cubic-bezier(.25,.8,.25,1);position:absolute}.map.angled .room.lifted{--rise:1;transition:--rise .26s cubic-bezier(.2,.9,.3,1)}.room:focus-visible{outline:none}.room:focus-visible .room-cell{outline:2px solid var(--accent);outline-offset:1px}.wall{background:var(--wall);backface-visibility:visible;pointer-events:auto;position:absolute}.room.free{--wall:#2f6b45}.room.free .room-cell{background:var(--accent-bg);border-color:var(--accent-border)}.room.lifted .room-cell{transition:background .26s cubic-bezier(.2,.9,.3,1),border-color .26s cubic-bezier(.2,.9,.3,1)}.room.free.lifted .room-cell{border-color:var(--accent);background:#4ade8042}.room.busy{--wall:#6b5219}.room.busy .room-cell{background:#fbbf241a;border-color:#fbbf2466}.room.busy.lifted .room-cell{border-color:var(--warn);background:#fbbf243d}.room.excluded,.room.unavailable{--wall:#6b2b2b;cursor:default}.room.excluded .room-cell,.room.unavailable .room-cell{background:#f871711a;border-color:#6c3636}.room.excluded.lifted .room-cell,.room.unavailable.lifted .room-cell{border-color:var(--danger);background:#f8717124}.room.excluded .room-name,.room.unavailable .room-name{color:var(--danger)}.room.excluded .room-status,.room.unavailable .room-status{color:var(--text)}.room-face{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;overflow:hidden;transform:translateZ(.05px)}.room-name{color:var(--text-h);white-space:nowrap;font-size:clamp(9px,1.2vw,15px);line-height:1.15}.room.free .room-name{color:var(--accent)}.room.busy .room-name{color:var(--warn)}.room-status{color:var(--text);font-size:clamp(8px,1vw,12px);line-height:1.15}.room.vertical .room-face{flex-direction:row}.room.vertical .room-name,.room.vertical .room-status{writing-mode:vertical-rl;transform:rotate(180deg)}.legend{flex-wrap:wrap;align-items:center;gap:18px;font-size:14px;display:flex}.legend span{align-items:center;gap:7px;display:flex}.swatch{border:1px solid var(--border);border-radius:3px;width:14px;height:14px}.swatch.free{background:var(--accent-bg);border-color:var(--accent-border)}.swatch.busy{background:#fbbf241f;border-color:#fbbf2466}.swatch.excluded{background:#f871711a;border-color:#6c3636}.swatch.context{background:#ffffff0f;border-color:#ffffff29}.book-form .duration{border-block:1px solid #0000;padding-block:9px}.book-form{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-wrap:wrap;align-items:flex-end;gap:18px;padding:18px;display:flex}.stack-form{flex-direction:column;gap:16px;max-width:380px;display:flex}.form-actions{gap:10px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{font:inherit;border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;padding:6px 14px;font-size:14px;transition:border-color .2s,color .2s,background .2s}.chip:hover{border-color:var(--accent-border);color:var(--text-h)}.chip.on{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pill.quiet{border-color:var(--border);color:var(--text);background:0 0}.pill.unavailable{color:var(--danger);background:#f871711a;border-color:#6c3636}.card.unavailable{cursor:default;opacity:.62}.card.unavailable:hover{border-color:var(--border);transform:none}.hint{text-transform:none;letter-spacing:normal;color:var(--text);opacity:.7}.rows{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.row{border-bottom:1px solid var(--border);grid-template-columns:1.4fr auto minmax(220px,1.5fr) auto auto;align-items:center;gap:12px;padding:14px 4px;font-size:15px;display:grid}.booking-range{color:var(--text-h)}@media (width<=640px){.row{grid-template-columns:1fr 1fr}}.status{font-size:15px}.empty{border:1px dashed var(--border);border-radius:var(--radius-lg);padding:32px 20px}.empty-title{font-family:var(--heading);color:var(--text-h);margin-bottom:4px;font-size:20px}.banner{border-radius:var(--radius);border:1px solid;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:15px;display:flex}.banner-error{color:var(--danger);background:#f8717114;border-color:#f8717166}.banner-warn{color:var(--warn);background:#fbbf2414;border-color:#fbbf2466}.banner-ok{border-color:var(--accent-border);color:var(--accent);background:var(--accent-bg)}.banner .link{color:inherit}
