.hero3d{position:relative;display:flex;flex-direction:column;height:860px;min-height:760px;max-height:none;background:#e7efeb;overflow:hidden;scroll-margin-top:0}
.tour-head{padding:34px 48px 22px;display:flex;align-items:end;justify-content:space-between;gap:20px;flex:none}
.hero3d.home-tour{height:880px;min-height:800px}
.home-tour .tour-head{padding-top:96px}
.nav.on-tour{mix-blend-mode:normal;background:#e7efeb;color:#263a30;box-sizing:border-box;height:80px;padding:18px 28px}
.nav.on-tour a{color:#263a30;border-color:#758b76;box-sizing:border-box;height:44px;min-height:44px;display:inline-flex;align-items:center;padding:8px 20px}
.nav.on-tour::before{opacity:0}
.tour-head .en{font-family:'Noto Sans TC',sans-serif;font-size:11px;letter-spacing:0;color:#52695e;margin-bottom:10px}
.tour-head h2,.tour-head h1{font-size:29px;line-height:1.4;font-weight:500;margin:0;letter-spacing:0;color:#263a30}
.tour-head p{font-family:'Noto Sans TC',sans-serif;font-size:12px;line-height:1.7;letter-spacing:0;color:#52695e;margin:0}
.tour-tabs{display:flex;gap:24px;margin:0 48px;border-bottom:1px solid #bfcfc5;min-height:48px;flex:none;overflow-x:auto;scrollbar-width:thin}
.tour-tabs button{position:relative;flex:none;border:0;border-bottom:2px solid transparent;background:none;padding:12px 0;min-height:48px;font:400 13px 'Noto Sans TC',sans-serif;letter-spacing:0;color:#637368;cursor:pointer;white-space:nowrap}
.tour-tabs button[aria-selected=true]{border-bottom-color:#315b45;color:#254934;font-weight:500}
.hero3d button:focus-visible,.hero3d canvas:focus-visible{outline:2px solid #286044;outline-offset:4px}
.tour-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;flex:1;min-height:440px}
.tour-stage{position:relative;min-width:0;min-height:0;isolation:isolate}
.tour-levels{position:absolute;top:18px;left:26px;z-index:3;display:flex;border:1px solid #91a294;border-radius:4px;overflow:hidden;background:#f8faf6}
.tour-levels[hidden]{display:none}
.tour-levels button{box-sizing:border-box;min-width:64px;height:40px;border:0;border-right:1px solid #bdccc1;background:none;color:#38513f;font:13px 'Noto Sans TC',sans-serif;letter-spacing:0;cursor:pointer}
.tour-levels button:last-child{border-right:0}
.tour-levels button[aria-pressed=true]{background:#315b45;color:#fff}
.tour-prices{box-sizing:border-box;border-left:1px solid #c3cfc5;padding:24px 24px 18px;font:13px/1.5 'Noto Sans TC',sans-serif;color:#304839;letter-spacing:0}
.tour-price-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}
.tour-price-heading h3{font:500 21px/1.4 'Noto Serif TC',serif;margin:0;letter-spacing:0}
.tour-price-heading>span{font-size:11px;color:#5a6c5e;white-space:nowrap}
.tour-prices table{width:100%;border-collapse:collapse;table-layout:fixed;font-variant-numeric:tabular-nums}
.tour-prices thead th{font-size:11px;font-weight:400;color:#67766b;text-align:right;padding:0 0 9px;border-bottom:1px solid #c3cfc5}
.tour-prices thead th:first-child{width:41%;text-align:left}
.tour-prices tbody th{padding:12px 0;text-align:left;font-weight:400;border-bottom:1px solid #d0d9d1}
.tour-prices tbody th>span{display:block;font-size:10px;color:#657469;margin-top:3px}
.tour-prices tbody button{border:0;padding:0;background:none;color:inherit;font:500 13px/1.6 'Noto Sans TC',sans-serif;letter-spacing:0;cursor:pointer;text-align:left;min-height:28px}
.tour-prices tbody button:disabled{cursor:default;opacity:1}
.tour-prices tbody td{padding:12px 0;text-align:right;font-size:16px;border-bottom:1px solid #d0d9d1;white-space:nowrap}
.tour-prices tbody td:last-child{font-size:14px;color:#657469}
.tour-prices tr.is-current{background:#d9e5da;color:#204e34}
.tour-prices tr.is-current button{text-decoration:underline;text-underline-offset:5px}
.tour-prices .tour-whole-house th,.tour-prices .tour-whole-house td{font-weight:500;border-bottom:0;padding-bottom:4px}
.tour-prices .tour-bundle-scope td{padding:0 0 12px;text-align:left;font-size:10px;white-space:normal}
.tour-prices .tour-cabin{border-top:2px solid #c3cfc5}
.tour-prices .tour-cabin th>span{display:block;margin-left:0}
.room-list>.whole-house{margin-top:0}
.whole-house .room-cap{flex-basis:100%;margin:0;letter-spacing:0}
.tour-prices .tour-rate-note{font-size:10px;color:#657469;margin:18px 0 0;line-height:1.6}
.tour-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hero3d .tour-stage canvas{display:block;width:100%;height:100%;position:absolute;inset:0;cursor:grab;touch-action:none}
.tour-tools{position:absolute;right:24px;bottom:24px;display:flex;gap:1px;background:#bdccc1;border:1px solid #b7c7bc;border-radius:4px;z-index:2}
.tour-tools button{position:relative;background:#f8faf6;border:0;color:#354a3c;width:44px;height:44px;display:grid;place-items:center;cursor:pointer}
.tour-tools button:hover{background:#e0ebdf}
.tour-tooltip{position:absolute;bottom:54px;left:50%;transform:translateX(-50%);background:#263c2e;color:#fff;font:12px 'Noto Sans TC',sans-serif;padding:6px 8px;white-space:nowrap;opacity:0;pointer-events:none;border-radius:3px}
.tour-tools button:hover .tour-tooltip,.tour-tools button:focus-visible .tour-tooltip{opacity:1}
.tour-reference{position:absolute;left:26px;bottom:24px;z-index:2;display:flex;flex-direction:column;padding:0;border:0;background:#f8faf6;cursor:pointer;color:#344d3d;box-shadow:0 3px 15px #253c281a}
.tour-reference img{display:block;width:132px;height:88px;object-fit:cover}
.tour-reference span{font:11px 'Noto Sans TC',sans-serif;padding:8px 12px;letter-spacing:0}
.tour-reference:hover span{background:#dae7d9}
.tour-footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:20px;padding:16px 48px 22px;flex:none;border-top:1px solid #cbd6cd;background:#e7efeb;text-align:left;color:#435849;font:12px/1.7 'Noto Sans TC',sans-serif;letter-spacing:0}
.tour-footer>div{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.tour-current{font-size:14px;font-weight:500}
.tour-detail{color:#637569}
.tour-footer p{margin:0;font-size:11px;color:#6d7c72}
.hero3d .hero3d-load{position:absolute;inset:0;background:#e7efeb;z-index:4;display:flex;align-items:center;justify-content:center;gap:12px}
.hero3d-load>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0.85}
.hero3d .hero3d-load button{position:relative;font:14px 'Noto Sans TC',sans-serif;letter-spacing:0;min-height:48px;padding:14px 24px;background:#f8faf6f2;border:1px solid #758b76;border-radius:4px;color:#263e2f;cursor:pointer}
.hero3d .hero3d-load button:hover{background:#263e2f;color:#fff}
.hero3d .hero3d-load button:disabled{cursor:default;background:#f8faf6f2;color:#263e2f}
.hero3d.ready .hero3d-load{display:none}
.hero3d:not(.ready) .tour-reference,.hero3d:not(.ready) .tour-tools{visibility:hidden}
.hero3d .r3d-card{right:24px;bottom:84px;max-height:calc(100% - 100px);overflow:auto;border-radius:4px}
.hero3d .r3d-card h3{letter-spacing:0}
.tour-photo-dialog{border:0;padding:0;background:#17251e;color:#f7faf6;width:min(1080px,92vw);max-width:92vw;max-height:92svh;overflow:auto;border-radius:4px}
.tour-photo-dialog::backdrop{background:#0b1713d9}
.tour-photo-dialog figure{margin:0}
.tour-photo-dialog figure img{display:block;width:100%;height:calc(88svh - 60px);object-fit:contain}
.tour-photo-dialog figcaption{padding:14px 20px;font:13px 'Noto Sans TC',sans-serif;letter-spacing:0}
.tour-dialog-close{position:absolute;right:12px;top:12px;width:44px;height:44px;display:grid;place-items:center;border:1px solid #ffffff55;background:#16251dd9;color:white;border-radius:4px;cursor:pointer}
.tour-standalone{margin:0;background:#e7efeb;font-family:'Noto Serif TC',serif}
.tour-standalone .hero3d{height:100svh;max-height:none}
.tour-mesh-actions{position:absolute;top:16px;right:24px;z-index:3;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 48px)}
.tour-mesh-actions button,.tour-mesh-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 12px;border:1px solid #a4b5a9;border-radius:4px;background:#f8faf6eb;color:#304a38;text-decoration:none;font:14px 'Noto Sans TC',sans-serif;cursor:pointer}
.tour-mesh-actions button[aria-pressed=true]{background:#315b45;color:white}
.tour-mesh-actions button:disabled{opacity:0.7;cursor:wait}
.tour-mesh-actions a:focus-visible{outline:2px solid #286044;outline-offset:3px}
.tour-mesh-status{position:absolute;left:180px;right:180px;bottom:25px;text-align:center;pointer-events:none;margin:0;font:12px/1.5 'Noto Sans TC',sans-serif;color:#435849;text-shadow:0 1px 4px #fff}
.tour-mesh-actions~.tour-levels{top:70px}
.tour-reconstruction-active .tour-mesh-status{left:24px;right:270px;bottom:30px;text-align:left}
.tour-reconstruction-active .tour-tools button{font-size:22px}
@media(max-width:640px){
  .tour-mesh-actions{top:12px;right:16px;left:16px;max-width:none;justify-content:flex-start}
  .tour-mesh-actions button,.tour-mesh-actions a{font-size:13px;padding:0 10px}
  .tour-mesh-actions~.tour-levels{top:66px}
  .tour-mesh-status{left:16px;right:16px;bottom:112px;font-size:11px}
  .tour-reconstruction-active .tour-mesh-status{left:16px;right:16px;bottom:80px}
}
.tour-back{color:#42634b;font:13px 'Noto Sans TC',sans-serif;text-decoration:none;padding:12px 0}
@media(max-width:640px){
  .tour-head{padding:26px 20px 14px;align-items:start;gap:10px}
  .tour-head h2,.tour-head h1{font-size:24px}
  .tour-head p{max-width:8em;font-size:11px}
  .tour-head .en{margin-bottom:7px;font-size:10px}
  .tour-tabs{margin:0 20px;gap:20px;min-height:48px}
  .tour-tabs button{font-size:12px}
  .tour-reference{left:16px;bottom:16px}
  .tour-levels{left:16px;top:14px}
  .tour-levels button{height:44px}
  .tour-reference img{width:96px;height:64px}
  .tour-reference span{padding:6px 10px;font-size:10px}
  .tour-tools{right:16px;bottom:16px}
  .tour-footer{padding:13px 20px 18px;gap:10px;align-items:start}
  .tour-footer>div{flex-direction:column;gap:1px}
  .tour-detail{font-size:10px;max-width:20em}
  .tour-footer p{font-size:10px;max-width:9em;text-align:right}
  .hero3d .r3d-card{bottom:76px;left:16px;right:16px;width:auto;max-height:calc(100% - 80px)}
  .hero3d .r3d-card img.shot{height:105px}
  .hero3d .r3d-card .body{padding:12px;gap:6px}
  .tour-photo-dialog{width:94vw;max-width:94vw}
  .tour-photo-dialog figure img{height:78svh}
}
@media(max-width:800px){
  .hero3d,.hero3d.home-tour,.tour-standalone .hero3d{height:auto;max-height:none;min-height:0}
  .tour-layout{display:flex;flex-direction:column;flex:none;min-height:0}
  .tour-stage{height:440px;flex:none}
  .tour-prices{border-left:0;border-top:1px solid #c3cfc5;padding:20px}
  .tour-price-heading{margin-bottom:14px}
  .tour-prices tbody th,.tour-prices tbody td{padding:7px 0}
  .tour-prices tbody th>span{display:inline;margin-left:8px}
  .tour-prices thead th:first-child{width:48%}
  .tour-prices tbody button{min-height:44px}
  .tour-prices .tour-rate-note{margin-top:12px}
}
.intro.intro-story{flex-direction:column;align-items:center;gap:48px}
.naming-story{width:min(100%,880px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,240px);gap:32px 56px;border-top:1px solid #d8d2bf;padding-top:32px}
.naming-copy{display:flex;flex-direction:column;gap:16px;min-width:0}
.naming-story h3{margin:0;font-size:22px;font-weight:600;line-height:1.6;letter-spacing:0;color:#26291f}
.intro .naming-story p{writing-mode:horizontal-tb;max-height:none;font-size:15px;line-height:2;letter-spacing:0;overflow-wrap:anywhere}
.intro .naming-story .naming-poem{line-height:2.2}
.room-cabin{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));align-items:center}
.room-cabin>*{min-width:0}
.room-cabin .ph-main img{max-height:620px;object-fit:contain}
.cabin-story{display:flex;flex-direction:column;gap:10px;border-top:1px solid #d8d2bf;padding-top:16px}
.cabin-story h4{margin:0;font-size:18px;font-weight:600;line-height:1.7;letter-spacing:0;overflow-wrap:anywhere}
.cabin-story p{margin:0;font-size:15px;font-weight:300;line-height:2.1;letter-spacing:0;color:#55584a;overflow-wrap:anywhere}
.cabin-story .naming-origin{font-family:'Noto Sans TC',sans-serif;font-size:13px}
@media(max-width:640px){.naming-story{grid-template-columns:minmax(0,1fr);gap:24px}.naming-story h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){.hero3d *{scroll-behavior:auto!important;transition:none!important}}
.tour-hd-active .tour-stage canvas{display:none}
.tour-hd-viewer{position:absolute;inset:16px 18px 82px}
.tour-stage[data-view=cabin] .tour-hd-viewer{top:72px}
.tour-hd-zoom{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.tour-hd-viewer img{display:block;width:100%;height:100%;object-fit:contain}
.tour-mode-toggle{position:absolute;right:24px;top:18px;z-index:3;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid #91a294;border-radius:4px;background:#f8faf6;color:#31543d;font:14px 'Noto Sans TC',sans-serif;text-decoration:none;letter-spacing:0}
.tour-hd-actions{position:absolute;right:24px;bottom:24px;z-index:2;display:flex;gap:1px;border:1px solid #b7c7bc;border-radius:4px;background:#bdccc1}
.tour-hd-actions a,.tour-hd-actions button{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:0;background:#f8faf6;color:#31543d;font:14px 'Noto Sans TC',sans-serif;letter-spacing:0;text-decoration:none;cursor:pointer}
.tour-hd-actions a:hover,.tour-hd-actions button:hover{background:#e0ebdf}
.tour-hd-active a:focus-visible{outline:2px solid #286044;outline-offset:4px}
@media(max-width:640px){.tour-hd-active .tour-stage{height:480px}.tour-hd-viewer{inset:12px 8px 78px}.tour-stage[data-view=cabin] .tour-hd-viewer{top:68px}.tour-hd-actions{right:16px;bottom:16px}.tour-hd-actions a,.tour-hd-actions button{padding:0 10px;font-size:13px}}
.tour-guest .hero3d-load>img{opacity:1}
.tour-guest-poster{position:absolute;inset:66px 12px 26px}
.tour-guest-poster img{display:block;width:100%;height:100%;object-fit:contain}
.tour-guest [hidden]{display:none!important}
.tour-guest .tour-stage:not(.is-rotating) canvas{visibility:hidden;pointer-events:none}
.tour-guest .tour-stage[data-view=cabin]:not(.is-rotating) .tour-guest-poster{top:116px}
.tour-guest-actions{position:absolute;top:16px;left:24px;right:24px;z-index:3;display:flex;justify-content:flex-end;gap:8px}
.tour-guest-actions button{min-height:44px;padding:0 16px;border:1px solid #91a294;border-radius:4px;background:#f8faf6;color:#31543d;font:14px 'Noto Sans TC',sans-serif;cursor:pointer;letter-spacing:0}
.tour-guest-actions button:first-child{background:#315b45;color:white;border-color:#315b45}
.tour-guest-actions button:disabled{opacity:.75;cursor:wait}
.tour-guest .tour-levels{top:70px}
.tour-guest .tour-tools button{font-size:22px}
.tour-guest-status{position:absolute;left:24px;right:24px;bottom:6px;pointer-events:none;margin:0;color:#435849;font:12px/1.5 'Noto Sans TC',sans-serif;text-align:center;text-shadow:0 1px 4px #fff}
.tour-guest .is-rotating .tour-guest-status{right:270px;bottom:30px;text-align:left}
.hero3d.tour-enlarged{height:auto;min-height:0;max-height:none}
.tour-enlarged .tour-layout{display:flex;flex-direction:column;flex:none}
.tour-enlarged .tour-stage{height:85svh;min-height:560px;flex:none}
.tour-enlarged .tour-prices{border-left:0;border-top:1px solid #c3cfc5}
@media(max-width:800px){
  .tour-guest .tour-stage{height:460px}
  .tour-guest.tour-enlarged .tour-stage{height:85svh;min-height:480px}
}
@media(max-width:640px){
  .tour-guest-actions{left:12px;right:12px;top:12px;justify-content:space-between}
  .tour-guest-actions button{padding:0 12px}
  .tour-guest-poster{left:4px;right:4px;bottom:26px}
  .tour-guest .is-rotating .tour-guest-status{left:16px;right:16px;bottom:80px}
}
.tour-photo3d .tour-stage canvas{inset:66px 12px 26px;width:calc(100% - 24px);height:calc(100% - 92px);touch-action:pan-y pinch-zoom}
.tour-photo3d .tour-stage.is-rotating canvas{touch-action:none}
.tour-photo3d .tour-stage[data-view=cabin] canvas{top:116px;height:calc(100% - 142px)}
.tour-photo3d .is-rotating .tour-guest-status{left:12px;right:12px;bottom:5px;text-align:center}
@media(max-width:640px){
  .tour-photo3d .tour-stage canvas{left:4px;right:4px;width:calc(100% - 8px)}
  .tour-photo3d .tour-guest-actions{gap:4px}
  .tour-photo3d .tour-guest-actions button{padding:0 10px}
}
.tour-solid3d .tour-stage canvas{inset:64px 0 88px;width:100%;height:calc(100% - 152px)}
.tour-solid3d .tour-stage[data-view=cabin] canvas{top:114px;height:calc(100% - 202px)}
.tour-solid3d [hidden]{display:none!important}
.tour-solid-navigation{position:absolute;bottom:32px;left:24px;right:24px;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:12px}
.tour-solid-navigation label{display:flex;align-items:center;gap:8px;color:#31543d;font:14px 'Noto Sans TC',sans-serif;letter-spacing:0}
.tour-solid-navigation select{min-height:44px;max-width:125px;padding:0 8px;border:1px solid #91a294;border-radius:4px;background:#f8faf6;color:#31543d;font:14px 'Noto Sans TC',sans-serif}
.tour-solid-tools{display:flex;gap:4px}
.tour-solid-tools button{width:44px;height:44px;border:1px solid #91a294;border-radius:4px;background:#f8faf6;color:#31543d;font-size:22px;cursor:pointer}
.tour-solid-status{position:absolute;bottom:7px;left:12px;right:12px;margin:0;text-align:center;color:#435849;font:12px/1.5 'Noto Sans TC',sans-serif;pointer-events:none}
.tour-solid3d .tour-levels{top:66px}
.tour-solid3d .tour-stage{min-height:520px}
.tour-solid3d .tour-head .en,.tour-solid3d .tour-price-heading>span,.tour-solid3d .tour-footer p{font-size:12px}
.tour-solid3d .tour-tabs button{font-size:14px}
.tour-solid3d select:focus-visible{outline:2px solid #286044;outline-offset:3px}
@media(max-width:640px){
  .tour-solid-navigation{left:12px;right:12px;gap:6px}
  .tour-solid-navigation label{flex-direction:column;align-items:start;gap:2px;font-size:12px}
  .tour-solid-tools{gap:3px}
  .tour-solid-navigation select{max-width:115px}
  .tour-solid3d .tour-guest-actions{gap:4px}
  .tour-solid3d .tour-guest-actions button{padding:0 8px}
  .tour-solid3d .tour-stage{height:540px}
  .tour-solid3d .tour-stage canvas{bottom:104px;height:calc(100% - 168px)}
  .tour-solid3d .tour-stage[data-view=cabin] canvas{height:calc(100% - 218px)}
}
