:root{--ink:#382e29;--muted:#92887e;--line:#e3ddd4;--paper:#faf8f4;--accent:#a65c3f;font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer;padding:11px 14px;border:1px solid var(--line);border-radius:7px;background:transparent;color:inherit;font-size:11px}button:hover{background:#ece4d8}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:inherit;text-decoration:none}header{height:78px;display:flex;justify-content:space-between;align-items:center;padding:0 32px;border-bottom:1px solid var(--line)}.logo{letter-spacing:5px;font-size:25px}.logo span{display:block;letter-spacing:2px;font-size:7px;margin-top:4px}nav{display:flex;align-items:center;gap:9px}nav a{font-size:10px;margin-right:20px}main{display:grid;grid-template-columns:minmax(0,1fr) 380px;height:calc(100dvh - 78px);min-height:720px}.stage{background:#eae4da;position:relative;overflow:hidden}.heading{position:absolute;z-index:2;top:32px;left:35px;pointer-events:none}small{font-size:8px;letter-spacing:1.8px;color:var(--muted)}h1{font-size:45px;letter-spacing:-1.8px;font-weight:400;line-height:1.1;margin:18px 0}h1 em{font-family:Georgia,serif;color:#a56c50;font-weight:400}.heading p{font-size:11px;color:var(--muted)}#view{position:absolute;inset:0;touch-action:none}canvas{display:block}.tools{position:absolute;bottom:25px;right:25px;display:flex;gap:5px}.tools button{background:#faf8f4ce;border-color:#fff8;font-size:9px}.scene-note{position:absolute;bottom:35px;left:30px;font-size:9px;color:var(--muted)}.collection{position:absolute;bottom:90px;left:35px;border-left:2px solid #a9795c;padding-left:15px;pointer-events:none}.collection b,.collection span{display:block}.collection b{font-size:23px;font-weight:400;margin:7px 0}.collection span{font-size:10px;color:var(--muted)}aside{display:flex;flex-direction:column;border-left:1px solid var(--line);min-height:0}.intro{padding:28px 25px 19px}.intro h2{font-size:18px;font-weight:500;letter-spacing:-.5px;margin:10px 0}.tabs{display:grid;grid-template-columns:repeat(4,1fr);padding:0 20px;border-bottom:1px solid var(--line)}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:14px 0;font-size:10px}.tabs .active{border-color:var(--accent);color:var(--accent)}#options{flex:1;overflow:auto;padding:24px;scrollbar-width:thin}h3{font-size:13px;font-weight:500;margin:0 0 15px}.hint{font-size:10px;line-height:1.7;color:var(--muted);margin:14px 0}.cards{display:grid;grid-template-columns:1fr 1fr;gap:9px}.card{text-align:left;padding:14px 12px;min-height:80px}.card .glyph{display:block;font-family:Georgia,serif;font-size:26px;margin-bottom:10px;color:#896e54}.card b{font-size:11px;font-weight:550;display:block}.card small{display:block;font-size:8px;letter-spacing:0;margin-top:6px}.card.active,.pill.active{background:#efe5d8;border-color:#a77b5d;box-shadow:inset 0 0 0 1px #b5977e}.separator{height:1px;background:var(--line);margin:24px 0}.range{margin:22px 0}.range label{display:flex;justify-content:space-between;font-size:11px}.range input{width:100%;accent-color:#9b6949;margin:18px 0 0;height:4px}.swatches{display:flex;gap:12px;margin:15px 0}.swatch{padding:3px;border-radius:50%;width:46px;height:46px}.swatch i{display:block;width:100%;height:100%;border-radius:50%}.swatch.active{outline:1px solid #947455;outline-offset:3px}.swatch-label{font-size:11px;color:#88745e;margin:8px 0 20px}.pills{display:flex;gap:7px}.pill{flex:1;font-size:10px;padding:10px 5px}footer{background:#efe8de;padding:22px 25px;border-top:1px solid var(--line)}footer>div{display:flex;justify-content:space-between;align-items:center;font-size:12px}footer small{display:block;letter-spacing:0;font-size:8px;margin-top:6px}footer strong{font-size:25px;font-weight:400}footer button{width:100%;background:var(--ink);color:white;border:0;padding:15px;margin-top:18px;text-align:left}footer p{font-size:8px;color:var(--muted);text-align:center;margin-bottom:0}dialog{border:1px solid var(--line);border-radius:15px;padding:30px;background:var(--paper);color:var(--ink);width:620px;max-width:calc(100vw - 24px);max-height:90dvh;overflow:auto}dialog::backdrop{background:#241e1ab8;backdrop-filter:blur(5px)}dialog h2{font-size:29px;font-weight:400;letter-spacing:-1px}.close{position:absolute;right:15px;top:10px;border:0;font-size:25px}.fine{font-size:10px;line-height:1.6;color:var(--muted)}#render{width:100%;height:250px;object-fit:cover;border-radius:8px}#details{margin:20px 0;font-size:12px}#details div{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid var(--line)}#details strong{font-weight:500;text-align:right}#link{width:100%;padding:14px;margin:15px 0;border:1px solid var(--line);border-radius:8px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 22px;border-radius:8px;background:var(--ink);color:white;font-size:12px;z-index:99;display:none}#toast.show{display:block}#error{position:absolute;top:45%;left:15%;right:15%;padding:25px;background:white;font-size:13px;border-radius:12px}
@media(max-width:1100px){main{grid-template-columns:minmax(0,1fr) 330px}.scene-note{bottom:75px}.heading h1{font-size:34px}.tools{left:25px;right:auto}.collection{bottom:115px}}@media(max-width:720px){header{height:72px;padding:0 17px}.logo{font-size:20px;letter-spacing:3px}.logo span{font-size:6px}nav{gap:5px}nav a{display:none}nav button{font-size:9px;padding:8px}#load{font-size:0;width:27px}#load:after{content:'↑';font-size:14px}main{display:flex;flex-direction:column;height:auto;min-height:0}.stage{height:54dvh;min-height:380px}.heading{left:22px;top:18px}.heading h1{font-size:27px;margin:10px 0;letter-spacing:-1px}.heading small{font-size:6px}.heading p{font-size:9px}.collection{display:none}.scene-note{bottom:60px;left:22px;font-size:8px}.tools{bottom:16px;left:20px;gap:4px}.tools button{padding:9px;font-size:8px}#options{overflow:visible;min-height:330px}.intro{padding:22px}.tabs{padding:0 20px}aside{border:0}dialog{padding:23px}#render{height:180px}}@media print{body>*{display:none!important}body>#modal[open]{display:block!important;position:static;width:100%;max-width:100%;max-height:none;overflow:visible;border:0;box-shadow:none}dialog button{display:none}dialog::backdrop{display:none}#details{break-inside:avoid}@page{size:A4;margin:15mm}}
