@font-face{font-family:Quicksand Local;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/quicksand/Quicksand-Regular.ttf) format("truetype")}@font-face{font-family:Quicksand Local;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/quicksand/Quicksand-Medium.ttf) format("truetype")}@font-face{font-family:Quicksand Local;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/quicksand/Quicksand-SemiBold.ttf) format("truetype")}@font-face{font-family:Quicksand Local;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/quicksand/Quicksand-Bold.ttf) format("truetype")}:root,[data-theme=warm-light]{--color-coral-pink: #ff8a8a;--color-soft-peach: #ffd8cc;--color-off-white: #fdfbf7;--color-surface: #ffffff;--color-deep-brown: #3e2723;--color-warm-gray: #8d6e63;--color-mint: #81c784;--color-amber: #ffb74d;--color-error: #e57373;--space-xxs: 4px;--space-xs: 8px;--space-sm: 16px;--space-md: 24px;--space-lg: 32px;--space-xl: 48px;--space-xxl: 64px;--radius-small: 8px;--radius-medium: 16px;--radius-large: 24px;--radius-pill: 999px;--shadow-soft: 0 4px 12px rgb(62 39 35 / 5%);--shadow-card: 0 8px 24px rgb(62 39 35 / 8%);--shadow-modal: 0 16px 48px rgb(62 39 35 / 12%);--background-color: var(--color-off-white);--surface-color: var(--color-surface);--primary-color: var(--color-coral-pink);--on-background-color: var(--color-deep-brown);--on-surface-color: var(--color-warm-gray);--active-button-bg: var(--color-coral-pink);--active-button-text: var(--color-deep-brown);--button-bg: var(--color-soft-peach);--border-color: color-mix(in srgb, var(--color-deep-brown), transparent 84%);--danger-color: var(--color-error);--background-image: none;--header-title-background: linear-gradient(90deg, #e86f76, var(--color-coral-pink));--header-credit-color: var(--color-warm-gray);--button-radius: var(--radius-medium);--panel-radius: var(--radius-large);--panel-shadow: var(--shadow-card);--active-button-shadow: 0 4px 12px rgb(255 138 138 / 30%);--body-font: "Quicksand Local", "Segoe UI", sans-serif}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--body-font);background-color:var(--background-color);color:var(--on-background-color);line-height:1.6;background-image:var(--background-image);background-attachment:fixed;background-size:cover;transition:background-color .3s ease,color .3s ease}.container{max-width:1400px;margin:0 auto;padding:1.5rem 1.5rem 5rem}header{text-align:center;margin-bottom:2rem;position:relative}header h1{font-size:2.2rem;font-weight:500;margin-bottom:.5rem;color:var(--on-background-color);display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:.25em}.title-calligraphy{font-family:var(--body-font);font-size:2.2rem;font-weight:700;background:var(--header-title-background);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-fill-color:transparent;text-shadow:none}.creator-credit{font-family:var(--body-font);font-size:1.2rem;color:var(--header-credit-color);margin-top:.5rem;font-style:normal;font-weight:500;opacity:1;letter-spacing:1px;transition:color .3s ease}.top-notification-banner{background-color:color-mix(in srgb,var(--primary-color),transparent 85%);color:var(--primary-color);border:1px solid var(--primary-color);padding:1rem 1.5rem;border-radius:var(--panel-radius);text-align:center;font-size:1rem;font-weight:500;margin-bottom:2rem;box-shadow:0 4px 15px #0000001a}.top-notification-banner p{margin:.25rem 0}.tabs-container{position:sticky;top:0;z-index:999;background-color:var(--background-color);padding:1rem 0;margin-bottom:2rem}.tabs{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap}.tab-button{padding:.75rem 2rem;font-size:1.1rem;font-weight:500;border:1px solid var(--border-color);background-color:var(--button-bg);color:var(--on-background-color);border-radius:var(--button-radius);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s;font-family:var(--body-font)}.tab-button:hover{background-color:color-mix(in srgb,var(--button-bg),#000 10%);transform:translateY(-2px)}.tab-button.active{background-color:var(--primary-color);color:var(--active-button-text, black);border-color:var(--primary-color);box-shadow:var(--active-button-shadow)}.tab-content-container{animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.app-layout{display:grid;grid-template-columns:350px 1fr;gap:2rem}.controls{background-color:var(--surface-color);padding:1.5rem;border-radius:var(--panel-radius);border:1px solid var(--border-color);align-self:start;box-shadow:var(--panel-shadow)}.controls h2{font-size:1.5rem;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.option-group{margin-bottom:1.5rem}.option-group label,.option-group legend{display:block;font-weight:500;margin-bottom:.75rem}.option-group{border:0;min-inline-size:0;padding:0}.option-group h3{font-size:1rem;font-weight:500;margin-bottom:.75rem}.option-hint{color:var(--on-surface-color);font-size:.875rem;line-height:1.5;margin:-.25rem 0 .75rem}.options{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem}.options button{background-color:var(--button-bg);color:var(--on-background-color);border:1px solid transparent;border-radius:var(--button-radius);padding:.75rem .5rem;font-size:.9rem;cursor:pointer;transition:all .2s ease;font-family:inherit;word-break:break-word}.options button:hover{background-color:color-mix(in srgb,var(--button-bg),#000 10%);transform:translateY(-2px)}.options button.active{background-color:var(--active-button-bg);color:var(--active-button-text);font-weight:700;box-shadow:var(--active-button-shadow)}.checkbox-group{gap:.75rem}.checkbox-item{display:flex;align-items:center;gap:.75rem;background-color:var(--button-bg);padding:.75rem;border-radius:var(--button-radius);cursor:pointer}.checkbox-item:hover{background-color:color-mix(in srgb,var(--button-bg),#000 10%)}.checkbox-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary-color)}.checkbox-item label{margin-bottom:0;font-size:.9rem;flex-grow:1;cursor:pointer}.option-group textarea{width:100%;min-height:80px;padding:.75rem;border-radius:var(--button-radius);border:1px solid var(--border-color);background-color:var(--button-bg);color:var(--on-background-color);font-family:inherit;font-size:.9rem;resize:vertical}.slider-container{display:flex;align-items:center;gap:.75rem;font-size:.9rem;color:var(--on-surface-color)}.brightness-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;background:color-mix(in srgb,var(--button-bg),#000 20%);outline:none;border-radius:4px;transition:opacity .2s}.brightness-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;background:var(--primary-color);cursor:pointer;border-radius:50%;border:2px solid var(--surface-color)}.brightness-slider::-moz-range-thumb{width:20px;height:20px;background:var(--primary-color);cursor:pointer;border-radius:50%;border:2px solid var(--surface-color)}.preview-area{background-color:var(--surface-color);padding:1.5rem;border-radius:var(--panel-radius);border:1px solid var(--border-color);display:flex;flex-direction:column;gap:1.5rem;box-shadow:var(--panel-shadow)}.upload-section{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.upload-section button,.custom-file-upload,.reset-btn{background-color:var(--button-bg);color:var(--on-background-color);padding:.75rem 1.5rem;border-radius:var(--button-radius);cursor:pointer;font-family:inherit;font-size:1rem;font-weight:500;border:none;transition:background-color .2s,transform .2s,box-shadow .2s}.upload-section button:hover,.custom-file-upload:hover,.reset-btn:hover{background-color:color-mix(in srgb,var(--button-bg),#000 10%);transform:translateY(-2px)}.upload-section .generate-all-btn{background-color:var(--primary-color);color:var(--active-button-text);font-weight:700}.upload-section .generate-all-btn:hover:not(:disabled){background-color:color-mix(in srgb,var(--primary-color),#000 10%);box-shadow:var(--active-button-shadow)}.upload-section button:disabled{background-color:color-mix(in srgb,var(--button-bg),#000 20%);color:color-mix(in srgb,var(--on-background-color),#000 50%);cursor:not-allowed;transform:none}.upload-section .create-print-btn{background-color:color-mix(in srgb,var(--primary-color),transparent 80%);color:var(--primary-color);border:1px solid var(--primary-color)}.upload-section .create-print-btn:hover:not(:disabled){background-color:color-mix(in srgb,var(--primary-color),transparent 70%)}.upload-section .reset-btn{background-color:color-mix(in srgb,var(--button-bg),#000 15%);border:1px solid color-mix(in srgb,var(--border-color),#fff 20%)}.upload-section .reset-btn:hover:not(:disabled){background-color:color-mix(in srgb,var(--button-bg),#000 25%)}input[type=file]{display:none}.batch-processing-area{flex-grow:1;min-height:400px;display:flex;flex-direction:column}.image-job-list{display:flex;flex-direction:column;gap:1rem;padding:.5rem;margin:-.5rem}.image-job-item{display:grid;grid-template-columns:140px 1fr;gap:1rem;background-color:color-mix(in srgb,var(--surface-color),#000 10%);padding:1rem;border-radius:var(--button-radius);border:1px solid var(--border-color)}.original-thumbnail{position:relative;width:100%;aspect-ratio:3 / 4}.original-thumbnail img{width:100%;height:100%;object-fit:cover;border-radius:4px}.original-thumbnail .remove-btn{position:absolute;top:-10px;right:-10px;width:26px;height:26px;border-radius:50%;background-color:var(--danger-color);color:#fff;border:2px solid var(--surface-color);font-size:1.3rem;line-height:1;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:transform .2s,background-color .2s}.original-thumbnail .remove-btn:hover{transform:scale(1.1);background-color:color-mix(in srgb,var(--danger-color),#000 10%)}.generated-results{display:flex;align-items:center;justify-content:center;min-height:150px;width:100%}.placeholder{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--on-surface-color);padding:1rem;height:100%;width:100%;border-radius:var(--panel-radius)}.camera-view{position:relative;padding:0;overflow:hidden;width:100%;height:100%;aspect-ratio:4 / 3;max-height:500px;margin:auto;border-radius:var(--panel-radius);background-color:#000;border:2px dashed var(--border-color)}.camera-view video{width:100%;height:100%;object-fit:cover}.capture-btn{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);background-color:#00000080;color:#fff;border:2px solid white;border-radius:50%;width:60px;height:60px;cursor:pointer;font-size:1rem}.generated-images-container{width:100%;height:100%;overflow-y:auto;padding:0}.auto-save-notice{text-align:center;color:var(--on-surface-color);font-style:italic;font-size:.9rem;margin-bottom:1rem}.generated-images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1rem}.generated-image-item img{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:4px;border:1px solid var(--border-color);margin-bottom:.5rem}.generated-image-item .download-btn{font-size:.8rem;padding:.6rem;width:100%;margin-top:auto}.generate-btn,.download-btn{background-color:var(--primary-color);color:var(--active-button-text);border:none;border-radius:var(--button-radius);padding:1rem;font-size:1.2rem;font-weight:700;cursor:pointer;transition:background-color .2s,box-shadow .2s,transform .2s;text-align:center;text-decoration:none}.generate-btn:hover,.download-btn:hover{background-color:color-mix(in srgb,var(--primary-color),#000 10%);box-shadow:var(--active-button-shadow);transform:translateY(-2px)}.generate-btn:disabled{background-color:color-mix(in srgb,var(--button-bg),#000 20%);color:color-mix(in srgb,var(--on-background-color),#000 50%);cursor:not-allowed;transform:none;box-shadow:none}.download-btn{margin-top:1rem;width:100%;display:block;font-size:1rem;padding:.75rem}.error-message{background-color:color-mix(in srgb,var(--danger-color),transparent 30%);color:var(--danger-color);padding:1rem;border-radius:var(--button-radius);text-align:center;margin:1rem 0;border:1px solid var(--danger-color)}.loader{border:5px solid var(--button-bg);border-top:5px solid var(--primary-color);border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.result-container{display:flex;flex-direction:column;width:100%;height:100%}.result-container .error-message{margin-top:0;margin-bottom:1rem}.result-container .generated-images-container{flex-grow:1;min-height:0}.regenerate-btn{margin-top:1rem;padding:.75rem;font-size:1rem;font-weight:500;flex-shrink:0;background-color:transparent;border:1px solid var(--primary-color);color:var(--primary-color)}.regenerate-btn:hover:not(:disabled){background-color:color-mix(in srgb,var(--primary-color),transparent 80%);color:var(--primary-color)}.retry-btn{border-color:var(--danger-color);color:var(--danger-color)}.retry-btn:hover:not(:disabled){background-color:color-mix(in srgb,var(--danger-color),transparent 80%);color:var(--danger-color)}.image-library-tab{background-color:var(--surface-color);padding:1.5rem;border-radius:var(--panel-radius);box-shadow:var(--panel-shadow)}.library-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.library-header h2{font-size:1.8rem}.library-header-actions{display:flex;align-items:center;gap:1rem}.library-header .upload-btn{background-color:var(--primary-color);color:var(--active-button-text);font-weight:700;padding:.75rem 1.5rem;border-radius:var(--button-radius);border:none;cursor:pointer;font-size:1rem;transition:all .2s ease}.library-header .upload-btn:hover{box-shadow:var(--active-button-shadow);transform:translateY(-2px)}.download-all-btn{background-color:var(--button-bg);color:var(--on-background-color);padding:.75rem 1.5rem;border-radius:var(--button-radius);cursor:pointer;font-family:inherit;font-size:1rem;font-weight:500;border:none;transition:background-color .2s,transform .2s}.download-all-btn:hover:not(:disabled){background-color:color-mix(in srgb,var(--button-bg),#000 10%);transform:translateY(-2px)}.download-all-btn:disabled,.delete-all-btn:disabled{background-color:color-mix(in srgb,var(--button-bg),#000 20%);color:color-mix(in srgb,var(--on-background-color),#000 50%);cursor:not-allowed;transform:none}.delete-all-btn{background-color:var(--danger-color);color:#fff;padding:.75rem 1.5rem;border-radius:var(--button-radius);cursor:pointer;font-family:inherit;font-size:1rem;font-weight:500;border:none;transition:background-color .2s,transform .2s}.delete-all-btn:hover:not(:disabled){background-color:color-mix(in srgb,var(--danger-color),#000 10%);transform:translateY(-2px)}.library-grid{display:flex;gap:1.5rem;overflow-x:auto;padding-bottom:1rem}.library-grid-item{border-radius:var(--button-radius);background-color:color-mix(in srgb,var(--surface-color),#000 10%);border:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;flex-shrink:0;width:220px}.library-grid-item .image-container{position:relative;width:100%;aspect-ratio:3 / 4;overflow:hidden}.library-grid-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.library-grid-item:hover img{transform:scale(1.05)}.library-grid-item .image-info{position:absolute;bottom:0;left:0;right:0;background:#000000b3;color:#fff;padding:.5rem;font-size:.8rem;text-align:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.library-grid-item .item-actions{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.5rem;opacity:0;transition:opacity .2s ease,transform .2s ease;transform:scale(.9) translateY(-5px);z-index:5}.library-grid-item:hover .item-actions{opacity:1;transform:scale(1) translateY(0)}.item-actions .action-btn{background-color:#1e1e1ecc;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:50%;width:32px;height:32px;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:background-color .2s;font-size:1.5rem;line-height:1;padding:0;text-decoration:none}.item-actions .action-btn:hover{background-color:#000}.item-actions .action-btn.delete{background-color:#cf6679cc}.item-actions .action-btn.delete:hover{background-color:var(--danger-color)}.item-main-actions{padding:.75rem;display:flex;gap:.5rem;border-top:1px solid var(--border-color)}.item-main-actions .action-button{flex:1;padding:.5rem;font-size:.8rem;font-weight:500;border:1px solid var(--border-color);background-color:var(--button-bg);color:var(--on-background-color);border-radius:var(--button-radius);cursor:pointer;transition:background-color .2s}.item-main-actions .action-button:hover{background-color:color-mix(in srgb,var(--button-bg),#000 10%)}.placeholder-full{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:var(--on-surface-color);padding:4rem 1rem;border:2px dashed var(--border-color);border-radius:var(--panel-radius);min-height:400px;height:100%}.placeholder-full span{font-size:1.2rem;font-weight:500}.placeholder-full p{margin-top:.5rem}.placeholder-full .custom-file-upload{margin-top:1.5rem;background-color:var(--primary-color);color:var(--active-button-text)}.print-layout-container{display:grid;grid-template-columns:450px 1fr;gap:2rem;background-color:var(--surface-color);padding:1.5rem;border-radius:var(--panel-radius);box-shadow:var(--panel-shadow)}.print-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.print-panel-header h3{font-size:1.5rem;margin:0}.print-panel-actions{display:flex;gap:.75rem;flex-wrap:wrap}.upload-btn-local,.select-from-lib-btn,.print-panel-actions .reset-btn{background-color:var(--button-bg);color:var(--on-background-color);font-weight:500;padding:.6rem 1.2rem;border-radius:var(--button-radius);border:none;cursor:pointer;font-size:.9rem;transition:background-color .2s}.select-from-lib-btn{background-color:color-mix(in srgb,var(--primary-color),transparent 80%);color:var(--primary-color);border:1px solid var(--primary-color)}.select-from-lib-btn:hover{background-color:color-mix(in srgb,var(--primary-color),transparent 70%)}.upload-btn-local:hover,.print-panel-actions .reset-btn:hover{background-color:color-mix(in srgb,var(--button-bg),#000 10%)}.print-panel-actions .reset-btn{background-color:color-mix(in srgb,var(--button-bg),#000 15%);border:1px solid color-mix(in srgb,var(--border-color),#fff 20%)}.print-panel-actions .reset-btn:hover:not(:disabled){background-color:color-mix(in srgb,var(--button-bg),#000 25%)}.print-preview h3{font-size:1.5rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.print-preview-actions{margin-bottom:1.5rem;display:flex;justify-content:center}.print-all-btn{background-color:var(--primary-color);color:var(--active-button-text);border:none;border-radius:var(--button-radius);padding:.85rem 2rem;font-size:1.1rem;font-weight:700;cursor:pointer;transition:background-color .2s,transform .2s;display:flex;align-items:center;gap:.5rem}.print-all-btn:hover{background-color:color-mix(in srgb,var(--primary-color),#000 10%);transform:translateY(-2px);box-shadow:var(--active-button-shadow)}.global-print-settings{background-color:color-mix(in srgb,var(--surface-color),#000 5%);padding:1rem;border-radius:var(--button-radius);margin-bottom:1.5rem;border:1px solid var(--border-color)}.global-print-settings h4{margin-bottom:1rem;font-size:1.1rem;font-weight:500;color:var(--on-surface-color)}.global-settings-controls{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.global-settings-controls .control-item{display:flex;flex-direction:column;gap:.25rem;flex-grow:1}.global-settings-controls label{font-size:.85rem;color:var(--on-surface-color)}.global-settings-controls select,.global-settings-controls input[type=number]{width:100%;padding:.6rem;border-radius:4px;border:1px solid var(--border-color);background-color:var(--button-bg);color:var(--on-background-color);font-family:inherit;font-size:.9rem}.global-settings-controls input[type=number]{text-align:center}.global-settings-controls button{background-color:var(--primary-color);color:var(--active-button-text);padding:.6rem 1.5rem;border-radius:4px;border:none;cursor:pointer;font-weight:500;flex-shrink:0;transition:background-color .2s}.global-settings-controls button:hover:not(:disabled){background-color:color-mix(in srgb,var(--primary-color),#000 10%)}.global-settings-controls button:disabled{background-color:color-mix(in srgb,var(--button-bg),#000 20%);color:color-mix(in srgb,var(--on-background-color),#000 50%);cursor:not-allowed}.global-settings-controls .preset-btn{background-color:transparent;border:1px solid var(--primary-color);color:var(--primary-color)}.global-settings-controls .preset-btn:hover:not(:disabled){background-color:color-mix(in srgb,var(--primary-color),transparent 80%)}.global-settings-controls .preset-btn:disabled{background-color:transparent;border-color:color-mix(in srgb,var(--border-color),transparent 50%);color:color-mix(in srgb,var(--on-surface-color),transparent 50%);cursor:not-allowed}.image-list{display:flex;flex-direction:column;gap:1.5rem;padding:.5rem}.library-item{display:flex;gap:1rem;background-color:color-mix(in srgb,var(--surface-color),#000 10%);padding:1rem;border-radius:var(--button-radius);position:relative}.remove-image-btn{position:absolute;top:-5px;right:-5px;width:24px;height:24px;border-radius:50%;background-color:var(--danger-color);color:#fff;border:2px solid var(--surface-color);font-size:1.2rem;line-height:1;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:transform .2s,background-color .2s}.remove-image-btn:hover{transform:scale(1.1);background-color:color-mix(in srgb,var(--danger-color),#000 10%)}.library-item img{width:80px;height:106px;object-fit:cover;border-radius:4px;flex-shrink:0}.print-controls{flex-grow:1;display:flex;flex-direction:column;justify-content:center;gap:.75rem}.size-input{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem}.size-input label{font-size:.9rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.size-input input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary-color)}.size-input input[type=number]{width:60px;padding:.5rem;border-radius:4px;border:1px solid var(--border-color);background-color:var(--button-bg);color:var(--on-background-color);font-family:inherit;text-align:center;transition:opacity .2s ease-in-out}.size-input input[type=number]:disabled{opacity:.3;cursor:not-allowed;background-color:color-mix(in srgb,var(--surface-color),#000 10%)}.empty-library-msg{color:var(--on-surface-color);padding:2rem 1rem;text-align:center;border:2px dashed var(--border-color);border-radius:var(--button-radius)}.library-actions{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.library-actions button.generate-btn{width:100%;font-size:1.1rem;padding:.85rem 1rem}.page-list{display:flex;flex-wrap:wrap;gap:1.5rem}.page-item{display:flex;flex-direction:column;gap:.75rem}.page-item h4{text-align:center;color:var(--on-surface-color)}.page-item img{max-width:400px;border:1px solid var(--border-color);border-radius:4px}.page-item-actions{display:flex;gap:.75rem;margin-top:.25rem}.page-item-actions .download-btn,.page-item-actions .print-btn{flex:1;margin-top:0;width:auto;font-size:.9rem;padding:.75rem}.print-btn{background-color:var(--button-bg);color:var(--on-background-color);border:1px solid var(--border-color);border-radius:var(--button-radius);padding:.75rem;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.print-btn:hover{background-color:color-mix(in srgb,var(--button-bg),#000 10%)}.print-paper-size-selector,.print-background-selector{margin-top:1.5rem}.print-paper-size-selector label,.print-background-selector label{font-weight:500;margin-bottom:.75rem;display:block;font-size:1.1rem}.print-paper-size-selector .options,.print-background-selector .options{grid-template-columns:1fr 1fr}.pixshop-container{display:grid;grid-template-columns:320px 1fr;gap:2rem;background-color:var(--surface-color);padding:1.5rem;border-radius:var(--panel-radius);box-shadow:var(--panel-shadow)}.pixshop-sidebar{display:flex;flex-direction:column;gap:1rem;padding-right:.5rem}.pixshop-main-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.pixshop-main-actions button{background-color:var(--button-bg);color:var(--on-background-color);border:1px solid var(--border-color);padding:.6rem;border-radius:var(--button-radius);font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.pixshop-main-actions button:hover:not(:disabled){background-color:color-mix(in srgb,var(--button-bg),#000 10%)}.pixshop-main-actions button:disabled{opacity:.5;cursor:not-allowed}.pixshop-panel{background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--button-radius)}.pixshop-panel-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.75rem 1rem;background-color:transparent;border:none;color:var(--on-background-color);cursor:pointer}.pixshop-panel-header h3{font-size:1.1rem;margin:0}.pixshop-panel-content{padding:1rem;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:1rem}.pixshop-slider-group{display:flex;flex-direction:column;gap:.5rem}.pixshop-slider-group label{font-size:.9rem;color:var(--on-surface-color)}.pixshop-slider-group input[type=range]{width:100%;margin:0}.pixshop-grid-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.pixshop-grid-buttons button{background-color:var(--button-bg);border:1px solid var(--border-color);color:var(--on-background-color);padding:.6rem;border-radius:var(--button-radius);cursor:pointer}.pixshop-grid-buttons button:hover{background-color:color-mix(in srgb,var(--button-bg),#000 10%)}.pixshop-action-btn{width:100%;background-color:var(--primary-color);color:var(--active-button-text);border:none;padding:.75rem;border-radius:var(--button-radius);font-weight:700;cursor:pointer}.pixshop-action-btn:disabled{background-color:var(--button-bg);color:var(--on-surface-color);cursor:not-allowed}.pixshop-ai-edit{display:flex;flex-direction:column;gap:.75rem;border-top:1px dashed var(--border-color);padding-top:1rem}.pixshop-ai-edit textarea{width:100%;min-height:70px;padding:.5rem;background-color:var(--button-bg);color:var(--on-background-color);border:1px solid var(--border-color);border-radius:4px;resize:vertical}.pixshop-mask-btn{background-color:transparent;border:1px solid var(--primary-color);color:var(--primary-color);padding:.5rem;border-radius:var(--button-radius);cursor:pointer}.pixshop-mask-btn.active{background-color:var(--primary-color);color:var(--active-button-text)}.pixshop-brush-controls{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;background-color:var(--button-bg);border-radius:6px}.pixshop-clear-mask-btn{background-color:var(--danger-color);color:#fff;border:none;padding:.5rem;border-radius:4px;cursor:pointer}.restoration-form-group{display:flex;flex-direction:column;gap:.5rem}.restoration-form-group label{font-size:.9rem;color:var(--on-surface-color)}.restoration-form-group select,.restoration-form-group input[type=text],.restoration-form-group textarea{width:100%;padding:.6rem;border-radius:var(--button-radius);border:1px solid var(--border-color);background-color:var(--button-bg);color:var(--on-background-color);font-family:inherit;font-size:.9rem}.restoration-form-group textarea{min-height:60px;resize:vertical}.toggle-switch-container{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.toggle-switch-container label{font-size:.9rem;color:var(--on-surface-color)}.toggle-switch{position:relative;display:inline-block;width:50px;height:28px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--button-bg);transition:.4s;border-radius:28px}.toggle-switch .slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:50%}.toggle-switch input:checked+.slider{background-color:var(--primary-color)}.toggle-switch input:focus+.slider{box-shadow:0 0 1px var(--primary-color)}.toggle-switch input:checked+.slider:before{transform:translate(22px)}.restore-btn{margin-top:.5rem}.pixshop-finish-actions{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:.75rem}.pixshop-finish-actions button{background-color:var(--button-bg);color:var(--on-background-color);border:1px solid var(--border-color);padding:.75rem;border-radius:var(--button-radius);font-size:1rem;font-weight:500;cursor:pointer}.pixshop-finish-actions .download-btn-main{background-color:var(--primary-color);color:var(--active-button-text);border:none;font-weight:700}.pixshop-main{display:flex;flex-direction:column;justify-content:center;align-items:center}.pixshop-canvas-container{position:relative;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:var(--background-color);border-radius:var(--panel-radius);overflow:hidden;padding:1rem}.pixshop-canvas-container canvas{max-width:100%;max-height:75vh;object-fit:contain;border-radius:4px}.pixshop-mask-canvas{position:absolute;pointer-events:none;touch-action:none;z-index:10}.pixshop-mask-canvas.active{pointer-events:auto;cursor:crosshair}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:10;border-radius:4px}.loading-overlay .placeholder{border:none}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:var(--surface-color);padding:2rem;border-radius:var(--panel-radius);width:90%;max-width:900px;max-height:90vh;border:1px solid var(--border-color);position:relative;display:flex;flex-direction:column}.modal-close-btn{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--on-surface-color);font-size:2rem;cursor:pointer;line-height:1}.image-selection-modal h2{margin-bottom:1.5rem}.modal-grid{display:flex;gap:1rem;overflow-x:auto;flex-grow:1;padding:.5rem;margin:-.5rem -.5rem 1.5rem}.modal-image-item{position:relative;cursor:pointer;border-radius:var(--button-radius);overflow:hidden;border:3px solid transparent;transition:border-color .2s;width:150px;flex-shrink:0}.modal-image-item:focus{outline:2px solid var(--primary-color);outline-offset:2px}.modal-image-item.selected{border-color:var(--primary-color)}.modal-image-item img{width:100%;aspect-ratio:3 / 4;object-fit:cover;display:block}.modal-image-item .checkmark{position:absolute;top:8px;right:8px;width:28px;height:28px;background-color:#00000080;border:2px solid white;border-radius:50%;display:flex;justify-content:center;align-items:center;transform:scale(0);transition:transform .2s ease-in-out}.modal-image-item.selected .checkmark{transform:scale(1);background-color:var(--primary-color);border-color:var(--primary-color)}.modal-image-item .checkmark svg{fill:#fff;width:20px;height:20px}.modal-actions{padding-top:1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end}.modal-actions button{background-color:var(--primary-color);color:var(--active-button-text);padding:.75rem 2rem;border-radius:var(--button-radius);border:none;font-size:1.1rem;font-weight:700;cursor:pointer}.modal-actions button:disabled{background-color:color-mix(in srgb,var(--button-bg),#000 20%);color:color-mix(in srgb,var(--on-background-color),#000 50%);cursor:not-allowed}.quick-controls-footer{position:fixed;bottom:0;left:0;right:0;background-color:color-mix(in srgb,var(--surface-color),#000 20%);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;padding:.5rem 1.5rem;z-index:1000;box-shadow:0 -2px 10px #0003}.footer-center-controls{display:flex;justify-content:center;gap:1rem}.footer-text{font-size:.8rem;color:var(--on-surface-color);opacity:.7;white-space:nowrap}.footer-right{text-align:right}.quick-control-btn{background:none;border:none;color:var(--on-surface-color);display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:.75rem;font-family:inherit;cursor:pointer;padding:.25rem 1rem;border-radius:var(--button-radius);transition:color .2s,background-color .2s;text-decoration:none}.quick-control-btn svg{width:24px;height:24px}.quick-control-btn:hover{color:var(--on-background-color);background-color:color-mix(in srgb,var(--button-bg),transparent 50%)}.quick-control-btn.active{color:var(--primary-color)}.info-modal-content,.changelog-modal-content{text-align:center}.info-modal-content h2,.changelog-modal-content h2{font-size:1.8rem;color:var(--primary-color);margin-bottom:.25rem}.info-modal-content .app-version{font-size:1rem;color:var(--on-surface-color);margin-bottom:1.5rem;font-weight:500}.info-modal-content h3,.changelog-modal-content h3{text-align:left;margin-top:1.5rem;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.info-modal-content p,.info-modal-content ul,.changelog-modal-content ul{text-align:left;color:var(--on-surface-color)}.info-modal-content ul,.changelog-modal-content ul{list-style-position:inside;padding-left:.5rem}.info-modal-content ul li,.changelog-modal-content ul li{margin-bottom:.5rem}.info-modal-content .modal-actions button{width:100%;margin-top:1rem}.info-modal-body{flex-grow:1;overflow-y:auto;min-height:0}.info-modal-section-header{display:flex;justify-content:space-between;align-items:center;margin-top:1.5rem;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.info-modal-section-header h3{margin:0;padding:0;border:none}.changelog-version-entry{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.changelog-version-entry:last-child{border-bottom:none;margin-bottom:0}.changelog-version-entry h4{font-size:1.1rem;color:var(--on-background-color);margin-bottom:.5rem;text-align:left}.view-full-history-btn{background:transparent;border:1px solid var(--primary-color);color:var(--primary-color);padding:.4rem .8rem;border-radius:var(--button-radius);cursor:pointer;transition:all .2s;font-weight:500;font-size:.9rem;line-height:1;white-space:nowrap}.view-full-history-btn:hover{background-color:color-mix(in srgb,var(--primary-color),transparent 85%)}.changelog-modal-content h2{margin-bottom:1.5rem}.changelog-history{max-height:60vh;overflow-y:auto;text-align:left;padding:.5rem 1rem;margin:0 -1rem;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.changelog-modal-content .modal-actions{margin-top:1.5rem;padding-top:0;border-top:none}.donate-modal-content{text-align:center;max-width:400px}.donate-modal-content h2{font-size:1.8rem;color:var(--primary-color);margin-bottom:1rem}.donate-modal-content p{color:var(--on-surface-color);margin-bottom:1.5rem;font-style:italic;text-align:center}.donate-qr-code{max-width:100%;height:auto;border-radius:var(--button-radius);border:2px solid var(--border-color)}.donate-modal-content .modal-actions button{width:100%;margin-top:1.5rem}.theme-selector{position:absolute;top:1.5rem;right:1.5rem;display:flex;gap:.5rem;background-color:#0003;padding:.5rem;border-radius:20px;z-index:1001}.theme-button{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .2s,border-color .2s}.theme-button:hover{transform:scale(1.1)}.theme-button.active{border-color:var(--primary-color);box-shadow:0 0 8px var(--primary-color)}#theme-dark{background:#121212}#theme-light{background:#f4f7f9}#theme-twilight{background:linear-gradient(45deg,#191825,#fca311)}#theme-ocean{background:linear-gradient(45deg,#03045e,#00b4d8)}#theme-sakura{background:linear-gradient(45deg,#fff5f7,#f78fb3)}@media(max-width:1200px){.print-layout-container,.pixshop-container{grid-template-columns:320px 1fr}}@media(max-width:900px){.app-layout,.print-layout-container,.pixshop-container{grid-template-columns:1fr}.image-list,.pixshop-sidebar{max-height:none}}@media(max-width:768px){.engine-spike{grid-template-columns:1fr;padding:1rem}.engine-spike__environment,.engine-spike__metrics{grid-template-columns:1fr}.footer-text{display:none}.quick-controls-footer{justify-content:center}.footer-center-controls{gap:.5rem}.quick-control-btn{padding:.25rem .5rem}}@media(max-width:600px){.tabs-container{padding:.5rem 0;margin-bottom:1.5rem}.tabs{gap:.5rem}.tab-button{padding:.6rem 1rem;font-size:.9rem}header h1{font-size:1.8rem}.title-calligraphy{font-size:3rem}.creator-credit{font-size:.9rem}.controls,.preview-area,.print-layout-container,.image-library-tab,.pixshop-container{padding:1rem}.image-job-item{grid-template-columns:100px 1fr;gap:.75rem}.library-item{flex-direction:column}.library-item img{width:100%;height:auto}.page-item img{max-width:100%}.library-header{flex-direction:column;gap:1rem}.print-panel-header{flex-direction:column;gap:1rem;align-items:stretch}.print-panel-actions{justify-content:center}.theme-selector{top:.5rem;right:.5rem;padding:.4rem}.theme-button{width:24px;height:24px}}.engine-spike{min-height:100vh;padding:clamp(1rem,4vw,3rem);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1.25rem;background:#fff8f4;color:#33221e;font-family:var(--body-font)}.engine-spike__panel{background:#fff;border:1px solid #f0d7cc;border-radius:16px;box-shadow:0 12px 28px #5b372817;padding:clamp(1.25rem,3vw,2rem)}.engine-spike__panel h1,.engine-spike__panel h2{color:#4c2b21;line-height:1.25}.engine-spike__panel h1{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:.75rem}.engine-spike__panel h2{font-size:1.35rem;margin-bottom:1rem}.engine-spike__eyebrow{color:#c4543f;font-weight:800;font-size:.75rem;letter-spacing:.12em;margin-bottom:.75rem}.engine-spike__environment,.engine-spike__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:1.25rem 0}.engine-spike__environment div,.engine-spike__metrics div{background:#fff3ed;border-radius:10px;padding:.65rem .75rem}.engine-spike dt{color:#855b4f;font-size:.8rem;font-weight:700}.engine-spike dd{margin:.15rem 0 0;font-weight:800;overflow-wrap:anywhere}.engine-spike__upload{display:grid;gap:.5rem;color:#4c2b21;font-weight:800}.engine-spike__upload input{max-width:100%}.engine-spike__upload span{color:#855b4f;font-size:.9rem;font-weight:600}.engine-spike__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.25rem 0 .75rem}.engine-spike__actions button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:999px;padding:.7rem 1rem;background:#c4543f;color:#fff;cursor:pointer;font:inherit;font-weight:800}.engine-spike__actions button.secondary{background:#745d56}.engine-spike__actions button:disabled{cursor:not-allowed;opacity:.52}.engine-spike__actions button:focus-visible{outline:3px solid #4bb396;outline-offset:3px}.engine-spike__status{min-height:1.6em;color:#855b4f;font-weight:700}.engine-spike__timeline{display:grid;gap:.45rem;margin:1rem 0 0;padding-left:1.25rem}.engine-spike__timeline li{padding-left:.25rem}.engine-spike__note{color:#855b4f;font-style:italic}.engine-spike details{margin-top:1.25rem}.engine-spike summary{cursor:pointer;color:#c4543f;font-weight:800}.engine-spike pre{margin-top:.75rem;max-height:22rem;overflow:auto;border-radius:10px;background:#33221e;color:#fff3ed;padding:.85rem;font-size:.72rem}.engine-spike__portrait-result{margin-top:1.25rem}.engine-spike__portrait-preview{margin:1rem 0 0}.engine-spike__portrait-preview img{background:conic-gradient(#f0d7cc 25%,#fff8f4 0,#fff8f4 50%,#f0d7cc 0,#f0d7cc 75%,#fff8f4 0) 0 0 / 20px 20px;border:1px solid #f0d7cc;border-radius:10px;display:block;max-height:26rem;max-width:100%}.engine-spike__portrait-preview figcaption{color:#855b4f;font-size:.85rem;line-height:1.45;margin-top:.55rem}.engine-spike__review-boundary{background:#fff0e8;border:1px solid #e5a98f;border-radius:10px;color:#6b3527;line-height:1.5;margin:0 0 .75rem;padding:.75rem}.engine-spike__quality-review{border:2px solid #c4543f;border-radius:14px;margin-top:1.25rem;padding:1rem}.engine-spike__quality-review h3{color:#4c2b21;font-size:1.05rem;margin:0 0 .5rem}.engine-spike__quality-review>p{color:#6b493f;line-height:1.55;margin:0}.engine-spike__review-actions{margin-top:.85rem}.engine-spike__review-actions a{background:#c4543f;border-radius:10px;color:#fff;display:inline-flex;font-weight:800;padding:.65rem .9rem;text-decoration:none}.engine-spike__review-actions a:focus-visible{outline:3px solid #33221e;outline-offset:3px}.engine-spike__review-zoom>div{border:1px solid #f0d7cc;border-radius:10px;margin-top:.75rem;max-height:38rem;overflow:auto}.engine-spike__review-zoom img{background:conic-gradient(#f0d7cc 25%,#fff8f4 0,#fff8f4 50%,#f0d7cc 0,#f0d7cc 75%,#fff8f4 0) 0 0 / 20px 20px;display:block;max-width:none}.engine-spike__variants{border-top:1px solid #f0d7cc;margin-top:1.25rem;padding-top:1.25rem}.engine-spike__variants h3{color:#4c2b21;font-size:1.05rem;margin:0 0 .5rem}.engine-spike__variant-grid{display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-top:.9rem}.engine-spike__variant-card{margin:0;min-width:0}.engine-spike__variant-card img{border:1px solid #f0d7cc;border-radius:10px;display:block;height:12rem;object-fit:contain;width:100%}.engine-spike__variant-card figcaption{color:#855b4f;font-size:.78rem;line-height:1.4;margin-top:.45rem;overflow-wrap:anywhere}.engine-spike__correction{border-top:1px solid #f0d7cc;margin-top:1.25rem;padding-top:1.25rem}.engine-spike__correction h3{color:#4c2b21;font-size:1.05rem;margin:0 0 .5rem}.engine-spike__warning,.engine-spike__success{border-radius:10px;margin:.85rem 0;padding:.75rem .85rem}.engine-spike__warning{background:#fff0dc;border:1px solid #e4a85b;color:#6f4216}.engine-spike__warning ul{margin:.4rem 0 0;padding-left:1.2rem}.engine-spike__success{background:#e9f8f1;border:1px solid #77c5aa;color:#205d4a}.engine-spike__correction-tools{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem;margin:.85rem 0}.engine-spike__correction-tools button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#c4543f;border:0;border-radius:999px;color:#fff;cursor:pointer;font:inherit;font-size:.85rem;font-weight:800;padding:.55rem .8rem}.engine-spike__correction-tools button[aria-pressed=true]{box-shadow:0 0 0 3px #4bb396}.engine-spike__correction-tools button.secondary{background:#745d56}.engine-spike__correction-tools button:disabled{cursor:not-allowed;opacity:.52}.engine-spike__correction-tools button:focus-visible,.engine-spike__correction-tools input:focus-visible{outline:3px solid #4bb396;outline-offset:3px}.engine-spike__correction-tools label{align-items:center;color:#4c2b21;display:flex;font-size:.85rem;font-weight:800;gap:.45rem}.engine-spike__correction-canvas{background:conic-gradient(#f0d7cc 25%,#fff8f4 0,#fff8f4 50%,#f0d7cc 0,#f0d7cc 75%,#fff8f4 0) 0 0 / 20px 20px;border:1px solid #f0d7cc;border-radius:10px;cursor:crosshair;display:block;max-height:36rem;max-width:100%;touch-action:none}.container{max-width:1440px;padding:var(--space-md);padding-bottom:var(--space-lg)}.app-header{margin-bottom:var(--space-lg)}.app-header h1,.title-calligraphy{font-size:28px;line-height:1.4}.creator-credit{font-size:14px;line-height:1.5;letter-spacing:0}.skip-link{background:var(--primary-color);border-radius:var(--radius-medium);color:var(--surface-color);font-weight:700;left:var(--space-sm);padding:var(--space-xs) var(--space-sm);position:fixed;top:var(--space-sm);transform:translateY(calc(-100% - var(--space-lg)));transition:transform .16s ease;z-index:2000}.skip-link:focus-visible{outline:3px solid color-mix(in srgb,var(--primary-color),#ffffff 25%);outline-offset:3px;transform:translateY(0)}.top-notification-banner{border-color:color-mix(in srgb,var(--primary-color),transparent 45%);box-shadow:var(--shadow-soft);margin-bottom:var(--space-md);padding:var(--space-sm)}.tabs-container{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in srgb,var(--surface-color),transparent 8%);border:1px solid var(--border-color);border-radius:var(--radius-large);display:flex;min-height:72px;margin-bottom:var(--space-lg);padding:var(--space-xs) var(--space-sm);top:var(--space-xs);box-shadow:var(--shadow-soft)}.tabs{gap:var(--space-xs);width:100%}.tab-button{border-radius:var(--radius-pill);font-size:16px;font-weight:600;min-height:44px;padding:var(--space-xs) var(--space-sm)}.tab-button:focus-visible,.quick-control-btn:focus-visible,.modal-close-btn:focus-visible{outline:3px solid color-mix(in srgb,var(--primary-color),#ffffff 25%);outline-offset:3px}.app-layout{gap:var(--space-lg);grid-template-columns:320px minmax(0,1fr)}.controls,.preview-area{border-radius:var(--radius-large);box-shadow:var(--shadow-card);padding:var(--space-md)}.controls h2{font-size:22px;line-height:1.4}.option-group{margin-bottom:var(--space-md)}.quick-controls-footer{background:color-mix(in srgb,var(--surface-color),transparent 4%);box-shadow:0 -4px 12px #3e27230d;margin-top:var(--space-xl);min-height:64px;position:static}.quick-control-btn{border-radius:var(--radius-medium);min-height:44px}.engine-status-card{background:color-mix(in srgb,var(--surface-color),var(--primary-color) 5%);border:1px solid color-mix(in srgb,var(--primary-color),transparent 62%);border-radius:var(--radius-medium);display:grid;gap:var(--space-xs);margin-top:var(--space-md);padding:var(--space-sm)}.engine-status-card__eyebrow{color:var(--primary-color);font-size:12px;font-weight:700;letter-spacing:.06em;margin:0;text-transform:uppercase}.engine-status-card h3{color:var(--text-color);font-size:16px;line-height:1.4;margin:0}.engine-status-card [role=status]{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0}.engine-status-card progress{accent-color:var(--primary-color);height:8px;width:100%}.engine-status-card button{align-self:start;background:transparent;border:1px solid var(--primary-color);border-radius:var(--radius-pill);color:var(--primary-color);cursor:pointer;font:inherit;font-size:14px;font-weight:700;min-height:40px;padding:var(--space-xxs) var(--space-sm)}.engine-status-card button:focus-visible{outline:3px solid color-mix(in srgb,var(--primary-color),#ffffff 25%);outline-offset:3px}.engine-status-card[data-state=unsupported]{border-color:color-mix(in srgb,#bb4e43,transparent 50%)}.engine-status-card[data-state=offline-ready]{border-color:color-mix(in srgb,#25856a,transparent 50%)}.offline-feature-notice{background:color-mix(in srgb,var(--surface-color),var(--accent-color) 8%);border:1px solid color-mix(in srgb,var(--accent-color),transparent 52%);border-radius:var(--radius-medium);color:var(--text-color);font-size:14px;line-height:1.5;padding:var(--space-sm)}.offline-feature-notice strong,.offline-feature-notice p{display:block;margin:0}.offline-feature-notice p{color:var(--text-secondary);margin-top:var(--space-xxs)}@media(max-width:1024px){.app-layout{grid-template-columns:1fr}}@media(max-width:640px){.container{padding:var(--space-sm);padding-bottom:calc(64px + var(--space-md))}.tabs-container{display:none}.title-calligraphy{font-size:28px}.quick-controls-footer{bottom:0;left:0;margin-top:0;min-height:64px;padding:var(--space-xxs) var(--space-xs);position:fixed;right:0}.footer-center-controls{gap:0;width:100%}.quick-control-btn{flex:1;font-size:11px;min-width:0;padding:var(--space-xxs)}.quick-control-btn svg{height:20px;width:20px}}
