.landing{position:relative;min-height:100vh;overflow:hidden;background:transparent;color:var(--text-primary);display:flex;align-items:center;justify-content:center}.landing-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s ease;filter:saturate(1.1)}.landing-slide.active{opacity:1}.landing-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#06070a8c,#06070acc 45%,#06070ad9)}.landing-content{position:relative;z-index:2;text-align:center;padding:0 5rem;width:100%}.landing-text{font-size:clamp(2.1rem,3.5vw,2.6rem);line-height:1.7;color:#f3e7d0;height:4.5rem;text-align:left}.landing-word{opacity:0;transform:translateY(6px);transition:opacity .2s ease,transform .2s ease;display:none}.landing-word.visible{opacity:1;transform:translateY(0);display:inline}.landing-cursor{display:inline-block;width:8px;height:1em;background:#ffb44a;margin-left:6px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:0}50%{opacity:1}}.landing-footer{position:absolute;bottom:2.5rem;width:100%;display:flex;flex-direction:column;align-items:center;gap:.75rem;z-index:2}.landing-offline-hint{max-width:min(92vw,26rem);margin:0;padding:.55rem 1rem;font-size:.82rem;line-height:1.45;text-align:center;color:#f3e7d0eb;background:#0006;border-radius:.5rem;border:1px solid rgba(255,255,255,.12)}.landing-error{color:#fca5a5;font-size:.95rem;background:#0f172a80;padding:.4rem .8rem;border-radius:.5rem;border:1px solid rgba(248,113,113,.4)}.landing-login-panel{display:flex;flex-direction:column;gap:.75rem;padding:2rem 1.85rem 1.85rem;border-radius:1.4rem;background:var(--surface-card);border:1px solid var(--border-accent);box-shadow:var(--shadow-card-featured);align-items:center;position:relative;z-index:3;min-height:340px;transition:min-height .55s ease}.landing-login-panel.is-expanded{min-height:400px}.landing-panel-logo{width:180px;max-width:65%;height:auto;object-fit:contain;margin:1.25rem 0;display:block;margin-left:auto;margin-right:auto}.landing-email-input{width:min(320px,80vw);margin-left:auto;margin-right:auto;padding:.75rem 1rem;border-radius:999px;border:1px solid var(--btn-secondary-border);outline:none;font-size:.95rem;background:var(--btn-secondary-bg);color:var(--text-primary);transition:border-color .2s ease,background .2s ease}.landing-email-input:focus{border-color:var(--border-accent);background:var(--btn-secondary-bg-hover)}.landing-email-input::placeholder{color:var(--text-secondary)}.landing-email-confirm{width:min(320px,80vw);margin-left:auto;margin-right:auto;display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.65rem 1rem .65rem 1.15rem;border-radius:999px;border:1px solid var(--btn-secondary-border);background:#0c0e148c}.landing-email-confirm-email{margin:0;flex:1;min-width:0;font-size:.92rem;font-weight:500;color:#f3e7d0f2;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.landing-email-confirm-dismiss{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;margin:0 -.15rem 0 0;border:1px solid var(--btn-secondary-border);border-radius:50%;background:var(--btn-secondary-bg);color:var(--text-primary);cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.landing-email-confirm-dismiss .icon{font-size:1.15rem;line-height:1}.landing-email-confirm-dismiss:hover:not(:disabled){background:var(--btn-secondary-bg-hover);border-color:var(--btn-secondary-border-hover);color:var(--text-primary)}.landing-email-confirm-dismiss:disabled{cursor:not-allowed;opacity:.55}.landing-email-error{width:min(320px,80vw);margin:0 auto;text-align:center;color:#fca5a5;font-size:.85rem}.landing-email-notice{width:min(320px,80vw);margin:0 auto;text-align:center;color:#86efac;font-size:.85rem}.landing-login-card{position:relative;width:min(340px,85vw);min-height:320px;transition:opacity .55s ease}.landing-login-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:.25rem 0;backface-visibility:hidden;opacity:0;pointer-events:none;transition:opacity .5s ease}.landing-login-front{opacity:1;pointer-events:auto}.landing-login-card.is-flipped .landing-login-front{opacity:0;pointer-events:none}.landing-login-card.is-flipped .landing-login-back{opacity:1;pointer-events:auto}.landing-login-back{align-items:stretch;position:relative}.landing-email-helper{font-size:.85rem;color:var(--text-secondary);text-align:center;min-height:3rem}.landing-email-helper.is-error{color:#fca5a5}.landing-email-helper.is-success{color:#86efac}.landing-email-actions{display:flex;flex-direction:column;gap:.6rem;align-items:center;margin-top:1rem;margin-bottom:.25rem}.landing-login-actions{margin-top:auto;display:flex;flex-direction:column;gap:.6rem;align-items:center}.landing-email-form{display:flex;flex-direction:column;gap:.6rem;align-items:center}.landing-email-close{position:absolute;top:.25rem;right:.25rem;width:34px;height:34px;border-radius:50%;border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--text-primary);font-size:1.1rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,border-color .2s ease}.landing-email-close:hover:not(:disabled){background:var(--btn-secondary-bg-hover);border-color:var(--btn-secondary-border-hover)}.landing-email-close:disabled{cursor:not-allowed;opacity:.6}.landing-login-button{width:min(320px,80vw);display:inline-flex;align-items:center;justify-content:center;gap:.6rem;border:1px solid var(--btn-secondary-border);border-radius:999px;padding:.75rem 1.5rem;font-size:.95rem;font-weight:600;background:var(--btn-secondary-bg);color:var(--text-primary);cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .15s ease;min-height:48px}.landing-login-button:hover:not(:disabled){background:var(--btn-secondary-bg-hover);border-color:var(--btn-secondary-border-hover)}.landing-login-button:active:not(:disabled){transform:translateY(1px)}.landing-login-button:disabled{cursor:not-allowed;opacity:.7}.landing-login-button.is-primary{background:var(--btn-primary-bg);color:var(--btn-primary-color);border-color:transparent;box-shadow:var(--btn-primary-shadow)}.landing-login-button.is-primary:hover:not(:disabled){background:var(--btn-primary-bg-hover);border-color:transparent}.landing-login-secondary{background:var(--btn-secondary-bg)}.landing-login-twitter{background:var(--btn-secondary-bg);display:none}.landing-login-button .google-icon{width:20px;height:20px}.landing-login-panel.is-compact{min-height:0;padding:1.25rem 1.25rem 1.5rem;background:transparent;border:none;box-shadow:none}.landing-login-panel.is-compact .landing-login-card{min-height:260px}.landing-login-panel.is-compact.is-expanded .landing-login-card{min-height:340px}.landing-email-notice--panel,.landing-email-error--panel{margin-bottom:.5rem}.auth-honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}.verify-page{min-height:100vh;background:transparent;display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem;color:var(--text-primary)}.verify-card{width:min(520px,94vw);background:var(--surface-card);border-radius:1.4rem;border:1px solid var(--border-accent);box-shadow:var(--shadow-card-featured);padding:2.5rem 2.25rem;text-align:center}.verify-logo{width:160px;max-width:60%;height:auto;display:block;margin:0 auto 1.5rem}.verify-title{margin:0 0 .75rem;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;letter-spacing:-.02em;color:var(--text-primary)}.verify-text{margin:0 0 1.5rem;color:var(--text-secondary);line-height:1.6}.verify-cta{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.85rem 1.8rem;border-radius:999px;background:var(--btn-primary-bg);color:var(--btn-primary-color);font-weight:700;text-decoration:none;box-shadow:var(--btn-primary-shadow);transition:background .2s ease}.verify-cta:hover{background:var(--btn-primary-bg-hover)}.verify-spinner{width:42px;height:42px;margin:0 auto;border-radius:50%;border:3px solid rgba(255,255,255,.12);border-top-color:var(--accent-amber);animation:verify-spin 1s linear infinite}@keyframes verify-spin{to{transform:rotate(360deg)}}.verify-actions{display:flex;flex-direction:column;align-items:center;gap:.75rem}button.verify-cta{border:none;cursor:pointer;font:inherit}.verify-cta:disabled{opacity:.65;cursor:not-allowed}.verify-cta-secondary{border:none;background:transparent;color:var(--text-secondary);font:inherit;font-weight:600;cursor:pointer;padding:.35rem .5rem;text-decoration:underline;text-underline-offset:.2em}.verify-cta-secondary:hover{color:var(--text-primary)}.verify-notice{margin:0 0 1rem;color:#86efac;line-height:1.5}.verify-error{margin:0 0 1rem;color:#fca5a5;line-height:1.5}.app{min-height:100vh;display:flex;flex-direction:column}.app-shell--reveal{animation:app-reveal .55s ease both}@keyframes app-reveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.app-shell--reveal,.page-reveal{animation:none}.cached-img{transition:none;opacity:1}}.icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em;flex-shrink:0}.cached-img{opacity:0;transition:opacity .4s ease}.cached-img.is-ready{opacity:1}.page-reveal{animation:app-reveal .45s ease both;flex:1;display:flex;flex-direction:column;min-height:0;width:100%}.page-spinner{flex:1;min-height:50vh;margin:0}.app>main .page-spinner{min-height:calc(100vh - 8rem)}.app>main{flex:1;display:flex;flex-direction:column;min-height:0}.container{max-width:1200px;margin:0 auto;padding:0 1.5rem;width:100%}.header{background:#0a0a0eb8;backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:100}.nav{display:flex;justify-content:space-between;align-items:center;padding:1rem 0}.logo{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;color:var(--text-primary);text-decoration:none;transition:transform .2s ease,opacity .2s ease}.logo-icon{font-size:2rem}.logo-image{width:44px;height:44px;object-fit:contain;display:block;transition:.3s ease;filter:grayscale(1) brightness(0) invert(1)}.logo:hover{opacity:.9}.logo:focus-visible{outline:2px solid var(--primary-color);outline-offset:4px;border-radius:8px}.logo:hover img{filter:none}.logo-text{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav-links{display:flex;gap:2rem;align-items:center}.nav-credit-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;gap:.4rem;padding:0 10px;border-radius:999px;background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);transition:background .2s ease,border-color .2s ease}.nav-credit-link:hover{background:var(--btn-secondary-bg-hover);border-color:var(--border-accent)}.nav-credit-link:hover img{filter:invert(1) brightness(.7) sepia(1) saturate(206%) hue-rotate(-4deg)}.nav-credit-link:hover .nav-credit-balance{color:var(--primary-color)}.nav-credit-icon{width:20px;height:20px;display:block;filter:invert(1)}.nav-credit-balance{font-size:.85rem;font-weight:600;color:var(--text-secondary);transition:color .2s ease}.nav-credit-balance.flash{color:#ff9a2f}.nav-credit-balance.is-loading{opacity:.6}.nav-credit-balance.has-error{color:var(--text-muted, #a9b2c4);font-weight:500}.nav-links a{color:var(--text-secondary);text-decoration:none;font-weight:500;transition:color .2s ease}.nav-links a:hover{color:var(--primary-color)}.fab-roast{position:fixed;right:3.5rem;bottom:5.5rem;width:86px;height:86px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--btn-primary-bg);color:var(--btn-primary-color);box-shadow:0 0 40px -4px #ff8a2d73,0 18px 35px -12px #000000b3;text-decoration:none;z-index:100;transition:transform .2s ease,box-shadow .2s ease}.fab-roast i{font-size:2.5rem}.fab-roast:hover{background:var(--btn-primary-bg-hover);box-shadow:0 0 50px -4px #ff8a2d99,0 22px 40px -12px #000000bf}.fab-roast:focus-visible{outline:2px solid rgba(255,210,120,.9);outline-offset:4px}.nav-links .user-email{color:var(--text-secondary);font-size:.9rem;margin-right:1rem}.user-avatar{width:44px;height:44px;border-radius:999px;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border)}.user-menu{position:relative;display:inline-flex;align-items:center}.user-avatar-button{background:none;border:none;padding:0;cursor:pointer}.user-avatar-button:focus-visible{outline:2px solid rgba(255,210,120,.9);outline-offset:4px;border-radius:999px}.user-menu-dropdown{position:absolute;top:calc(100% + .75rem);right:0;min-width:210px;background:var(--surface-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:.9rem;box-shadow:var(--shadow-card);z-index:200;padding:.35rem;display:flex;flex-direction:column;gap:.15rem}.user-menu-item{display:inline-flex;align-items:center;gap:.6rem;padding:.55rem .75rem;border-radius:.6rem;text-decoration:none;color:var(--text-primary);background:none;border:none;font:inherit;cursor:pointer;text-align:left;width:100%}.user-menu-item i{font-size:1rem}.user-menu-item:hover,.user-menu-item:focus-visible{background:var(--bg-secondary);color:var(--text-primary)}.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}.user-avatar-fallback{color:var(--text-secondary);font-size:.85rem;font-weight:600}.notifications{position:relative;display:flex;align-items:center}.notifications-button{position:relative;background:none;border:none;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:1.1rem}.notifications-button:hover{color:var(--primary-color)}.notifications-icon{font-size:1.2rem}.notifications-badge{position:absolute;top:-6px;right:-8px;background:var(--primary-color);color:#fff;font-size:.7rem;font-weight:700;border-radius:999px;padding:.15rem .4rem;min-width:1.2rem;text-align:center}.notifications-dropdown{position:absolute;top:calc(100% + .75rem);right:0;width:320px;max-height:360px;overflow-y:auto;background:var(--surface-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:.9rem;box-shadow:var(--shadow-card);z-index:200}.notifications-list{display:flex;flex-direction:column}.notifications-empty{padding:1rem;color:var(--text-secondary);font-size:.9rem}.notifications-error{color:#c0392b}.notification-item{padding:.85rem 1rem;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:.35rem;color:var(--text-primary)}.notification-item:last-child{border-bottom:none}.notification-item.unread{font-weight:600}.notification-title{font-size:.95rem}.notification-body{font-size:.85rem;color:var(--text-secondary);font-weight:500}.notification-time{font-size:.75rem;color:var(--text-secondary)}.btn-link{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-weight:500;font-size:1.5rem;font-family:inherit;padding:0;transition:color .2s ease}.nav-icon-button{display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;line-height:1}.btn-link:hover{color:var(--primary-color)}.btn-link-active{color:var(--primary-color);font-weight:600}.account-page{padding:3rem 0 4rem}.account-card{background:var(--surface-card);border:1px solid var(--border-color);border-radius:1.4rem;box-shadow:var(--shadow-card);padding:2rem}.account-card h1{margin-bottom:.5rem}.account-card p{color:var(--text-secondary);margin:0}.account-header{margin-bottom:2rem}.account-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:2rem;align-items:start}.account-main,.account-side{display:flex;flex-direction:column;gap:1.5rem}.account-balance-card{display:flex;flex-direction:column;gap:.35rem;padding:2.25rem;border-radius:1.4rem;background:var(--surface-card);color:var(--text-primary);text-decoration:none;border:1px solid var(--border-accent);box-shadow:var(--shadow-card-featured);transition:box-shadow .25s ease,border-color .25s ease;position:relative;overflow:hidden}.account-balance-card:hover{border-color:#ff9a2fbf}.account-balance-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;opacity:.75}.account-balance-value{font-size:clamp(2.5rem,4vw,3.2rem);font-weight:700}.account-balance-cta{font-size:1rem;font-weight:600;color:var(--primary-color);margin-top:.5rem}.account-balance-error{font-size:.85rem;line-height:1.35;color:var(--text-muted, #a9b2c4);margin-top:.35rem;max-width:28rem}.account-section-card{background:var(--surface-card);border:1px solid var(--border-color);border-radius:1.4rem;padding:1.75rem;box-shadow:var(--shadow-card)}.account-status-card{display:flex;align-items:center;gap:1rem;background:#ff9a2f1a;border:1px solid rgba(255,154,47,.35);border-radius:1.1rem;padding:1.1rem 1.4rem;margin-bottom:1.5rem}.account-status-icon{font-size:1.6rem;line-height:1;flex:0 0 auto}.account-status-copy{flex:1 1 auto;min-width:0}.account-status-copy h3{margin:0 0 .25rem;font-size:1.05rem;color:var(--text-primary)}.account-status-copy p{margin:0;color:var(--text-secondary);line-height:1.5}.account-status-cta{flex:0 0 auto;white-space:nowrap;text-decoration:none}@media(max-width:640px){.account-status-card{flex-wrap:wrap}.account-status-cta{width:100%;text-align:center}}.account-section-header h2{font-size:1.2rem;margin-bottom:.35rem}.account-section-header p{color:var(--text-secondary);margin:0 0 1.5rem}.account-details-grid{display:grid;gap:1rem}.account-detail{display:flex;flex-direction:column;gap:.25rem;padding-bottom:.75rem;border-bottom:1px dashed var(--border-color)}.account-detail:last-child{border-bottom:none;padding-bottom:0}.account-detail-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}.account-detail-value{font-size:1rem;font-weight:600;color:var(--text-primary);word-break:break-word}.account-actions-card .account-section-header p{margin-bottom:1rem}.account-danger{display:flex;flex-direction:column;gap:1rem;background:#ef444414;border:1px solid rgba(248,113,113,.3);border-radius:.9rem;padding:1rem}.account-danger p{margin:0;color:#fca5a5}.account-delete-layout{grid-template-columns:minmax(0,1fr);justify-items:center}.account-delete-dialog{width:min(420px,90vw);text-align:center}.hero{position:relative;overflow:hidden;background:transparent;padding:2.5rem 0;text-align:center;flex:1;min-height:0}.sparks-bg-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;z-index:0;opacity:0;transition:opacity 1.2s ease-in-out}.sparks-bg-canvas.is-ready{opacity:1}.hero--calm-backdrop .sparks-bg-canvas,.hero--calm-backdrop .sparks-bg-canvas.is-ready{opacity:0}.hero-calm-gradient{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:0;transition:opacity 1.2s ease-in-out;background:var(--bg-page);background-attachment:fixed}.hero--calm-backdrop .hero-calm-gradient{opacity:1}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,#06070a59,#06070a26,#06070a73);pointer-events:none;z-index:1;transition:opacity 1.2s ease-in-out,background 1.2s ease-in-out}.hero-overlay--calm{opacity:.88;background:linear-gradient(to bottom,#06070a33,#06070a0f,#06070a42)}.hero-content{max-width:800px;margin:0 auto;position:relative;z-index:2}.hero-title{font-size:clamp(2.5rem,5vw,4rem);font-weight:800;line-height:1.1;margin-bottom:1.5rem;color:var(--text-primary)}.gradient-text{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.25rem;color:var(--text-secondary);margin-bottom:2.5rem;line-height:1.6}.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.upload-section{max-width:600px;margin:0 auto;width:100%}.upload-section.upload-section--session-roast-first{display:flex;flex-direction:column-reverse;gap:0}.upload-section.upload-section--session-roast-first .roast-section{margin-top:0;margin-bottom:1.25rem}@media(prefers-reduced-motion:reduce){.sparks-bg-canvas,.hero-calm-gradient,.hero-overlay{transition-duration:.01ms!important}}.upload-area{position:relative;display:flex;align-items:center;justify-content:center;border:1px dashed var(--border-strong);border-radius:1.25rem;padding:1.5rem;background:var(--surface-card);box-shadow:var(--shadow-card);cursor:pointer;transition:border-color .25s ease,box-shadow .25s ease;margin-bottom:2rem;min-height:300px}.upload-area:hover{border-color:var(--border-accent);box-shadow:0 0 0 1px #ff9a2f80,0 0 18px #ff8a2d52,var(--shadow-card)}.upload-area.roasting-state{cursor:default;border:none;padding:1rem;min-height:auto;background:transparent;margin-bottom:0}.upload-placeholder{text-align:center}.upload-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;max-width:90%;padding:.9rem 1.1rem;border-radius:12px;border:1px solid rgba(255,99,71,.45);background:#ff63471f;color:#ffd9d0;text-align:center;animation:fadeIn .3s ease forwards;cursor:default}.upload-error-icon{color:#ff8c6b;font-size:1.5rem}.upload-error-text{margin:0;font-size:.95rem;line-height:1.45;color:inherit}.upload-icon{font-size:4rem;margin-bottom:1rem}.upload-icon-img{width:4rem;height:4rem;object-fit:contain;opacity:.8}.upload-text{font-size:1.125rem;color:var(--text-primary);margin-bottom:.5rem}.upload-text-bold{font-weight:600;color:var(--primary-color)}.upload-hint{font-size:.875rem;color:var(--text-secondary)}.file-input{display:none}.image-preview-container{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;transition:all .8s ease}.upload-area.roasting-state .image-preview-container{justify-content:center;align-items:flex-start;padding-top:0}.image-preview{max-width:100%;max-height:400px;border-radius:.5rem;object-fit:contain;transition:all .8s ease}.image-preview.roasting-image{max-width:200px;max-height:200px;margin-bottom:2rem;border-radius:.75rem;box-shadow:var(--shadow-lg)}.image-preview.image-preview--safety-rejected{filter:grayscale(1) blur(3px)}.image-safety-overlay{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:1rem 1.1rem;text-align:center;border-radius:.5rem;background:#0c0806b8;color:#ffd9d0;border:1px solid rgba(255,99,71,.45)}.image-safety-overlay__text{margin:0;max-width:20rem;font-size:.95rem;line-height:1.5;color:inherit}.remove-image-btn{position:absolute;top:1rem;right:1rem;z-index:2;width:2.5rem;height:2.5rem;border-radius:50%;background:#000000b3;color:#fff;border:none;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;line-height:1}.remove-image-btn:hover{background:#000000e6;transform:scale(1.1)}.conditions-section{margin-bottom:2rem;display:flex;justify-content:center}.checkbox-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-input{width:1.25rem;height:1.25rem;cursor:pointer;accent-color:var(--primary-color)}.checkbox-text{font-size:1rem;color:var(--text-primary)}.harshness-section{width:100%;max-width:420px;margin:0 auto 2rem;display:flex;flex-direction:column;gap:.75rem}.harshness-label{font-size:.95rem;color:var(--text-primary)}.harshness-switch{--harshness-gap: .5rem;--harshness-index: 0;position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--harshness-gap);padding:.35rem;border-radius:999px;background:linear-gradient(135deg,#181008eb,#060402e6);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 0 0 1px #00000080,var(--shadow-sm)}.harshness-track{position:absolute;inset:.35rem;border-radius:999px;background:#0f0a0559;z-index:0;pointer-events:none}.harshness-indicator{position:absolute;top:0;left:0;height:100%;width:calc((100% - (var(--harshness-gap) * 3)) / 4);transform:translate(calc(var(--harshness-index) * (100% + var(--harshness-gap))));border-radius:999px;background:linear-gradient(140deg,#ffb85cf2,#ff7837d9);box-shadow:0 10px 20px #ff8c3c40,inset 0 0 10px #ffffff26;transition:transform .25s ease,width .25s ease}.harshness-pill{position:relative;z-index:1;border:none;border-radius:999px;background:transparent;color:#ffffffb8;padding:.65rem .3rem;font-size:.82rem;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:color .2s ease,transform .2s ease}.harshness-pill:hover{color:var(--text-primary)}.harshness-pill.selected{color:#20140a}.harshness-pill-label{display:block;text-align:center;text-shadow:0 1px 1px rgba(0,0,0,.25)}.harshness-pill:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-roast{width:100%;max-width:400px;margin:0 auto;display:block}.roast-action{width:100%;max-width:400px;margin:0 auto}.btn-no-credits-unified{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.35rem .55rem;width:100%;max-width:400px;margin-left:auto;margin-right:auto;box-sizing:border-box;cursor:default;opacity:.88;pointer-events:none}.btn-no-credits-unified:hover{background:var(--btn-primary-bg);transform:none}.btn-no-credits-unified__state{opacity:.82}.btn-no-credits-unified__buy{pointer-events:auto;font-weight:800;color:var(--btn-primary-color);text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px;opacity:1}.btn-no-credits-unified__buy:hover{color:#fff8f0;filter:brightness(1.06)}.btn-no-credits-unified__buy:focus-visible{outline:2px solid rgba(255,248,236,.95);outline-offset:2px;border-radius:.2rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn:disabled:hover{transform:none;box-shadow:var(--shadow-md)}.btn-copied:disabled{cursor:default}.btn-copied:disabled:hover{box-shadow:none}.fade-out{animation:fadeOut .8s ease forwards}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px);pointer-events:none;height:0;margin:0;padding:0;overflow:hidden}}.roast-section{margin-top:2rem;min-height:200px;opacity:1}.roast-section--stack{position:relative}.roast-section__pane{width:100%}.roast-section__pane--visible{position:relative;visibility:visible;z-index:1}.roast-section__pane--hidden{position:absolute;left:0;right:0;top:0;visibility:hidden;pointer-events:none;z-index:0}.upload-section--roast-active:not(.upload-section--roast-has-text) .roast-section{animation:fadeIn .6s ease .2s forwards;opacity:0}.upload-section--roast-has-text .roast-section{animation:none;opacity:1}.roast-error{display:flex;align-items:flex-start;gap:.75rem;margin-top:1.25rem;padding:.9rem 1.1rem;border-radius:12px;border:1px solid rgba(255,99,71,.45);background:#ff63471f;color:#ffd9d0;animation:fadeIn .3s ease forwards}.roast-error-icon{flex:0 0 auto;color:#ff8c6b;font-size:1.15rem;margin-top:.15rem}.roast-error-text{margin:0;font-size:.95rem;line-height:1.45;color:inherit}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem}.loading-spinner{position:relative;flex-shrink:0;width:52px;aspect-ratio:639 / 680;margin-bottom:1.5rem;border:none;border-radius:0;-webkit-mask-image:url(/logo/rl2b.svg);mask-image:url(/logo/rl2b.svg);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;background:transparent}.loading-spinner:before{content:"";position:absolute;inset:0;background:conic-gradient(from 0deg at 50% 50%,transparent 0deg 119deg,#ffbc70 68deg 231deg,#ff7a2f 291deg 360deg);animation:spin 1.6s linear infinite;width:75px;height:75px;margin-left:-15px;margin-top:-11px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{font-size:1.25rem;color:var(--primary-color);font-weight:600;text-align:center}.pre-roast-quip{font-size:1.25rem;font-weight:600;color:var(--primary-color);text-align:center;min-height:2em;transition:opacity .3s ease,transform .3s ease}.pre-roast-quip-in{opacity:1;transform:translateY(0)}.pre-roast-quip-out{opacity:0;transform:translateY(6px)}.roast-text-container{position:relative;background:var(--surface-card);border-radius:1.4rem;padding:2.5rem;box-shadow:var(--shadow-card);border:1px solid var(--border-color);max-width:700px;margin:0 auto}.roast-text-container--feedback-open{overflow:hidden}.roast-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:1.5rem;text-align:center}.roast-text-stack{position:relative;width:100%}.roast-text-stack__layer{width:100%}.roast-text-stack__layer--visible{position:relative;visibility:visible;z-index:1}.roast-text-stack__layer--hidden{position:absolute;left:0;right:0;top:0;visibility:hidden;pointer-events:none;z-index:0}.roast-text--streaming{white-space:pre-wrap}.roast-typewriter-caret{display:inline-block;width:.1ch;min-height:1.1em;margin-left:.1ch;border-right:2px solid var(--text-primary);vertical-align:-.1em;animation:roast-typewriter-blink .85s step-end infinite;opacity:.9}@keyframes roast-typewriter-blink{0%,49%{border-right-color:var(--text-primary)}50%,to{border-right-color:transparent}}.roast-text{font-size:1.125rem;line-height:1.8;color:var(--text-primary);text-align:center;margin-bottom:1.5rem;max-width:100%;white-space:pre-wrap;word-break:keep-all;overflow-wrap:break-word}.word{transition:color .15s ease,opacity .15s ease,background-color .15s ease,box-shadow .15s ease;display:inline;padding:3px;margin:0;border-radius:3px;font-weight:500;background-color:transparent;white-space:normal;vertical-align:baseline;cursor:pointer}.word:not([role=button]){cursor:inherit}.word--reveal{opacity:0;transition:opacity .1s ease-out,color .15s ease,background-color .15s ease,box-shadow .15s ease;pointer-events:none}.word--reveal.word--visible{opacity:1;pointer-events:auto}.word--reveal.word--visible:not([role=button]){pointer-events:none}.word-highlighted{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;box-shadow:0 1px 3px #6366f14d}.word-past{color:var(--text-secondary);opacity:.7;background-color:transparent}.roast-player-audio-hidden{position:absolute;width:0;height:0;margin:0;padding:0;border:0;opacity:0;pointer-events:none;visibility:hidden}.audio-controls{position:relative;display:flex;justify-content:center;margin-top:2rem}.audio-controls--home-stream{margin-top:0;margin-bottom:1rem}.audio-icon{font-size:1em;line-height:1;display:inline-flex;align-items:center;flex-shrink:0}.audio-loading-spinner{width:1em;height:1em;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin .8s linear infinite;display:inline-block;flex-shrink:0}.btn-audio:disabled{opacity:.6;cursor:not-allowed}.btn-audio:disabled:hover{transform:none;box-shadow:var(--shadow-md)}.audio-unavailable{margin-top:2rem;text-align:center}.audio-unavailable-text{color:var(--text-secondary);font-size:.9rem;font-style:italic;padding:1rem;background:var(--btn-secondary-bg);border-radius:.85rem;border:1px solid var(--btn-secondary-border)}.offline-icon{font-size:2.5rem;margin-bottom:1rem}.network-connectivity-offline{position:fixed;bottom:1.25rem;left:1.25rem;z-index:110;min-height:52.8px;padding:.6rem 1rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;background:var(--surface-card);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-color);color:var(--text-secondary);box-shadow:var(--shadow-card);pointer-events:none;font-size:1.08rem;font-weight:600}.network-connectivity-offline i{font-size:1.44rem;flex-shrink:0}.network-connectivity-offline-label{line-height:1.2;white-space:nowrap}.network-connectivity-back-online{position:fixed;bottom:1.25rem;left:1.25rem;z-index:110;min-height:52.8px;display:inline-flex;align-items:center;gap:.45rem;padding:.6rem 1rem;border-radius:999px;font-size:1.08rem;font-weight:600;color:#0f3d1f;background:linear-gradient(135deg,#4ade80,#22c55e);box-shadow:0 10px 28px #22c55e59;pointer-events:none;animation:network-back-online-in .35s ease-out}.network-connectivity-back-online i{font-size:1.44rem;flex-shrink:0}.network-connectivity-back-online-label{line-height:1.2;white-space:nowrap}@keyframes network-back-online-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.btn{padding:.85rem 1.25rem;font-size:.95rem;font-weight:600;border:1px solid transparent;border-radius:.85rem;cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .15s ease;text-decoration:none;line-height:1.2}.btn:active:not(:disabled){transform:translateY(1px)}.btn-with-icon{display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-audio{display:flex!important;align-items:center;gap:.75rem;min-width:150px;justify-content:center;font-size:1rem}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-color);box-shadow:var(--btn-primary-shadow);border-color:transparent}.btn-primary:hover:not(:disabled){background:var(--btn-primary-bg-hover)}.btn-secondary{background:var(--btn-secondary-bg);color:var(--text-primary);border-color:var(--btn-secondary-border)}.btn-secondary:hover:not(:disabled){background:var(--btn-secondary-bg-hover);border-color:var(--btn-secondary-border-hover)}.btn-danger{background:#ef44441f;color:#fca5a5;border-color:#f8717166}.btn-danger:hover:not(:disabled){background:#ef44442e;border-color:#f87171a6}.btn-danger:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-large{padding:1rem 2rem;font-size:1.05rem}.history-page{background:transparent;padding:1.5rem 0;flex:1;display:flex;flex-direction:column;min-height:0}.history-page>.container{flex:1;display:flex;flex-direction:column;min-height:0}.history-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:stretch;flex:1;min-height:0;position:relative}.history-layout .home-main{width:min(900px,100%);justify-self:center}.history-layout.history-layout--no-sidebar{justify-items:center}.history-layout.history-layout--post-roast-sidebar-entrance{overflow-x:hidden}.home-shell{position:relative;z-index:2}.home-stage--vault{display:flex;flex-direction:column}.home-stage--vault>.container{flex:1;min-height:0;display:flex;flex-direction:column;max-width:1360px}.home-shell--upload .history-sidebar{display:none}.home-shell--upload .home-main{overflow:visible}.home-shell--vault .home-main{padding-top:1.5rem;padding-bottom:1.5rem}.home-main--saved{text-align:left}.home-head--collapsed{display:none}.upload-section--roast-active .upload-area{cursor:default}@keyframes history-sidebar-slide-from-left{0%{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:translateZ(0)}}.history-sidebar.history-sidebar--entrance-slide-left{animation:history-sidebar-slide-from-left 1.05s cubic-bezier(.22,1,.36,1) forwards}@media(prefers-reduced-motion:reduce){.history-sidebar.history-sidebar--entrance-slide-left{animation:none}}.history-sidebar{position:absolute;left:0;top:0;bottom:0;width:248px;z-index:3;background:var(--surface-card);border:1px solid var(--border-color);border-radius:1.4rem;padding:1.5rem;box-shadow:var(--shadow-card);overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;min-height:0}.history-header{margin-bottom:1.5rem}.history-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.history-subtitle{color:var(--text-secondary);font-size:.95rem}.history-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:var(--text-secondary);background:var(--btn-secondary-bg);border-radius:1rem;border:1px dashed var(--border-strong);gap:1rem}.history-loading .loading-spinner{width:36px;margin-bottom:0}.history-loading .loading-text{font-size:1rem;color:var(--text-secondary)}.history-error,.history-empty{padding:1rem;text-align:center;color:var(--text-secondary);background:var(--btn-secondary-bg);border-radius:1rem;border:1px dashed var(--border-strong)}.history-error{color:#dc2626;border-color:#dc26264d}.history-list{display:grid;gap:.85rem;overflow-y:auto;padding-right:.25rem;flex:1;min-height:0}.history-item{text-align:left;background:var(--surface-card);border:1px solid var(--border-color);border-radius:1rem;padding:0;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;font-family:inherit;color:var(--text-primary);overflow:hidden;aspect-ratio:auto;height:200px}.history-item:hover{border-color:var(--border-strong)}.history-item.active{border-color:var(--border-accent);box-shadow:var(--shadow-card-featured)}.history-item.history-item--disabled{pointer-events:none;cursor:not-allowed;opacity:.55}.history-item.history-item--disabled:hover{border-color:var(--border-color)}.history-thumb{width:100%;height:100%}.history-thumb-image{width:100%;height:100%;object-fit:cover;display:block}.history-thumb-placeholder{width:100%;height:100%;display:grid;place-items:center;font-size:1.6rem;color:var(--text-secondary);background:linear-gradient(140deg,#ff9a2f1f,#0f0f14e6)}.history-loading-more{display:flex;align-items:center;justify-content:center;height:200px;border-radius:1rem;border:1px dashed var(--border-strong);background:var(--btn-secondary-bg)}.history-loading-more .loading-spinner{width:40px;margin-bottom:0}.history-detail{min-height:0;overflow-y:auto}.history-actions{display:flex;justify-content:center;gap:.75rem;margin-bottom:1rem}.modal-backdrop{position:fixed;inset:0;background:var(--surface-overlay);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:200}.modal-layout{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem;display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:2rem;align-items:center}.modal-layout .modal-dialog{grid-column:1;justify-self:center}.modal-dialog{background:var(--surface-card);border-radius:1.4rem;padding:2rem;width:min(480px,90vw);box-shadow:var(--shadow-card);border:1px solid var(--border-color);position:relative}.auth-modal-dialog{width:min(420px,92vw);padding:1.75rem 1.5rem 1.25rem}.auth-modal-dialog .modal-text{margin-bottom:.75rem}.roast-preview-lock{display:grid;width:100%}.roast-preview-lock>*{grid-area:1 / 1}.roast-preview-lock__gibberish{filter:blur(9px);-webkit-user-select:none;user-select:none;pointer-events:none;opacity:.7}.roast-preview-lock__overlay{display:flex;align-items:center;justify-content:center;padding:4.5rem 0 1rem;z-index:1}.roast-preview-lock__card.modal-dialog{width:min(420px,100%);height:fit-content}.roast-preview-lock__card .landing-login-panel.is-compact{min-height:0;padding:.25rem 0 0}.roast-preview-lock__card .landing-login-panel.is-compact .landing-login-card,.roast-preview-lock__card .landing-login-panel.is-compact.is-expanded .landing-login-card{min-height:0}.roast-preview-lock__card .landing-login-card:not(.is-flipped) .landing-login-front{position:static}.roast-preview-lock__card .landing-login-card:not(.is-flipped) .landing-login-back{position:absolute;inset:0}.nav-sign-in{border:none;background:transparent;cursor:pointer;font:inherit}.share-modal-dialog{text-align:center}.share-modal-dialog .modal-actions{justify-content:center}.share-modal-dialog .modal-error{text-align:center}.modal-close{position:absolute;top:.75rem;right:.75rem;border:0;background:transparent;color:var(--text-secondary);font-size:1.1rem;cursor:pointer}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-title{font-size:1.5rem;font-weight:700;margin-bottom:.75rem;color:var(--text-primary)}.modal-text{color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.5}.referral-error-log-phase{margin:0 0 .5rem;font-size:.8125rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-secondary)}.referral-invite-code-line{margin-top:-.25rem;margin-bottom:1rem}.referral-invite-code-line code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.95em;color:var(--text-primary)}.modal-error{color:#dc2626;margin-bottom:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem}.share-link-row{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem}.share-social-row{display:flex;gap:.75rem;justify-content:center;align-items:center}.share-social-link{width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-accent);background:var(--btn-secondary-bg);color:var(--accent-amber);text-decoration:none;transition:background .2s ease,border-color .2s ease}.share-social-link i{font-size:1.2rem}.share-social-link:hover{background:#ff9a2f1f;border-color:#ff9a2fbf}.share-success-dialog{text-align:center;background:var(--surface-card);border:1px solid var(--border-accent);box-shadow:var(--shadow-card-featured)}.share-success-dialog .modal-title{margin-top:.5rem}.share-success-dialog .modal-text{text-align:center;margin-bottom:1rem}.share-social-preview{width:100%;margin-bottom:1.25rem;border-radius:.75rem;overflow:hidden;border:1px solid var(--border-accent)}.share-social-preview-img{display:block;width:100%;height:auto;aspect-ratio:865 / 454;object-fit:cover}.share-success-dialog .share-link-row{justify-content:center}.share-success-dialog .share-link-input{text-align:center;background:#06070a8c;border-color:#ff9a2f40}.share-link-input{flex:1;padding:.75rem .9rem;border-radius:.7rem;border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--text-primary);font-size:.95rem}.history-image-card{background:var(--surface-card);border-radius:1.4rem;padding:1.5rem;box-shadow:var(--shadow-card);border:1px solid var(--border-color);margin-bottom:1.5rem;max-width:248px;width:fit-content;margin-left:auto;margin-right:auto}.history-image{width:100%;max-width:200px;max-height:200px;height:auto;object-fit:contain;background:var(--bg-accent);border-radius:.75rem;display:block}.history-image.is-cover{object-fit:cover}.footer{background:transparent;color:var(--text-primary);padding:1.25rem 0;text-align:center;margin-top:auto;border-top:1px solid var(--border-color)}.footer-text{color:var(--text-secondary)}.footer-link{color:var(--text-primary);text-decoration:none;font-weight:500;margin-left:.5rem}.footer-link:hover{color:var(--primary-color)}.footer-divider{margin:0 .5rem;color:var(--text-secondary)}@media(min-width:769px){.app:has(.history-page),.app:has(.home-stage--vault){height:100vh;overflow:hidden}.history-page,.home-stage--vault{overflow:hidden}}@media(max-width:768px){.logo-text{display:none}.nav-links{gap:1rem;font-size:.9rem}.notifications-dropdown{width:260px;right:-.5rem}.history-layout,.account-layout,.modal-layout{grid-template-columns:1fr}.modal-layout .modal-dialog{grid-column:1}.history-page,.home-stage--vault{overflow:visible;padding:2rem 0}.home-stage--vault,.home-stage--vault>.container{display:block}.home-stage--vault .home-main{overflow:visible}.history-sidebar{position:static;width:auto;max-height:none;grid-row:2}.history-detail{grid-row:1;min-height:320px;overflow-y:visible}.history-list{display:flex;flex-direction:row;gap:.85rem;overflow-x:auto;overflow-y:hidden;padding:0 .25rem .5rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.history-item{flex:0 0 9rem;aspect-ratio:1 / 1;height:auto;scroll-snap-align:start}.hero{padding:4rem 0}.hero-subtitle{font-size:1.125rem}.upload-area{min-height:250px;padding:2rem 1rem}.image-preview{max-height:300px}.image-preview.roasting-image{max-width:150px;max-height:150px}.roast-text-container{padding:1.5rem}.roast-title{font-size:1.5rem}.roast-text{font-size:1rem}.btn-audio{min-width:120px;padding:.625rem 1rem;font-size:.875rem}}.roast-feedback{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;margin-top:.9rem;min-height:1.75rem;text-align:right}.roast-feedback__slot{display:flex;align-items:center;flex:1 1 auto;min-width:0;gap:.3rem;overflow:hidden;white-space:nowrap;animation:roast-feedback-fade-in .18s ease}.roast-feedback__slot>:first-child{margin-left:auto}@keyframes roast-feedback-fade-in{0%{opacity:0}to{opacity:1}}.roast-feedback__prompt{flex:0 0 auto;font-size:.75rem;color:var(--text-muted);transition:color .2s ease}.roast-feedback:hover .roast-feedback__prompt{color:var(--text-secondary)}.roast-feedback__thumbs{display:inline-flex;flex:0 0 auto;align-items:center;gap:.125rem}.roast-feedback__thumb{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;cursor:pointer;border:none;border-radius:.5rem;background:transparent;color:var(--text-muted);transition:color .15s ease,background .15s ease,transform .15s ease}.roast-feedback__thumb svg{display:block}.roast-feedback__thumb--down svg{transform:rotate(180deg)}.roast-feedback__thumb--flag{margin-left:.2rem}.roast-feedback__thumb:hover{color:var(--text-primary);background:var(--btn-secondary-bg-hover)}.roast-feedback__thumb--selected,.roast-feedback__thumb--selected:hover{color:var(--accent-amber);background:#ff9a2f1f}.roast-feedback__thumb--flag.roast-feedback__thumb--selected,.roast-feedback__thumb--flag.roast-feedback__thumb--selected:hover{color:#ff7a6b;background:#ff7a6b24}.roast-feedback__thumb:focus-visible{outline:2px solid var(--accent-amber);outline-offset:2px}.roast-feedback__thumb--flag:focus-visible{outline-color:#ff7a6b}.roast-feedback--saved .roast-feedback__thumb--selected{animation:roast-feedback-pop .35s ease}@keyframes roast-feedback-pop{0%{transform:scale(1)}45%{transform:scale(1.18)}to{transform:scale(1)}}.roast-feedback__thanks{display:inline-flex;flex:0 0 auto;align-items:center;gap:.4rem;margin:0;font-size:.75rem;white-space:nowrap;color:var(--text-muted)}.roast-feedback__change{padding:0;font-size:.75rem;color:var(--text-secondary);text-decoration:underline;cursor:pointer;background:none;border:none}.roast-feedback__change:hover{color:var(--text-primary)}.roast-feedback__change:focus-visible,.roast-feedback__other:focus-visible,.roast-feedback__dialog-close:focus-visible,.roast-feedback__dialog-done:focus-visible,.roast-feedback__reason-row:focus-visible{outline:2px solid var(--accent-amber);outline-offset:2px}.roast-feedback__overlay{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#06070a9e;backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);cursor:pointer}.roast-feedback__dialog{width:min(22rem,100%);max-height:min(28rem,100%);display:flex;flex-direction:column;padding:.9rem .85rem .75rem;cursor:default;text-align:left;border-radius:1rem;border:1px solid var(--border-strong);background:#121218f0;box-shadow:var(--shadow-lg)}.roast-feedback__dialog-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.55rem;padding:0 .25rem .15rem}.roast-feedback__dialog-title{margin:0;font-size:.95rem;font-weight:650;color:var(--text-primary)}.roast-feedback__dialog-close{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:1.85rem;height:1.85rem;padding:0;cursor:pointer;border:none;border-radius:.5rem;background:transparent;color:var(--text-muted)}.roast-feedback__dialog-close:hover{color:var(--text-primary);background:var(--btn-secondary-bg-hover)}.roast-feedback__reason-list{list-style:none;margin:0;padding:0;overflow-y:auto;display:flex;flex-direction:column;gap:.2rem}.roast-feedback__reason-row{display:block;width:100%;padding:.55rem .7rem;font-size:.88rem;line-height:1.3;text-align:left;color:var(--text-secondary);cursor:pointer;border-radius:.6rem;border:1px solid transparent;background:transparent;transition:color .15s ease,background .15s ease,border-color .15s ease}.roast-feedback__reason-row:hover{color:var(--text-primary);background:var(--btn-secondary-bg-hover)}.roast-feedback__reason-row--selected{color:var(--text-primary);border-color:var(--border-accent);background:#ff9a2f24}.roast-feedback__dialog-other{display:flex;align-items:center;gap:.4rem;margin-top:.55rem;padding:0 .15rem}.roast-feedback__other{flex:1 1 auto;min-width:0;height:1.85rem;padding:0 .65rem;font-size:.8rem;color:var(--text-primary);border-radius:.55rem;border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg)}.roast-feedback__dialog-done{flex:0 0 auto;height:1.85rem;padding:0 .7rem;font-size:.75rem;font-weight:600;cursor:pointer;color:var(--text-on-amber);border:none;border-radius:.55rem;background:var(--btn-primary-bg)}.roast-feedback__dialog-done:hover{background:var(--btn-primary-bg-hover)}.roast-feedback__dialog-dismiss{margin-top:.45rem;padding:.45rem .5rem;font-size:.78rem;color:var(--text-muted);cursor:pointer;background:none;border:none;text-align:center}.roast-feedback__dialog-dismiss:hover{color:var(--text-primary)}.roast-feedback__dialog-dismiss:focus-visible{outline:2px solid var(--accent-amber);outline-offset:2px}.roast-feedback__toast{position:absolute;left:50%;top:50%;z-index:9;padding:.7rem 1.35rem;font-size:1rem;font-weight:650;letter-spacing:.01em;color:var(--text-on-amber);white-space:nowrap;pointer-events:none;border-radius:999px;background:var(--btn-primary-bg);box-shadow:var(--btn-primary-shadow),var(--shadow-lg);transform:translate(-50%,-50%);animation:roast-feedback-toast-in .28s ease-out}@keyframes roast-feedback-toast-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 8px)) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media(prefers-reduced-motion:reduce){.roast-feedback--saved .roast-feedback__thumb--selected,.roast-feedback__slot,.roast-feedback__toast{animation:none}}@media(max-width:768px){.roast-feedback{min-height:2.25rem}.roast-feedback__thumb{width:2.25rem;height:2.25rem}.roast-feedback__reason-row{padding:.7rem .8rem;font-size:.95rem}.roast-feedback__dialog-close{width:2.25rem;height:2.25rem}}.landing-email-newsletter-note{margin:.6rem 0 0;font-size:.72rem;line-height:1.45;color:#f6f1e88c;text-align:center}*{margin:0;padding:0;box-sizing:border-box}:root{color-scheme:dark;--primary-color: #ffb45f;--primary-dark: #ff7a2f;--secondary-color: #ff8f3d;--accent-amber: #ff9a2f;--accent-amber-soft: rgba(255, 154, 47, .55);--text-primary: #f5f7fb;--text-secondary: rgba(245, 247, 251, .6);--text-muted: rgba(245, 247, 251, .45);--text-on-amber: #1a0e03;--bg-primary: #13141a;--bg-secondary: #0e0f14;--bg-accent: #1b1d24;--surface-card: linear-gradient(180deg, rgba(22, 22, 28, .92) 0%, rgba(15, 15, 20, .92) 100%);--surface-card-hover: linear-gradient(180deg, rgba(26, 26, 34, .94) 0%, rgba(18, 18, 24, .94) 100%);--surface-overlay: rgba(6, 7, 10, .78);--border-color: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .12);--border-accent: rgba(255, 154, 47, .55);--btn-primary-bg: linear-gradient(180deg, #ffa63a 0%, #f58a1f 100%);--btn-primary-bg-hover: linear-gradient(180deg, #ffb24e 0%, #ff9526 100%);--btn-primary-color: #1a0e03;--btn-primary-shadow: 0 10px 24px -12px rgba(255, 138, 45, .6);--btn-secondary-bg: rgba(255, 255, 255, .035);--btn-secondary-bg-hover: rgba(255, 255, 255, .065);--btn-secondary-border: rgba(255, 255, 255, .08);--btn-secondary-border-hover: rgba(255, 255, 255, .14);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .35);--shadow-md: 0 10px 24px -14px rgb(0 0 0 / .55);--shadow-lg: 0 18px 40px -22px rgb(0 0 0 / .65);--shadow-xl: 0 28px 55px -26px rgb(0 0 0 / .75);--shadow-card: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 18px 40px -24px rgba(0, 0, 0, .7);--shadow-card-featured: 0 0 0 1px rgba(255, 154, 47, .25), 0 0 60px -6px rgba(255, 138, 45, .28), 0 24px 55px -26px rgba(0, 0, 0, .8);--scrollbar-size: 10px;--scrollbar-thumb: rgba(255, 164, 70, .78);--scrollbar-thumb-hover: rgba(255, 186, 96, .95);--bg-page: radial-gradient( 120% 80% at 50% -10%, rgba(255, 138, 56, .18) 0%, rgba(120, 48, 12, .08) 28%, rgba(8, 6, 10, 0) 60% ), radial-gradient( 90% 60% at 50% 110%, rgba(90, 30, 10, .16) 0%, rgba(8, 6, 10, 0) 60% ), #06070a}html,body{height:100%;background:var(--bg-page);background-attachment:fixed;overscroll-behavior:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary);line-height:1.6}#root{min-height:100%}.page-spinner.loading-container,.boot-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;margin:0}html,*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}*::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size);background:transparent;border:none}*::-webkit-scrollbar-track,*::-webkit-scrollbar-track-piece,*::-webkit-scrollbar-corner{background:transparent;border:none;box-shadow:none}*::-webkit-scrollbar-button{display:none;width:0;height:0}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:none;border-radius:999px;box-shadow:none}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
