:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#15120d;--panel:#1c1810;--panel-raised:#241f15;--well:#100d09;--border:#362f21;--border-strong:#4a4130;--text:#f1ebdc;--text-dim:#a89a80;--accent:#ff9d42;--accent-strong:#ffbd7a;--accent-ink:#201004;--danger:#ff7a63;--font-display:"Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;--font-body:"Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;font:15px/1.5 var(--font-body);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{min-height:100svh;margin:0}button,[role=button],input[type=range]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{font:inherit;color:var(--text);background:var(--panel-raised);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:8px 14px;transition:border-color .15s,color .15s,background-color .15s,transform .1s}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-strong)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=range]{width:100%;accent-color:var(--accent)}input[type=text]{font:inherit}.auth-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100svh;padding:24px;display:flex}.auth-screen h1{font-family:var(--font-display);letter-spacing:.04em;margin:0;font-size:26px;font-weight:600}.auth-error{color:var(--danger);font-size:13px}.logout-button{opacity:.6;font-size:12px;position:fixed;bottom:12px;right:12px}.logout-button:hover{opacity:1}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}.app{flex-direction:column;min-height:100svh;display:flex}.app-header{padding:calc(18px + env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) 18px max(24px, env(safe-area-inset-left));border-bottom:1px solid var(--border);background:linear-gradient(180deg, var(--panel), var(--bg));justify-content:space-between;align-items:baseline;gap:16px;display:flex}.app-header-title{align-items:baseline;gap:12px;min-width:0;display:flex}.app-header h1{font-family:var(--font-display);letter-spacing:.06em;white-space:nowrap;margin:0;font-size:21px;font-weight:600}.app-header-tagline{color:var(--text-dim);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12px;overflow:hidden}.header-actions{flex:none;gap:8px;display:flex}.header-actions button{font-size:13px}.app-main{flex-wrap:wrap;flex:1;gap:24px;padding:24px;display:flex}.preview-pane{flex-direction:column;flex:480px;justify-content:center;align-items:center;gap:14px;min-width:0;display:flex}.canvas-wrap{outline-offset:3px;border-radius:4px;outline:1px solid #0000;line-height:0;transition:outline-color .15s;display:inline-block;position:relative;overflow:hidden}.canvas-wrap--drag-over{outline-color:var(--accent)}.canvas-wrap--drag-over .preview-canvas{filter:brightness(1.08)}.zoom-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.zoom-controls button{font-family:var(--font-mono);padding:6px 11px;font-size:14px;line-height:1}.zoom-value{font-family:var(--font-mono);color:var(--accent-strong);background:var(--well);border:1px solid var(--border);font-variant-numeric:tabular-nums;text-align:center;border-radius:4px;min-width:3.5em;padding:3px 8px;font-size:12px}.curve-hint{color:var(--text-dim);font-size:12px;line-height:1.5}.brush-cursor{border:1.5px solid var(--accent-strong);mix-blend-mode:difference;pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.preview-canvas{object-fit:contain;border:1px solid var(--border);cursor:crosshair;-webkit-user-select:none;user-select:none;background:repeating-conic-gradient(#211c14 0% 25%,#17140e 0% 50%) 0 0/20px 20px;border-radius:4px;max-width:100%;max-height:70svh}.preview-canvas.panning{cursor:grab}.image-meta{color:var(--text-dim);font-size:12px;font-family:var(--font-mono);letter-spacing:.01em;overflow-wrap:anywhere;text-align:center;max-width:100%}.dropzone{border:1px dashed var(--border-strong);cursor:pointer;width:100%;min-height:340px;color:var(--text-dim);text-align:center;background:radial-gradient(circle at 50% 30%, var(--panel) 0%, var(--bg) 75%);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;transition:border-color .15s,background-color .15s;display:flex}.dropzone-icon{width:34px;height:34px;color:var(--text-dim);transition:color .15s}.dropzone:hover,.dropzone--over{border-color:var(--accent);color:var(--text)}.dropzone:hover .dropzone-icon,.dropzone--over .dropzone-icon{color:var(--accent)}.dropzone p{margin:0}.dropzone-label{color:var(--text);font-size:15px}.dropzone-hint{font-size:12px}.adjust-panel{background:var(--panel);border:1px solid var(--border);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;border-radius:10px;flex-direction:column;flex:0 0 320px;gap:4px;height:fit-content;max-height:calc(100svh - 48px);padding:22px;display:flex;position:sticky;top:24px;overflow-y:auto}.adjust-panel h2{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);border-top:1px solid var(--border);align-items:center;gap:8px;margin:22px 0 12px;padding-top:18px;font-size:11px;font-weight:500;display:flex}.adjust-panel h2:before{content:"";background:var(--accent);border-radius:50%;flex:none;width:6px;height:6px}.adjust-panel h2:first-child{border-top:none;margin-top:0;padding-top:0}.adjust-panel>.curve-hint,.adjust-panel>.slider,.adjust-panel>.watermark-panel,.adjust-panel>.preset-manager,.adjust-panel>.preset-buttons,.adjust-panel>.export-buttons{margin-bottom:10px}.slider{flex-direction:column;gap:6px;display:flex}.slider-label{justify-content:space-between;align-items:center;font-size:13px;display:flex}.slider-value,.value-readout{font-family:var(--font-mono);color:var(--accent-strong);background:var(--well);border:1px solid var(--border);font-variant-numeric:tabular-nums;text-align:center;border-radius:4px;min-width:2.6em;padding:2px 7px;font-size:12px}.tone-curve-canvas{aspect-ratio:1;touch-action:none;cursor:crosshair;border:1px solid var(--border);-webkit-user-select:none;user-select:none;border-radius:6px;width:100%}.preset-buttons,.export-buttons{flex-wrap:wrap;gap:6px;display:flex}.preset-buttons button,.export-buttons button{flex:auto;padding:6px 10px;font-size:12px}.export-buttons button.primary{font-family:var(--font-mono);letter-spacing:.03em}.watermark-panel{flex-direction:column;gap:12px;display:flex}.watermark-toggle{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.watermark-toggle input{accent-color:var(--accent)}.watermark-positions{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.watermark-positions button{padding:6px 4px;font-size:12px}.watermark-positions button.active{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-ink)}.preset-manager{flex-direction:column;gap:10px;display:flex}.preset-save-row{gap:6px;display:flex}.preset-save-row input{min-width:0;font:inherit;color:var(--text);background:var(--well);border:1px solid var(--border);border-radius:6px;flex:1;padding:6px 10px}.preset-save-row input:focus-visible{border-color:var(--accent)}.preset-save-row button{padding:6px 10px;font-size:12px}.preset-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.preset-list li{align-items:center;gap:4px;display:flex}.preset-apply{text-align:left;flex:1;padding:6px 10px;font-size:12px}.preset-delete{color:var(--text-dim);padding:4px 8px;font-size:12px}.preset-delete:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}@media (width<=720px){.app-header-tagline{display:none}.adjust-panel{flex:auto;max-height:none;position:static;overflow-y:visible}}
