:root{--paper:#f3f1eb;--white:#faf9f5;--ink:#292d29;--muted:#666a61;--line:#d5d8ce;--accent:#667557}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Microsoft JhengHei","PingFang TC",sans-serif;font-size:14px}button,select,.button{font:inherit;color:inherit}button,.button{cursor:pointer;border:1px solid var(--line);background:transparent;padding:11px 15px;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#e3e7dc}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #697851;outline-offset:4px}button:disabled{opacity:.4;cursor:default}.topbar{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4.5%;gap:24px}.brand{font-family:Georgia,serif;font-size:39px;font-weight:700;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:18px}.brand span{font:9px/1.6 Arial,sans-serif;letter-spacing:1.5px;max-width:125px}.topbar nav{display:flex;gap:23px}.topbar nav button{border:0;border-bottom:1px solid transparent;padding:8px 0;font-size:12px;color:var(--muted)}.topbar nav button.active{border-bottom-color:var(--ink);color:var(--ink)}button.dark{background:var(--ink);color:white;border-color:var(--ink)}main{max-width:1600px;margin:auto;padding:0 4.5%}.opening{padding:56px 0 40px;display:flex;justify-content:space-between;gap:30px}.eyebrow{font:10px/1.5 Arial,sans-serif;letter-spacing:2.4px;color:var(--accent);margin:0 0 17px}h1{font-size:clamp(32px,3.8vw,57px);font-weight:500;letter-spacing:3px;line-height:1.35;margin:0 0 16px}h2{font-weight:500;font-size:28px;line-height:1.6;letter-spacing:1px;margin:0}.intro{color:var(--muted);line-height:1.9;margin:0;max-width:790px}.project-stamp{border-left:1px solid var(--line);padding-left:30px;min-width:190px}.project-stamp>span{font:9px Arial;letter-spacing:2px}.project-stamp strong{display:block;font:46px Georgia,serif;margin:10px 0}.project-stamp strong span{font:12px Arial;color:var(--muted)}.project-stamp p{color:var(--muted);font-size:11px;line-height:1.8}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 295px;border:1px solid var(--line);background:var(--white);min-height:675px}.model-area{position:relative;background:#e9eae3;min-height:675px;overflow:hidden}.viewport-top,.viewport-bottom{position:absolute;z-index:2;left:26px;right:26px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.viewport-top{top:23px;font:10px Arial;letter-spacing:1.5px}.status i{display:inline-block;width:6px;height:6px;background:#687f54;border-radius:50%;margin-right:7px}.viewport-bottom{bottom:21px;gap:10px;font-size:11px;color:#596052;line-height:1.7}.viewport-bottom small{font-size:10px}.viewport-bottom button{pointer-events:auto;background:#f3f1ebe8;font-size:11px;padding:8px 11px}.view-buttons{display:flex;gap:6px}#viewport{position:absolute;inset:0;touch-action:none}#viewport canvas{width:100%;height:100%;display:block}#loading{position:absolute;inset:45% 0 auto;text-align:center}.controls{padding:30px 25px;border-left:1px solid var(--line)}.controls h2{font-size:23px}.control-intro{font-size:12px;color:var(--muted);line-height:1.9;margin:9px 0 24px}.field-title,.range-heading{display:block;font-size:11px;letter-spacing:.6px;margin:20px 0 10px}.range-heading{display:flex;justify-content:space-between}select{width:100%;padding:12px 9px;border:1px solid var(--line);background:var(--paper);font-size:12px}input[type=range]{width:100%;accent-color:var(--accent);height:15px;cursor:pointer}.controls small{display:block;font-size:10px;color:var(--muted);line-height:1.7;margin:4px 0 15px}.door-button{display:flex;justify-content:space-between;font-size:11px;width:100%;padding:12px 0;border:0;border-bottom:1px solid var(--line)}.door-button span{color:var(--accent)}.model-note{font-size:10px;color:var(--muted);line-height:1.8;margin:19px 0 0}.selection{position:absolute;top:53px;left:24px;right:24px;background:#faf9f5ed;padding:12px 16px;z-index:3;font-size:11px;overflow-wrap:anywhere;pointer-events:none}.chapter{padding:70px 0 45px;display:grid;grid-template-columns:1fr 1.45fr;gap:30px 70px}.chapter-heading h2{font-size:34px;margin-bottom:20px}.chapter-heading>p:last-child{font-size:14px;color:var(--muted);line-height:2;max-width:500px}.facts{grid-column:1;display:flex;gap:30px;align-self:start}.fact strong{display:block;font:34px Georgia,serif;margin-bottom:7px}.fact span{font-size:11px;color:var(--muted)}.chapter-image{grid-column:2;grid-row:1/3}.chapter-image>button{padding:0;width:100%;border:0;display:block;background:#e6e7df}.chapter-image img{width:100%;height:380px;object-fit:contain;display:block}.chapter-image>div{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);padding:12px 0;gap:14px}.chapter-pager{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;align-items:center}.chapter-pager button{border:0;font-size:12px}.chapter-pager>span{font:12px Georgia,serif}.gallery-section{padding:40px 0 70px;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px;gap:20px}.section-heading>p{font-size:12px;color:var(--muted)}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.gallery button{text-align:left;border:0;padding:0}.gallery img{width:100%;height:175px;object-fit:cover;display:block;background:#e4e5dd}.gallery .gallery-text{display:block;padding:13px 0;font-size:11px;line-height:1.6}.gallery .gallery-text small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.report-settings{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:40px 0;display:flex;justify-content:space-between;gap:30px}.report-settings p{color:var(--muted);font-size:12px;line-height:1.9}.settings-actions{max-width:340px;display:flex;gap:9px;align-content:center;flex-wrap:wrap}.settings-actions button,.settings-actions label{font-size:11px}.settings-actions p{width:100%;margin:0}.provenance{padding:35px 0;max-width:1050px}.provenance p:not(.eyebrow){font-size:10px;color:var(--muted);line-height:1.9;overflow-wrap:anywhere}footer{padding:25px 4.5%;display:flex;justify-content:space-between;font:10px Arial;border-top:1px solid var(--line);letter-spacing:1px}dialog{background:#f6f4ed;border:0;width:min(1100px,95vw);max-height:94vh;padding:20px}dialog::backdrop{background:#151a16d9}dialog>button{float:right;margin-bottom:10px}dialog img{width:100%;height:72vh;object-fit:contain;display:block}dialog p{font-size:12px;line-height:1.7}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 20px;z-index:20;display:none;font-size:12px;max-width:90vw}.presentation-toolbar{display:none}.presenting .topbar,.presenting .opening,.presenting .workspace,.presenting .gallery-section,.presenting .report-settings,.presenting .provenance,.presenting footer{display:none}.presenting .chapter{min-height:100vh;align-content:center;padding-top:50px;padding-bottom:90px}.presenting .chapter-image img{height:60vh}.presenting .chapter-pager{display:none}.presenting .presentation-toolbar{display:flex;position:fixed;bottom:18px;left:50%;transform:translateX(-50%);align-items:center;gap:13px;background:var(--white);border:1px solid var(--line);padding:8px 14px;z-index:10;white-space:nowrap;font-size:12px}.presentation-toolbar button{padding:7px 10px}
@media(max-width:1100px){.topbar nav{gap:12px}.brand span{display:none}.workspace{grid-template-columns:minmax(0,1fr) 265px}.controls{padding:26px 20px}.chapter{gap:25px 35px}.gallery{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.topbar{height:70px;padding:0 5%;gap:12px}.brand{font-size:30px}.topbar nav{display:none}.topbar>button{font-size:11px}.opening{padding:33px 0 25px}.project-stamp{display:none}h1{font-size:31px;letter-spacing:1px}.intro{font-size:12px}main{padding:0 5%}.workspace{display:flex;flex-direction:column}.model-area{min-height:480px}.viewport-top,.viewport-bottom{left:15px;right:15px}.viewport-bottom{align-items:end}.viewport-bottom>span{max-width:155px;font-size:9px}.viewport-bottom small{font-size:8px}.view-buttons{flex-direction:column}.controls{border-left:0;border-top:1px solid var(--line);padding:24px}.control-intro{margin-bottom:12px}.chapter{display:flex;flex-direction:column;padding:40px 0 25px;gap:22px}.chapter-heading h2{font-size:28px}.chapter-heading>p:last-child{font-size:13px}.facts{gap:30px}.chapter-image img{height:300px}.section-heading{display:block}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gallery img{height:150px}.report-settings{flex-direction:column}.gallery-section{padding-bottom:35px}footer{gap:20px;flex-wrap:wrap;line-height:1.8}.presenting .chapter{padding-top:30px;gap:12px;min-height:100dvh;justify-content:center}.presenting .chapter-heading h2{font-size:24px;margin-bottom:10px}.presenting .chapter-heading>p:last-child{font-size:12px;margin:0}.presenting .chapter-image img{height:34vh}.presenting .facts{display:none}.presenting .presentation-toolbar{gap:7px;font-size:10px;padding:7px}.presentation-toolbar button{font-size:10px}dialog img{height:65vh}}
@media print{@page{size:A4 landscape;margin:14mm}body{background:white}.topbar,.controls,.viewport-top,.viewport-bottom,.chapter-pager,.report-settings,footer,.presentation-toolbar,#toast,dialog{display:none!important}main{padding:0;max-width:none}.opening{padding:0 0 20px}.workspace{display:block;border:0;min-height:0}.model-area{min-height:460px;break-inside:avoid}.chapter,.gallery-section,.provenance{display:block!important;break-before:page;padding:20px 0}.chapter-image img{height:390px}.facts{margin:20px 0}.gallery{grid-template-columns:repeat(3,1fr)}.gallery button{break-inside:avoid}.gallery img{height:170px}.print-chapter{break-before:page}.print-chapter img{width:65%;height:430px;object-fit:contain;float:right}.print-chapter h2{padding-top:30px}.print-chapter p{line-height:2;max-width:32%}.print-chapter .eyebrow{max-width:none}.presenting .opening,.presenting .workspace,.presenting .gallery-section{display:block}.presenting .chapter{min-height:0}}

.print-chapter{display:none}@media print{.print-chapter{display:block!important}#chapter{display:none!important}}
