@import "https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css";@import "https://fonts.googleapis.com/css2?family=Nanum+Gothic+Coding:wght@400;700&display=swap";:root{--bg-core:#030303;--bg-surface:#0a0a0a;--bg-elevated:#111;--text-main:#f0f0f0;--text-muted:#666;--accent:#f8312f;--accent-glow:#f8312f66;--danger:#f8312f;--success:#0f6;--border-subtle:#222;--border-focus:#f8312f;--sans:"Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg-core);min-width:320px;color:var(--text-main);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:13px;line-height:1.5}::selection{background:var(--accent);color:#fff}.app-shell{background:var(--bg-core);background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:24px 24px;flex-direction:column;min-height:100svh;padding:16px;display:flex}.topbar{flex-direction:column;align-items:center;gap:16px;width:min(460px,100%);margin:0 auto 24px;display:flex}.brand-container{color:var(--accent);align-items:center;gap:8px;display:flex}.brand{letter-spacing:4px;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}button,a,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.mode-switch{background:var(--bg-core);border:1px solid var(--border-subtle);width:100%;display:flex}.mode-switch button{min-height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:1;justify-content:center;align-items:center;transition:all .2s;display:flex}.mode-switch button.is-active{color:var(--bg-core);background:var(--text-main)}.mode-gate{grid-template-columns:1fr 1fr;gap:14px;width:min(460px,100%);margin:36px auto 0;display:grid}.mode-choice{border:1px solid var(--border-subtle);cursor:pointer;place-items:center;min-height:184px;transition:border-color .2s,background .2s,color .2s;display:grid}.mode-choice svg{transition:transform .2s}.mode-choice:hover svg{transform:scale(1.06)}.seal-choice{color:var(--bg-core);background:var(--text-main)}.open-choice{color:var(--accent);background:var(--bg-core);border-color:var(--accent)}.open-choice:hover{color:var(--text-main);background:var(--accent)}.workspace{flex-direction:column;gap:16px;width:min(460px,100%);margin:0 auto;display:flex}.preview-stage{border:1px solid var(--border-subtle);background:var(--bg-surface);order:1;transition:border-color .2s;position:relative;overflow:hidden}.preview-stage:before{content:"";pointer-events:none;z-index:10;border:1px solid #ffffff0d;position:absolute;inset:0}.preview-stage.is-dragging{border-color:var(--accent)}.file-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-pick-button{z-index:12;width:38px;height:38px;color:var(--text-main);border:1px solid var(--border-subtle);cursor:pointer;background:#000000b8;place-items:center;display:grid;position:absolute;top:10px;right:10px}.file-pick-button:hover{border-color:var(--text-main)}.preview-label{cursor:pointer;-webkit-tap-highlight-color:transparent;width:100%;display:block}.image-frame{width:100%;aspect-ratio:var(--preview-aspect-ratio,4 / 3);background:#000;place-items:center;display:grid;position:relative;overflow:hidden}.image-frame img{object-fit:contain;filter:none;mix-blend-mode:normal;width:100%;height:100%;transition:filter .3s;display:block}.image-frame:hover img{filter:none}.visible-watermark{z-index:1;pointer-events:none;color:#f8f1e7c7;text-shadow:0 1px 5px #000000e6;justify-content:space-between;gap:16px;font-family:Georgia,Times New Roman,serif;font-weight:600;display:flex;position:absolute;bottom:22px;left:22px;right:22px}.visible-watermark span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.visible-hint{font-size:16px}.visible-domain{letter-spacing:.02em;flex:none;font-size:22px;font-weight:700}.empty-preview{aspect-ratio:4/3;width:100%;color:var(--text-muted);background:var(--bg-surface);justify-content:center;align-items:center;transition:color .2s;display:flex}.preview-label:hover .empty-preview{color:var(--text-main)}@keyframes revealOverlay{0%{opacity:0;-webkit-backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(8px)}}.letter-sheet{z-index:2;background:radial-gradient(circle,#03030366 0%,#000000e6 100%);justify-content:center;align-items:center;padding:42px;animation:1.5s cubic-bezier(.19,1,.22,1) forwards revealOverlay;display:flex;position:absolute;inset:-10px}@keyframes textGlow{0%,to{text-shadow:0 0 10px #f8312f33,0 0 20px #f8312f1a}50%{text-shadow:0 0 15px #f8312f99,0 0 30px #f8312f4d}}.letter-sheet span{text-align:center;color:#fff;letter-spacing:1px;white-space:pre-wrap;word-break:break-word;font-family:Nanum Gothic Coding,Courier New,Courier,monospace;font-size:20px;font-weight:600;line-height:1.6;animation:4s ease-in-out infinite textGlow}.copy-button{background:var(--bg-elevated);width:44px;height:44px;color:var(--text-main);border:1px solid var(--border-subtle);cursor:pointer;z-index:10;place-items:center;transition:all .2s;display:grid;position:absolute;bottom:16px;right:16px}.copy-button:hover{background:var(--text-main);color:var(--bg-core)}.control-panel{border:1px solid var(--border-subtle);background:0 0;flex-direction:column;order:2;gap:16px;padding:20px;display:flex}.field{flex-direction:column;gap:8px;display:flex}.field>span{color:var(--text-muted);justify-content:space-between;align-items:center;display:flex}.field em{color:var(--text-main);font-family:Nanum Gothic Coding,monospace;font-size:13px;font-style:normal}textarea,input{width:100%;color:var(--accent);border:1px solid var(--border-subtle);text-align:center;background:#00000080;outline:none;font-family:Nanum Gothic Coding,monospace;transition:border-color .2s}textarea{resize:vertical;min-height:80px;padding:12px}input{letter-spacing:4px;height:48px;padding:0 16px;font-size:20px}textarea:focus,input:focus{border-color:var(--accent)}textarea::placeholder,input::placeholder{color:#333}.warning{color:var(--text-muted);letter-spacing:0;text-align:center;justify-content:center;align-items:center;gap:6px;min-height:18px;padding:4px 0 0;font-size:11px;display:flex}.warning.is-error{color:var(--accent)}.action-row{flex-direction:column;gap:10px;margin-top:8px;display:flex}.primary-action,.secondary-action{cursor:pointer;text-transform:uppercase;letter-spacing:2px;border:1px solid var(--border-subtle);justify-content:center;align-items:center;height:48px;padding:0;font-size:13px;font-weight:700;text-decoration:none;transition:all .2s;display:flex}.primary-action{color:var(--bg-core);background:var(--text-main)}.primary-action:disabled{opacity:.2;cursor:not-allowed;background:var(--bg-elevated);color:var(--text-muted);border-color:#0000}.secondary-action{color:var(--text-main);background:0 0}.secondary-action:hover{border-color:var(--text-main)}.open-panel{height:60px;color:var(--text-main);background:var(--bg-elevated);border:1px solid var(--border-subtle);cursor:pointer;justify-content:center;align-items:center;display:flex}.open-panel:hover{border-color:var(--text-main)}.metrics{grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 0;display:grid}.metrics div{background:var(--bg-elevated);border:1px solid var(--border-subtle);flex-direction:column;align-items:center;gap:6px;padding:12px;display:flex}.metrics dt{color:var(--text-muted)}.metrics dd{color:var(--text-main);margin:0;font-family:Nanum Gothic Coding,monospace;font-size:14px;font-weight:700}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);background:#000000e6;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.unlock-modal{background:var(--bg-surface);border:1px solid var(--accent);flex-direction:column;gap:20px;width:min(320px,100%);padding:32px 24px;display:flex;position:relative}.unlock-modal .primary-action{width:100%}.field.compact{gap:8px}.unlock-hint{text-align:center;color:var(--text-muted);word-break:break-word;margin:-4px 0 0;font-family:Nanum Gothic Coding,monospace;font-size:13px;line-height:1.5}.icon-button{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:absolute;top:12px;right:12px}.icon-button:hover{color:var(--text-main)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{animation:1s linear infinite spin}@media (width>=720px){.app-shell{padding-block:40px}}
