@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',Arial,sans-serif;color:#243339;background:#f4f5f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:1px solid #d9deda;background:#fff;border-radius:7px;padding:10px 14px;font-size:14px}button:hover{background:#edf0ed}button:focus-visible,a:focus-visible{outline:3px solid #c6a66d;outline-offset:3px}header{height:88px;background:#203039;color:#f5f3ed;display:flex;justify-content:space-between;align-items:center;padding:0 36px}.brand{color:inherit;text-decoration:none;display:flex;gap:16px;align-items:center;font-family:Manrope,Arial,sans-serif;letter-spacing:3px;font-size:19px}.monogram{font-size:35px;font-family:Georgia,serif;color:#d3b983;border:1px solid #8c8067;padding:1px 13px;letter-spacing:0}.brand small{display:block;font-size:10px;letter-spacing:2.5px;margin-top:5px;color:#b8c2c4}.header-end{display:flex;gap:25px;align-items:center}.edition{font-size:11px;letter-spacing:1.8px;color:#bcc6c8}header button{background:transparent;border-color:#55646a;color:#f5f3ed}header button:hover{background:#394a53}main{display:grid;grid-template-columns:340px 1fr;min-height:calc(100dvh - 88px)}aside{padding:32px 28px 24px;background:#fff;border-right:1px solid #dce0dc;overflow:auto;max-height:calc(100dvh - 88px)}.eyebrow,.section-label{font-size:11px;letter-spacing:1.8px;color:#7a817c;font-weight:600}h1{font-family:Manrope,sans-serif;font-weight:500;font-size:29px;line-height:1.2;letter-spacing:-1.2px;margin:15px 0}.intro{font-size:14px;line-height:1.55;color:#69736e;margin-bottom:28px}.section-label{margin:23px 0 12px}.layouts{display:grid;gap:7px}.layout-option{text-align:left;padding:12px 13px;display:flex;align-items:center;gap:12px;border-color:#e2e5e1;border-radius:6px}.layout-option .index{color:#89938b;font-size:12px}.layout-option b{font-weight:500;font-size:14px}.layout-option .seat{margin-left:auto;font-size:12px;white-space:nowrap;color:#6e7873}.layout-option[aria-pressed=true]{background:#203039;border-color:#203039;color:#fff}.layout-option[aria-pressed=true] .index,.layout-option[aria-pressed=true] .seat{color:#d3b983}.layout-summary{border-bottom:1px solid #e2e5e1;padding:17px 0 11px}.layout-summary strong{font-size:14px;font-weight:500}.layout-summary p{font-size:13px;color:#79827c;line-height:1.5;margin:8px 0}.zones{display:flex;flex-wrap:wrap;gap:6px}.zones button{font-size:12px;padding:7px 10px;background:#f5f6f3;border-color:#e6e9e3}.zones button[aria-pressed=true]{background:#dbe5e4;border-color:#9aafad}.source-note{font-size:12px;line-height:1.5;color:#818880;margin-top:24px}.source-link{font-size:12px;color:#516760;display:inline-block;margin-top:10px;text-underline-offset:4px}.viewer{position:relative;min-height:620px;background:radial-gradient(ellipse at 55% 45%,#f8faf8,#dbe3de);overflow:hidden}#canvas-container{position:absolute;inset:0;touch-action:none}canvas{display:block;width:100%;height:100%}.view-controls{position:absolute;top:22px;left:22px;display:flex;gap:3px;background:#fff;padding:4px;border-radius:10px;box-shadow:0 6px 22px #2030390b}.view-controls button{border:0;background:transparent}.view-controls button[aria-pressed=true]{background:#203039;color:#fff}.options{position:absolute;right:23px;top:24px;display:flex;flex-direction:column;gap:10px;font-size:12px;color:#596a60}.options label{display:flex;align-items:center;gap:7px;cursor:pointer}input{accent-color:#203039;width:15px;height:15px}.viewer-bottom{position:absolute;bottom:22px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:12px}.viewer-bottom span{font-size:12px;color:#65756b}.viewer-bottom button{background:#ffffffdf;backdrop-filter:blur(8px)}#labels-layer{position:absolute;inset:0;pointer-events:none}.room-label{position:absolute;transform:translate(-50%,-50%);font-size:11px;letter-spacing:.5px;color:#2c4945;background:#ffffffdb;padding:4px 7px;border-radius:3px;white-space:nowrap;box-shadow:0 1px 4px #233c3010}.room-card{position:absolute;bottom:78px;left:25px;background:#fffffff2;backdrop-filter:blur(12px);border-radius:9px;padding:22px;width:310px;box-shadow:0 10px 40px #20303916}.room-card h2{font-family:Manrope,sans-serif;font-size:23px;font-weight:500;margin:9px 0}.room-card p{font-size:14px;line-height:1.5;color:#68776e;margin:0}.room-card button{position:absolute;right:12px;top:9px;border:0;background:transparent;font-size:24px;padding:0 5px}.compass{position:absolute;right:28px;bottom:96px;width:70px;color:#728779;text-align:center}.compass span{font-size:8px;line-height:1.4;letter-spacing:1px;display:block}.compass svg{width:34px;height:34px;margin-top:6px}.error{position:absolute;inset:100px 20px auto;padding:30px;background:#fff;border-radius:12px}button:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}
@media(min-width:1450px){aside{padding:40px 35px}main{grid-template-columns:365px 1fr}}
@media(max-width:900px){main{grid-template-columns:285px 1fr}aside{padding:25px 20px}h1{font-size:26px}.options{top:80px;right:15px}.view-controls{left:15px;top:15px}.compass{display:none}.viewer-bottom{left:15px;right:15px;flex-wrap:wrap}}
@media(max-width:650px){header{height:70px;padding:0 18px}.brand{font-size:14px;gap:11px;letter-spacing:2px}.brand small{font-size:8px}.monogram{font-size:26px;padding:2px 10px}.edition{display:none}header button{padding:8px;font-size:12px}main{display:flex;flex-direction:column;min-height:0}aside{order:2;max-height:none;overflow:visible;border-right:0;padding:25px 20px}h1{font-size:25px}h1 br{display:none}.intro{margin-bottom:20px}.viewer{height:63dvh;min-height:470px}.layouts{grid-template-columns:1fr 1fr}.layout-option{padding:12px 9px;gap:7px;flex-wrap:wrap}.layout-option b{font-size:13px}.layout-option .seat{font-size:11px}.viewer-bottom{bottom:15px}.viewer-bottom span{max-width:50%;font-size:11px}.viewer-bottom button{font-size:12px;padding:9px}.room-card{left:15px;width:270px;bottom:70px;padding:19px}.room-label{font-size:9px;padding:3px 5px}.options{font-size:11px;top:70px}.section-label{margin-top:20px}.source-note{margin-top:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
