@font-face{font-family:sans;src:url(/_next/static/media/13a15bcdfeddab65-s.p.woff2) format("woff2");font-display:swap;font-weight:400}@font-face{font-family:sans;src:url(/_next/static/media/4cdcd386d2ac59c8-s.p.woff2) format("woff2");font-display:swap;font-weight:500}@font-face{font-family:sans;src:url(/_next/static/media/1cdb9a2cbcaafa7e-s.p.woff2) format("woff2");font-display:swap;font-weight:600}@font-face{font-family:sans Fallback;src:local("Arial");ascent-override:101.35%;descent-override:27.19%;line-gap-override:0.00%;size-adjust:101.13%}.__className_e0399a{font-family:sans,sans Fallback}.__variable_e0399a{--font-sans:"sans","sans Fallback"}@font-face{font-family:mono;src:url(/_next/static/media/06ac09dcb8ec7d56-s.p.woff2) format("woff2");font-display:swap;font-weight:400}@font-face{font-family:mono;src:url(/_next/static/media/dece0821e8ed059f-s.p.woff2) format("woff2");font-display:swap;font-weight:500}@font-face{font-family:mono Fallback;src:local("Arial");ascent-override:77.95%;descent-override:20.91%;line-gap-override:0.00%;size-adjust:131.49%}.__className_de06f6{font-family:mono,mono Fallback}.__variable_de06f6{--font-mono:"mono","mono Fallback"}:root{color-scheme:light dark;--bg:#f3f2ee;--fg:#1b1b19;--muted:#5e5c56;--panel:#ffffff;--panel-2:#faf9f6;--track:#eceae4;--border:#d9d6ce;--border-soft:#e6e3dc;--input-border:#cfcbc2;--accent:#2f6f4f;--on-accent:#ffffff;--bad:#b3261e}@media (prefers-color-scheme:dark){:root{--bg:#1a1a19;--fg:#ecebe7;--muted:#a5a29a;--panel:#242422;--panel-2:#2a2a27;--track:#1e1e1c;--border:#3a3936;--border-soft:#31302d;--input-border:#4a4844;--accent:#6fd0a0;--on-accent:#10241a;--bad:#ff8a80}}*{box-sizing:border-box}body{margin:0}.app{min-height:100vh;background:var(--bg);color:var(--fg);font:14px/1.45 var(--font-sans,system-ui),system-ui,sans-serif}button,input,select{font:inherit;color:inherit}header{display:flex;align-items:center;gap:10px;height:60px;padding:0 24px;border-bottom:1px solid var(--border);background:var(--panel)}.logo{width:22px;height:22px;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linejoin:round}.header-actions{display:flex;gap:6px;margin-left:auto}.header-actions button.secondary{display:flex;align-items:center;gap:6px}.header-actions svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}@media (max-width:720px){.header-actions .label{display:none}.header-actions button.secondary{width:36px;padding:0;justify-content:center}}@media (hover:none){.header-actions [data-tip]{position:relative}.header-actions [data-tip]:focus:after{content:attr(data-tip);position:absolute;top:calc(100% + 6px);right:0;z-index:2;padding:4px 8px;border-radius:6px;background:var(--fg);color:var(--bg);font-size:12px;font-weight:500;white-space:nowrap;pointer-events:none;animation:tip-fade 1.6s forwards}}@keyframes tip-fade{0%,70%{opacity:1}to{opacity:0}}h1{margin:0;font-size:16px;font-weight:600}main{display:grid;grid-template-columns:360px 1fr;grid-gap:16px;gap:16px;padding:16px 24px}@media (max-width:720px){main{grid-template-columns:1fr;padding:12px 16px}}.left{position:-webkit-sticky;position:sticky;top:16px;max-height:calc(100vh - 60px - 32px);overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:10px}@media (max-width:720px){.left{position:static;max-height:none;overflow:visible}}.right{min-width:0;display:flex;flex-direction:column;height:calc(100vh - 60px - 32px)}@media (max-width:720px){.right{height:auto}.right .canvas-wrap{flex:none;height:60vh}}.tabs-list{position:-webkit-sticky;position:sticky;top:0;z-index:1;display:flex;gap:4px;padding:6px;background:var(--track);border-bottom:1px solid var(--border)}.tab{flex:1 1;min-height:40px;padding:0 14px;border-radius:7px;background:transparent;color:var(--muted)}.tab.active{background:var(--panel);color:var(--fg);box-shadow:0 1px 2px rgb(0 0 0/.12)}.tab-panel{display:flex;flex-direction:column}.tab-panel[hidden]{display:none}.panel{display:flex;flex-direction:column}.preset-bar{display:flex;gap:8px;padding:12px 14px;border-bottom:1px solid var(--border)}.preset-bar select{flex:1 1;width:0;min-height:36px;padding:0 6px;border:1px solid var(--input-border);border-radius:6px;background:var(--panel)}.crop-editor{display:flex;flex-direction:column;gap:10px}.crop-stage{position:relative;align-self:center;overflow:hidden;line-height:0}.crop-stage canvas{max-width:100%;max-height:260px}.crop-frame{position:absolute;border:2px solid var(--accent);box-shadow:0 0 0 9999px rgb(0 0 0/45%);cursor:move;touch-action:none}.crop-buttons{display:flex;gap:8px}.hint{margin:0;padding:14px 14px 4px;color:var(--muted)}.subhead{margin:10px 0 0;font-size:14px;font-weight:600}.note{margin:0;color:var(--muted)}.export-bar{position:-webkit-sticky;position:sticky;bottom:0;display:flex;flex-direction:column;gap:10px;padding:12px 14px;background:var(--panel-2);border-top:1px solid var(--border)}.export-bar>button{min-height:44px;font-size:15px}fieldset{min-width:0;margin:0;padding:0;border:0;border-bottom:1px solid var(--border-soft)}fieldset:disabled{color:var(--muted)}fieldset>details>summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-weight:600;cursor:pointer;list-style:none}fieldset>details>summary::-webkit-details-marker{display:none}.chevron{flex:none;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .12s}details[open]>summary .chevron{transform:rotate(90deg)}.section-title{flex:1 1}.section-summary{color:var(--muted);font-family:var(--font-mono,monospace);font-size:12px;font-weight:400}.section-body{display:flex;flex-direction:column;gap:8px;padding:0 14px 14px 36px}.tab-panel>.panel>.section-body{padding:10px 14px 14px}.field{display:grid;grid-template-columns:minmax(0,1fr) 132px;align-items:center;grid-gap:8px;gap:8px}.field select,.input-unit{min-height:36px;border:1px solid var(--input-border);border-radius:6px;background:var(--panel)}.field select{padding:0 6px}.input-unit{display:flex;align-items:center}.input-unit input{width:100%;min-width:0;min-height:34px;padding:0 8px;border:0;border-radius:6px;background:transparent;font-family:var(--font-mono,monospace);font-size:13px;text-align:right}.input-unit>span{padding-right:8px;color:var(--muted);font-size:12px}.field-text{display:flex;flex-direction:column;gap:4px}.field-text input{min-height:36px;padding:0 8px;border:1px solid var(--input-border);border-radius:6px;background:var(--panel)}.field input[type=checkbox]{justify-self:end;width:18px;height:18px;margin:0;accent-color:var(--accent)}.field input[type=range]{flex:1 1;width:0}.field output{font-family:var(--font-mono,monospace)}.dropzone{margin:14px;padding:24px;border:2px dashed var(--border);border-radius:8px;text-align:center;cursor:pointer;color:var(--muted)}.dropzone.over,.image-card.over{border-color:var(--accent)}.image-card{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border-soft)}.image-current{display:flex;align-items:center;gap:12px}.image-card img{flex:none;width:56px;height:42px;object-fit:cover;border-radius:6px}.lantern-walls{display:grid;grid-gap:6px;gap:6px;margin:0;padding:0 14px 12px;list-style:none}.lantern-walls li{display:flex;align-items:center;gap:10px;min-width:0}.lantern-walls img{flex:none;width:40px;height:30px;object-fit:cover;border-radius:4px}.lantern-walls span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-strip{display:flex;flex-wrap:wrap;gap:6px}.image-strip button{padding:0;border:2px solid transparent;border-radius:8px;background:none}.image-strip button[aria-pressed=true]{border-color:var(--accent)}.image-strip img{display:block;width:48px;height:36px}.image-name{flex:1 1;min-width:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.canvas-wrap{flex:1 1;min-height:360px;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column}.canvas-viewport{flex:1 1;min-height:0;position:relative}.canvas-viewport.backlight{background:#1e1c19}.canvas-empty{inset:0;justify-content:center;margin:0;color:var(--muted)}.canvas-empty,.preview-status{position:absolute;display:flex;align-items:center;pointer-events:none}.preview-status{top:12px;left:50%;transform:translateX(-50%);z-index:1;gap:8px;max-width:calc(100% - 24px);padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--fg);box-shadow:0 2px 8px rgb(0 0 0/.15)}.preview-status.error{color:var(--bad);border-radius:10px}.preview-status .spinner{border-color:var(--border);border-top-color:var(--fg)}.canvas-viewport[aria-busy=true] canvas{opacity:.6;transition:opacity .2s}.preview-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid var(--border-soft)}.preview-toolbar .field{display:flex;gap:8px}.preview-toolbar .input-unit{width:90px}.preview-toolbar .icon-button{margin-left:auto}.stats{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 2px 0;color:var(--muted);font-family:var(--font-mono,monospace);font-size:12px}.stats .ok{color:var(--accent)}.error,.stats .bad{color:var(--bad)}.error{margin:0}button{min-height:36px;padding:0 16px;border:0;border-radius:8px;background:var(--accent);color:var(--on-accent);font-weight:600;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.icon-button,button.secondary{border:1px solid var(--border);background:var(--panel);color:var(--fg);font-weight:500}.section-body>button.secondary{align-self:flex-start;border-color:var(--accent);color:var(--accent)}.icon-button{display:flex;align-items:center;justify-content:center;width:36px;padding:0}.icon-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.segmented{display:flex;gap:4px;padding:3px;border-radius:8px;background:var(--track)}.export-bar .segmented button{flex:1 1}.segmented button{padding:0 14px;border-radius:6px;background:transparent;color:var(--muted);font-weight:500}.segmented button[aria-pressed=true]{background:var(--panel);color:var(--fg);box-shadow:0 1px 2px rgb(0 0 0/.12)}button.busy{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:wait}.spinner{width:14px;height:14px;border:2px solid rgb(255 255 255/.4);border-top:2px solid var(--on-accent);border-radius:50%;animation:spin .7s linear infinite;flex:none}@keyframes spin{to{transform:rotate(1turn)}}