:root{color-scheme:dark;--ink: #f7efe2;--muted: rgba(247, 239, 226, .68);--line: rgba(255, 231, 183, .18);--panel: rgba(20, 24, 26, .74);--panel-strong: rgba(25, 30, 32, .92);--gold: #e8bb72;--wood: #8e5c34;--sky: #b9dcea}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden;color:var(--ink);font-family:LXGW WenKai,"Source Han Serif SC",Microsoft YaHei,PingFang SC,sans-serif;background:radial-gradient(circle at 18% 12%,rgba(232,187,114,.24),transparent 34%),radial-gradient(circle at 78% 18%,rgba(109,151,155,.24),transparent 38%),linear-gradient(135deg,#14100c,#111a1d 48%,#0a0e12)}button{font:inherit}.app-shell{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;width:100%;height:100%;padding:18px}.viewer-card{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 32%),#0c1012a3;box-shadow:0 28px 90px #0000005c,inset 0 1px #ffffff14}.viewer-card canvas{display:block;width:100%!important;height:100%!important}.title-plate{position:absolute;left:24px;bottom:24px;width:min(560px,calc(100% - 48px));padding:18px 20px;border:1px solid rgba(255,231,183,.2);border-radius:22px;background:#0c0e0f94;box-shadow:0 20px 60px #0000003d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:rise-in .7s ease both}.title-plate span,.eyebrow{margin:0;color:var(--gold);font-size:.73rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.title-plate h1{margin:8px 0 6px;font-size:clamp(1.65rem,3vw,3rem);line-height:1.02;letter-spacing:.02em}.title-plate p,.panel-copy,.checklist p{margin:0;color:var(--muted);line-height:1.7;font-size:.94rem}.controls-panel{display:flex;flex-direction:column;gap:18px;min-width:0;min-height:0;overflow-y:auto;padding:22px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 24%),var(--panel);box-shadow:0 24px 70px #00000047,inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:slide-in .74s ease both}.controls-panel h2{margin:8px 0;font-size:1.72rem;line-height:1.05}.control-group,.view-grid{display:grid;gap:10px}.control-button,.view-grid button{min-height:44px;cursor:pointer;color:var(--ink);border:1px solid rgba(255,231,183,.18);border-radius:14px;background:#fff1;box-shadow:inset 0 1px #ffffff14;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease}.control-button:hover,.view-grid button:hover{transform:translateY(-1px);border-color:#e8bb728c;background:#e8bb7221}.control-button[data-active=true]{color:#21170d;border-color:#e8bb72eb;background:linear-gradient(135deg,#f1ca84,#d49a50)}.view-grid{grid-template-columns:1fr 1fr}.wide-button{grid-column:1 / -1}.checklist{padding:16px;border:1px solid rgba(185,220,234,.18);border-radius:18px;background:#b9dcea14}.checklist span{display:block;margin-bottom:8px;color:var(--sky);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@media (max-width: 980px){body{overflow:auto}.app-shell{grid-template-columns:1fr;height:auto;min-height:100%}.viewer-card{height:68vh;min-height:520px}.controls-panel{overflow:visible}}@media (max-width: 620px){.app-shell{gap:12px;padding:10px}.viewer-card,.controls-panel{border-radius:20px}.viewer-card{min-height:460px}.title-plate{left:12px;bottom:12px;width:calc(100% - 24px);padding:14px;border-radius:16px}.view-grid{grid-template-columns:1fr}}
