.generation-cta{position:relative;isolation:isolate;overflow:hidden}.magnify-overlay:after,.generation-cta:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.55) 50%,transparent 62%);transform:translate(-100%);animation:ctaShine 3.5s ease-in-out infinite}@keyframes ctaShine{0%{transform:translate(-100%)}45%{transform:translate(100%)}to{transform:translate(100%)}}@property --cta-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.magnify-overlay:before,.generation-cta:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;border-radius:inherit;padding:2px;background:conic-gradient(from var(--cta-angle),transparent 0deg,rgba(255,255,255,.85) 45deg,transparent 90deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;animation:ctaBorder 3s linear infinite}@keyframes ctaBorder{to{--cta-angle: 360deg}}.generation-cta:disabled:before,.generation-cta:disabled:after{content:none;animation:none}@media (prefers-reduced-motion: reduce){.magnify-overlay:before,.magnify-overlay:after,.generation-cta:before,.generation-cta:after{animation:none;content:none}}:root{--font-display: "Fraunces", serif;--font-display-weight: 700;--font-display-optical-size: 24;--font-display-settings: "opsz" var(--font-display-optical-size)}.font-display{font-family:var(--font-display);font-weight:var(--font-display-weight);font-variation-settings:var(--font-display-settings)}:root{--tomate: #E63B2E;--tomate-hover: #cf3327;--beurre: #F5EFE3;--creme: #FBF7EE;--encre: #1A1614;--gris: #7A6F66;--gris-clair: #A89E94;--vert-vif: #1E9E63;--r-sm: 10px;--r-lg: 16px;--line: rgba(26, 22, 20, .1);--line-strong: rgba(26, 22, 20, .24);--scrim: rgba(26, 22, 20, .7)}.shop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--scrim)}.shop{position:relative;width:100%;max-width:560px;max-height:calc(100vh - 40px);overflow-y:auto;background:var(--beurre);border-radius:var(--r-lg);padding:28px;box-shadow:0 24px 60px #00000059}.shop-close{position:absolute;top:14px;right:14px;width:38px;height:38px;border:0;border-radius:50%;background:var(--encre);color:var(--beurre);cursor:pointer;display:grid;place-items:center;transition:background .15s ease,color .15s ease}.shop-close:hover{background:var(--tomate);color:var(--beurre)}.shop-close svg,.carousel-close svg{width:40%;height:40%}.shop-close svg{width:52%;height:52%}.shop-title{font-family:var(--font-display);font-variation-settings:var(--font-display-settings);font-weight:var(--font-display-weight);font-size:32px;letter-spacing:-.02em;color:var(--encre)}.shop-balance{font-family:Inter,sans-serif;font-size:14px;color:var(--gris);margin-top:2px}.shop-balance b{color:var(--tomate)}.shop-section{font-family:Inter,sans-serif;font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);margin:22px 0 10px}.btn.shop-abo-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:16px 22px;font-size:16px;text-decoration:none;margin:16px 0 4px}.packs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pack{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:1px solid var(--line);background:var(--creme);padding:13px 14px;border-radius:var(--r-sm);cursor:pointer;transition:border-color .15s ease,transform .12s ease}.pack:hover{border-color:var(--tomate);transform:translateY(-2px)}.pack-info{display:flex;flex-direction:column;gap:2px;min-width:0}.pack-credits{font-family:Inter,sans-serif;font-weight:700;font-size:16px;color:var(--encre)}.pack-imgs{font-family:Inter,sans-serif;font-size:11.5px;color:var(--gris);line-height:1.3}.pack-price{font-family:var(--font-display);font-variation-settings:var(--font-display-settings);font-weight:var(--font-display-weight);font-size:18px;color:var(--tomate);white-space:nowrap}.gift{position:relative}.gift-trigger{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;cursor:pointer;border-radius:999px;background:var(--creme);color:var(--encre);border:1px solid var(--line);transition:transform .12s ease,border-color .15s ease,color .15s ease}.gift-trigger:hover{transform:translateY(-1px);border-color:var(--tomate);color:var(--tomate)}.gift-trigger svg{width:20px;height:20px}.gift-trigger.nudge{animation:gift-shake 4s ease-in-out .8s infinite}@keyframes gift-shake{0%,22%,to{transform:rotate(0)}4%{transform:rotate(-14deg)}8%{transform:rotate(11deg)}12%{transform:rotate(-8deg)}16%{transform:rotate(5deg)}20%{transform:rotate(-2deg)}}@media (prefers-reduced-motion: reduce){.gift-trigger.nudge{animation:none}}.gift-pop{position:absolute;top:calc(100% + 10px);right:0;z-index:60;width:360px;max-width:calc(100vw - 24px);background:var(--creme);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 16px 44px #1a16142e;padding:18px;animation:profile-pop .12s ease}.gift-title{font-family:var(--font-display);font-variation-settings:var(--font-display-settings);font-weight:var(--font-display-weight);font-size:21px;letter-spacing:-.01em;color:var(--encre)}.gift-steps{list-style:none;counter-reset:gift-step;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.gift-steps li{counter-increment:gift-step;position:relative;padding-left:34px;font-family:Inter,sans-serif;font-size:13.5px;color:var(--encre);line-height:1.45}.gift-steps li:before{content:counter(gift-step);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--tomate);color:var(--beurre);font-weight:700;font-size:13px}.gift-link-row{display:flex;gap:8px;margin-top:14px}.gift-link{flex:1;min-width:0;font-family:Inter,sans-serif;font-size:13px;color:var(--encre);background:var(--beurre);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px}.btn.gift-copy{justify-content:center;white-space:nowrap;padding:12px 16px;font-size:14px}.btn.gift-copy.copied{background:var(--vert-vif);animation:gift-copied-pop .25s ease}.btn.gift-copy.copied:not(:disabled):hover{background:var(--vert-vif)}@keyframes gift-copied-pop{0%{transform:scale(1)}40%{transform:scale(1.06)}to{transform:scale(1)}}.gift-campaign .gift-trigger{position:relative;border-color:var(--tomate);color:var(--tomate)}.gift-multiplier{position:absolute;top:-5px;right:-8px;padding:2px 4px;border:2px solid var(--creme);border-radius:6px;background:var(--tomate);color:var(--beurre);font:700 10px/1.1 Inter,sans-serif}.gift-campaign-badge{display:inline-flex;margin-bottom:9px;padding:5px 8px;border:1px solid rgba(230,59,46,.2);border-radius:6px;background:#e63b2e11;color:var(--tomate);font:600 10px/1.2 Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase}.gift-countdown{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.gift-countdown-label{margin-bottom:10px;color:var(--encre);opacity:.65;font:400 11px/1.4 Inter,sans-serif}.gift-countdown-clock{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.gift-countdown-unit{display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 0 8px;background:var(--beurre);border:1px solid var(--line);border-radius:var(--r-sm)}.gift-countdown-value{color:var(--encre);font:500 24px/1 JetBrains Mono,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.05em}.gift-countdown-caption{color:var(--encre);opacity:.55;font:500 9px/1.2 Inter,sans-serif}@media (max-width: 480px){.gift{position:static}.gift-pop{position:fixed;top:74px;left:12px;right:12px;width:auto;max-width:none}.gift-link-row{flex-direction:column}.btn.gift-copy{width:100%}}@media (max-width: 480px){.shop{padding:24px 18px}.packs{grid-template-columns:1fr}}.topbar-right{display:inline-flex;align-items:center;gap:14px;flex-shrink:0;min-width:38px;min-height:38px}.topbar-right>.profile,.topbar-right>.gift{display:flex;align-items:center}.profile{position:relative}.profile-trigger{display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:transparent;cursor:pointer;border-radius:999px;transition:transform .12s ease}.profile-trigger:hover{transform:translateY(-1px)}.profile-avatar{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;background:var(--encre);color:var(--beurre);box-shadow:0 0 0 2px var(--tomate);font-family:Inter,sans-serif;font-weight:700;font-size:16px;-webkit-user-select:none;user-select:none}.profile-avatar.lg{width:44px;height:44px;font-size:18px;flex:0 0 auto}.profile-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:60;width:288px;max-width:calc(100vw - 24px);background:var(--creme);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 16px 44px #1a16142e;padding:8px;animation:profile-pop .12s ease}@keyframes profile-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.profile-head{display:flex;align-items:center;gap:12px;padding:10px 10px 12px}.profile-id{min-width:0}.profile-email{font-family:Inter,sans-serif;font-weight:600;font-size:14px;color:var(--encre);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-plan{font-family:Inter,sans-serif;font-size:12px;color:var(--gris);margin-top:2px}.profile-credits{background:var(--beurre);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;margin:0 2px 8px}.profile-credits-row{display:flex;align-items:baseline;justify-content:space-between;font-family:Inter,sans-serif;font-size:13px;color:var(--gris)}.profile-credits-row b{font-size:17px;font-weight:700;color:var(--encre)}.profile-gauge{height:6px;border-radius:999px;background:var(--line);margin-top:10px;overflow:hidden}.profile-gauge span{display:block;height:100%;border-radius:999px;background:var(--tomate);transition:width .2s ease}.profile-item{display:block;width:100%;text-align:left;background:transparent;border:0;cursor:pointer;font-family:Inter,sans-serif;font-weight:500;font-size:14px;color:var(--encre);padding:11px 10px;border-radius:var(--r-sm);transition:background .12s ease,color .12s ease}.profile-item:hover{background:#1a16140f}.profile-item.danger{color:var(--tomate)}.profile-item.danger:hover{background:#e63b2e14}.profile-sep{height:1px;background:var(--line);margin:6px 8px}.topbar,.app-header-frame{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:24px 32px}.brand{font-family:var(--font-display);font-variation-settings:var(--font-display-settings);font-weight:var(--font-display-weight);font-size:clamp(16px,4.4vw,24px);letter-spacing:-.045em;line-height:1;white-space:nowrap}.brand .brand-home{color:inherit;text-decoration:none;cursor:pointer;transition:opacity .15s ease}.brand .brand-home:hover{opacity:.6}.brand .dot,.brand .brand-sub{color:var(--tomate)}.brand:has(.brand-sub) .dot{font-family:Inter,sans-serif;font-size:22px;font-weight:600;margin:0 .25em}@media (max-width: 700px){.app-header-frame{padding:18px 20px}}@media (max-width: 560px){.topbar{padding:18px 20px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:12px 18px;font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:1.2;cursor:pointer;border:0;border-radius:var(--r-sm);text-decoration:none;transition:transform .12s ease,opacity .15s ease,background .15s ease}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:not(:disabled):hover{transform:translateY(-1px)}.btn:not(:disabled):active{transform:translateY(0)}.btn.primary{background:var(--tomate);color:var(--beurre)}.btn.primary:not(:disabled):hover{background:var(--tomate-hover)}.btn.outline{background:transparent;color:var(--encre);border:1px solid var(--line-strong)}.btn.outline:not(:disabled):hover{border-color:var(--encre);transform:translateY(-1px)}.btn.lg{padding:18px 28px;font-size:18px}.loading-escape-wrap{order:1;margin-top:12px;display:flex;flex-direction:column;align-items:center;gap:6px}.loading-escape{padding:10px 18px;font-size:14px;white-space:nowrap}.loading-escape-note{margin:0;font-family:Inter,sans-serif;font-size:12px;color:var(--gris-clair);text-align:center}.run-step{margin:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris-clair);text-align:center}.seg-title{font-family:Inter,sans-serif;font-weight:600;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}.seg-row{display:flex;gap:4px}.quality-switch{display:inline-flex;flex-direction:column;align-items:center;gap:7px;padding:9px 9px 7px;background:var(--creme);border:1px solid var(--line);border-radius:var(--r-sm)}.qs-opt{display:flex;flex-direction:column;align-items:center;gap:2px;border:0;background:transparent;color:var(--gris);padding:9px 16px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.qs-opt:hover{color:var(--encre)}.qs-opt.active{background:var(--encre);color:var(--beurre)}.qs-opt:disabled{cursor:default;opacity:.5}.qs-opt:disabled:hover{color:var(--gris)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%) translateY(8px);background:var(--encre);color:var(--beurre);padding:14px 20px;border-radius:var(--r-sm);font-size:14px;font-weight:500;max-width:88vw;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:500}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast.error{background:var(--tomate)}body.has-bottombar .toast{bottom:calc(84px + env(safe-area-inset-bottom))}.dev-access-notice{margin:12px 0 20px;padding:14px 18px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--creme);color:var(--encre);font-size:14px;line-height:1.5}.credit-breakdown .credit-pack-row{margin-top:14px}.credit-expiry{margin-top:5px;color:var(--gris);font-size:11px;line-height:1.5}.credit-lot-details{margin-top:10px;font-size:12px}.credit-lot-details summary{cursor:pointer;color:var(--gris)}.credit-lot-details ul{padding:0;margin:8px 0 0;list-style:none;max-height:180px;overflow-y:auto}.credit-lot-details li{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-top:1px solid var(--line)}.credit-lot-details time{color:var(--gris);font-size:11px}
