*{box-sizing:border-box}body{margin:0;color:#67584f;background:#f4efe7;font-family:Georgia,"Songti SC","Microsoft YaHei",serif;transition:background .8s,color .8s}header{height:76px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d9cebf88;font-size:11px;letter-spacing:1.3px}.back{color:inherit;text-decoration:none}.brand{font-size:12px;letter-spacing:3px}.brand i{color:#b78667;margin:0 10px}button{font:inherit;cursor:pointer;color:inherit;border:1px solid #cabbaa;background:transparent;padding:12px 22px;border-radius:30px;font-size:12px;transition:background .2s,transform .2s}button:hover{background:#ffffff66;transform:translateY(-1px)}button:focus-visible,a:focus-visible,summary:focus-visible,#stage:focus-visible{outline:2px solid #b58269;outline-offset:4px}header button{padding:8px 16px}.intro{text-align:center;padding-top:35px;position:relative;z-index:1;pointer-events:none}.kicker{font:9px Arial,sans-serif;letter-spacing:3px;color:#a38974}h1{font-size:34px;letter-spacing:5px;font-weight:400;margin:16px 0}.subtitle{font-size:12px;letter-spacing:2px;color:#9d8779}#stage{height:590px;width:100%;position:relative;margin-top:-12px;touch-action:pan-y;cursor:grab}#stage:active{cursor:grabbing}canvas{display:block;width:100%;height:100%}#loading{position:absolute;top:40%;text-align:center;width:100%;font-size:13px}.scene-note{display:flex;justify-content:space-between;max-width:820px;margin:-3px auto 24px;padding:0 25px;font:9px Arial,sans-serif;letter-spacing:1.7px;color:#998574}nav{display:flex;justify-content:center;gap:12px}.primary{background:#aa7b68;border-color:#aa7b68;color:#fff8f1;box-shadow:0 5px 20px #83553e1a}.primary:hover{background:#976c5a}.storage-note{text-align:center;font:10px Arial,"Microsoft YaHei",sans-serif;color:#a08f81;margin-top:20px}#status{min-height:20px;text-align:center;font-size:12px;color:#a3755c;margin:8px 20px}details{max-width:760px;margin:0 auto 25px;text-align:center;font-size:11px;color:#9c8877}summary{cursor:pointer}#photo-list{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;padding:15px}#photo-list button{padding:7px 10px;font-size:11px}dialog{border:1px solid #d9c2a6;border-radius:12px;padding:25px;background:#f8f2e8;max-width:min(90vw,650px);color:#67584f;text-align:center}dialog::backdrop{background:#17131bc9;backdrop-filter:blur(8px)}dialog img{max-width:100%;max-height:65vh;object-fit:contain}dialog h2{font-size:17px;font-weight:400}#close{position:absolute;top:6px;right:6px;font-size:23px;padding:0;width:32px;height:32px;background:#fff5e9}body.night{background:#171c29;color:#e6d6be}.night header{border-color:#8e79533b}.night .subtitle,.night .scene-note,.night .storage-note,.night details{color:#ab9c8b}.night .kicker{color:#b99b71}@media(max-width:600px){header{height:61px;padding:0 20px}.brand{font-size:9px;letter-spacing:1.2px}.back{font-size:0}.back:after{content:'←';font-size:18px}.intro{padding-top:28px}h1{font-size:27px;letter-spacing:3px}.subtitle{font-size:10px;letter-spacing:1px}#stage{height:460px;margin-top:0}.scene-note{font-size:8px;letter-spacing:.5px;padding:0 20px;margin-bottom:20px}nav{gap:8px}nav button{padding:11px 15px;font-size:11px}.storage-note{font-size:9px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
html{overflow-x:hidden}canvas{max-width:100%}
#stage{height:660px}.dialog-close{position:absolute;right:10px;top:10px;border:0;padding:4px 10px;font-size:24px}#slots{width:520px}#slot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-height:60vh;overflow:auto;padding:6px}#slot-grid button{padding:7px;border-radius:9px;display:grid;gap:7px;font-size:11px}#slot-grid img,.slot-empty{width:100%;height:95px;object-fit:cover;border-radius:4px}.slot-empty{display:grid;place-items:center;background:#eadfcf;font-size:30px;color:#ac937e}#editor{width:730px;max-width:94vw}.editor-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;text-align:left}#crop-preview{width:100%;height:auto;border:10px solid #eee5d9;border-radius:8px}.editor-controls{display:grid;gap:16px}.editor-controls p{font-size:10px;margin:0}.editor-controls label{font-size:12px;display:grid;gap:9px}.editor-controls input{width:100%;accent-color:#ac7b68}#editor-status{font-size:12px;color:#a46550}.editor-controls button{padding:10px}#save-photo:disabled{opacity:.5}#viewer button{margin:4px}@media(max-width:600px){#stage{height:530px}.editor-layout{gap:15px;grid-template-columns:1fr 1fr}#slot-grid{gap:6px}#slot-grid img,.slot-empty{height:70px}#editor{padding:20px 14px}.editor-controls{gap:12px}.editor-controls button{font-size:10px;padding:8px}#editor h2{font-size:18px}}
.view-controls{display:flex;justify-content:center;gap:8px;margin:0 0 15px}.view-controls button{padding:6px 15px;font-size:13px}#stage{touch-action:none}button:disabled{opacity:.45;cursor:default}
.interaction-copy{text-align:center;font-size:14px;letter-spacing:2px;color:#96755d;margin:24px 15px 10px}.interaction-help{text-align:center;font-size:10px;color:#a18a78;margin:10px 15px 4px;line-height:1.9}.editor-controls input[type=text]{padding:9px;border:1px solid #d6c4b1;border-radius:5px;background:#fffaf2;color:#725b47;font:12px sans-serif}.drag-photo-label{position:fixed;z-index:1000;background:#fff7e8e8;border:1px solid #caa987;border-radius:8px;padding:12px;pointer-events:none;font-size:12px;color:#806448;box-shadow:0 6px 25px #0002}.drag-photo-label[hidden]{display:none}.night .interaction-copy{color:#d2b697}.night .interaction-help{color:#ad9e8d}
html:not([data-editor=local]) #upload,html:not([data-editor=local]) #swap-photo,html:not([data-editor=local]) #edit-photo,html:not([data-editor=local]) #remove{display:none!important}.owner-bar{padding:15px 25px;background:#ebdac5;border-bottom:1px solid #bda58b;color:#72543c;text-align:center;font:13px sans-serif}.owner-bar button{background:#9d7057;color:white;margin:0 12px}.owner-bar a{color:inherit}.owner-bar p{margin:10px 0 0;font-size:12px}
html:not([data-editor=local]) .interaction-copy,html:not([data-editor=local]) .interaction-help,html:not([data-editor=local]) #upload{display:none!important}
