:root{color-scheme:light;--paper:#f5f2eb;--ink:#20372f;--green:#294d40;--stage:#67777b;--line:#c7c9c1;font-family:"Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;height:100vh;height:100dvh;display:grid;grid-template-rows:86px minmax(0,1fr) 50px;background:var(--paper);color:var(--ink)}
button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #d8af62;outline-offset:4px}button:disabled{cursor:default;opacity:.5}
.header{display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:16px}.title h1{font-size:28px;line-height:1.25;letter-spacing:-1px;margin:0;font-weight:700}.title p{font-size:14px;line-height:1.4;margin:3px 0 0}
.versions{display:flex;flex-shrink:0;border:1px solid #66776b;border-radius:12px;overflow:hidden}.versions button{width:126px;border:0;background:transparent;min-height:42px;font-size:15px;font-weight:600}.versions button[aria-pressed=true]{color:var(--paper);background:var(--green);border-radius:10px}
#viewer{position:relative;min-height:0;overflow:hidden;background:var(--stage)}#canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px}#fallback{position:absolute;width:100%;height:100%;inset:0;object-fit:contain}
.model-caption{position:absolute;top:22px;left:32px;margin:0;font-size:15px;line-height:1.5;color:#f3f4f0;pointer-events:none}.controls{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;max-width:calc(100% - 32px);gap:8px}
.toolbar{display:flex;align-items:center;gap:15px;padding:8px 10px;background:var(--paper);border-radius:14px;box-shadow:0 2px 10px #1b33301a}.views,.actions{display:flex;border:1px solid #d5d4cb;border-radius:9px;overflow:hidden}.toolbar button{background:transparent;border:0;font-size:14px;line-height:20px;white-space:nowrap;min-height:36px;min-width:91px;padding:8px 14px}.toolbar button+button{border-left:1px solid #d5d4cb}.toolbar button[aria-pressed=true]{background:var(--green);color:var(--paper);border-radius:7px}.toolbar button:hover:not([aria-pressed=true]){background:#e7e7de}.divider{width:1px;height:28px;background:#acb3a7}.hint{margin:0;color:#f1f3ef;font-size:13px;line-height:1.5;white-space:nowrap}
.footer{display:flex;align-items:center;justify-content:space-between;padding:0 32px}.footer button,.footer a{font-size:14px;line-height:1.5;border:0;background:transparent;color:var(--ink);text-decoration:none;padding:6px 0}.footer a:hover,.footer button:hover{text-decoration:underline;text-underline-offset:4px}
.loading{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;padding:18px 24px;border-radius:12px;background:var(--paper);color:var(--ink);font-size:14px;max-width:calc(100% - 40px);text-align:center}.loading[hidden]{display:none}.spinner{width:20px;height:20px;border:2px solid #c9d3cc;border-top-color:var(--green);border-radius:50%;animation:spin 1s linear infinite;flex-shrink:0}.loading.error .spinner{display:none}#retry{border:1px solid var(--green);border-radius:6px;padding:6px 10px;background:transparent}
dialog{border:0;border-radius:14px;background:var(--paper);color:var(--ink);width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:28px;box-shadow:0 10px 80px #142c3a33;font-size:14px;line-height:1.85}dialog::backdrop{background:#122a31aa}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog-top h2{font-size:24px;line-height:1.4;margin:0}.dialog-top button{font-size:14px;border:1px solid var(--line);border-radius:6px;padding:5px 12px;background:transparent}dialog p{margin:18px 0}dl{margin:20px 0}dt{font-weight:700;margin-top:12px}dd{margin:2px 0 0}.dialog-hint{color:#587064}.downloads{display:flex;align-items:flex-start;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:18px}.downloads a{color:var(--green);text-underline-offset:4px}
@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
@media(max-width:650px){body{grid-template-rows:80px minmax(0,1fr) 46px}.header{padding:0 18px;gap:12px}.title h1{font-size:21px;letter-spacing:-.7px}.title p{font-size:12px}.versions{border-radius:9px}.versions button{width:76px;min-height:38px;font-size:13px}.model-caption{left:18px;top:18px;font-size:13px}.toolbar{flex-wrap:wrap;justify-content:center;gap:8px;padding:8px;max-width:100%;border-radius:12px}.toolbar button{min-width:65px;font-size:13px;min-height:36px;padding:7px 10px}.divider{display:none}.actions{border:0}.actions button{min-width:112px}.actions button+button{border-left:1px solid #d5d4cb}.controls{bottom:16px;width:298px;gap:10px}.hint{font-size:11px}.footer{padding:0 18px}.footer button,.footer a{font-size:12px}}
@media(max-width:360px){.header{padding:0 12px}.title h1{font-size:19px}.versions button{width:65px}.controls{width:276px}.toolbar button{min-width:60px;padding:7px 8px}}
