@import url('https://fonts.googleapis.com/css2?family=DM+Mono&family=Manrope:wght@400;500;600;700&family=Prata&family=Noto+Sans+Thai:wght@400;500;600&display=swap');

:root{--ink:#1d1d1b;--sand:#e9e2d8;--paper:#f6f3ee;--olive:#5c6050;--warm:#a97c58;--line:rgba(29,29,27,.15)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,"Noto Sans Thai",sans-serif}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,66px);position:absolute;top:0;width:100%;z-index:3;color:#fff}.brand{letter-spacing:.13em;font-weight:700;font-size:13px;text-align:left}.brand span{font-weight:400;opacity:.72;margin-left:6px}.topbar nav{display:flex;gap:24px}.topbar nav button{font-size:12px;color:rgba(255,255,255,.86)}.hero{height:min(780px,100vh);min-height:620px;position:relative;color:#fff;display:grid;align-items:end;padding:0 clamp(20px,8vw,130px) 12vh;overflow:hidden}.hero-image{position:absolute;inset:0;background:url('assets/exterior-front.jpg') center 38%/cover no-repeat;transform:scale(1.01);animation:enter 1.5s ease-out}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,18,16,.7),rgba(17,18,16,.1) 66%),linear-gradient(0deg,rgba(17,18,16,.45),transparent 55%)}.hero-copy{position:relative;z-index:1}.eyebrow{font:500 10px 'DM Mono',monospace;letter-spacing:.18em;text-transform:uppercase;margin:0 0 15px;opacity:.78}.hero h1,.section-heading h2,.exterior-section h2,.dialog-content h2{font:400 clamp(36px,5.1vw,72px)/1.16 Prata,"Noto Sans Thai",serif;margin:0}.hero-copy>p:not(.eyebrow){font-size:15px;line-height:1.8;opacity:.9;margin:22px 0 30px}.primary,.secondary{border:1px solid currentColor;display:inline-flex;align-items:center;gap:34px;padding:13px 18px;font-size:12px;letter-spacing:.04em}.primary{background:#fff;color:#222}.primary span{font-size:18px}.hero-note{position:absolute;right:clamp(20px,4vw,66px);bottom:26px;margin:0;z-index:1;font-size:10px;opacity:.7;text-align:right}.tour{padding:110px clamp(16px,4vw,66px) 130px}.section-heading{text-align:center;margin-bottom:48px}.section-heading h2{font-size:clamp(30px,4vw,52px)}.section-heading>p:last-child{color:#666;font-size:13px;margin:16px 0 0}.tour-shell{min-height:630px;max-width:1480px;margin:auto;display:grid;grid-template-columns:185px 1fr 195px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.floor-nav,.room-list{padding:28px 18px;background:#ede8e0}.floor-nav{border-right:1px solid var(--line)}.room-list{border-left:1px solid var(--line)}.floor-button{display:block;width:100%;text-align:left;padding:13px 10px 13px 14px;border-left:2px solid transparent;transition:.2s}.floor-button.active{border-left-color:var(--warm);background:rgba(255,255,255,.45)}.floor-button span{display:block;font-size:13px;font-weight:600}.floor-button small{font:9px 'DM Mono',monospace;opacity:.55;text-transform:uppercase}.floor-button.all{margin-top:18px;border-top:1px solid var(--line);padding-top:23px}.canvas-wrap{position:relative;min-height:580px;background:radial-gradient(circle at 50% 45%,#fff 0,#f9f7f3 48%,#e4ddd3 100%)}#house-canvas{display:block;width:100%;height:100%;outline:none}.canvas-hint{position:absolute;bottom:16px;left:20px;display:flex;gap:12px;color:#777;font:9px 'DM Mono',monospace;letter-spacing:.04em}.canvas-hint span+span{padding-left:12px;border-left:1px solid #bbb}.reset-view{position:absolute;top:16px;right:16px;font-size:10px;padding:8px 10px;border:1px solid var(--line);background:#fff9}.room-list-title{font:10px 'DM Mono',monospace;letter-spacing:.08em;text-transform:uppercase;margin:2px 0 14px;color:#666}.room-button{display:flex;align-items:center;width:100%;text-align:left;padding:10px 0;border-bottom:1px solid var(--line);gap:9px;font-size:12px}.room-dot{width:8px;height:8px;border-radius:50%;flex:none}.exterior-section{max-width:1280px;margin:0 auto 130px;padding:0 30px;display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:70px}.exterior-section h2{font-size:clamp(31px,4vw,52px)}.exterior-section img{display:block;width:100%;height:530px;object-fit:cover}.room-dialog{position:fixed;z-index:10;inset:0;display:none;align-items:center;justify-content:center;padding:22px}.room-dialog.open{display:flex}.dialog-backdrop{position:absolute;inset:0;background:rgba(12,12,10,.7);backdrop-filter:blur(5px)}.dialog-card{position:relative;z-index:1;display:grid;grid-template-columns:1.18fr .82fr;width:min(1060px,100%);max-height:min(720px,calc(100vh - 44px));background:#f4f0e9;box-shadow:0 22px 70px #0005;overflow:auto}.dialog-image{min-height:400px;background:#ddd}.dialog-image img{width:100%;height:100%;object-fit:cover;display:block}.dialog-content{padding:50px 42px;display:flex;flex-direction:column}.dialog-content h2{font-size:40px}.dialog-content>p:not(.eyebrow):not(.source-note){font-size:14px;line-height:1.8;color:#54524e}.dialog-content dl{display:grid;grid-template-columns:95px 1fr;gap:10px;margin:18px 0}.dialog-content dt{font:10px 'DM Mono',monospace;letter-spacing:.07em;text-transform:uppercase;color:#777}.dialog-content dd{margin:0;font-size:12px;line-height:1.5}.source-note{font-size:10px;color:#777;margin-top:auto}.dialog-controls{display:flex;gap:10px;margin-top:22px}.secondary{background:transparent;gap:0}.close,.presentation-close{position:absolute;right:17px;top:12px;z-index:2;font-size:29px;line-height:1;color:#333}.presentation{display:none;position:fixed;z-index:12;inset:0;background:#151511;color:#fff}.presentation.open{display:block}.presentation-image,.presentation-image img{width:100%;height:100%;object-fit:cover}.presentation-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0009,transparent 65%)}.presentation-copy{position:absolute;z-index:1;left:8vw;bottom:13vh;max-width:550px}.presentation-copy h2{font:400 clamp(42px,6vw,78px)/1.13 Prata,"Noto Sans Thai",serif;margin:0}.presentation-copy p{font-size:14px;line-height:1.7}.presentation-close{color:#fff;right:28px;top:25px;font-size:38px}.presentation-controls{position:absolute;z-index:1;bottom:34px;right:5vw;display:flex;align-items:center;gap:18px;font:10px 'DM Mono',monospace}.presentation-controls button{color:#fff;font-size:25px}.presentation-controls span{min-width:45px;text-align:center}@keyframes enter{from{transform:scale(1.08);opacity:.7}to{transform:scale(1.01);opacity:1}}@media(max-width:850px){.topbar nav{display:none}.hero{padding-bottom:14vh}.hero h1{font-size:44px}.tour{padding:70px 0}.section-heading{padding:0 20px}.tour-shell{grid-template-columns:1fr;min-height:0}.floor-nav{border-right:0;border-bottom:1px solid var(--line);padding:8px;display:flex;overflow:auto}.floor-button{min-width:108px;padding:10px;border-bottom:2px solid transparent;border-left:0}.floor-button.active{border-left:0;border-bottom-color:var(--warm)}.floor-button.all{margin:0;border-top:0;padding-top:10px}.canvas-wrap{min-height:450px}.room-list{border-left:0;border-top:1px solid var(--line);padding:18px;display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px}.room-list-title{grid-column:1/-1}.exterior-section{grid-template-columns:1fr;gap:30px;margin-bottom:80px;padding:0 20px}.exterior-section img{height:420px}.dialog-card{grid-template-columns:1fr;max-height:calc(100vh - 28px)}.dialog-image{min-height:0;height:35vh}.dialog-content{padding:28px}.dialog-content h2{font-size:32px}.dialog-content dl{margin:10px 0}.source-note{margin-top:10px}.presentation-copy{left:24px;bottom:100px;right:24px}.presentation-copy h2{font-size:47px}}
.view-tabs{position:absolute;top:16px;left:16px;display:flex;background:#fffdf9dd;border:1px solid var(--line);padding:3px;gap:2px}.view-button{font-size:10px;padding:8px 10px}.view-button.active{background:var(--ink);color:#fff}@media(max-width:850px){.view-tabs{left:12px;top:12px}.view-button{padding:7px;font-size:9px}}
