:root{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:#352b23;background:#faf5ec;font-size:16px;line-height:1.55}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,a:focus-visible,#viewport:focus-visible{outline:3px solid #b2743a;outline-offset:3px}header{display:flex;align-items:center;gap:45px;padding:23px 35px;border-bottom:1px solid #ded5c7}.brand{font:40px/1 Georgia,serif;text-decoration:none;color:inherit;letter-spacing:-3px}.brand span{display:block;font:10px/2 system-ui;letter-spacing:2px;margin-top:5px}.title p,.eyebrow{font-size:12px;font-weight:650;letter-spacing:1.8px;color:#7b654d;margin:0 0 8px}.title h1{font:25px/1.2 Georgia,serif;margin:0}.badge{margin-left:auto;font-size:13px;color:#705f4b;background:#eee5d7;border:1px solid #ded3c1;border-radius:20px;padding:8px 14px}main{display:grid;grid-template-columns:minmax(0,1fr) 340px;max-width:1800px;margin:auto}.stage{height:calc(100vh - 112px);min-height:620px;max-height:1000px;position:relative;overflow:hidden;background:#e4e3de}#viewport{position:absolute;inset:0;touch-action:none}#viewport canvas{display:block;width:100%;height:100%}#loading{position:absolute;inset:0;display:grid;place-content:center;background:#e8e6e0;color:#665849;z-index:5;padding:30px;text-align:center}#loading[hidden]{display:none}.scene-top{position:absolute;top:22px;left:25px;right:25px;display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:none;font-size:13px;color:#5b554a}.scene-top>span{background:#faf5ecd9;padding:8px 12px;border-radius:5px}.scene-top button{pointer-events:auto;background:#faf5ec;border:1px solid #cfc7b9;padding:8px 12px;border-radius:5px;color:#544939}.camera-card{position:absolute;bottom:68px;left:26px;max-width:360px;background:#fbf7eef0;padding:20px 24px;border-radius:8px;pointer-events:none;box-shadow:0 8px 30px #3024140d}.camera-card h2{font:27px/1.12 Georgia,serif;margin:0 0 12px}.camera-card p{font-size:14px;margin:0;color:#655b50}.view-tools{position:absolute;right:25px;bottom:72px;display:flex;flex-direction:column;gap:8px}.view-tools button{width:43px;height:43px;border:1px solid #d1c6b7;background:#fcf7ee;color:#493929;border-radius:6px;font-size:25px;box-shadow:0 5px 15px #0000000a}.scene-bottom{position:absolute;bottom:20px;left:26px;right:26px;display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#675d50}.panel{padding:30px 25px;background:#fffbf4;border-left:1px solid #e0d7c9}.panel h2{font:30px/1.12 Georgia,serif;margin:0 0 15px}.intro{font-size:15px;color:#706254;margin:0 0 24px}.presets{display:grid;gap:8px}.presets button{padding:12px 15px;display:flex;align-items:center;text-align:left;gap:16px;color:#514438;border:1px solid #dfd5c7;background:#faf6ef;border-radius:7px;font-size:15px;min-height:48px}.presets button span{font-size:12px;color:#8c7054}.presets button[aria-pressed=true]{background:#493529;color:#fff8ed;border-color:#493529}.presets button[aria-pressed=true] span{color:#e5c8a5}.panel>label{display:block;font-size:14px;font-weight:600;margin:23px 0 9px}.panel select{width:100%;min-height:46px;padding:9px;color:#514438;background:white;border:1px solid #d9cebc;border-radius:5px;font-size:14px}.toggles{display:grid;gap:12px;font-size:14px;margin:25px 0}.toggles label{display:flex;gap:10px;align-items:center}.toggles input{width:17px;height:17px;accent-color:#72543b}.help{font-size:13px;color:#746757;border-top:1px solid #e4dacb;padding-top:16px}.help summary{font-size:14px;font-weight:600;cursor:pointer;color:#4d3c2b}.pending{background:#f1e9dc;padding:18px;border-radius:8px;margin-top:25px}.pending h3{font:24px Georgia,serif;margin:7px 0 12px}.pending p{font-size:13px;color:#76624c;margin:0}.reference-section{max-width:1440px;margin:0 auto;padding:65px 35px;display:grid;grid-template-columns:300px 1fr;gap:50px}.reference-section h2{font:33px/1.15 Georgia,serif;margin:0 0 22px}.reference-section p:not(.eyebrow){font-size:16px;color:#736352}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.photo-grid button{padding:0;background:none;border:0;color:inherit;text-align:left;font-size:13px}.photo-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:7px}.photo-grid span{display:block;margin-top:6px}footer{padding:20px 35px 35px;max-width:1440px;margin:auto;border-top:1px solid #e1d4c3;color:#7d6d5b;font-size:13px}footer p:first-child{max-width:950px}dialog{border:0;border-radius:12px;padding:14px;max-width:min(1200px,95vw);background:#faf5ec}dialog::backdrop{background:#20160dd9}dialog img{display:block;max-height:80vh;max-width:100%;object-fit:contain}dialog p{margin:12px 8px 3px;font-size:14px}#close-photo{position:absolute;right:23px;top:23px;border:1px solid #ddd;background:#fffaf1;border-radius:50%;font-size:28px;width:44px;height:44px}.stage:fullscreen{max-height:none;height:100vh;width:100vw}.failed #viewport{display:none}@media(max-width:1050px){header{padding:18px 22px;gap:25px}.badge{display:none}main{grid-template-columns:minmax(0,1fr) 300px}.panel{padding:25px 20px}.camera-card{max-width:280px;bottom:75px}.reference-section{grid-template-columns:1fr;gap:25px}.scene-top>span{max-width:240px}.scene-bottom{flex-direction:column;gap:2px}}@media(max-width:720px){header{gap:25px;padding:16px 20px}.brand{font-size:33px}.brand span{font-size:8px}.title h1{font-size:21px}.title p{font-size:10px}main{display:flex;flex-direction:column}.stage{height:65vh;min-height:500px;max-height:680px}.panel{border-left:0;border-top:1px solid #e0d7c9;padding:30px 22px}.presets{grid-template-columns:1fr 1fr}.presets button{padding:12px 10px;gap:10px}.scene-top{top:15px;left:14px;right:14px;font-size:11px;gap:12px}.scene-top>span{max-width:210px}.camera-card{bottom:63px;left:15px;right:70px;max-width:300px;padding:13px 16px}.camera-card h2{font-size:22px;margin-bottom:7px}.camera-card p{font-size:12px}.camera-card .eyebrow{font-size:10px;margin-bottom:6px}.scene-bottom{left:15px;right:15px;font-size:10px}.view-tools{right:15px;bottom:68px}.reference-section{padding:42px 22px}.photo-grid{grid-template-columns:repeat(2,1fr)}footer{padding:20px 22px}.pending p,.help{font-size:14px}}
@media(max-width:720px){#viewport{bottom:150px}}
