:root{--acid:#8fff00;--acid-soft:#7ce600;--acid-deep:#3d6b00;--on-acid:#14140f;--bg:#f5f4ef;--surface:#fafaf7;--surface-2:#efeee7;--line:#e2e0d7;--ink:#1a1a17;--ink-soft:#55544c;--ink-faint:#73726a;--paper:#ffffff;--happy-accident:#b4551f;--caution:#8a5a00;--shadow-sm:0 1px 2px rgba(60,52,30,0.05);--shadow-md:0 6px 20px -6px rgba(60,52,30,0.12);--r-sm:10px;--r-md:16px;--r-lg:24px;--font-sans:Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Segoe UI","Noto Sans KR",sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,monospace;color-scheme:light}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}a{color:var(--ink-soft);text-underline-offset:3px;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line)}a:hover{color:var(--ink)}.container{max-width:1100px;margin:0 auto;padding:28px 20px 80px}.app-header{justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.app-header,.header-right{display:flex;align-items:center}.header-right{gap:14px}.brand{display:flex;flex-direction:column;gap:2px}.brand h1{display:flex;align-items:center;gap:10px;margin:0;font-size:1.15rem;font-weight:700;letter-spacing:-.015em;text-wrap:balance}.logo{width:.95em;height:.95em;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none'%3E%3Cpath d='M5.6 3.2 H26.4 L18.39 21.20 L12.91 21.20 L18.88 7.8 H5.6 Z' fill='%2314180F' stroke='%2314180F' stroke-width='3.0' stroke-linejoin='round'/%3E%3Ccircle cx='15.65' cy='27.65' r='3.65' fill='%2314180F'/%3E%3Cpath d='M5.6 3.2 H26.4 L18.39 21.20 L12.91 21.20 L18.88 7.8 H5.6 Z' fill='%238FFF00' stroke='%238FFF00' stroke-width='1.5' stroke-linejoin='round'/%3E%3Ccircle cx='15.65' cy='27.65' r='2.9' fill='%238FFF00'/%3E%3C/svg%3E") no-repeat 50% /contain}.brand p{margin:0;font-size:.82rem;word-break:keep-all}.brand p,.credit{color:var(--ink-faint)}.credit{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;opacity:.65;white-space:nowrap;transition:opacity .2s ease-out}.credit:hover{opacity:1}.tabs{display:inline-flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px;margin-top:24px;margin-bottom:22px}.tab{border:none;background:transparent;color:var(--ink-faint);padding:8px 18px;border-radius:999px;font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .2s ease-out,color .2s ease-out}.tab:hover{color:var(--ink-soft)}.tab.active{background:var(--surface-2);color:var(--ink);font-weight:650}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px}.panel+.panel{margin-top:16px}.label{font-size:.8rem;color:var(--ink-faint);margin-bottom:8px;display:block}input[type=number],input[type=password],input[type=text],textarea{width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);padding:11px 12px;font-size:.875rem;font-family:inherit;line-height:1.6;resize:vertical;word-break:keep-all}input::placeholder,textarea::placeholder{color:var(--ink-faint)}input:focus,textarea:focus{outline:2px solid var(--acid);outline-offset:-1px;border-color:transparent}textarea.code{font-family:var(--font-mono);font-size:.78rem;line-height:1.5;min-height:220px;word-break:normal}.btn{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);padding:10px 16px;border-radius:var(--r-sm);font-size:.875rem;font-family:inherit;font-weight:650;cursor:pointer;transition:background .2s ease-out,border-color .2s ease-out}.btn:hover{border-color:var(--ink-faint)}.btn.primary{background:var(--acid);color:var(--on-acid);border-color:transparent;font-weight:700}.btn.primary:hover{background:var(--acid-soft)}.btn.danger,.btn.ghost{background:transparent}.btn.danger{color:var(--happy-accident);border-color:color-mix(in srgb,var(--happy-accident) 40%,var(--line))}.btn.danger:hover{border-color:var(--happy-accident)}.btn.sm{padding:6px 12px;font-size:.8rem}a.btn{display:inline-flex;align-items:center;text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.hint{color:var(--ink-faint);font-size:.8rem;line-height:1.65;word-break:keep-all}.hint code{font-family:var(--font-mono);font-size:.75rem;color:var(--ink-soft)}.warn{color:var(--caution)}.error,.warn{font-size:.8rem}.error{color:var(--happy-accident);line-height:1.6;word-break:keep-all}.spacer{height:16px}.banner{padding:12px 15px;border-radius:var(--r-md);font-size:.85rem;line-height:1.6;border:1px solid var(--line);border-left:3px solid var(--caution);word-break:keep-all}.banner,.magic-box{background:var(--surface-2);color:var(--ink-soft)}.magic-box{position:relative;border:1px solid var(--line);border-radius:var(--r-md);padding:14px;max-height:260px;overflow:auto;white-space:pre-wrap;font-family:var(--font-mono);font-size:.75rem;line-height:1.55}.board-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.board-meta{color:var(--ink-faint);font-size:.8rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.preset-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.preset{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:10px 14px;border-radius:var(--r-sm);border:1px solid var(--line);background:transparent;color:var(--ink-soft);font-family:inherit;cursor:pointer;text-align:left;transition:background .2s ease-out,border-color .2s ease-out,color .2s ease-out}.preset.active,.preset:hover{border-color:var(--ink-faint);color:var(--ink)}.preset.active{background:var(--surface-2)}.preset-label{font-size:.875rem;font-weight:600}.preset.active .preset-label{font-weight:750}.preset-hint{font-size:.7rem;color:var(--ink-faint)}.preset-cost{font-size:.7rem;margin-top:3px;color:var(--caution);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.preset-cost.free{color:var(--ink-faint)}.preset.active .preset-cost.free{color:var(--ink-soft)}.cost-note{margin:10px 0 0}.cost-asof{opacity:.7}.preset.active .preset-hint{color:var(--ink-soft)}.picker-block{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.panel>.picker-block:only-child{margin-top:0;padding-top:0;border-top:none}.picker-block>strong{font-size:.875rem}.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--board-min-col,230px),1fr));grid-gap:18px;gap:18px}.cut-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column}.cut-sketch{position:relative;aspect-ratio:var(--cut-aspect,9/16);background:var(--paper);display:flex;align-items:center;justify-content:center}.cut-sketch img,.cut-sketch svg{width:100%;height:100%;display:block}.cut-sketch .loading{color:#6a655b;font-size:.8rem}.cut-sketch .loading.err{color:#a2522a;padding:0 14px;text-align:center;line-height:1.55;word-break:keep-all}.cut-badges{position:absolute;top:8px;left:8px;display:flex;gap:6px;flex-wrap:wrap}.badge{font-size:.7rem;padding:3px 8px;border-radius:999px;background:rgba(20,20,15,.72);color:var(--ink);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.badge.hook{background:var(--caution);color:var(--on-acid);font-weight:700}.badge.fallback{background:rgba(232,131,74,.14);color:var(--happy-accident);border:1px dashed var(--happy-accident);cursor:help}.cut-regen{position:absolute;bottom:8px;right:8px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;font-size:1rem;line-height:1}.cut-body{padding:12px 13px 14px;display:flex;flex-direction:column;gap:7px}.cut-no{font-size:.75rem;color:var(--ink-faint);display:flex;justify-content:space-between;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cut-desc{font-size:.85rem;line-height:1.55}.cut-desc,.field{word-break:keep-all}.field{font-size:.78rem;line-height:1.5}.field .k{color:var(--ink-faint);margin-right:6px}.field.caption .v{color:var(--caution)}.field.dialogue .v{font-style:italic}.form-cut{border:1px solid var(--line);border-radius:var(--r-md);padding:14px;margin-bottom:14px;background:var(--surface-2)}.form-cut-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.form-grid .full{grid-column:1/-1}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--ink-soft)}.checkbox-row input{accent-color:var(--ink-soft)}.key-box{margin-top:12px;padding:12px;border:1px dashed var(--line);border-radius:var(--r-md);background:var(--surface-2)}.key-box.saved{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-style:solid}.key-status{font-size:.8rem}.key-status code{color:var(--ink-soft);font-family:var(--font-mono);font-size:.75rem}.key-row{display:flex;gap:8px;margin-top:6px}.key-row input{flex:1 1;min-width:0;font-family:var(--font-mono)}.form-cut .label,.key-box .hint{color:var(--ink-soft)}a:focus-visible,button:focus-visible{outline:2px solid var(--acid);outline-offset:2px}@media (max-width:560px){.form-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{:root{--bg:#fff;--surface:#fff;--surface-2:#fff;--ink:#23211a;--ink-soft:#5c5849;--ink-faint:#7e7969;--line:#ccc;--caution:#a87400;--acid-deep:#3d6b00}body{background:#fff}.board-head,.brand p,.btn,.credit,.cut-regen,.tabs{display:none!important}.board-grid{grid-template-columns:repeat(3,1fr);gap:10px}.cut-card{page-break-inside:avoid;break-inside:avoid}}