@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Dancing+Script:wght@400;600;700&display=swap";@font-face{font-family:"1FTV-Blushing-Rose";src:url(/1FTV-Blushing-Rose.ttf) format("truetype");font-weight:400;font-style:normal}:root{--bg-page: #f8f9fa;--bg-panel: #ffffff;--bg-panel-hover: #f1f3f4;--bg-input: #f1f3f4;--text-primary: #1a1a2e;--text-secondary: #6b7280;--text-muted: #9ca3af;--border: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .15);--accent: #1f2023;--accent-text: #ffffff;--accent-hover: #3c4043;--shadow-sm: 0 1px 4px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 20px 40px rgba(0, 0, 0, .08);--slider-track: #e2e8f0;--slider-thumb: #1f2023;--transition: all .25s ease}.dark-theme{--bg-page: #0f1117;--bg-panel: #1a1d23;--bg-panel-hover: #22262e;--bg-input: #22262e;--text-primary: #f0f2f5;--text-secondary: #9aa3b0;--text-muted: #6b7280;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--accent: #e8eaed;--accent-text: #111214;--accent-hover: #c8ccd0;--shadow-sm: 0 1px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .6);--slider-track: #2d3139;--slider-thumb: #e8eaed}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}.app-container{width:100%;min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 15% 30%,rgba(26,115,232,.04) 0%,transparent 25%),radial-gradient(circle at 85% 65%,rgba(217,48,37,.03) 0%,transparent 20%),radial-gradient(circle at 50% 10%,rgba(244,180,0,.04) 0%,transparent 30%),radial-gradient(circle at 70% 80%,rgba(15,157,88,.03) 0%,transparent 20%),var(--bg-page);background-size:150% 150%;animation:gradientFlow 20s ease infinite;color:var(--text-primary);transition:color .3s ease}.dark-theme.app-container{background:radial-gradient(circle at 20% 40%,rgba(100,140,255,.06) 0%,transparent 30%),radial-gradient(circle at 80% 60%,rgba(120,80,255,.04) 0%,transparent 25%),radial-gradient(circle at 50% 90%,rgba(40,200,180,.03) 0%,transparent 25%),var(--bg-page);background-size:200% 200%;animation:gradientFlow 25s ease infinite}@keyframes gradientFlow{0%{background-position:0% 0%}50%{background-position:50% 100%}to{background-position:0% 0%}}.app-header{text-align:center;padding:1rem 1.5rem .5rem;position:relative;z-index:10}.app-header h1{font-size:2.5rem;font-weight:800;letter-spacing:-.04em;margin-bottom:.2rem;color:var(--text-primary);line-height:1.1}.app-header p{color:var(--text-secondary);font-size:.875rem;font-weight:400;opacity:.8}.theme-toggle-btn{position:absolute;top:1rem;right:1.5rem;width:42px;height:42px;border-radius:50%;background:var(--bg-panel);border:1px solid var(--border-strong);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-md)}.theme-toggle-btn:hover{transform:scale(1.08);box-shadow:var(--shadow-lg)}.install-app-btn{position:absolute;top:1rem;right:5rem;height:42px;border-radius:24px;background:var(--bg-panel);border:1px solid var(--border-strong);color:var(--text-primary);display:flex;align-items:center;justify-content:center;gap:.5rem;padding:0 1.2rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-md)}.install-app-btn:hover{background:var(--accent);color:var(--accent-text);border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-lg)}@media(max-width:768px){.theme-toggle-btn{display:none}.install-app-btn{right:1.5rem}}.app-main{flex:1;display:flex;flex-direction:column;padding:.5rem 2rem 2rem;width:100%;max-width:1920px;margin:0 auto}.upload-wrapper{display:flex;justify-content:center;align-items:center;flex:1;width:100%}.upload-container{width:100%;max-width:560px;background:var(--bg-panel);border:2px dashed var(--border-strong);border-radius:20px;padding:3.5rem 2rem;text-align:center;cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-md)}.upload-container:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow-lg)}.upload-icon{color:var(--text-secondary);margin-bottom:1.25rem}.upload-text{font-size:1.2rem;font-weight:600;margin-bottom:.4rem;color:var(--text-primary)}.upload-subtext{color:var(--text-secondary);margin-bottom:.75rem;font-size:.9rem}.upload-hint{font-size:.8rem;color:var(--text-muted)}.three-column-layout{display:flex;justify-content:center;align-items:flex-start;gap:1.25rem;width:100%}.column-left{width:220px;flex-shrink:0}.column-right{width:260px;flex-shrink:0}.column-middle{flex:0 1 auto;min-width:0;display:flex;justify-content:center;max-width:calc(100% - 520px)}@media(max-width:768px){.three-column-layout{flex-direction:column;align-items:center;gap:0}.column-left,.column-right{display:none}.column-middle{width:100%;max-width:100%;padding-bottom:240px;overflow-x:auto}}.mobile-bottom-bar{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg-panel);border-top:1px solid var(--border);padding:.5rem 1rem calc(.5rem + env(safe-area-inset-bottom));z-index:50;box-shadow:0 -4px 20px #0000000d}.dark-theme .mobile-bottom-bar{box-shadow:0 -4px 20px #0000004d}.mobile-tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;background:transparent;border:none;color:var(--text-secondary);font-size:.65rem;font-weight:600;text-transform:uppercase;cursor:pointer;transition:var(--transition);padding:.5rem 0}.mobile-tab-btn.active{color:var(--accent)}@media(max-width:768px){.mobile-bottom-bar{display:flex;justify-content:space-around}}.mobile-bottom-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--bg-panel);border-radius:20px 20px 0 0;padding:1.5rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));z-index:60;box-shadow:0 -10px 40px #00000026;transform:translateY(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);display:none;max-height:85vh;overflow-y:auto}.dark-theme .mobile-bottom-sheet{box-shadow:0 -10px 40px #0009;border:1px solid var(--border-strong);border-bottom:none}.mobile-bottom-sheet.open{transform:translateY(0)}.sheet-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:.75rem}.sheet-title{font-size:1rem;font-weight:700;color:var(--text-primary)}.close-sheet-btn{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.25rem;border-radius:50%;transition:background .2s}.close-sheet-btn:hover{background:var(--bg-input);color:var(--text-primary)}@media(max-width:768px){.mobile-bottom-sheet{display:block}}.mobile-thumbnail-strip{display:none;flex-direction:row;overflow-x:auto;gap:.75rem;padding:1rem;background:var(--bg-panel);border-top:1px solid var(--border);position:fixed;bottom:calc(70px + env(safe-area-inset-bottom));left:0;right:0;z-index:45;box-shadow:0 -4px 15px #0000000d}.dark-theme .mobile-thumbnail-strip{box-shadow:0 -4px 15px #0000004d}.mobile-thumbnail-strip::-webkit-scrollbar{display:none}.mobile-thumbnail-strip .thumbnail-item{width:95px;height:95px;flex-shrink:0;border-radius:12px}@media(max-width:768px){:root{--mobile-canvas-safe-height: calc(100vh - 350px) }.mobile-thumbnail-strip{display:flex}.app-main{padding:0}.app-header{padding-bottom:.5rem}.canvas-wrapper{margin-top:1rem;border-radius:0;box-shadow:none;touch-action:pan-x pan-y pinch-zoom}.preview-canvas{max-height:var(--mobile-canvas-safe-height);width:100%;object-fit:contain}.remove-photo-btn,.header-hidden-mobile{display:none!important}}.panel-box{background:var(--bg-panel);border-radius:16px;padding:1rem;box-shadow:var(--shadow-md);border:1px solid var(--border);transition:background .3s ease,border .3s ease,box-shadow .3s ease}.panel-title{font-size:.9375rem;font-weight:700;margin-bottom:1rem;color:var(--text-primary);border-bottom:1px solid var(--border);padding-bottom:.5rem}.settings-section{margin-bottom:1.5rem}.settings-section:last-child{margin-bottom:0}.thumbnail-strip{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto;margin-bottom:1rem;padding-right:.5rem}.thumbnail-strip::-webkit-scrollbar{width:5px}.thumbnail-strip::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.thumbnail-item{position:relative;width:100%;aspect-ratio:1 / 1;border-radius:8px;overflow:hidden;cursor:pointer;border:2px solid transparent;transition:var(--transition);background:var(--bg-input)}.thumbnail-item img{width:100%;height:100%;object-fit:cover;opacity:.75;transition:opacity .2s ease}.thumbnail-item:hover img{opacity:1}.thumbnail-item.active{border-color:var(--accent);box-shadow:0 0 0 2px #0000001f}.thumbnail-item.active img{opacity:1}.remove-photo-btn{position:absolute;top:5px;right:5px;width:24px;height:24px;border-radius:50%;background:#0000008c;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:var(--transition);z-index:10}.remove-photo-btn:hover{background:#ef4444;transform:scale(1.1)}.thumbnail-item:hover .remove-photo-btn{opacity:1}.actions-group{display:flex;flex-direction:column;gap:.5rem}.control-group{display:flex;flex-direction:column;gap:.6rem}.control-label{font-size:.75rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.slider{width:100%;accent-color:var(--slider-thumb);height:5px;border-radius:3px;background:var(--slider-track);outline:none;appearance:none;-webkit-appearance:none;cursor:pointer}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--slider-thumb);cursor:pointer;border:2px solid var(--bg-panel);box-shadow:0 1px 4px #00000040}.template-selector{display:flex;flex-direction:column;gap:.5rem}.template-heading{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-weight:700}.template-options{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.template-btn{padding:.45rem .75rem;border:1px solid var(--border-strong);background:var(--bg-input);border-radius:18px;cursor:pointer;font-family:inherit;font-size:.8125rem;color:var(--text-secondary);transition:var(--transition);text-align:center}.template-btn:hover{background:var(--bg-panel-hover);color:var(--text-primary);border-color:var(--accent)}.template-btn.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}.app-button,.new-photo-btn,.reset-btn,.upload-logo-btn,.download-btn{width:100%;padding:.6rem 1.2rem;border:1px solid transparent;background:var(--accent);border-radius:24px;color:var(--accent-text);cursor:pointer;font-size:.875rem;font-weight:600;font-family:inherit;transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:.5rem}.new-photo-btn:hover,.upload-logo-btn:hover,.app-button:hover{background:var(--accent-hover);color:var(--accent-text)}.reset-btn{background:transparent;color:#ef4444;border:1px solid rgba(239,68,68,.4)}.reset-btn:hover{background:#ef4444;color:#fff;border-color:#ef4444}.download-btn{padding:.9rem 2rem;font-size:1rem;margin:0 auto}.download-btn:hover{background:var(--accent-hover)}.logo-upload-group{display:flex;align-items:center;gap:.5rem}.clear-logo-btn{padding:.4rem .75rem;background:transparent;border:none;font-size:.8125rem;color:#ef4444;cursor:pointer;text-decoration:underline;font-family:inherit}.canvas-container{width:100%;display:flex;flex-direction:column;align-items:center}.canvas-wrapper{width:auto;border-radius:10px;overflow:hidden;box-shadow:var(--shadow-lg);background:var(--bg-panel);display:inline-flex;justify-content:center}.preview-canvas{width:auto;height:auto;max-width:100%;max-height:82vh;object-fit:contain;display:block}.global-loading-overlay{position:fixed;inset:0;background:#0a0a0fe0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:9999;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.spinner{width:48px;height:48px;border:3px solid rgba(255,255,255,.15);border-top-color:#e8eaed;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1.25rem}@keyframes spin{to{transform:rotate(360deg)}}.global-loading-overlay h2{font-size:1.4rem;margin-bottom:.4rem;color:#f0f2f5;font-weight:700;letter-spacing:-.02em}.global-loading-overlay p{color:#f0f2f599;font-size:.9rem}.app-footer{text-align:center;padding:1.25rem 2rem;border-top:1px solid var(--border);display:flex;flex-direction:column;align-items:center;gap:.35rem;margin-top:auto}.footer-brand{display:flex;align-items:center;gap:.5rem;margin-bottom:.2rem}.footer-logo{width:22px;height:22px;object-fit:contain;opacity:.85}.footer-brand-name{font-size:.9rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.footer-tagline{font-size:.8rem;color:var(--text-muted)}.footer-copy{font-size:.72rem;color:var(--text-muted);opacity:.6}.delete-confirm-overlay{position:fixed;inset:0;background:#000000a6;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease-out forwards}.delete-confirm-modal{background:var(--bg-panel);border-radius:16px;padding:1.5rem;width:85%;max-width:320px;box-shadow:var(--shadow-xl);border:1px solid var(--border-strong);text-align:center;animation:scaleUp .15s ease-out forwards}.delete-confirm-modal h3{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.delete-confirm-modal p{font-size:.9rem;color:var(--text-secondary);line-height:1.4;margin-bottom:1.25rem}.modal-actions{display:flex;gap:.75rem;justify-content:center}.modal-actions button{flex:1;padding:.75rem 1rem;border-radius:10px;font-size:.95rem;font-weight:600;border:none;cursor:pointer;transition:var(--transition)}.btn-cancel{background:var(--bg-input);color:var(--text-primary)}.btn-delete{background:#ef4444;color:#fff}.btn-cancel:hover{background:var(--border-strong)}.btn-delete:hover{background:#dc2626;transform:scale(1.03)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:768px){.app-footer{display:none!important}}.app-tab-bar{display:flex;justify-content:center;gap:.5rem;margin-top:.75rem}.app-tab-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1.2rem;border-radius:24px;border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-secondary);font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:var(--transition)}.app-tab-btn:hover{background:var(--bg-panel-hover);color:var(--text-primary);border-color:var(--accent)}.app-tab-btn.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent);box-shadow:var(--shadow-sm)}.yearbook-page{width:100%;flex:1;display:flex;flex-direction:column}.yearbook-upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-height:380px;border:2px dashed var(--border-strong);border-radius:24px;margin:1.5rem auto;width:100%;max-width:520px;cursor:pointer;transition:var(--transition);background:var(--bg-panel);padding:3rem 2rem;text-align:center;gap:1rem}.yearbook-upload-zone:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow-lg)}.yearbook-upload-icon{color:var(--text-secondary)}.yearbook-upload-title{font-size:1.6rem;font-weight:800;color:var(--text-primary);letter-spacing:-.03em}.yearbook-upload-desc{color:var(--text-secondary);font-size:.95rem;line-height:1.7}.yearbook-upload-desc span{font-size:.8rem;color:var(--text-muted)}.yearbook-layout-wrapper{display:flex;gap:1.25rem;align-items:flex-start;width:100%}.yearbook-sidebar{width:260px;flex-shrink:0}.yearbook-sidebar .panel-box{display:flex;flex-direction:column;gap:0}.yearbook-sidebar-photos{border-bottom:1px solid var(--border);padding-bottom:1rem;margin-bottom:1rem}.yearbook-sidebar-controls{overflow-y:auto;max-height:calc(100vh - 320px);padding-right:4px}.yearbook-sidebar-controls::-webkit-scrollbar{width:4px}.yearbook-sidebar-controls::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.yearbook-canvas-section{flex:1;min-width:0;display:flex;justify-content:center}.yearbook-canvas-wrapper{position:relative;width:100%;max-width:600px;display:flex;justify-content:center;align-items:flex-start}.yearbook-canvas-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0003;border-radius:12px;z-index:5}.yearbook-preview-canvas{width:100%;height:auto;border-radius:12px;box-shadow:0 8px 40px #00000040;display:block}.yearbook-layout-grid{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.yearbook-layout-card{display:flex;align-items:center;gap:.75rem;padding:.65rem .8rem;border:1px solid var(--border-strong);background:var(--bg-input);border-radius:12px;cursor:pointer;font-family:inherit;transition:var(--transition);text-align:left}.yearbook-layout-card:hover{background:var(--bg-panel-hover);border-color:var(--accent)}.yearbook-layout-card.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text);box-shadow:var(--shadow-sm)}.yearbook-layout-icon{width:28px;height:36px;flex-shrink:0;color:currentColor;opacity:.75}.yearbook-layout-label{font-size:.85rem;font-weight:700;color:currentColor;display:block}.yearbook-layout-desc{font-size:.72rem;color:currentColor;opacity:.7;display:block;margin-top:.15rem}.yearbook-input{width:100%;padding:.55rem .8rem;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font-family:inherit;font-size:.875rem;transition:var(--transition);outline:none}.yearbook-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0000000f}.dark-theme .yearbook-input:focus{box-shadow:0 0 0 3px #ffffff0f}.yearbook-textarea{resize:vertical;min-height:60px}.yearbook-pill-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}.yearbook-pill{padding:.35rem .85rem;border-radius:20px;border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-secondary);font-size:.78rem;font-weight:600;font-family:inherit;cursor:pointer;transition:var(--transition)}.yearbook-pill:hover{border-color:var(--accent);color:var(--text-primary)}.yearbook-pill.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.yearbook-color-btn{display:flex;align-items:center;gap:.4rem;padding:.35rem .8rem;border-radius:20px;border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-secondary);font-size:.78rem;font-weight:600;font-family:inherit;cursor:pointer;transition:var(--transition)}.yearbook-color-btn:hover{border-color:var(--accent);color:var(--text-primary)}.yearbook-color-btn.active{border-color:var(--accent);background:var(--bg-panel-hover);color:var(--text-primary);box-shadow:var(--shadow-sm)}.yearbook-color-dot{width:14px;height:14px;border-radius:50%;border:1.5px solid rgba(255,255,255,.25);flex-shrink:0}.yearbook-thumb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.yearbook-thumb-item{position:relative;aspect-ratio:1 / 1;border-radius:8px;overflow:hidden;background:var(--bg-input)}.yearbook-thumb-item img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .2s}.yearbook-thumb-item:hover img{opacity:1}.yearbook-thumb-overlay{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;gap:4px;opacity:0;transition:var(--transition);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.yearbook-thumb-item:hover .yearbook-thumb-overlay,.yearbook-thumb-overlay.visible{opacity:1}.yearbook-thumb-btn{width:28px;height:28px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition)}.yearbook-thumb-btn:hover:not(:disabled){background:#fff;color:#000}.yearbook-thumb-btn:disabled{opacity:.3;cursor:not-allowed}.yearbook-thumb-btn.remove-btn:hover{background:#ef4444;border-color:#ef4444;color:#fff}@media(max-width:768px){.yearbook-layout-wrapper{flex-direction:column}.yearbook-sidebar{display:none}.yearbook-canvas-section{width:100%;padding-bottom:200px}.yearbook-preview-canvas{border-radius:0;box-shadow:none}.yearbook-upload-zone{margin:.5rem 1rem;width:calc(100% - 2rem)}.yearbook-mobile-bar{display:flex!important}}@media print{body *{visibility:hidden}.print-canvas-section,.print-canvas-section *{visibility:visible}.print-canvas-section{position:absolute;left:0;top:0;width:100%;height:100%;margin:0;padding:0;display:flex;justify-content:center;align-items:center}.print-canvas-wrapper{padding:.15in!important;box-sizing:border-box!important;width:100vw!important;height:100vh!important}.print-canvas-wrapper canvas{width:100%!important;height:100%!important;object-fit:contain!important}.app-container,.app-main{background:#fff!important;padding:0!important;margin:0!important}.print-hide{display:none!important}@page{margin:0}}
