*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-deep: #0a0e1a;--bg-mid: #111827;--ice: #7dd3fc;--ice-dim: #38bdf8;--frost: #e0f2fe;--text: #cbd5e1;--text-muted: #64748b}html,body{height:100%}#root{width:100%;min-height:100%}.app-shell{width:100%;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.app-shell--centered{justify-content:center;min-height:100vh}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background:var(--bg-deep);overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center}.content{position:relative;z-index:2;text-align:center;padding:2rem 2rem 4.5rem;max-width:36rem}.logo-mark{width:4rem;height:4rem;margin:0 auto 1.5rem;color:var(--ice);opacity:.85}.logo-mark svg{width:100%;height:100%}.title{font-size:clamp(2.5rem,8vw,4rem);font-weight:300;letter-spacing:.15em;text-transform:uppercase;color:var(--frost);line-height:1.1}.tagline{font-size:clamp(1rem,3vw,1.25rem);font-weight:400;letter-spacing:.45em;text-transform:uppercase;color:var(--ice-dim);margin-top:.75rem}.divider{width:3rem;height:1px;background:linear-gradient(90deg,transparent,var(--ice-dim),transparent);margin:2rem auto}.subtitle{font-size:1rem;font-weight:300;color:var(--text-muted);line-height:1.6;letter-spacing:.02em}.footer{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:2;display:flex;align-items:center;gap:1rem;font-size:.75rem;color:var(--text-muted);letter-spacing:.05em;pointer-events:auto}.lang-switch{display:flex;gap:.25rem}.lang-switch button{padding:.2rem .5rem;font:inherit;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);background:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer;transition:color .2s,border-color .2s}.lang-switch button:hover{color:var(--ice)}.lang-switch button.active{color:var(--ice);border-color:#7dd3fc26}.anon-profile{position:fixed;top:1.25rem;right:1.25rem;z-index:10;display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.125rem;background:#111827e6;border:1px solid rgba(125,211,252,.15);border-radius:.875rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-width:18rem;max-width:min(22rem,calc(100vw - 2.5rem))}.anon-profile-main{display:flex;align-items:flex-start;gap:.875rem}.anon-profile-avatar{position:relative;flex-shrink:0;width:3.25rem;height:3.25rem;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--ice);cursor:default}.avatar-timer-svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.avatar-timer-track{fill:none;stroke:#64748b59;stroke-width:2.5}.avatar-timer-progress{fill:none;stroke:url(#avatar-timer-gradient);stroke-width:2.5;stroke-linecap:round}.anon-profile-avatar.timer-warning .avatar-timer-progress{stroke:#fbbf24}.anon-profile-avatar.timer-critical .avatar-timer-progress{stroke:#f87171}.avatar-timer-label{position:relative;z-index:1;font-size:.65rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--frost);letter-spacing:.02em;line-height:1}.anon-profile-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.anon-profile-name{font-size:.95rem;font-weight:500;color:var(--frost);letter-spacing:.03em}.anon-profile-id{font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums;word-break:break-all;line-height:1.35}.anon-profile-frosts{display:flex;align-items:center;gap:.5rem;width:100%}.frosts-emoji{flex-shrink:0;font-size:1rem;line-height:1}.frosts-bar{position:relative;flex:1;height:1.375rem;background:#64748b59;border-radius:.375rem;overflow:hidden}.frosts-bar-fill{position:absolute;inset:0 auto 0 0;height:100%;background:linear-gradient(90deg,var(--ice-dim),var(--ice));border-radius:.375rem}.frosts-bar-text{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;height:100%;font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--frost);letter-spacing:.04em;text-shadow:0 0 4px rgba(10,14,26,.8)}.anon-profile-actions{display:flex;flex-direction:column;gap:.375rem}.anon-profile-btn{width:100%;padding:.5rem .75rem;font:inherit;font-size:.8rem;letter-spacing:.03em;color:var(--text-muted);background:#64748b26;border:1px solid rgba(100,116,139,.25);border-radius:.5rem;cursor:not-allowed;opacity:.65}.anon-profile-btn:disabled{pointer-events:none}@media(max-width:480px){.title{letter-spacing:.1em}.tagline{letter-spacing:.3em}.anon-profile{top:.75rem;right:.75rem;padding:.875rem;min-width:min(18rem,calc(100vw - 5rem));max-width:calc(100vw - 5rem)}.anon-profile-id{font-size:.7rem}}.dashboard-page{position:relative;z-index:2;flex:1 0 auto;width:100%;max-width:56rem;padding:2rem 1.25rem 5rem}.dashboard-header{text-align:center;margin-bottom:2.5rem}.dashboard-title{font-size:clamp(1.5rem,5vw,2rem);font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:var(--frost)}.dashboard-section+.dashboard-section{margin-top:2.5rem}.section-title{font-size:.85rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ice-dim);margin-bottom:1.25rem}.tool-category+.tool-category{margin-top:1.5rem}.category-title{font-size:.75rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.75rem}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.75rem}.tool-tile{display:flex;align-items:center;justify-content:center;min-height:5rem;padding:1rem;text-align:center;text-decoration:none;font-size:.8rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--frost);background:var(--surface);border:1px solid var(--border);border-radius:.75rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .2s,box-shadow .2s,color .2s}.tool-tile:hover{border-color:#7dd3fc73;box-shadow:0 0 1rem #38bdf81f;color:var(--ice)}.tool-tile:focus-visible{outline:2px solid var(--ice-dim);outline-offset:2px}.dashboard-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.stats-unavailable{font-size:.95rem;font-weight:300;color:var(--text-muted);letter-spacing:.02em;line-height:1.5;text-align:center}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background:var(--bg-deep);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow-x:hidden;overflow-y:auto}.page{position:relative;z-index:2;flex:1 0 auto;width:100%;max-width:42rem;padding:2rem 1.25rem 4.5rem}.page-header{text-align:center;margin-bottom:2rem}.page-title{font-size:clamp(1.5rem,5vw,2rem);font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:var(--frost)}.form-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.field{margin-bottom:1.25rem}.field label,.field-label{display:block;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ice-dim);margin-bottom:.5rem}.field textarea,.field input[type=number]{width:100%;padding:.65rem .75rem;font:inherit;color:var(--frost);background:#0a0e1a99;border:1px solid var(--border);border-radius:.5rem;outline:none;transition:border-color .2s}.field textarea{min-height:6rem;resize:vertical}.field textarea:focus,.field input[type=number]:focus{border-color:var(--ice-dim)}.field-hint{margin-top:.5rem;font-size:.78rem;line-height:1.5;color:var(--text-muted)}.resolution-field{padding:1rem;background:#0a0e1a73;border:1px solid var(--border);border-radius:.5rem}.resolution-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.resolution-option{position:relative;cursor:pointer}.resolution-option input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.resolution-option span{display:flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.5rem .35rem;font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--text-muted);background:#0a0e1a99;border:1px solid var(--border);border-radius:.5rem;transition:color .2s,border-color .2s,background .2s}.resolution-option:hover span{color:var(--ice);border-color:#38bdf859}.resolution-option input:checked+span{color:var(--bg-deep);background:linear-gradient(135deg,var(--ice) 0%,var(--ice-dim) 100%);border-color:transparent}.resolution-option input:focus-visible+span{outline:2px solid var(--ice-dim);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1.25rem;font:inherit;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bg-deep);background:linear-gradient(135deg,var(--ice) 0%,var(--ice-dim) 100%);border:none;border-radius:.5rem;cursor:pointer;transition:opacity .2s,transform .1s}.btn:hover{opacity:.92}.btn:active{transform:scale(.98)}.form-actions{display:flex;flex-direction:column;gap:.75rem}.form-actions .btn{text-decoration:none}.btn-generate{gap:.625rem}.frost-cost-tag{display:inline-flex;align-items:center;padding:.15rem .5rem;font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.02em;text-transform:none;color:var(--frost);background:#0a0e1a99;border:1px solid var(--border);border-radius:.35rem}.preview-section{margin-top:1.5rem}.preview-wrap{position:relative;min-height:12rem;border:1px dashed var(--border);border-radius:.5rem;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#0a0e1a66}.preview-wrap img{display:block;max-width:100%;width:auto;height:auto}.preview-placeholder{color:var(--text-muted);font-size:.85rem;padding:2rem;text-align:center}.preview-actions{margin-top:1rem;display:none}.preview-actions.visible{display:block}.btn-secondary:hover{border-color:var(--ice-dim);opacity:1}.loading-overlay{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:#0a0e1ad9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10}.loading-overlay.visible{display:flex}.spinner{width:2rem;height:2rem;border:2px solid var(--border);border-top-color:var(--ice);border-radius:50%;animation:spin .8s linear infinite}.loading-text{font-size:.9rem;color:var(--ice);letter-spacing:.05em}@keyframes spin{to{transform:rotate(360deg)}}.history-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}.history-title{font-size:.85rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--ice-dim);margin-bottom:1rem}.history-empty{font-size:.85rem;color:var(--text-muted);text-align:center;padding:1rem}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5rem,1fr));gap:.5rem}.history-thumb{aspect-ratio:1;padding:0;border:1px solid var(--border);border-radius:.5rem;overflow:hidden;cursor:pointer;background:#0a0e1a99;transition:border-color .2s,transform .1s}.history-thumb:hover{border-color:var(--ice-dim)}.history-thumb:active{transform:scale(.98)}.history-thumb img{width:100%;height:100%;object-fit:cover;display:block}.history-modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:1.25rem;background:#0a0e1ae6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.history-modal.visible{display:flex}.history-modal-card{position:relative;width:100%;max-width:36rem;max-height:90vh;overflow-y:auto;padding:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem}.modal-close{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;font-size:1.5rem;line-height:1;color:var(--text-muted);background:transparent;border:none;cursor:pointer}.modal-close:hover{color:var(--ice)}.modal-prompt{font-size:.9rem;line-height:1.5;color:var(--frost);margin-bottom:1rem;padding-right:2rem;word-break:break-word}.modal-img{display:block;max-width:100%;height:auto;margin:0 auto 1rem;border-radius:.5rem}.dashboard-nav{position:fixed;top:1.25rem;left:1.25rem;z-index:3;display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;color:var(--ice-dim);background:var(--surface);border:1px solid var(--border);border-radius:.75rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-decoration:none;transition:border-color .2s,box-shadow .2s,color .2s}.dashboard-nav:hover{color:var(--ice);border-color:#7dd3fc73;box-shadow:0 0 1rem #38bdf81f}.dashboard-nav:focus-visible{outline:2px solid var(--ice-dim);outline-offset:2px}.dashboard-nav-icon{width:1.25rem;height:1.25rem}@media(max-width:480px){.page{padding-top:1.5rem}.resolution-switch{grid-template-columns:1fr}}.dimension-sliders{display:flex;flex-direction:column;gap:1rem}.dimension-row{display:grid;grid-template-columns:4.5rem 1fr 3rem;align-items:center;gap:.75rem}.dimension-row label{font-size:.85rem;color:var(--text-muted)}.dimension-row input[type=range]{width:100%;accent-color:var(--ice);cursor:pointer}.dimension-row output{font-size:.85rem;font-variant-numeric:tabular-nums;text-align:right;color:var(--ice)}:root{--border: rgba(125, 211, 252, .15);--surface: rgba(17, 24, 39, .7)}html,body{height:auto;min-height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background:var(--bg-deep);display:flex;flex-direction:column;align-items:center;overflow-x:hidden;overflow-y:auto}.background{position:fixed;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(56,189,248,.12) 0%,transparent 60%),radial-gradient(ellipse 60% 50% at 80% 100%,rgba(99,102,241,.08) 0%,transparent 50%),linear-gradient(180deg,var(--bg-deep) 0%,var(--bg-mid) 100%);z-index:0}.frost-overlay{position:fixed;inset:0;background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.03) 0%,transparent 40%),radial-gradient(circle at 70% 60%,rgba(255,255,255,.02) 0%,transparent 35%),radial-gradient(circle at 50% 80%,rgba(125,211,252,.04) 0%,transparent 45%);z-index:1;pointer-events:none}.admin-page{position:relative;z-index:2;width:100%;max-width:28rem;padding:2rem 1.25rem}.admin-page-wide{max-width:56rem}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.admin-title{font-size:clamp(1.25rem,4vw,1.75rem);font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:var(--frost)}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.admin-card+.admin-card{margin-top:1.5rem}.field{margin-bottom:1rem}.field label{display:block;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ice-dim);margin-bottom:.5rem}.field input{width:100%;padding:.65rem .75rem;font:inherit;color:var(--frost);background:#0a0e1a99;border:1px solid var(--border);border-radius:.5rem;outline:none}.field input:focus{border-color:var(--ice-dim)}.btn{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:.75rem 1.25rem;font:inherit;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bg-deep);background:linear-gradient(135deg,var(--ice) 0%,var(--ice-dim) 100%);border:none;border-radius:.5rem;cursor:pointer}.btn-secondary{color:var(--ice);background:transparent;border:1px solid var(--border)}.btn-small{width:auto;padding:.5rem 1rem;font-size:.75rem}.error-msg{margin-top:1rem;padding:.75rem;font-size:.85rem;color:#fca5a5;background:#ef44441a;border:1px solid rgba(239,68,68,.25);border-radius:.5rem;display:none}.error-msg.visible{display:block}.table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.85rem}.admin-table th,.admin-table td{padding:.65rem .5rem;text-align:left;border-bottom:1px solid var(--border)}.admin-table th{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ice-dim)}.admin-table tbody tr{cursor:pointer}.admin-table tbody tr:hover{background:#38bdf80f}.admin-table tbody tr.selected{background:#38bdf81f}.empty-row{color:var(--text-muted);text-align:center;cursor:default}.panel-title{font-size:.95rem;font-weight:400;letter-spacing:.05em;color:var(--frost);margin-bottom:1rem}.generations-panel.hidden{display:none}@media(max-width:640px){.admin-header{flex-direction:column;align-items:flex-start}.btn-small{width:100%}}
