:root {
  --ink: #191620;
  --muted: #746c7c;
  --line: #eadfe3;
  --paper: #fffdfc;
  --wash: #fff7f5;
  --soft: #f8f2f3;
  --rose: #f04f6f;
  --rose-dark: #cf3657;
  --peach: #ffb49f;
  --plum: #503044;
  --green: #2d916f;
  --shadow: 0 14px 40px rgba(70, 32, 47, .09);
  --sidebar: 232px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
::selection { background: #ffd5dd; }

.shell { min-height: 100vh; }
.sidebar {
  position: fixed;
  z-index: 40;
  inset: 0 auto 0 0;
  width: var(--sidebar);
  border-right: 1px solid var(--line);
  background: rgba(255, 253, 252, .96);
  display: flex;
  flex-direction: column;
  padding: 18px 14px 14px;
  transition: width .24s ease, padding .24s ease;
}
.brand { display: flex; align-items: center; gap: 11px; padding: 0 8px 20px; font-size: 20px; font-weight: 850; letter-spacing: -.8px; }
.brand-mark { width: 40px; height: 40px; border-radius: 12px; display: block; overflow: hidden; background: var(--ink); box-shadow: 0 7px 18px rgba(25,22,32,.17); flex:none; }
.brand-mark img { width:100%; height:100%; object-fit:cover; }
.brand-dot { color: var(--rose); }
.nav-label { color: #a59ba3; font-weight: 800; font-size: 10px; letter-spacing: 1.3px; padding: 19px 12px 7px; text-transform: uppercase; }
.nav-list { display: grid; gap: 3px; }
.nav-link { display: flex; align-items: center; gap: 12px; min-height: 43px; padding: 0 12px; border-radius: 13px; font-weight: 650; color: #4c4551; transition: .18s ease; }
.nav-link:hover { background: var(--wash); color: var(--ink); transform: translateX(2px); }
.nav-link.active { background: #f3ebed; color: var(--ink); }
.nav-link svg { width: 20px; height: 20px; stroke-width: 1.8; flex: none; }
.nav-badge { margin-left: auto; background: var(--rose); color: #fff; font-size: 10px; line-height: 18px; min-width: 18px; padding: 0 5px; text-align: center; border-radius: 99px; }
.sidebar-bottom { margin-top: auto; display: grid; gap: 8px; }
.sidebar-note { background: var(--wash); border: 1px solid #f3dfe3; padding: 13px; border-radius: 14px; font-size: 12px; color: var(--muted); }
.sidebar-note strong { display: block; color: var(--ink); font-size: 13px; margin-bottom: 2px; }
.sidebar-pricing { min-height:58px; display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:10px; padding:9px 11px; border:1px solid #eed5dc; border-radius:14px; background:linear-gradient(135deg,#fff 0%,#fff4f7 100%); color:var(--ink); transition:border-color .18s ease,background .18s ease,transform .18s ease; }
.sidebar-pricing:hover,.sidebar-pricing.active { border-color:var(--rose); background:linear-gradient(135deg,#fff8fa,#ffedf2); transform:translateY(-1px); }
.sidebar-pricing .pricing-icon { width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--rose);color:#fff; }
.sidebar-pricing .pricing-icon svg { width:18px;height:18px; }
.sidebar-pricing span,.sidebar-pricing strong,.sidebar-pricing small { display:block; min-width:0; }
.sidebar-pricing strong { font-size:13px; }
.sidebar-pricing small { margin-top:2px; color:var(--muted); font-size:10px; white-space:nowrap; }
.sidebar-pricing > b { color:var(--rose); font-size:17px; }
.side-sign { border: 0; background: var(--rose); color: white; padding: 12px 14px; border-radius: 13px; font-weight: 800; cursor: pointer; box-shadow: 0 8px 18px rgba(240,79,111,.22); }
.side-google { width:100%; min-height:47px; display:flex; align-items:center; justify-content:center; gap:9px; padding:9px 11px; border:1px solid #e8cbd3; border-radius:11px; background:var(--rose); color:#fff; white-space:nowrap; }
.side-google .google-logo { width:25px; height:25px; }
.sidebar-utilities { display:grid; gap:1px; padding:4px 0; }
.sidebar-utilities a,.sidebar-utilities button { position:relative; width:100%; min-height:38px; display:flex; align-items:center; gap:12px; padding:0 10px; border:0; border-radius:10px; background:transparent; color:var(--ink); font-weight:650; text-align:left; cursor:pointer; transition:.16s ease; }
.sidebar-utilities a:hover,.sidebar-utilities a.active,.sidebar-utilities button:hover { background:var(--wash); color:var(--rose-dark); }
.sidebar-utilities svg { width:20px; height:20px; flex:none; stroke-width:1.8; }
.sidebar-utilities .notification-dot { position:absolute; left:25px; top:4px; width:8px; height:8px; border:2px solid var(--paper); border-radius:50%; background:var(--rose); }
.sidebar-utilities .notification-count { margin-left:auto;min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px;border-radius:7px;background:var(--rose);color:#fff;font-size:10px;line-height:1;font-weight:900; }
.sidebar-account-wrap { position:relative; }
.sidebar-account { width:100%; min-width:0; min-height:49px; padding:7px 9px; display:grid; grid-template-columns:35px minmax(0,1fr) auto; align-items:center; gap:9px; border:1px solid transparent; border-radius:12px; background:transparent; text-align:left; cursor:pointer; transition:.16s ease; }
.sidebar-account:hover,.sidebar-account[aria-expanded="true"] { border-color:var(--line); background:#fff; box-shadow:none; }
.sidebar-account img,.account-avatar { width:35px; height:35px; border-radius:50%; object-fit:cover; }
.account-avatar { display:grid; place-items:center; overflow:hidden; background:#66a632; color:#fff; font-weight:700; }
.account-avatar.avatar-source { position:relative; }
.account-avatar .avatar-photo { position:absolute;inset:0;z-index:2;width:100%;height:100%;border-radius:inherit;object-fit:cover;background:#fff; }
.account-avatar.avatar-image-error .avatar-photo { display:none; }
.account-avatar .avatar-initial { width:100%;height:100%;display:grid;place-items:center;background:#66a632;color:#fff;font-size:.95em;line-height:1; }
.account-avatar .avatar-default-svg { width:100%;height:100%;display:block;border-radius:inherit;object-fit:cover; }
.sidebar-account strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.account-trigger-chevron { color:var(--muted); font-size:17px; transform:translateY(2px); }
.account-popover { position:absolute; z-index:85; left:0; bottom:calc(100% + 10px); width:min(340px,calc(100vw - 28px)); max-height:calc(100vh - 32px); overflow-y:auto; border:1px solid #dce3ec; border-radius:18px; background:#fff; box-shadow:0 16px 38px rgba(42,35,48,.18),0 2px 8px rgba(42,35,48,.08); }
.account-popover-profile { display:grid; grid-template-columns:48px minmax(0,1fr); align-items:center; gap:14px; padding:17px 20px; }
.account-popover-profile:hover { background:#fff9fa; }
.account-popover-profile > a { min-width:0; }
.account-avatar-button { width:48px;height:48px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer; }
.account-avatar-button:hover,.account-avatar-button:focus-visible { outline:3px solid rgba(242,72,107,.22);outline-offset:3px; }
.account-popover-profile .account-avatar,.account-popover-profile img { width:48px; height:48px; border-radius:50%; object-fit:cover; }
.account-popover-profile strong,.account-popover-profile small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-popover-profile strong { font-size:20px; line-height:1.15; }
.account-popover-profile small { margin-top:3px; color:#66758d; font-size:15px; }
.profile-avatar-editor { display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:14px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe; }
.profile-avatar-editor > div { width:72px;height:72px;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:#ede7ea;color:var(--rose-dark);font-size:27px;font-weight:900; }
.profile-avatar-editor img { width:100%;height:100%;object-fit:cover; }
.profile-avatar-editor label { position:relative;display:grid;gap:3px;cursor:pointer; }.profile-avatar-editor label span { color:var(--muted);font-size:10px; }.profile-avatar-editor input { position:absolute;width:1px;height:1px;opacity:0; }.profile-avatar-editor b { width:max-content;margin-top:5px;padding:7px 10px;border:1px solid #d8e0e9;border-radius:8px;background:#fff;color:var(--rose-dark);font-size:10px; }
.account-menu-section { padding:8px 10px; border-top:1px solid #e5eaf0; }
.account-menu-row { width:100%; min-height:46px; display:grid; grid-template-columns:26px minmax(0,1fr) auto; align-items:center; gap:10px; padding:8px 10px; border:0; border-radius:10px; background:transparent; color:#151923; font-size:16px; text-align:left; cursor:pointer; }
.account-menu-row:hover { background:#f6f8fb; }
.account-menu-row > svg { width:21px; height:21px; stroke-width:1.8; }
.account-menu-row > svg:last-child:not(:first-child) { width:17px; }
.account-view-row { cursor:default; }
.account-view-row:hover { background:transparent; }
.view-density-control { display:flex; padding:4px; border-radius:10px; background:#f0f3f7; }
.view-density-control button { min-height:33px; padding:0 12px; border:0; border-radius:7px; background:transparent; color:#66758d; cursor:pointer; }
.view-density-control button.active { background:#fff; color:var(--ink); box-shadow:0 1px 4px rgba(29,32,38,.08); }
.account-signout:hover { background:#fff0f3; color:var(--rose-dark); }
.page-wrap { margin-left: var(--sidebar); min-height: 100vh; transition:margin-left .24s ease; }
.topbar { height: 72px; padding: 0 clamp(22px, 4vw, 60px); display: flex; align-items: center; border-bottom: 1px solid rgba(234,223,227,.7); background: rgba(255,253,252,.92); position: sticky; top: 0; z-index: 30; backdrop-filter: blur(18px); }
.topbar-mobile-brand { display:none; }
.search-mini { width: min(380px, 42vw); position: relative; }
.search-mini input { width: 100%; border: 1px solid var(--line); border-radius: 12px; background: #fff; height: 42px; padding: 0 42px 0 40px; outline: none; }
.search-mini input:focus { border-color: var(--rose); box-shadow: 0 0 0 3px rgba(240,79,111,.1); }
.search-mini svg { position: absolute; left: 13px; top: 11px; width: 19px; color: #897f87; }
.top-actions { display: flex; align-items: center; gap: 19px; margin-left: auto; font-weight: 750; }
.top-generate-cta { height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 17px;border:1px solid var(--rose);border-radius:12px;background:var(--rose);color:#fff;font-size:13px;font-weight:850;white-space:nowrap;transition:background .16s,border-color .16s; }
.top-generate-cta:hover,.top-generate-cta:focus-visible { border-color:var(--rose-dark);background:var(--rose-dark);color:#fff;outline:none; }
.top-link { padding: 8px 4px; cursor: pointer; border: 0; background: none; }
.top-link:hover { color: var(--rose); }
.site-breadcrumbs { min-height:44px;display:flex;align-items:center;padding:0 clamp(22px,4vw,60px);border-bottom:1px solid rgba(234,223,227,.72);background:rgba(255,253,252,.95);color:#83788a;font-size:12px;font-weight:750; }
.site-breadcrumbs ol { width:100%;margin:0;padding:0;display:flex;align-items:center;gap:7px;list-style:none; }
.site-breadcrumbs li { min-width:0;display:flex;align-items:center; }
.site-breadcrumbs a { min-height:30px;display:inline-flex;align-items:center;gap:7px;padding:0 8px;border-radius:8px;color:#766c7b;transition:color .16s ease,background .16s ease; }
.site-breadcrumbs a:hover { color:var(--rose-dark);background:var(--wash); }
.site-breadcrumbs a > svg { width:15px;height:15px;stroke-width:1.9; }
.site-breadcrumbs .breadcrumb-separator { color:#b8adb5; }
.site-breadcrumbs .breadcrumb-separator svg { width:11px;height:11px;stroke-width:2; }
.breadcrumb-current { max-width:min(54vw,620px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink); }
.breadcrumb-parent { display:inline-flex;align-items:center;min-height:30px;padding:0 8px;color:#9a909c; }
.site-breadcrumbs + .main { padding-top:16px; }
.site-breadcrumbs + .main > :first-child { margin-top:0!important; padding-top:0!important; }
.google-btn { border: 1px solid var(--line); background: white; height: 42px; padding: 0 16px; border-radius: 12px; display: inline-flex; align-items: center; gap: 9px; font-weight: 800; cursor: pointer; }
.google-logo { width:24px; height:24px; flex:none; display:grid; place-items:center; padding:3px; border-radius:50%; background:#fff; box-shadow:0 0 0 1px rgba(28,21,26,.08); }
.google-logo svg { width:18px; height:18px; display:block; }
.user-pill img { width: 30px; height: 30px; object-fit: cover; border-radius: 50%; }
.mobile-menu { display:none; width:42px; height:42px; padding:9px; border:1px solid var(--line); border-radius:10px; background:#fff; cursor:pointer; }
.mobile-menu svg { width:22px; height:22px; }
.sidebar-close, .sidebar-scrim { display:none; }
body.mobile-menu-open { overflow:hidden; }

.main { padding: 0 clamp(20px, 4vw, 56px) 72px; }
.home-main { padding-top: 18px; }
.hero { position: relative; overflow: hidden; background: #fbf5fb; border: 1px solid #f0e6ef; border-radius: 27px; min-height: 470px; padding: 48px 24px 0; text-align: center; }
.hero:after { content: ""; position: absolute; border-radius: 50%; filter: blur(4px); pointer-events: none; }
.hero:after { width: 240px; height: 240px; left: -110px; bottom: -80px; background: rgba(210,176,255,.22); }
.eyebrow,
.section-kicker,
.legal-kicker,
.pricing-overline,
.guide-section-kicker,
.referral-overline,
.guest-history-kicker,
.guest-history-preview-head > div > span,
.guest-history-final > div > span { display:none!important; }
.eyebrow .live-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--rose); box-shadow: 0 0 0 4px rgba(240,79,111,.12); }
.hero h1 { max-width: 860px; margin: 17px auto 11px; font-size: clamp(38px, 4.8vw, 68px); line-height: .98; letter-spacing: -3.8px; }
.gradient-text { background: linear-gradient(110deg, #c53f62, #f36f7a 46%, #873d81); color: transparent; background-clip: text; -webkit-background-clip: text; }
.hero-sub { max-width: 630px; margin: 0 auto; color: #6e6474; font-size: 18px; }
.hero-actions { display: flex; justify-content: center; gap: 12px; margin: 23px 0 34px; }
.btn { border: 1px solid transparent; min-height: 47px; padding: 0 22px; border-radius: 13px; font-weight: 820; cursor: pointer; transition: .18s; display: inline-flex; gap: 9px; align-items: center; justify-content: center; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--rose); color: white; box-shadow: 0 10px 22px rgba(240,79,111,.24); }
.btn-primary:hover { background: var(--rose-dark); }
.btn-secondary { background: #fff; border-color: #e8cad2; color: var(--rose-dark); }
.btn-dark { background: var(--ink); color: white; }
.btn-small { min-height: 38px; padding: 0 14px; border-radius: 10px; font-size: 13px; }
.hero-ribbon { width: calc(100% + 48px); margin-left: -24px; height: 200px; overflow: hidden; position: relative; z-index: 2; }
.hero-ribbon-viewport { width:100%; height:100%; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x proximity; scrollbar-width:none; }
.hero-ribbon-viewport::-webkit-scrollbar { display:none; }
.hero-ribbon-track { display:flex; gap:10px; min-width:max-content; height:100%; }
.ribbon-card { flex:0 0 clamp(175px, 17.5vw, 315px); overflow: hidden; border-radius: 15px 15px 0 0; background: #eedfe4; scroll-snap-align:start; }
.ribbon-card > a { display:block; width:100%; height:100%; }
.ribbon-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.ribbon-card:hover img { transform: scale(1.05); }
.ribbon-arrow { position:absolute; z-index:3; top:50%; transform:translateY(-50%); width:42px; height:52px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.74); border-radius:12px; background:rgba(25,18,24,.58); color:#fff; font-size:30px; line-height:1; cursor:pointer; backdrop-filter:blur(8px); opacity:0; transition:opacity .18s,background .18s; }
.hero-ribbon:hover .ribbon-arrow, .ribbon-arrow:focus-visible { opacity:1; }
.ribbon-arrow:hover { background:rgba(25,18,24,.82); }
.ribbon-prev { left:14px; }
.ribbon-next { right:14px; }

.prompt-dock { max-width: none; margin: 34px 0 0; }
.prompt-dock-heading { margin-bottom:15px; }
.prompt-dock-heading h2 { margin:0; font-size:clamp(25px,3vw,38px); letter-spacing:-1.4px; }
.prompt-box { background: white; border: 1px solid #e1d8dc; border-radius: 17px; box-shadow: 0 16px 38px rgba(40,22,34,.1); display: grid; grid-template-columns: 1fr 150px; gap:10px; padding: 12px; text-align: left; }
.prompt-box:focus-within { border-color:#eaa4b6; box-shadow:0 18px 44px rgba(173,51,81,.14),0 0 0 3px rgba(240,79,111,.08); }
.prompt-box textarea { border: 0; resize: vertical; outline: none; padding: 16px 17px; min-height: 132px; max-height:300px; color: var(--ink); font:inherit; font-size:16px; line-height:1.55; }
.prompt-go { min-width:150px; border: 0; border-radius: 12px; background: var(--rose); color: white; cursor: pointer; font:inherit; font-weight:850; font-size:16px; display:flex; align-items:center; justify-content:center; gap:14px; transition:transform .18s,background .18s; }
.prompt-go b { font-size:22px; font-weight:500; }
.prompt-go:hover { transform:translateY(-1px); background:var(--rose-dark); }
.prompt-options { display: flex; align-items: stretch; gap: 9px; margin: 0 0 12px; padding:2px 2px 5px; overflow-x: auto; scrollbar-width: none; }
.prompt-options::-webkit-scrollbar { display: none; }
.prompt-helper { margin:4px 3px 12px;color:var(--muted);font-size:13px;line-height:1.55; }
.prompt-example { flex:0 0 188px; min-height:76px; display:grid; grid-template-rows:auto 1fr; text-align:left; border:1px solid #e7dce1; border-radius:11px; background:#fff; padding:13px 15px; color:var(--ink); cursor:pointer; transition:border-color .18s,background .18s,transform .18s; }
.prompt-example strong { font-size:13px; line-height:1.2; }
.prompt-example small { min-width:0; margin-top:5px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.prompt-example:hover, .prompt-example.active { border-color:#efa3b5; background:#fff4f6; transform:translateY(-1px); }
.prompt-footnote { margin:10px 3px 0; color:var(--muted); font-size:12px; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

.section { padding-top: 58px; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.section-head h2, .page-title { margin: 0; font-size: clamp(26px, 3vw, 42px); line-height: 1.05; letter-spacing: -1.6px; }
.section-kicker { color: var(--rose-dark); font-weight: 850; font-size: 11px; text-transform: uppercase; letter-spacing: 1.4px; margin-bottom: 7px; }
.section-note { color: var(--muted); max-width: 560px; margin: 7px 0 0; }
.text-link { color: var(--rose-dark); font-weight: 800; white-space: nowrap; }
.text-link:hover { text-decoration: underline; }

.collection-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; }
.collection-card { min-height: 190px; border-radius: 18px; overflow: hidden; position: relative; background: #eee; cursor: pointer; }
.collection-card:after { content:""; position:absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(20,12,18,.8)); }
.collection-card img { width: 100%; height: 100%; position:absolute; object-fit:cover; transition:.45s; }
.collection-card:hover img { transform: scale(1.05); }
.collection-copy { position:absolute; z-index:2; inset:auto 17px 15px; color:#fff; }
.collection-copy h3 { margin:0 0 2px; font-size:18px; }
.collection-copy span { font-size:12px; opacity:.8; }

.gallery-toolbar { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:16px; }
.home-gallery-options { display:flex;align-items:center;justify-content:flex-end;gap:14px; }
.home-grid-toggle { min-height:42px;display:flex;align-items:center;gap:3px;padding:4px;border:1px solid #d9e1eb;border-radius:10px;background:#fff; }
.home-grid-toggle button { min-width:48px;height:34px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:7px;background:transparent;color:#6d7b90;cursor:pointer; }
.home-grid-toggle button:hover,.home-grid-toggle button:focus-visible { background:#fff5f7;color:var(--rose-dark);outline:none; }
.home-grid-toggle button.active { background:#f0f3f7;color:var(--ink); }
.home-grid-toggle button b { font-size:10px; }
.home-grid-icon { --grid-cols:2;display:grid;grid-template-columns:repeat(var(--grid-cols),3px);gap:2px; }
.home-grid-icon.columns-3 { --grid-cols:3; }
.home-grid-icon.columns-4 { --grid-cols:4; }
.home-grid-icon span { width:3px;height:5px;border-radius:1px;background:currentColor; }
.tabs { display:flex; gap:5px; background:#f5eff1; padding:4px; border-radius:11px; }
.tab { border:0; background:transparent; padding:8px 13px; border-radius:8px; font-size:12px; font-weight:800; cursor:pointer; }
.tab.active { background:white; box-shadow:0 2px 8px rgba(50,30,40,.07); }
.gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; align-items:start; }
.gallery.gallery-columns-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.gallery.gallery-columns-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.gallery.gallery-columns-4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.art-card { min-width:0; border-radius: 15px; overflow: hidden; background:#f4edef; position: relative; cursor:pointer; }
.art-card-link { position:relative; display:block; min-width:0; color:inherit; text-decoration:none; }
.art-card-link:focus-visible { outline:3px solid var(--rose); outline-offset:-3px; }
/* aspect-ratio keeps the column height stable before the file loads; without it every
   image arrival reflows the masonry layout. Falls back to 4:5 when a record has no
   stored dimensions. */
/* No aspect-ratio here on purpose: attr() is only supported for `content`, so
   `aspect-ratio: attr(width)/attr(height)` computed to `auto` and cancelled the ratio
   the browser derives from the width/height attributes by itself. Cards then reserved
   no height until their lazy image arrived, and the masonry balancer packed those
   zero-height cards into the last column, leaving it visually blank. */
.art-card img { width:100%; height:auto; aspect-ratio:4 / 5; object-fit:cover; transition:.45s; }
.art-card:hover img { transform:scale(1.025); }
.art-overlay { position:absolute; inset:auto 0 0; padding:50px 14px 13px; color:white; background:linear-gradient(transparent,rgba(14,8,12,.83)); opacity:0; transform:translateY(8px); transition:.2s; }
.art-card:hover .art-overlay { opacity:1; transform:none; }
.art-title { font-weight:800; }
.art-meta { display:flex; justify-content:space-between; font-size:11px; opacity:.85; margin-top:3px; }

.home-feed-loader { display:grid;place-items:center;min-height:96px;margin:8px 0 4px;break-inside:avoid; }
.home-feed-loader button { min-width:250px;display:grid;grid-template-columns:26px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:11px;padding:13px 18px;border:1px solid #eadde2;border-radius:14px;background:#fff;color:var(--ink);cursor:pointer;box-shadow:0 8px 24px rgba(44,24,36,.06);text-align:left; }
.home-feed-loader button:hover,.home-feed-loader button:focus-visible { border-color:#ef9caf;background:#fff8fa;outline:none; }
.home-feed-loader strong { font-size:12px; }
.home-feed-loader small { color:var(--muted);font-size:10px; }
.home-feed-spinner { grid-row:1 / 3;width:24px;height:24px;border:3px solid #f5d8df;border-top-color:var(--rose);border-radius:50%;animation:home-feed-spin .8s linear infinite; }
.home-feed-loader:not(.is-loading) .home-feed-spinner { animation-play-state:paused; }
@keyframes home-feed-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .home-feed-spinner { animation:none; } }

.trust-strip { display:grid; grid-template-columns:1.3fr repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.trust-cell { background:#fff; padding:26px; }
.trust-cell strong { font-size:26px; letter-spacing:-1px; display:block; }
.trust-cell span { color:var(--muted); font-size:12px; }
.trust-intro { background:var(--ink); color:white; }
.trust-intro strong { font-family:Georgia,serif; font-weight:400; font-style:italic; }
.trust-intro span { color:#cfc7ce; }

.magazine-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr; grid-template-rows:repeat(2, 220px); gap:14px; }
.story-card { position:relative; border:1px solid var(--line); border-radius:18px; overflow:hidden; background:#fff; padding:20px; display:flex; flex-direction:column; justify-content:flex-end; cursor:pointer; }
.story-card.featured { grid-row:span 2; padding:0; }
.story-card.featured img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.story-card.featured:after { content:""; position:absolute; inset:20% 0 0; background:linear-gradient(transparent,rgba(20,12,18,.92)); }
.story-card.featured .story-content { position:relative; z-index:2; padding:25px; color:white; }
.story-tag { color:var(--rose); font-size:10px; text-transform:uppercase; letter-spacing:1.2px; font-weight:900; }
.story-card.featured .story-tag { color:#ffc2cd; }
.story-card h3 { margin:7px 0 6px; line-height:1.16; letter-spacing:-.4px; font-size:20px; }
.story-card.featured h3 { font:italic 35px/1.05 Georgia,serif; }
.story-card p { margin:0; color:var(--muted); font-size:13px; }
.story-card.featured p { color:#e8dfe5; }
.story-number { position:absolute; top:14px; right:16px; font:italic 28px Georgia,serif; color:#dfd3d8; }

.footer { margin-top:70px; border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:40px; padding:44px 0 0; }
.footer-brand p { color:var(--muted); max-width:310px; font-size:13px; }
.footer-col strong { display:block; margin-bottom:12px; font-size:12px; text-transform:uppercase; letter-spacing:1px; }
.footer-col a { display:block; color:var(--muted); font-size:13px; margin:8px 0; }
.footer-col a:hover { color:var(--rose); }
.footer-signin { display:block; border:0; background:none; color:var(--muted); font-size:13px; margin:8px 0; padding:0; cursor:pointer; }
.footer-signin:hover { color:var(--rose); }
.footer-bottom { grid-column:1/-1; border-top:1px solid var(--line); display:flex; justify-content:space-between; padding:18px 0 0; color:#948992; font-size:11px; }

.page-hero { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); align-items:center; gap:55px; padding:26px 0 44px; }
.page-hero h1 { margin:10px 0 15px; font-size:clamp(42px,6vw,76px); line-height:.96; letter-spacing:-4px; }
.page-hero p { max-width:650px; color:var(--muted); font-size:18px; }
.page-hero-card { background:#fbf3f6; border:1px solid #f1dfe5; border-radius:22px; padding:23px; transform:rotate(1.5deg); }
.page-hero-card img { width:100%; max-height:390px; border-radius:15px; object-fit:cover; }
.page-hero-card .caption { padding-top:11px; font:italic 16px Georgia,serif; color:var(--plum); }

.create-layout { display:grid; grid-template-columns:minmax(310px, .78fr) minmax(0,1.22fr); gap:22px; padding-top:28px; }
.panel { border:1px solid var(--line); background:#fff; border-radius:19px; padding:22px; box-shadow:0 10px 35px rgba(44,25,35,.04); }
.panel-title { display:flex; justify-content:space-between; align-items:center; margin-bottom:17px; }
.panel-title h2, .panel h3 { margin:0; font-size:18px; letter-spacing:-.4px; }
.field { margin-top:17px; }
.field label { display:flex; justify-content:space-between; font-size:12px; font-weight:800; margin-bottom:7px; }
.field textarea, .field input, .field select { width:100%; border:1px solid var(--line); border-radius:11px; background:#fff; padding:11px 12px; outline:none; }
.field textarea { min-height:130px; resize:vertical; }
.field textarea:focus, .field input:focus, .field select:focus { border-color:var(--rose); box-shadow:0 0 0 3px rgba(240,79,111,.1); }
.segmented { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.segment { border:1px solid var(--line); background:#fff; border-radius:10px; padding:10px 7px; font-size:12px; font-weight:800; cursor:pointer; }
.segment.active { border-color:#f2aabd; background:#fff1f4; color:#bd3655; }
.range { accent-color:var(--rose); }
.create-submit { width:100%; margin-top:20px; }
.generation-stage { min-height:620px; background:#f8f1f3; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.generation-stage:before { content:""; width:360px; height:360px; position:absolute; border-radius:50%; background:#f6ccd5; filter:blur(90px); opacity:.55; }
.empty-state { text-align:center; max-width:370px; position:relative; z-index:2; }
.empty-icon { width:72px; height:72px; padding:4px; overflow:hidden; border-radius:22px; background:white; display:grid; place-items:center; margin:0 auto 17px; color:var(--rose); box-shadow:var(--shadow); }
.empty-icon img { width:100%; height:100%; border-radius:16px; object-fit:cover; }
.empty-state h2 { margin:0 0 8px; }
.empty-state p { color:var(--muted); margin:0; }
.generated-image { max-width:100%; max-height:590px; border-radius:14px; position:relative; z-index:2; object-fit:contain; box-shadow:0 18px 50px rgba(52,23,37,.18); }
.loading-art { width:260px; height:330px; border-radius:18px; background:linear-gradient(105deg,#efe3e7 25%,#fff 45%,#efe3e7 65%); background-size:200% 100%; animation:shimmer 1.2s infinite; }
@keyframes shimmer { to { background-position:-200% 0; } }
.generation-progress { width:min(540px,100%); max-height:100%; position:relative; z-index:3; overflow:auto; padding:22px 28px 28px; color:#263142; scrollbar-width:thin; }
.render-visual { width:224px; aspect-ratio:4/5; position:relative; margin:0 auto 20px; display:grid; place-items:center; }
.render-portrait { width:176px; height:220px; position:relative; display:grid; place-items:center; overflow:hidden; border:1px solid rgba(240,79,111,.28); border-radius:24px; background:linear-gradient(145deg,#fff 0%,#fff3f6 46%,#eadff8 100%); box-shadow:0 24px 55px rgba(72,39,59,.16); }
.render-portrait:before { content:""; position:absolute; inset:-40%; background:conic-gradient(from 180deg,transparent,#f8b4c5,transparent 35%,#c4a7ed,transparent 70%); animation:renderGlow 4s linear infinite; opacity:.55; }
.render-portrait:after { content:""; position:absolute; inset:1px; border-radius:22px; background:linear-gradient(150deg,rgba(255,255,255,.92),rgba(255,239,244,.78) 58%,rgba(232,220,248,.86)); }
.render-portrait img { width:118px; height:118px; position:relative; z-index:2; object-fit:cover; border-radius:28px; filter:grayscale(1) contrast(1.12); opacity:.78; mix-blend-mode:multiply; animation:portraitPulse 2.4s ease-in-out infinite; }
.render-portrait i { width:94px; height:18px; position:absolute; z-index:3; left:50%; bottom:20px; transform:translateX(-50%); border-radius:999px; background:linear-gradient(90deg,rgba(240,79,111,.14),rgba(240,79,111,.5),rgba(240,79,111,.14)); filter:blur(5px); }
.render-scan { position:absolute; z-index:4; top:-25%; left:0; right:0; height:30%; border-bottom:2px solid rgba(240,79,111,.88); background:linear-gradient(180deg,transparent,rgba(255,255,255,.76)); box-shadow:0 9px 20px rgba(240,79,111,.16); animation:renderScan 2.2s ease-in-out infinite; }
.render-orbit { position:absolute; inset:7px -2px; border:1px solid rgba(240,79,111,.22); border-radius:48% 52% 46% 54%; animation:renderOrbit 8s linear infinite; }
.render-orbit.orbit-two { inset:24px -15px; border-color:rgba(124,86,190,.2); animation-direction:reverse; animation-duration:11s; }
.render-spark { position:absolute; z-index:5; color:var(--rose); animation:sparkPulse 1.7s ease-in-out infinite; }
.render-spark.spark-one { top:30px; right:6px; font-size:18px; }
.render-spark.spark-two { bottom:40px; left:1px; font-size:11px; animation-delay:.7s; }
.render-status-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; color:#718097; font-size:11px; font-weight:800; letter-spacing:.02em; }
.render-provider { display:inline-flex; align-items:center; gap:7px; text-transform:uppercase; letter-spacing:.09em; }
.render-provider i { width:8px; height:8px; border-radius:50%; background:#2bbb72; box-shadow:0 0 0 4px rgba(43,187,114,.12); animation:sparkPulse 1.2s ease-in-out infinite; }
.generation-progress h2 { margin:0; font-size:24px; letter-spacing:-.7px; text-align:left; }
.generation-progress>p { min-height:38px; margin:6px 0 16px; color:#718097; font-size:12px; line-height:1.5; text-align:left; }
.render-progress-track { height:8px; overflow:hidden; border-radius:999px; background:#e1e6ec; }
.render-progress-track i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--rose),#a855f7); box-shadow:0 0 15px rgba(240,79,111,.38); transition:width .5s ease; }
.render-progress-meta { display:flex; justify-content:space-between; margin-top:6px; color:#8190a4; font-size:10px; font-weight:750; }
.render-eta { margin-top:13px; padding:11px 13px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:3px 14px; border:1px solid #dce3eb; border-radius:10px; background:rgba(255,255,255,.72); text-align:left; }
.render-eta span { color:#8a98aa; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.render-eta strong { color:#344154; font-size:12px; text-align:right; }
.render-eta small { grid-column:1/-1; color:#8190a4; font-size:9px; }
.render-speed-upsell { width:100%;margin-top:10px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;gap:1px 9px;border:1px solid #efb8c5;border-radius:10px;background:linear-gradient(100deg,#fff5f7,#fbf7ff);padding:10px 12px;text-align:left;color:#293547;cursor:pointer;box-shadow:0 7px 20px rgba(240,79,111,.08); }.render-speed-upsell > span { grid-row:1/3;width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,var(--rose),#a855f7);color:#fff; }.render-speed-upsell strong { font-size:11px; }.render-speed-upsell small { color:#7b899d;font-size:9px; }.render-speed-upsell b { grid-column:3;grid-row:1/3;color:var(--rose-dark);font-size:10px; }.render-speed-upsell:hover { border-color:var(--rose);box-shadow:none;transform:translateY(-1px); }
.render-phases { margin:18px 0 16px; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); list-style:none; }
.render-phases li { position:relative; padding-top:17px; color:#9ba6b5; font-size:9px; font-weight:800; text-align:center; }
.render-phases li:before { content:""; width:8px; height:8px; position:absolute; z-index:2; top:0; left:50%; transform:translateX(-50%); border:2px solid #d7dee7; border-radius:50%; background:#f0f3f7; }
.render-phases li:not(:last-child):after { content:""; height:2px; position:absolute; top:4px; left:calc(50% + 5px); right:calc(-50% + 5px); background:#dce2e9; }
.render-phases li.active { color:var(--rose-dark); }.render-phases li.active:before { border-color:var(--rose); background:#fff; box-shadow:0 0 0 4px rgba(240,79,111,.12); }
.render-phases li.complete { color:#56657a; }.render-phases li.complete:before { border-color:var(--rose); background:var(--rose); }.render-phases li.complete:after { background:var(--rose); }
.render-prompt { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:10px; padding:10px 12px; border:1px solid #dce3eb; border-radius:10px; background:rgba(255,255,255,.76); text-align:left; }
.render-prompt span { color:#8a98aa; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }
.render-prompt p { min-width:0; margin:0; overflow:hidden; color:#56657a; font-size:10px; white-space:nowrap; text-overflow:ellipsis; }
.cancel-generation { display:block; margin:13px auto 0; border:0; background:transparent; color:#718097; font-size:10px; font-weight:800; cursor:pointer; }
.cancel-generation:hover { color:var(--rose-dark); }.cancel-generation:disabled { opacity:.5; cursor:wait; }
@keyframes renderGlow { to { transform:rotate(360deg); } }
@keyframes renderScan { 0%,8% { top:-25%; } 72%,100% { top:100%; } }
@keyframes renderOrbit { to { transform:rotate(360deg); } }
@keyframes portraitPulse { 50% { transform:scale(1.035); opacity:.95; } }
@keyframes sparkPulse { 50% { opacity:.32; transform:scale(.8); } }
.generation-actions { position:absolute; z-index:4; right:18px; bottom:18px; display:flex; gap:8px; }
.provider-badge { position:absolute; z-index:4; left:18px; bottom:18px; border:1px solid #e1d9de; border-radius:8px; background:rgba(255,255,255,.92); color:#625965; padding:7px 10px; font-size:10px; font-weight:800; backdrop-filter:blur(8px); }
.generation-caption { position:absolute; z-index:4; left:18px; right:18px; top:18px; max-width:560px; padding:13px 50px 13px 15px; border:1px solid rgba(225,217,222,.9); border-radius:12px; background:rgba(255,255,255,.94); box-shadow:0 10px 30px rgba(52,23,37,.12); backdrop-filter:blur(10px); }
.generation-caption strong { display:block; font-size:15px; margin-bottom:4px; }
.generation-caption p { margin:0; color:var(--muted); font-size:12px; line-height:1.45; }
.generation-caption span { display:block; margin-top:6px; color:#a34059; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.generation-caption .generation-caption-close { position:absolute;top:8px;right:8px;width:34px;height:34px;display:grid;place-items:center;border:1px solid #e1d9de;border-radius:9px;background:#fff;color:#536176;font-size:22px;line-height:1;cursor:pointer;box-shadow:0 3px 9px rgba(35,45,60,.06);transition:.15s ease; }
.generation-caption .generation-caption-close:hover,.generation-caption .generation-caption-close:focus-visible { border-color:#efa9ba;background:#fff3f6;color:var(--rose-dark);outline:none; }
.generation-description-required { display:grid;gap:9px;padding:17px;max-width:610px;border-color:#efb1c0;background:rgba(255,255,255,.98); }
.generation-description-required strong { margin:0;font-size:17px; }
.generation-description-required p { font-size:12px;line-height:1.5; }
.generation-description-required label { color:#68778c;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.08em; }
.generation-description-required textarea { width:100%;min-height:82px;resize:vertical;border:1px solid #d8e0e9;border-radius:9px;background:#fff;padding:10px 12px;color:#202735;font:inherit;font-size:12px;line-height:1.45;outline:none; }
.generation-description-required textarea:focus { border-color:#ec6f8d;box-shadow:0 0 0 3px rgba(240,79,111,.11); }
.generation-description-required button { justify-self:start;border:0;border-radius:9px;background:var(--rose);color:#fff;padding:10px 14px;font:inherit;font-size:11px;font-weight:850;cursor:pointer; }
.generation-description-required button:disabled { opacity:.65;cursor:wait; }
.generation-description-required small { color:#7f8da0;font-size:9px;line-height:1.4; }
.status-line { margin-top:10px; font-size:12px; color:var(--muted); text-align:center; }

/* The account View selector controls the desktop navigation itself. */
@media(min-width:761px) {
  body.view-compact { --sidebar:76px; }
  .view-compact .sidebar { padding:14px 10px 12px; }
  .view-compact .brand { justify-content:center; min-height:48px; padding:0 0 16px; }
  .view-compact .brand > span:last-child { display:none; }
  .view-compact .brand-mark { width:42px; height:42px; }
  .view-compact .nav-list { gap:6px; }
  .view-compact .nav-link { position:relative; justify-content:center; min-height:48px; padding:0; border-radius:12px; }
  .view-compact .nav-link:hover { transform:none; }
  .view-compact .nav-link > span:not(.nav-badge) { display:none; }
  .view-compact .nav-badge { position:absolute; top:8px; right:8px; width:8px; min-width:8px; height:8px; padding:0; overflow:hidden; font-size:0; line-height:0; }
  .view-compact .sidebar-bottom { gap:7px; }
  .view-compact .sidebar-pricing { min-height:48px; grid-template-columns:1fr; place-items:center; gap:0; padding:0; }
  .view-compact .sidebar-pricing > span,
  .view-compact .sidebar-pricing > b { display:none; }
  .view-compact .sidebar-pricing > svg { width:22px; height:22px; }
  .view-compact .side-google { width:48px; min-height:48px; margin:auto; padding:0; }
  .view-compact .side-google > span { display:none; }
  .view-compact .sidebar-utilities { gap:4px; padding:1px 0; }
  .view-compact .sidebar-utilities > a,
  .view-compact .sidebar-utilities > button { position:relative; justify-content:center; min-height:46px; padding:0; gap:0; font-size:0; }
  .view-compact .sidebar-utilities > a > span,
  .view-compact .sidebar-utilities > button > span { display:none; }
  .view-compact .sidebar-utilities > a svg,
  .view-compact .sidebar-utilities > button svg { width:21px; height:21px; }
  .view-compact .sidebar-utilities .notification-dot { left:29px; top:7px; }
  .view-compact .sidebar-utilities .notification-count { position:absolute; top:4px; right:3px; min-width:17px; height:17px; padding:0 3px; font-size:8px; }
  .view-compact .sidebar-account { min-height:48px; grid-template-columns:1fr; place-items:center; gap:0; padding:5px 0; }
  .view-compact .sidebar-account > strong,
  .view-compact .account-trigger-chevron { display:none; }
  .view-compact .sidebar-account img,
  .view-compact .sidebar-account > .account-avatar { width:36px; height:36px; }
  .view-compact .account-popover { left:calc(100% + 12px); bottom:0; }
  .view-compact .gallery-grid,
  .view-compact .explore-grid { gap:10px; }

  .view-compact [data-sidebar-tooltip] { position:relative; }
  .view-compact [data-sidebar-tooltip]::after {
    content:attr(data-sidebar-tooltip);
    position:absolute;
    z-index:110;
    left:calc(100% + 12px);
    top:50%;
    transform:translate(4px,-50%);
    width:max-content;
    max-width:220px;
    padding:7px 10px;
    border:1px solid #eadfe3;
    border-radius:8px;
    background:#241f29;
    color:#fff;
    box-shadow:0 8px 22px rgba(31,23,31,.17);
    font-size:12px;
    font-weight:750;
    line-height:1.2;
    letter-spacing:0;
    white-space:nowrap;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .14s ease,transform .14s ease,visibility 0s linear .14s;
  }
  .view-compact [data-sidebar-tooltip]:hover::after,
  .view-compact [data-sidebar-tooltip]:focus-visible::after {
    opacity:1;
    visibility:visible;
    transform:translate(0,-50%);
    transition:opacity .14s ease,transform .14s ease;
  }
  .view-compact .sidebar-account[aria-expanded="true"]::after { display:none; }
}
.referral-main { background:linear-gradient(180deg,#fffaf9 0,#fff 34%,#fffafc 100%); }
.referral-page { max-width:1380px;margin:0 auto;padding:34px 0 90px; }
.referral-overline { display:block;color:var(--rose-dark);font-size:11px;font-weight:900;letter-spacing:1.7px;text-transform:uppercase; }
.referral-hero { display:grid;grid-template-columns:minmax(0,.92fr) minmax(440px,1.08fr);gap:32px;align-items:stretch;min-height:620px; }
.referral-hero-copy { display:flex;flex-direction:column;justify-content:center;padding:48px 24px 48px 6px; }
.referral-hero h1 { margin:13px 0 21px;font:italic clamp(50px,5.4vw,78px)/.96 Georgia,serif;letter-spacing:-3.7px;color:#181522; }
.referral-hero h1 em { color:var(--rose);font-weight:inherit; }
.referral-hero-copy > p { max-width:660px;margin:0;color:#68758a;font-size:17px;line-height:1.7; }
.referral-hero-copy > p strong { color:#272232; }
.referral-rate-row { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:28px 0; }
.referral-rate-row article { padding:17px 16px;border:1px solid #f1d2da;border-radius:14px;background:rgba(255,255,255,.82);box-shadow:0 9px 28px rgba(86,32,54,.05); }
.referral-rate-row strong,.referral-rate-row span { display:block; }
.referral-rate-row strong { color:#272232;font:italic 700 33px/1 Georgia,serif; }
.referral-rate-row span { margin-top:7px;color:#7d8797;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em; }
.referral-hero-actions { display:flex;align-items:center;gap:11px; }
.referral-hero-actions .btn { min-height:49px; }
.referral-hero-art { position:relative;overflow:hidden;border-radius:24px;background:#f5e7ed;box-shadow:0 24px 60px rgba(71,35,52,.14); }
.referral-hero-art:after { content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 57%,rgba(20,13,25,.72));pointer-events:none; }
.referral-hero-art img { width:100%;height:100%;min-height:620px;object-fit:cover;display:block; }
.referral-art-caption { position:absolute;z-index:1;left:24px;right:24px;bottom:23px;color:#fff; }
.referral-art-caption span,.referral-art-caption strong { display:block; }
.referral-art-caption span { margin-bottom:5px;font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;opacity:.78; }
.referral-art-caption strong { font-size:14px; }
.affiliate-dashboard { scroll-margin-top:20px;margin-top:70px;padding:30px;border:1px solid #eadce2;border-radius:22px;background:#fff;box-shadow:0 20px 55px rgba(55,29,43,.08); }
.affiliate-dashboard-head { display:flex;justify-content:space-between;gap:25px;align-items:flex-start;margin-bottom:24px; }
.affiliate-dashboard-head h2 { margin:7px 0 6px;font:italic clamp(34px,4vw,48px)/1 Georgia,serif;letter-spacing:-1.6px; }
.affiliate-dashboard-head p { margin:0;color:#768397; }
.affiliate-status { display:flex;align-items:center;gap:7px;padding:9px 12px;border-radius:10px;background:#ebfbf2;color:#218759;font-size:10px;font-weight:850;white-space:nowrap; }
.affiliate-status i { width:8px;height:8px;border-radius:50%;background:#2dbe79;box-shadow:0 0 0 4px rgba(45,190,121,.12); }
.affiliate-link-card { display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:13px;align-items:end;padding:19px;border:1px solid #e2e7ed;border-radius:15px;background:#f8fafc; }
.affiliate-link-card > div small,.affiliate-link-card > div strong,.affiliate-link-card label span { display:block; }
.affiliate-link-card > div small,.affiliate-link-card label span { margin-bottom:6px;color:#7a879a;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em; }
.affiliate-link-card > div strong { min-height:46px;display:flex;align-items:center;color:#302739;font-size:17px;letter-spacing:.05em; }
.affiliate-link-card input { width:100%;height:46px;border:1px solid #d9e1e9;border-radius:10px;background:#fff;padding:0 12px;color:#58677c;font:inherit;font-size:11px; }
.affiliate-link-card .btn { min-height:46px; }
.affiliate-share-row { display:flex;align-items:center;gap:8px;margin:14px 0 25px; }
.affiliate-share-row > span { margin-right:4px;color:#6f7d91;font-size:10px;font-weight:800; }
.affiliate-share-row button { display:flex;align-items:center;gap:6px;min-height:36px;padding:0 11px;border:1px solid #dce3ea;border-radius:10px;background:#fff;color:#2f394a;font-size:11px;font-weight:800;cursor:pointer; }
.affiliate-share-row button:hover { border-color:#ef9eb2;background:#fff5f7;color:var(--rose-dark); }
.social-brand-icon { width:22px;height:22px;display:grid;place-items:center;line-height:0; }
.social-brand-icon svg { width:100%;height:100%;display:block; }
.affiliate-share-row .social-brand-icon { width:17px;height:17px; }
.affiliate-share-row .social-whatsapp { color:#25d366; }
.affiliate-share-row .social-reddit { color:#ff4500; }
.affiliate-share-row .social-telegram { color:#229ed9; }
.affiliate-share-row .social-x { color:#111827; }
.affiliate-stats { display:grid;grid-template-columns:repeat(6,1fr);gap:10px; }
.affiliate-stats article { min-height:120px;padding:17px;border:1px solid #e2e7ed;border-radius:14px;background:#fff; }
.affiliate-stats span,.affiliate-stats strong,.affiliate-stats small { display:block; }
.affiliate-stats span { color:#667489;font-size:10px;font-weight:850; }
.affiliate-stats strong { margin:16px 0 5px;color:#211c28;font:italic 700 33px/1 Georgia,serif; }
.affiliate-stats small { color:#94a0af;font-size:9px; }
.affiliate-recent { display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;margin-top:30px;padding-top:25px;border-top:1px solid #e4e8ed; }
.affiliate-recent h3 { margin:0 0 7px;font-size:18px; }.affiliate-recent p { margin:0;color:#8490a1;font-size:10px;line-height:1.6; }
.affiliate-table-wrap { overflow:auto; }.affiliate-table-wrap table { width:100%;border-collapse:collapse;font-size:10px;text-align:left; }
.affiliate-table-wrap th { padding:10px;color:#8d98a8;font-size:8px;text-transform:uppercase;letter-spacing:.09em; }.affiliate-table-wrap td { padding:12px 10px;border-top:1px solid #e6eaef;color:#536175; }
.affiliate-table-status { display:inline-block;padding:5px 7px;border-radius:7px;background:#eefbf4;color:#218759;font-weight:800; }
.affiliate-empty { display:grid;gap:4px;padding:18px;text-align:center; }.affiliate-empty strong { color:#343d4d; }.affiliate-empty span { color:#8b97a7; }
.referral-calculator { display:grid;grid-template-columns:minmax(300px,.7fr) minmax(560px,1.3fr);gap:48px;align-items:center;margin-top:90px;padding:46px;border:1px solid #ead9e0;border-radius:24px;background:linear-gradient(135deg,#251c2b 0,#3a2440 55%,#552b46 100%);color:#fff;box-shadow:0 25px 70px rgba(44,24,39,.16); }
.referral-calculator .referral-overline { color:#ff91ac; }.referral-calculator-copy h2 { margin:9px 0 14px;font:italic clamp(38px,4.4vw,57px)/1 Georgia,serif;letter-spacing:-2px; }.referral-calculator-copy > p { margin:0;color:#d8ccd9;line-height:1.65; }
.referral-calculator-note { margin-top:24px;padding:13px;border:1px solid rgba(255,255,255,.13);border-radius:10px;color:#bfb0c0;font-size:9px;line-height:1.5; }
.referral-calculator-panel { padding:27px;border:1px solid rgba(255,255,255,.15);border-radius:18px;background:rgba(255,255,255,.08);backdrop-filter:blur(10px); }
.referral-slider-heading { display:flex;justify-content:space-between;gap:20px;align-items:baseline; }.referral-slider-heading span { color:#d6cad8;font-size:11px;font-weight:800; }.referral-slider-heading strong { font:italic 25px/1 Georgia,serif; }
.referral-slider { --slider-progress:5.62%;width:100%;height:8px;margin:24px 0;appearance:none;border-radius:999px;background:linear-gradient(90deg,#f04b70 0,#b65cff var(--slider-progress),rgba(255,255,255,.2) var(--slider-progress));cursor:pointer; }
.referral-slider::-webkit-slider-thumb { appearance:none;width:25px;height:25px;border:6px solid #fff;border-radius:50%;background:var(--rose);box-shadow:0 3px 12px rgba(0,0,0,.25); }.referral-slider::-moz-range-thumb { width:13px;height:13px;border:6px solid #fff;border-radius:50%;background:var(--rose); }
.referral-plan-label { display:grid;grid-template-columns:1fr 210px;align-items:center;gap:15px;color:#d8ccd9;font-size:11px;font-weight:800; }.referral-plan-label select { height:43px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:#fff;color:#2f2934;padding:0 11px;font:inherit; }
.referral-estimates { display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:22px; }.referral-estimates article { min-height:128px;padding:15px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:rgba(255,255,255,.07); }.referral-estimates article.featured { background:linear-gradient(145deg,#f04b70,#a950dd);border-color:transparent; }.referral-estimates small,.referral-estimates strong,.referral-estimates span { display:block; }.referral-estimates small { min-height:26px;color:#d8ceda;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.06em; }.referral-estimates strong { margin:8px 0;font:italic 700 clamp(22px,2.5vw,32px)/1 Georgia,serif;white-space:nowrap; }.referral-estimates span { color:#c7bac9;font-size:8px;line-height:1.4; }.referral-estimates .featured small,.referral-estimates .featured span { color:#fff; }
.referral-how { display:grid;grid-template-columns:minmax(360px,.9fr) minmax(500px,1.1fr);gap:65px;align-items:center;margin-top:100px; }.referral-how-copy h2 { margin:8px 0 12px;font:italic clamp(38px,4.5vw,58px)/1 Georgia,serif;letter-spacing:-2px; }.referral-how-copy > p { color:#758194;line-height:1.65; }.referral-how-copy img { width:100%;height:310px;margin-top:25px;border-radius:18px;object-fit:cover;box-shadow:0 17px 45px rgba(55,31,43,.12); }
.referral-steps { display:grid; }.referral-steps article { display:grid;grid-template-columns:60px 1fr;gap:20px;padding:29px 0;border-bottom:1px solid #e5e8ed; }.referral-steps article:first-child { border-top:1px solid #e5e8ed; }.referral-steps b { width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#fff0f4;color:var(--rose-dark);font:italic 18px Georgia,serif; }.referral-steps h3 { margin:2px 0 7px;font-size:18px; }.referral-steps p { margin:0;color:#758194;font-size:12px;line-height:1.65; }
.referral-rules { margin-top:100px;padding-top:60px;border-top:1px solid #e5e8ed; }.referral-rules > div:first-child { max-width:630px; }.referral-rules h2 { margin:8px 0 27px;font:italic clamp(36px,4vw,52px)/1 Georgia,serif;letter-spacing:-1.8px; }.referral-rule-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:12px; }.referral-rule-grid article { padding:22px;border:1px solid #e5e7eb;border-radius:15px;background:#fff; }.referral-rule-grid strong { font-size:13px; }.referral-rule-grid p { margin:10px 0 0;color:#788598;font-size:10px;line-height:1.6; }
.referral-final { margin-top:90px;padding:58px 25px;border:1px solid #f1cbd5;border-radius:22px;background:linear-gradient(135deg,#fff2f5,#fbf5ff);text-align:center; }.referral-final h2 { margin:9px 0;font:italic clamp(41px,5vw,62px)/1 Georgia,serif;letter-spacing:-2.4px; }.referral-final p { color:#778396; }.referral-final .btn { margin-top:12px; }

@media (max-width:1050px) {
  .referral-hero { grid-template-columns:1fr; }.referral-hero-copy { padding:35px 4px 10px; }.referral-hero-art img { min-height:480px; }.referral-calculator,.referral-how { grid-template-columns:1fr; }.affiliate-stats { grid-template-columns:repeat(3,1fr); }.referral-rule-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:680px) {
  .referral-page { padding-top:14px; }.referral-hero { min-height:0;gap:18px; }.referral-hero h1 { font-size:45px;letter-spacing:-2.4px; }.referral-hero-copy > p { font-size:14px; }.referral-rate-row { grid-template-columns:1fr 1fr; }.referral-rate-row article:last-child { grid-column:1/-1; }.referral-hero-actions { align-items:stretch;flex-direction:column; }.referral-hero-art img { min-height:390px; }.affiliate-dashboard { margin-top:48px;padding:18px; }.affiliate-dashboard-head { display:grid; }.affiliate-link-card { grid-template-columns:1fr; }.affiliate-share-row { flex-wrap:wrap; }.affiliate-share-row > span { width:100%; }.affiliate-stats { grid-template-columns:1fr 1fr; }.affiliate-recent { grid-template-columns:1fr;gap:14px; }.referral-calculator { margin-top:58px;padding:25px 18px;gap:30px; }.referral-calculator-panel { padding:18px; }.referral-plan-label { grid-template-columns:1fr; }.referral-estimates { grid-template-columns:1fr; }.referral-estimates article { min-height:0; }.referral-estimates small { min-height:0; }.referral-how { margin-top:65px;grid-template-columns:1fr;gap:25px; }.referral-how-copy img { height:260px; }.referral-rules { margin-top:65px;padding-top:45px; }.referral-rule-grid { grid-template-columns:1fr; }.referral-final { margin-top:60px;padding:43px 17px; }
}

.modal-backdrop, .age-gate { position:fixed; z-index:100; inset:0; background:rgba(24,15,21,.72); display:grid; place-items:center; padding:20px; backdrop-filter:blur(13px); }
.modal { width:min(450px,100%); border-radius:22px; background:white; padding:28px; box-shadow:0 25px 80px rgba(0,0,0,.25); }
.modal h2 { font-size:27px; letter-spacing:-1px; margin:7px 0; }
.modal p { color:var(--muted); }
.modal-actions { display:grid; gap:9px; margin-top:22px; }
.profile-edit-modal { position:relative;width:min(620px,100%); }
.profile-edit-modal > label,.folder-modal > label { display:grid;gap:6px;margin-top:14px;font-size:12px;font-weight:800; }
.profile-edit-modal input,.profile-edit-modal textarea,.folder-modal input { border:1px solid var(--line);border-radius:9px;padding:10px; }
.profile-edit-modal textarea { min-height:90px;resize:vertical; }
.profile-country-field small { color:var(--muted);font-size:10px;font-weight:600;line-height:1.4; }
.profile-pro-label { width:max-content;margin-left:5px;padding:2px 6px;border-radius:99px;background:#fff0f3;color:var(--pink);font-size:9px;font-weight:900;letter-spacing:.08em; }
.profile-website-locked { align-self:end;min-height:93px;display:grid;align-content:center;gap:7px;margin-top:14px;padding:12px;border:1px solid #eadde1;border-radius:10px;background:#fffafb; }
.profile-website-locked > div { display:flex;align-items:center;gap:7px;font-size:12px; }
.profile-website-locked > div span { padding:2px 6px;border-radius:99px;background:#ffe8ee;color:var(--pink);font-size:9px;font-weight:900;letter-spacing:.08em; }
.profile-website-locked p { margin:0;font-size:11px;line-height:1.35; }
.profile-website-locked button { width:max-content;border:0;background:none;padding:0;color:var(--pink);font-size:11px;font-weight:850;cursor:pointer; }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:10px; }
.form-row label { display:grid;gap:6px;margin-top:14px;font-size:12px;font-weight:800; }
.modal-x { position:absolute;right:17px;top:14px;border:0;background:none;font-size:24px; }
@media (max-width:600px) { .profile-edit-modal .form-row { grid-template-columns:1fr; }.profile-website-locked { align-self:stretch; } }
.floating-menu { position:absolute;z-index:30;right:0;top:calc(100% + 7px);min-width:190px;padding:7px;border:1px solid #d7e0ea;border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(20,28,38,.16); }
.profile-buttons { position:relative; }
.floating-menu button { width:100%;border:0;background:#fff;text-align:left;padding:10px;border-radius:7px; }
.floating-menu button:hover { background:#f2f5f8; }
.enhance-menu { bottom:58px;top:auto;left:0;right:auto; }
.folder-delete-modal,.bulk-delete-modal { position:relative; text-align:center; }
.folder-delete-backdrop,.bulk-delete-backdrop { z-index:430; }
.folder-delete-icon { width:54px; height:54px; display:grid; place-items:center; margin:0 auto 14px; border-radius:16px; background:#fff0f2; color:#ca3850; }
.folder-delete-icon svg { width:25px; height:25px; }
.folder-delete-count { display:flex; align-items:center; justify-content:center; gap:10px; margin:18px 0; padding:14px; border:1px solid #ecdce0; border-radius:12px; background:#fffafb; }
.folder-delete-count strong { color:#c8344c; font-size:30px; line-height:1; font-variant-numeric:tabular-nums; }
.folder-delete-count span { color:#5f6876; font-size:12px; text-align:left; }
.folder-delete-modal > p,.bulk-delete-modal > p { margin:0; padding:13px 15px; border-radius:10px; background:#fff6e8; color:#78551e; font-size:12px; line-height:1.55; text-align:left; }
.folder-delete-modal > p strong,.bulk-delete-modal > p strong { display:block; color:#674511; }
.btn-danger { border-color:#c9364e; background:#c9364e; color:#fff; }
.btn-danger:hover { border-color:#ad273e; background:#ad273e; }
.edit-source-modal { width:min(560px,100%); }
.edit-source-tabs { display:flex; gap:4px; margin:16px 0 4px; padding:4px; border-radius:12px; background:var(--wash); }
.edit-source-tabs button { flex:1; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:9px 12px; border:0; border-radius:9px; background:transparent; color:var(--muted); font-size:13px; font-weight:800; cursor:pointer; transition:background .16s ease, color .16s ease; }
.edit-source-tabs button:hover { color:var(--ink); }
.edit-source-tabs button[aria-selected="true"] { background:#fff; color:var(--ink); box-shadow:0 2px 8px rgba(31,45,61,.08); }
.edit-source-tabs button i { padding:1px 7px; border-radius:99px; background:#f0e2e8; color:var(--rose-dark); font-style:normal; font-size:11px; }
.edit-source-tabs button[aria-selected="true"] i { background:var(--rose); color:#fff; }
.edit-source-panel[hidden] { display:none; }
.edit-source-empty { padding:34px 20px; display:grid; justify-items:center; gap:5px; border:2px dashed #e3d5db; border-radius:16px; background:var(--wash); text-align:center; }
.edit-source-empty p { color:var(--muted); font-size:13px; }
.edit-source-drop { width:100%; margin-top:14px; padding:26px 20px; display:grid; justify-items:center; gap:6px; border:2px dashed #e3d5db; border-radius:16px; background:var(--wash); text-align:center; transition:border-color .16s ease, background .16s ease; }
.edit-source-drop:hover, .edit-source-drop.is-over { border-color:var(--rose-dark); background:#fdf4f7; }
.edit-source-drop span { font-size:24px; color:var(--rose-dark); }
.edit-source-drop strong { font-size:15px; }
.edit-source-drop small { color:var(--muted); font-size:12px; }
.edit-source-grid { margin-top:14px; display:grid; grid-template-columns:repeat(auto-fill,minmax(88px,1fr)); gap:8px; max-height:322px; overflow-y:auto; }
.edit-source-grid button { aspect-ratio:1; padding:0; border:1px solid #eadfe3; border-radius:11px; overflow:hidden; background:var(--wash); transition:border-color .16s ease, transform .16s ease; }
.edit-source-grid button:hover { border-color:var(--rose-dark); transform:translateY(-2px); }
.edit-source-grid button:disabled { opacity:.5; }
.edit-source-grid img { width:100%; height:100%; object-fit:cover; display:block; }
.auth-modal { width:min(500px,100%); }
.queue-upgrade-modal { position:relative; width:min(510px,100%); overflow:hidden; }
.queue-upgrade-mark { width:48px; height:48px; display:grid; place-items:center; margin-bottom:18px; border-radius:13px; background:linear-gradient(135deg,var(--rose),#a855f7); color:#fff; font-size:21px; box-shadow:0 10px 24px rgba(196,58,101,.22); }
.queue-upgrade-modal > p { margin:14px 0 0; line-height:1.55; }
.queue-upgrade-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin-top:20px; }
.queue-upgrade-benefits span { min-width:0; padding:10px 7px; border:1px solid #eed9df; border-radius:9px; background:#fff8fa; color:#655963; text-align:center; font-size:9px; font-weight:800; }
.speed-upgrade-modal { position:relative;width:min(720px,100%); }.speed-upgrade-modal > p { max-width:580px;margin:12px 0 0;line-height:1.55; }.speed-benefit-row { display:flex;flex-wrap:wrap;gap:7px;margin-top:17px; }.speed-benefit-row span { border-radius:7px;background:#f5f1fb;padding:7px 9px;color:#665a77;font-size:9px;font-weight:800; }.speed-plan-options { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:19px; }.speed-plan-option { min-width:0;min-height:152px;display:flex;flex-direction:column;gap:11px;border:1px solid #dce3eb;border-radius:13px;background:#fff;padding:15px;text-align:left;color:#2a3444;cursor:pointer;transition:.16s ease; }.speed-plan-option > span { display:flex;align-items:start;justify-content:space-between;gap:8px; }.speed-plan-option span span,.speed-plan-option span small { display:block; }.speed-plan-option > span:first-child { display:block; }.speed-plan-option strong { font-size:16px; }.speed-plan-option b { color:var(--rose-dark);font-size:17px; }.speed-plan-option small { margin-top:3px;color:#8491a3;font-size:9px;line-height:1.35; }.speed-plan-option em { margin-top:auto;color:#68778c;font-size:9px;font-style:normal;line-height:1.45; }.speed-plan-option:hover { border-color:#ef9fb2;transform:translateY(-2px); }.speed-plan-option.selected { border:2px solid var(--rose);background:#fff7f9;box-shadow:0 0 0 3px rgba(240,79,111,.1); }.speed-upgrade-footer { margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:15px;border-top:1px solid #e2e7ed; }.speed-upgrade-footer > span small,.speed-upgrade-footer > span strong { display:block; }.speed-upgrade-footer > span small { color:#8a97a8;font-size:8px;text-transform:uppercase;letter-spacing:.08em; }.speed-upgrade-footer > span strong { margin-top:3px;font-size:12px; }.speed-compare-link { display:block;margin:12px auto 0;border:0;background:none;color:#74839a;font-size:10px;font-weight:750;cursor:pointer; }
.auth-choice { border:1px solid var(--line); border-radius:15px; padding:14px; display:grid; grid-template-columns:1fr auto; gap:15px; align-items:center; margin-top:18px; }
.auth-choice strong, .auth-choice span { display:block; }
.auth-choice span { color:var(--muted); font-size:12px; margin-top:2px; }
.auth-choice .btn { min-width:190px; }
.auth-divider { height:16px; margin:5px 0; display:flex; align-items:center; gap:10px; color:#a79da5; font-size:10px; text-transform:uppercase; }
.auth-divider:before, .auth-divider:after { content:""; height:1px; background:var(--line); flex:1; }
.auth-cancel { width:100%; margin-top:17px; }
.auth-terms { text-align:center; font-size:10px; margin:12px 12px 0; }
.share-modal { position:relative;width:min(560px,100%); }.share-modal > p { margin:9px 0 20px; }.share-destinations { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px; }.share-destinations a { min-width:0;display:grid;place-items:center;gap:7px;border:1px solid #dce3eb;border-radius:12px;background:#fff;padding:14px 7px;color:#354154;text-decoration:none;font-size:10px;font-weight:800;transition:.15s ease; }.share-destinations a:hover { border-color:#ee9eb1;background:#fff5f7;transform:translateY(-2px); }.share-destinations b { width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:#f2f5f8;color:#253143; }.share-destinations b .social-brand-icon { width:25px;height:25px; }.share-destinations a:first-child b { background:#e8f9ef;color:#159957; }.share-destinations a:nth-child(2) b { background:#fff0e8;color:#ed5b21; }.share-destinations a:nth-child(3) b { background:#e9f5ff;color:#259bd8; }.share-destinations a:nth-child(4) b { background:#1d2430;color:#fff; }.share-direct { display:grid;gap:7px;margin-top:19px;color:#718097;font-size:10px;font-weight:800; }.share-direct > div { display:grid;grid-template-columns:minmax(0,1fr) auto; }.share-direct input { min-width:0;height:45px;border:1px solid #d7e0ea;border-right:0;border-radius:9px 0 0 9px;background:#f8fafc;padding:0 11px;color:#526176; }.share-direct button { border:0;border-radius:0 9px 9px 0;background:var(--rose);padding:0 15px;color:#fff;font-size:10px;font-weight:900;cursor:pointer; }.share-native { width:100%;margin-top:10px;border:0;background:none;padding:7px;color:#718097;font-size:10px;font-weight:800;cursor:pointer; }
.share-modal-backdrop { z-index:360; }
.notifications-backdrop { position:fixed;z-index:410;inset:0;display:grid;place-items:center;padding:20px;background:rgba(25,19,27,.58);backdrop-filter:blur(8px); }
.notifications-modal { width:min(620px,100%);max-height:min(760px,calc(100vh - 40px));display:flex;flex-direction:column;overflow:hidden;border:1px solid #e0e5ec;border-radius:22px;background:#fff;box-shadow:0 28px 90px rgba(14,18,28,.3); }
.notifications-modal > header { display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:25px 25px 17px; }
.notifications-modal h2 { display:flex;align-items:center;gap:9px;margin:4px 0 0;font-size:29px;letter-spacing:-1.2px; }
.notifications-modal h2 em { min-width:25px;height:25px;display:grid;place-items:center;padding:0 7px;border-radius:8px;background:#fff0f3;color:var(--rose-dark);font-size:11px;font-style:normal;letter-spacing:0; }
.notifications-close { width:42px;height:42px;display:grid;place-items:center;flex:none;border:1px solid #dce3ec;border-radius:13px;background:#fff;color:#263142;font-size:25px;line-height:1;cursor:pointer; }
.notifications-close:hover { border-color:#f09db1;background:#fff6f8;color:var(--rose-dark); }
.notifications-toolbar { min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 25px;border-top:1px solid #edf0f4;border-bottom:1px solid #e5e9ef;background:#fbfcfd; }
.notifications-toolbar > div { display:flex;gap:4px;padding:3px;border-radius:10px;background:#edf1f5; }
.notifications-toolbar button { border:0;background:transparent;color:#6e7c90;font-size:11px;font-weight:850;cursor:pointer; }
.notifications-toolbar > div button { min-height:33px;padding:0 14px;border-radius:8px; }
.notifications-toolbar > div button.active { background:#fff;color:#202a38;box-shadow:0 1px 4px rgba(24,31,42,.09); }
.notifications-toolbar > button { color:var(--rose-dark);padding:8px; }
.notifications-modal [data-notification-rows] { min-height:260px;overflow-y:auto;overscroll-behavior:contain; }
.notification-list { display:grid; }
.notification-item { position:relative;width:100%;min-height:98px;display:grid;grid-template-columns:62px minmax(0,1fr) 8px 10px;align-items:center;gap:13px;padding:14px 25px;border:0;border-bottom:1px solid #edf0f4;background:#fff;color:#293548;text-align:left;cursor:pointer;transition:background .15s ease; }
.notification-item:hover { background:#fff8fa; }
.notification-item.unread { background:#fffafb; }
.notification-item > img,.notification-type-icon { width:62px;height:62px;border-radius:14px;object-fit:cover; }
.notification-type-icon { display:grid;place-items:center;background:linear-gradient(135deg,#fff0f4,#f2edff);color:var(--rose); }
.notification-type-icon svg { width:25px;height:25px; }
.notification-copy { min-width:0;display:block; }
.notification-copy strong,.notification-copy span,.notification-copy small { display:block; }
.notification-copy strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#202a38;font-size:13px; }
.notification-copy span { margin-top:4px;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#66758b;font-size:11px;line-height:1.45; }
.notification-copy small { margin-top:6px;color:#9aa5b4;font-size:9px;font-weight:750; }
.notification-item > i { width:8px;height:8px;border-radius:50%;background:var(--rose); }
.notification-item > b { color:#9da8b7;font-size:20px;font-weight:500; }
.notifications-empty { min-height:330px;display:grid;place-items:center;align-content:center;padding:35px;text-align:center; }
.notifications-empty > span { width:62px;height:62px;display:grid;place-items:center;border-radius:18px;background:#fff0f3;color:var(--rose); }
.notifications-empty svg { width:27px;height:27px; }
.notifications-empty h3 { margin:16px 0 0;font-size:20px; }
.notifications-empty p { max-width:330px;margin:7px 0;color:#7b8798;font-size:11px;line-height:1.55; }
.notifications-empty button { margin-top:12px;border:1px solid #efb1c0;border-radius:9px;background:#fff;padding:9px 14px;color:var(--rose-dark);font-size:10px;font-weight:850;cursor:pointer; }
.notifications-modal > footer { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 25px;border-top:1px solid #e5e9ef;background:#fbfcfd;color:#8a96a6;font-size:9px;font-weight:750; }
.notifications-modal > footer a { color:var(--rose-dark);font-size:10px;text-decoration:none; }
.comment-avatar img { width:100%;height:100%;border-radius:inherit;object-fit:cover; }
@media (max-width:680px) {
  .notifications-backdrop { align-items:end;padding:0; }
  .notifications-modal { width:100%;max-height:88vh;border-radius:22px 22px 0 0; }
  .notifications-modal > header { padding:21px 18px 14px; }
  .notifications-toolbar { padding:7px 18px; }
  .notification-item { grid-template-columns:52px minmax(0,1fr) 8px 8px;gap:10px;min-height:88px;padding:12px 18px; }
  .notification-item > img,.notification-type-icon { width:52px;height:52px;border-radius:12px; }
  .notifications-modal > footer { padding:14px 18px; }
}
.age-card { width:min(540px,100%); background:#fffdfc; border-radius:25px; padding:38px; text-align:center; }
.age-logo { margin:0 auto 18px; width:58px; height:58px; border-radius:17px; display:block; overflow:hidden; background:var(--ink); }
.age-logo img { width:100%; height:100%; object-fit:cover; }
.age-card h2 { margin:0; font-size:35px; letter-spacing:-1.5px; }
.age-card p { color:var(--muted); }
.age-terms { font-size:11px; margin:18px auto 0; max-width:390px; }
.hidden { display:none !important; }
.toast { position:fixed; z-index:200; right:22px; bottom:22px; padding:12px 16px; max-width:360px; background:var(--ink); color:#fff; border-radius:11px; font-weight:650; font-size:13px; box-shadow:0 12px 40px rgba(0,0,0,.25); opacity:0; transform:translateY(12px); pointer-events:none; transition:.2s; }
.toast.show { opacity:1; transform:none; }
.empty-page { padding:100px 20px; text-align:center; }
.empty-page h1 { font-size:70px; margin:0; color:var(--rose); }

@media(prefers-reduced-motion:reduce) {
  .render-portrait:before,.render-portrait img,.render-scan,.render-orbit,.render-spark,.render-provider i { animation:none !important; }
  .render-progress-track i { transition:none; }
}

@media(max-width:1050px) {
  .gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .gallery.gallery-columns-4 { grid-template-columns:repeat(3,minmax(0,1fr)); }
  :root { --sidebar: 198px; }
  .help-hero { grid-template-columns:minmax(0,1fr) 250px;gap:28px;padding:45px 38px; }
  .help-popular-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .help-topic-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .help-topic-section { grid-template-columns:250px minmax(0,1fr);gap:26px; }
  .checkout-grid { grid-template-columns:1fr; }
  .checkout-summary { position:static;grid-row:1; }
  .collection-row { grid-template-columns:repeat(2,1fr); }
  .magazine-grid { grid-template-columns:1fr 1fr; }
  .story-card.featured { grid-column:1/-1; grid-row:auto; min-height:360px; }
  .tools-grid { grid-template-columns:repeat(2,1fr); }
  .page-hero { grid-template-columns:1fr; }
  .page-hero-card { max-width:520px; transform:none; }
  .studio-grid { grid-template-columns:minmax(320px,390px) minmax(0,1fr); }
  .studio-media { display:none; }
  .post-layout { grid-template-columns:minmax(0,1fr) 300px; gap:18px; }
  .post-viewer { min-height:520px; }
  .profile-summary { grid-template-columns:1fr; gap:18px; }
  .profile-stats { justify-content:flex-start; }
  .history-layout { grid-template-columns:220px minmax(0,1fr); }
  .history-folders { display:none; }
  .history-folders.open { position:fixed;z-index:175;top:0;right:0;bottom:0;width:min(330px,88vw);display:block;overflow-y:auto;background:#fff;box-shadow:-18px 0 44px rgba(31,40,55,.18); }
  .history-folders.open .history-folder-close { display:block; }
  .explore-controls { grid-template-columns:130px 1fr auto; }
  .plan-grid { grid-template-columns:repeat(2,1fr); gap:18px; }
  .pack-grid { grid-template-columns:repeat(2,1fr); }
  .tool-workspace { grid-template-columns:390px minmax(0,1fr); }
  .connections-grid.list .connection-card { grid-template-columns:minmax(210px,1fr) minmax(220px,1.2fr); }
  .connections-grid.list .connection-work { display:none; }
}
@media(max-width:900px) {
  .prompt-library-backdrop { padding:0;align-items:stretch; }
  .prompt-library-modal { width:100vw;max-width:100vw;min-height:100dvh;max-height:100dvh;border-radius:0;padding:22px clamp(15px,4vw,28px) 30px;scrollbar-gutter:auto; }
  .prompt-library-head { position:sticky;z-index:4;top:-22px;margin:0 calc(clamp(15px,4vw,28px) * -1) 0;padding:17px clamp(15px,4vw,28px) 12px;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(234,223,227,.72);backdrop-filter:blur(10px); }
  .prompt-library-intro { margin-top:15px;font-size:13px; }
  .prompt-preset-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .prompt-preset-grid button { min-height:116px; }
  .prompt-library-toolbar { grid-template-columns:minmax(0,1fr);top:73px;padding:9px 0; }
  .prompt-tag-catalog { grid-template-columns:minmax(0,1fr); }
}

/* Route-shell safety: these rules live in the base bundle so a delayed or failed
   workspace/community stylesheet can never expose full-size navigation SVGs. */
.history-mobile-bar { display:none; }
.history-mobile-bar svg { width:20px; height:20px; }
.history-mobile-create svg { width:16px; height:16px; }

/* Every interface icon is bounded by the blocking base sheet. Route bundles can
   make an icon smaller, but a delayed or failed bundle can never let an SVG use
   its intrinsic viewport size and cover the page. Illustrative SVGs use their
   own classes and are intentionally not affected. */
.ui-icon { display:inline-block; width:24px; height:24px; max-width:24px; max-height:24px; flex:none; }

@media(max-width:760px) {
  .help-hero { grid-template-columns:1fr;gap:25px;padding:34px 20px;border-radius:20px; }
  .help-hero:before { right:-150px;bottom:-170px; }
  .help-hero h1 { font-size:clamp(42px,14vw,60px); }
  .help-hero-copy > p { font-size:15px; }
  .help-search { height:56px;margin-top:20px;padding-left:14px; }
  .help-search-meta { display:none; }
  .help-support-card { grid-template-columns:45px minmax(0,1fr);align-items:center;gap:0 13px;padding:17px; }
  .help-support-icon { grid-row:1/4;margin:0; }
  .help-support-card > small,.help-support-card > strong,.help-support-card > p { grid-column:2; }
  .help-support-card > strong { font-size:18px; }
  .help-support-card p { margin:3px 0 0; }
  .help-support-card .btn,.help-support-card > a:last-child { grid-column:1/-1; }
  .help-support-card .btn { margin-top:14px; }
  .help-popular,.help-browse { padding-top:39px; }
  .help-section-heading { align-items:start; }
  .help-section-heading > a,.help-section-heading > p { display:none; }
  .help-section-heading h2,.help-results-heading h2 { font-size:24px; }
  .help-popular-grid,.help-topic-grid { grid-template-columns:1fr; }
  .help-popular-card { min-height:90px; }
  .help-topic-card { min-height:138px;padding:19px; }
  .help-topic-card p { min-height:0; }
  .help-results-heading { margin-top:48px; }
  .help-topic-section { grid-template-columns:1fr;gap:14px;padding:24px 0 30px; }
  .help-topic-section > header { padding-right:10px; }
  .help-answer summary { min-height:60px;padding:14px 2px;font-size:13px; }
  .help-answer-body { padding:0 3px 19px; }
  .help-answer-body p { font-size:12px; }
  .help-contact-strip { align-items:stretch;flex-direction:column;padding:22px 19px; }
  .help-contact-strip > div:last-child { display:grid;grid-template-columns:1fr 1fr;gap:8px; }
  :root { --sidebar: 0px; }
  .sidebar { width:min(84vw,310px); padding:20px 16px 18px; transform:translateX(-105%); visibility:hidden; transition:transform .34s cubic-bezier(.22,.8,.24,1),visibility 0s linear .34s; box-shadow:18px 0 55px rgba(33,18,27,.2); will-change:transform; }
  .sidebar.open { transform:translateX(0); visibility:visible; transition:transform .34s cubic-bezier(.22,.8,.24,1),visibility 0s; }
  .sidebar .brand { padding-right:48px; }
  .sidebar-close { position:absolute; z-index:2; top:17px; right:14px; width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--line); border-radius:10px; background:#fff; color:#554d57; font-size:27px; line-height:1; cursor:pointer; }
  .sidebar-scrim { position:fixed; z-index:35; inset:0; display:block; border:0; background:rgba(28,18,25,.42); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .28s ease,visibility 0s linear .28s; backdrop-filter:blur(2px); }
  .sidebar-scrim.open { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .28s ease,visibility 0s; }
  .mobile-menu { display:grid; place-items:center; flex:none; }
  .nav-list { margin-top:10px; gap:6px; }
  .nav-link { min-height:50px; border-radius:11px; font-size:16px; }
  .topbar { height:62px;padding:0 12px;display:grid;grid-template-columns:42px 34px minmax(0,1fr) auto;gap:8px; }
  .topbar-mobile-brand { width:34px;height:34px;display:grid!important;place-items:center;justify-self:start;overflow:hidden;border-radius:9px;background:var(--ink); }
  .topbar-mobile-brand img { width:100%;height:100%;display:block;object-fit:cover; }
  .search-mini { display:none; }
  .top-actions { justify-self:end;gap:9px;margin-left:0; }
  .top-generate-cta { height:38px;padding:0 11px;font-size:12px; }
  .top-link { display:none; }
  .google-btn { height:38px; padding:0 11px; }
  .main { padding-left:15px; padding-right:15px; }
  .hero { padding:36px 13px 0; min-height:430px; border-radius:20px; }
  .hero h1 { letter-spacing:-2.2px; }
  .hero-sub { font-size:15px; }
  .hero-actions { flex-direction:column; align-items:center; }
  .hero-actions .btn { width:230px; }
  .hero-ribbon { width:calc(100% + 26px); margin-left:-13px; height:150px; }
  .ribbon-card { flex-basis:150px; }
  .ribbon-arrow { width:36px; height:44px; opacity:1; }
  .ribbon-prev { left:8px; }
  .ribbon-next { right:8px; }
  .prompt-dock { margin-top:26px; }
  .prompt-dock-heading { display:block; }
  .prompt-example { flex-basis:172px; }
  .prompt-box { grid-template-columns:1fr; }
  .prompt-box textarea { min-height:145px; }
  .prompt-go { min-height:52px; }
  .section { padding-top:42px; }
  .gallery-toolbar { align-items:stretch;flex-direction:column; }
  .home-gallery-options { width:100%;justify-content:space-between; }
  .home-gallery-options .section-note { margin:0; }
  .collection-row { grid-template-columns:1fr 1fr; gap:10px; }
  .collection-card { min-height:150px; }
  .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .gallery.gallery-columns-2,.gallery.gallery-columns-3,.gallery.gallery-columns-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .art-card { margin-bottom:0; }
  .trust-strip { grid-template-columns:1fr 1fr; }
  .magazine-grid { grid-template-columns:1fr; grid-template-rows:auto; }
  .story-card, .story-card.featured { grid-column:auto; min-height:230px; }
  .footer { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .create-layout { grid-template-columns:1fr; }
  .generation-stage { min-height:450px; }
  .generation-progress { padding:20px 16px 24px; }
  .render-visual { width:190px; margin-bottom:16px; }
  .render-portrait { width:150px; height:188px; }
  .render-portrait img { width:98px; height:98px; }
  .tools-grid, .pricing-grid { grid-template-columns:1fr; }
  .tool-page { padding-top:20px; }
  .tool-headline { align-items:flex-start; }
  .tool-headline .tool-icon { width:48px; height:48px; }
  .tool-headline h1 { font-size:31px; letter-spacing:-1.4px; }
  .tool-workspace { grid-template-columns:1fr; border-radius:13px; }
  .tool-controls { border-right:0; border-bottom:1px solid var(--line); padding:18px; }
  .tool-fields { grid-template-columns:1fr; }
  .tool-field-wide { grid-column:auto; }
  .tool-result-empty { min-height:430px; padding:28px 18px; }
  .tool-result-image { padding:12px; }
  .tool-analysis-result { margin:12px; padding:18px; }
  .tool-result-actions .btn { flex:1; }
  .tool-explainer { grid-template-columns:1fr; }
  .focused-generator { grid-template-columns:1fr; gap:15px; }
  .focused-generator-copy { padding:10px 0; }
  .focused-generator-copy h1 { font-size:42px; letter-spacing:-2.4px; }
  .focused-generator-visual { max-width:420px; }
  .focused-generator-form { grid-column:auto; padding:17px; }
  .focused-generator-form > label { align-items:start; flex-direction:column; gap:3px; }
  .focused-generator-options,.focused-ideas > div:last-child { grid-template-columns:1fr; }
  .content-layout { grid-template-columns:1fr; gap:20px; }
  .toc { display:none; }
  .page-hero { padding-top:20px; gap:20px; }
  .page-hero h1 { letter-spacing:-2.4px; }
  .auth-choice { grid-template-columns:1fr; }
  .auth-choice .btn { width:100%; }
  .share-destinations { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .share-direct > div { grid-template-columns:1fr;gap:7px; }
  .share-direct input { border-right:1px solid #d7e0ea;border-radius:9px; }
  .share-direct button { min-height:44px;border-radius:9px; }
  .prompt-library-modal { padding-left:15px;padding-right:15px; }
  .prompt-library-head { margin-left:-15px;margin-right:-15px;padding-left:15px;padding-right:15px; }
  .prompt-library-toolbar { top:73px; }
  .studio-wrap { height:auto; min-height:100vh; overflow:visible; }
  .studio-grid { height:auto; min-height:100vh; grid-template-columns:1fr; }
  .studio-controls { height:calc(100dvh - 62px - env(safe-area-inset-top,0px)); min-height:0; }
  .control-scroll { padding:11px 13px 64px; scroll-padding-bottom:64px; }
  .studio-label { min-height:0; flex-wrap:wrap; row-gap:6px; margin-bottom:8px; }
  .studio-label strong { margin-right:auto; }
  .studio-label .switch-row { margin-left:0; }
  .prompt-tools { overflow-x:auto; padding-bottom:3px; scrollbar-width:none; }
  .prompt-tools::-webkit-scrollbar { display:none; }
  .prompt-tools button { flex:none; }
  .prompt-tools span { flex:none; }
  .generate-meta { flex-wrap:wrap; }
  .generate-meta > span { margin-left:0; }
  .studio-generate-bar { position:relative; bottom:auto; padding-bottom:max(12px,env(safe-area-inset-bottom)); }
  .studio-canvas { min-height:min(720px,100dvh); }
  .post-layout { grid-template-columns:1fr; padding-top:15px; }
  .post-details { position:static; grid-row:2; }
  .post-viewer { min-height:430px; padding:15px 43px; }
  .post-viewer img { max-height:70vh; }
  .comment-form { grid-template-columns:auto 1fr; }
  .comment-form .btn { grid-column:2; justify-self:end; }
  .comment-compose-meta { align-items:center; }
  .comment-emoji-picker { position:fixed;left:50%;right:auto;top:auto;bottom:18px;transform:translateX(-50%);grid-template-columns:repeat(6,40px);padding:10px; }
  .comment-emoji-picker button { width:40px;height:40px;font-size:21px; }
  .comment-replies,.inline-reply-form { margin-left:20px; }
  .comment-replies { padding-left:12px; }
  .inline-reply-form > div:last-child { align-items:flex-end; }
  .inline-reply-form small { max-width:190px; }

  .profile-cover { height:180px; }
  .profile-identity { align-items:flex-start; padding:0 16px 17px; flex-wrap:wrap; }
  .profile-avatar { width:82px; height:82px; margin-top:-41px; font-size:36px; }
  .profile-name { padding-top:9px; }
  .profile-name h1 { font-size:22px; }
  .creator-badge { display:none; }
  .profile-buttons { width:100%; margin-left:100px; margin-top:-30px; }
  .profile-summary { padding:17px; }
  .profile-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
  .connections-page { padding-top:15px; }
  .connections-header { border-radius:13px; }
  .connections-back { margin:14px 15px 0; }
  .connections-identity { padding:14px 15px 17px; }
  .connections-identity > span { width:55px; height:55px; border-radius:13px; }
  .connections-identity h1 { font-size:23px; }
  .connections-tabs { padding:0 10px; }
  .connections-tabs a { min-width:0; flex:1; padding:12px 9px; text-align:center; }
  .connections-intro { padding-top:24px; align-items:start; }
  .connections-intro h2 { font-size:22px; }
  .connections-toolbar { grid-template-columns:1fr auto; }
  .connections-toolbar > label { grid-column:1/-1; grid-row:1; }
  .connections-grid,.connections-grid.list { grid-template-columns:1fr; }
  .connections-grid.list .connection-card { display:block; }
  .connections-grid.list .connection-card > p { margin:13px 0 10px; }
  .connections-grid.list .connection-meta,.connections-grid.list .connection-tags { margin:12px 0; }
  .connections-grid.list .connection-work { display:grid; height:112px; }
  .connection-card { padding:14px; }
  .connection-card > p { min-height:0; }
  .connection-work { height:96px; }
  .connections-note { align-items:start; flex-direction:column; gap:4px; }
  .pinned-card { grid-template-columns:120px 1fr; min-height:145px; }
  .pinned-card > div { padding:15px; }
  .pinned-card h3 { font-size:21px; }
  .profile-search { width:100%; order:3; }
  .profile-toolbar { flex-wrap:wrap; }
  .post-modal-backdrop { padding:0; align-items:stretch; }
  .post-modal-card { width:100%; height:100vh; max-height:none; border-radius:0; }
  .post-modal-card > .post-layout { padding:62px 12px 12px; }
  .post-modal-close { position:fixed; top:8px; right:8px; margin:0; }
  .history-mobile-bar { position:sticky; z-index:30; top:0; min-height:62px; display:flex; align-items:center; gap:10px; padding:calc(8px + env(safe-area-inset-top,0px)) 12px 8px; border-bottom:1px solid #e3e8ef; background:rgba(255,253,252,.96); backdrop-filter:blur(16px); }
  .history-mobile-bar .mobile-menu { display:grid; place-items:center; }
  .history-mobile-brand { min-width:0; display:flex; align-items:center; gap:9px; }
  .history-mobile-brand .brand-mark { width:34px; height:34px; border-radius:10px; }
  .history-mobile-brand strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; }
  .history-mobile-create { min-height:38px; display:inline-flex; align-items:center; justify-content:center; gap:5px; margin-left:auto; padding:0 12px; border-radius:10px; background:var(--rose); color:#fff; font-size:12px; font-weight:850; box-shadow:0 5px 13px rgba(240,79,111,.2); }
  .history-mobile-create svg { width:16px; height:16px; }
  .history-layout { display:block; }
  .history-filters { display:none; }
  .history-main { padding:14px 12px calc(32px + env(safe-area-inset-bottom,0px)); }
  .history-view-tabs { width:100%;grid-template-columns:repeat(3,minmax(0,1fr)); }
  .history-view-tabs button,.history-view-tabs a { min-height:58px;padding:8px 7px;gap:7px; }
  .history-view-tabs strong { white-space:normal;line-height:1.25; }
  .comment-direction-tabs { width:100%; }
  .comment-direction-tabs button { min-height:48px; padding:7px 6px; line-height:1.25; }
  .comment-history-search { height:48px; }
  .comment-history-search input { min-width:0; font-size:16px; }
  .comment-history-search kbd { display:none; }
  .comment-history-head { align-items:start;flex-direction:column;gap:7px; }
  .comment-history-head p { text-align:left; }
  .comment-history-card { grid-template-columns:58px minmax(0,1fr);gap:11px; }
  .comment-history-thumb { width:58px;height:58px; }
  .comment-history-actions { grid-column:2;display:flex;justify-content:flex-start;gap:18px; }
  .comment-history-empty { padding:52px 12px; }
  .comment-history-empty h2 { margin:0; font-size:27px; line-height:1.15; letter-spacing:-.8px; }
  .comment-history-empty p { max-width:330px; margin:15px auto 0; font-size:14px; line-height:1.55; }
  .comment-history-empty .btn { width:min(100%,240px); margin-top:22px; }
  .history-toolbar { flex-wrap:wrap; }
  .history-toolbar > button[data-select-history] { min-width:104px; }
  .history-selection-bar { align-items:stretch; }
  .history-selection-bar > strong { width:100%; margin:0; }
  .history-selection-bar label { width:100%; }
  .history-selection-bar label select { min-width:0; flex:1; }
  .history-selection-bar > button { flex:1 1 auto; justify-content:center; }
  .history-detail-modal { grid-template-columns:1fr; height:96vh; overflow:auto; }
  .history-detail-image { min-height:45vh; }
  .history-detail-modal > aside { overflow:visible; }
  .history-modal-backdrop { padding:8px; }
  .explore-controls { grid-template-columns:1fr auto; }
  .explore-controls > select { display:none; }
  .explore-search { grid-column:1/-1; grid-row:1; }
  .profile-collections { grid-template-columns:1fr; }
  .profile-about { grid-template-columns:1fr;gap:15px; }
  .form-row { grid-template-columns:1fr; }
  .pricing-hero { padding:22px 3px 22px; }
  .pricing-hero h1 { letter-spacing:-2.2px; }
  .pricing-hero > p { font-size:15px; }
  .billing-switch { width:100%; }
  .billing-switch button { min-width:0; flex:1; }
  .credit-rule { width:100%; }
  .credit-rule i { display:none; }
  .plan-grid, .pack-grid { grid-template-columns:1fr; }
  .plan-card ul { min-height:0; }
  .pricing-section, .pricing-benefits { padding-top:58px; margin-top:0; }
  .pricing-benefits article { min-height:0; grid-template-columns:1fr; gap:8px; padding:30px 0; }
  .pricing-benefits article:nth-child(2) img { grid-row:2; }
  .pricing-benefits article > div { padding:10px 2px; }
  .pricing-benefits img { height:260px; }
  .pricing-final { margin-top:58px; padding:40px 18px; }
  .speed-plan-options { grid-template-columns:1fr;max-height:47vh;overflow:auto; }
  .speed-plan-option { min-height:112px; }
  .speed-upgrade-footer { align-items:stretch;flex-direction:column; }
  .checkout-page { padding:0 0 60px; }
  .checkout-grid { grid-template-columns:1fr; }
  .checkout-summary { position:static;grid-row:1; }
  .checkout-heading h1 { letter-spacing:-1.8px; }
  .checkout-form-section { padding:21px 18px; }
  .checkout-renewal-note,.checkout-form-error { margin-left:18px;margin-right:18px; }
  .checkout-pay { margin-left:18px;margin-right:18px; }
  .checkout-trust { margin-left:18px;margin-right:18px; }
  .checkout-legal { margin-left:18px;margin-right:18px; }
  .checkout-payment-method { grid-template-columns:19px 34px minmax(0,1fr); }
  .checkout-card-preview-head { grid-template-columns:19px 34px minmax(0,1fr); }
  .checkout-card-brands { display:none; }
  .checkout-summary { padding:20px; }
  .checkout-offline-actions { grid-template-columns:1fr; }
}

@media(max-width:420px) {
  .top-actions { gap:7px; }
  .top-generate-cta { padding:0 9px;font-size:11px; }
  .top-actions .google-btn { width:38px;padding:0;justify-content:center; }
  .top-actions .google-btn > .google-btn-label { display:none; }
}

@media(max-width:420px) {
  .anima-guide-modal-backdrop { padding:0; }
  .anima-guide-modal { width:100%;height:100%;max-height:none;border:0;border-radius:0; }
  .anima-guide-modal-scroll { padding:0 15px 50px;scrollbar-gutter:auto; }
  .anima-guide-modal-close { position:fixed;top:12px;right:18px;width:46px;height:46px; }
  .anima-guide-modal .anima-guide-hero { padding-top:62px; }
  .site-breadcrumbs { min-height:40px;padding:0 15px;font-size:11px; }
  .site-breadcrumbs a { padding:0 5px; }
  .site-breadcrumbs li:not(:first-child):not(:last-child):not(.breadcrumb-separator) { display:none; }
  .site-breadcrumbs .breadcrumb-separator { display:none; }
  .site-breadcrumbs .breadcrumb-separator:has(+ li:last-child) { display:flex; }
  .prompt-preset-grid { grid-template-columns:minmax(0,1fr); }
  .prompt-preset-grid button { min-height:104px; }
  .prompt-library-section-title { align-items:flex-start;flex-direction:column;gap:2px; }
}

/* Server-rendered SEO content. Visible to crawlers and to anyone before app.js
   hydrates, so it has to be readable rather than merely present. */
/* Matches the 1180px page container so the left edge lines up with the tool workspace
   and headline above it. Running text keeps a readable measure inside that container;
   tables and galleries take the full width, which is what they are for. */
.seo-prerender { max-width:none; margin:0; padding:40px 0 64px; }
/* No reading-measure cap: every block runs the full content width, matching the hero,
   the sections and the footer above and below it. */
.seo-prerender > *,
.seo-prerender section > *,
.seo-prerender .seo-summary,
.seo-prerender .seo-tip,
.seo-prerender .seo-recipe,
.seo-prerender .seo-table-wrap,
.seo-prerender .seo-gallery,
.seo-prerender > figure { max-width:none; }
.seo-prerender > figure img { width:100%; max-height:520px; object-fit:cover; }
.seo-prerender h1,
.seo-prerender .seo-lede { font-size:clamp(28px,4vw,42px); line-height:1.12; letter-spacing:-1.5px; margin:0 0 14px; }
.seo-prerender h2 { font-size:21px; letter-spacing:-.5px; margin:30px 0 8px; }
.seo-prerender h3 { font-size:15px; margin:18px 0 5px; color:var(--ink); }
.seo-prerender p { margin:0 0 12px; color:var(--muted); line-height:1.65; }
.seo-prerender strong { color:var(--ink); font-weight:750; }
.seo-prerender em { font-style:italic; }
.seo-prerender ul { margin:0 0 14px; padding-left:20px; color:var(--muted); line-height:1.6; }
.seo-prerender li { margin-bottom:5px; }
.seo-prerender a { color:var(--rose-dark); text-decoration:underline; text-underline-offset:2px; }
.seo-prerender a:hover { color:var(--rose); }
.seo-prerender figure { margin:0 0 20px; }
.seo-prerender figure img { width:100%; height:auto; border-radius:14px; }
.seo-prerender figcaption { margin-top:7px; color:var(--muted); font-size:12px; }
.seo-summary { margin:0 0 20px; padding:13px 16px; border-left:3px solid var(--rose); border-radius:0 10px 10px 0; background:#fff5f8; color:var(--ink); line-height:1.6; }
.seo-tip { margin:14px 0 18px; padding:13px 16px; border:1px solid #e6edf4; border-radius:12px; background:#f7fafc; }
.seo-tip > strong { display:block; margin-bottom:4px; color:var(--rose-dark); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.seo-tip p { margin:0; }
.seo-table-wrap { max-width:none; margin:0 0 18px; overflow-x:auto; border:1px solid #e6edf4; border-radius:12px; }
.seo-table-wrap table { width:100%; border-collapse:collapse; font-size:14px; }
.seo-table-wrap caption { padding:10px 14px; border-bottom:1px solid #e6edf4; background:#f7fafc; color:var(--muted); font-size:12px; font-weight:800; text-align:left; }
.seo-table-wrap th, .seo-table-wrap td { padding:9px 14px; border-bottom:1px solid #eef2f6; text-align:left; vertical-align:top; }
.seo-table-wrap thead th { color:var(--muted); font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.seo-table-wrap tbody tr:last-child th, .seo-table-wrap tbody tr:last-child td { border-bottom:0; }
.seo-prerender nav[aria-label="Pagination"] { margin-top:24px; color:var(--muted); font-size:13px; }
.seo-prerender nav[aria-label="Pagination"] a { margin:0 4px; }
.seo-prerender nav[aria-label="Pagination"] a[aria-current] { font-weight:800; text-decoration:none; }
.seo-recipe { margin:0 0 14px; padding:12px 14px; border:1px solid #e6edf4; border-radius:10px; background:#f7fafc; color:var(--ink); font:500 13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace; white-space:pre-wrap; word-break:break-word; }

/* Reserve a viewport while the SPA boots. Without this, #app grows from zero on
   hydration and pushes the server-rendered article down through the viewport, which
   is a large layout shift. Reserved only while empty, so it costs nothing after. */
#app:empty { min-height:100vh; }
#seo-content { border-top:1px solid var(--rule,#eee); background:#fff; }
.seo-gallery { max-width:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; margin:0 0 10px; }
.seo-gallery figure { margin:0; }
.seo-gallery img { width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; border-radius:12px; display:block; }
.seo-gallery figcaption { margin-top:6px; color:var(--muted); font-size:12px; line-height:1.5; }
.seo-gallery-note { font-size:12px; font-style:italic; }

/* Before/after comparison. Works as two stacked images without JS; the range input
   drives the clip so a reader can drag between them. */
.seo-compare { position:relative; width:100%; overflow:hidden; border-radius:14px; background:#f2e9ec; }
.seo-compare img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.seo-compare-after { position:absolute; inset:0; width:var(--split,50%); overflow:hidden; border-right:2px solid rgba(255,255,255,.9); }
.seo-compare-after img { width:100vw; max-width:none; }
.seo-compare-handle { position:absolute; top:50%; left:var(--split,50%); width:38px; height:38px; margin:-19px 0 0 -19px; border-radius:50%; background:#fff; box-shadow:0 2px 12px rgba(0,0,0,.28); pointer-events:none; }
.seo-compare-handle::before { content:'‹ ›'; position:absolute; inset:0; display:grid; place-items:center; color:var(--rose-dark); font-weight:900; font-size:13px; letter-spacing:-1px; }
.seo-compare input[type=range] { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; }
.seo-compare-note { margin-top:8px; font-size:13px; }
@media (prefers-reduced-motion:reduce) { .seo-compare-after { transition:none; } }

/* History summary. The page previously opened straight into a grid with no sense of
   scale, so a short grid read as an empty page. */
.history-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(132px,1fr)); gap:10px; margin:0 0 16px; }
.history-stats article { padding:12px 14px; border:1px solid #eadfe3; border-radius:12px; background:#fff; display:flex; flex-direction:column; gap:2px; }
.history-stats span { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.history-stats strong { font-size:24px; line-height:1.1; font-variant-numeric:tabular-nums; }
.history-stats small { color:var(--muted); font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.history-card { position:relative; }
.history-tool-badge { position:absolute; top:8px; left:8px; z-index:2; padding:3px 8px; border-radius:99px; background:rgba(25,22,32,.82); color:#fff; font-size:10px; font-weight:800; letter-spacing:.02em; text-transform:capitalize; backdrop-filter:blur(4px); }

/* Niche galleries on the focused generator pages. */
.niche-gallery { margin-top:34px; }
.niche-gallery .empty-page { padding:34px 0; }




/* Character bible: pick a saved face, and its traits lead the next prompt. */
.character-field .character-empty { margin:6px 0 0; color:var(--muted); font-size:12px; line-height:1.55; }
.character-upsell { margin-top:8px; border:0; background:none; padding:0; color:var(--rose); font-size:12px; font-weight:800; cursor:pointer; }
.character-row { display:flex; flex-wrap:wrap; gap:7px; margin-top:8px; }
.character-chip { display:inline-flex; align-items:center; gap:7px; min-height:36px; max-width:100%; padding:5px 13px 5px 5px; border:1px solid var(--line); border-radius:99px; background:#fff; color:var(--ink); font-size:12px; font-weight:600; line-height:1; cursor:pointer; transition:border-color .16s ease, background .16s ease, color .16s ease; }
.character-chip > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.character-chip[data-character-pick=""],
.character-chip[data-storyline-pick=""] { padding:5px 17px; font-weight:700; }
.character-chip img { width:24px; height:24px; border-radius:50%; object-fit:cover; flex:none; }
.character-chip i { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:#fdeef2; color:var(--rose); font-style:normal; font-size:12px; flex:none; }
.character-chip:hover { border-color:#efb0bf; background:#fff8fa; }
.character-chip:focus-visible { outline:2px solid var(--rose); outline-offset:2px; }
.character-chip.active { border-color:var(--rose); background:#fff5f8; color:var(--rose-dark); font-weight:800; }
.character-active { margin-top:9px; padding:10px 12px; border:1px solid #f0d7e0; border-radius:11px; background:#fff8fa; }
.character-active > strong { display:block; font-size:12px; }
.character-active > span { display:block; margin-top:3px; color:var(--muted); font-size:11px; line-height:1.5; }
.character-active > div { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:9px; }
.character-active label { display:flex; align-items:center; gap:6px; color:var(--muted); font-size:11px; }
.character-active button { border:0; background:none; padding:0; color:var(--muted); font-size:11px; text-decoration:underline; cursor:pointer; }
.character-active button:hover { color:var(--rose); }

/* Card hover chrome: series badge, overflow menu, and the like/comment counts. */
.art-series { position:absolute; z-index:3; top:9px; left:9px; display:inline-flex; align-items:center; gap:5px; padding:5px 9px 5px 7px; border-radius:99px; background:rgba(14,8,12,.72); color:#fff; font-size:11px; font-weight:800; backdrop-filter:blur(6px); }
.art-series svg { width:13px; height:13px; stroke-width:2.1; }
.art-more { position:absolute; z-index:3; top:9px; right:9px; width:30px; height:30px; display:grid; place-items:center; border:0; border-radius:9px; background:rgba(14,8,12,.62); color:#fff; font-size:17px; line-height:1; cursor:pointer; opacity:0; transition:opacity .18s ease, background .18s ease; backdrop-filter:blur(6px); }
.art-card:hover .art-more, .art-card:focus-within .art-more, .art-more[aria-expanded="true"] { opacity:1; }
.art-more:hover, .art-more:focus-visible { background:rgba(14,8,12,.85); outline:none; }
.art-stats { display:inline-flex; align-items:center; gap:11px; }
.art-stats b { display:inline-flex; align-items:center; gap:4px; font-weight:700; }
.art-stats svg { width:13px; height:13px; stroke-width:2; }
.art-card-menu { position:absolute; z-index:220; width:208px; padding:6px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 18px 44px rgba(32,40,53,.2); display:grid; gap:2px; }
.art-card-menu a, .art-card-menu button { width:100%; display:flex; align-items:center; gap:9px; padding:9px 10px; border:0; border-radius:8px; background:none; color:var(--ink); font-size:13px; text-align:left; text-decoration:none; cursor:pointer; }
.art-card-menu a:hover, .art-card-menu button:hover, .art-card-menu a:focus-visible, .art-card-menu button:focus-visible { background:#fff2f5; color:var(--rose-dark); outline:none; }
.art-card-menu svg { width:16px; height:16px; flex:none; stroke-width:1.9; }

/* Comment ownership controls, shown only inside the five-minute edit window. */
.comment-owner-actions { display:inline-flex; align-items:center; gap:12px; margin-left:auto; }
.comment-actions { display:flex; align-items:center; gap:16px; }
.comment-edited { display:block; margin-top:2px; color:var(--muted); font-size:10px; font-style:italic; }
.comment-removed { color:var(--muted); font-style:italic; }
.comment-edit-form { display:grid; gap:8px; margin:6px 0 2px; }
.comment-edit-form textarea { width:100%; min-height:74px; border:1px solid #d7e0ea; border-radius:9px; padding:9px 11px; font:inherit; font-size:14px; resize:vertical; }
.comment-edit-form textarea:focus { border-color:var(--rose); outline:none; }
.comment-edit-form div { display:flex; gap:8px; }
.comment-edit-form button { border:1px solid #d7e0ea; border-radius:8px; background:#fff; padding:7px 13px; font-size:12px; cursor:pointer; }
.comment-edit-form button[type="submit"] { border-color:var(--rose); background:var(--rose); color:#fff; font-weight:800; }
.comment-edit-form button:disabled { opacity:.5; cursor:not-allowed; }

/* Character bible page. */
.characters-page { padding:8px 0 60px; }
.characters-head { display:flex; align-items:flex-end; justify-content:space-between; gap:26px; flex-wrap:wrap; margin-bottom:26px; }
.characters-head h1 { margin:10px 0 8px; font:italic 700 clamp(38px,4.4vw,58px)/1 Georgia,serif; letter-spacing:-2px; }
.characters-head p { max-width:none; margin:0; color:var(--muted); line-height:1.6; }
.characters-count { flex:none; padding:14px 20px; border:1px solid #eadfe3; border-radius:14px; background:#fff; text-align:right; }
.characters-count strong { display:block; font:italic 700 30px/1 Georgia,serif; }
.characters-count span { color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.characters-count.is-full { border-color:#f0bdc9; background:#fff7f9; }
.characters-count small { display:block; margin-top:6px; color:var(--rose-dark); font-size:11px; }
.characters-upsell { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:22px; padding:14px 18px; border:1px solid #f0bdc9; border-radius:13px; background:#fff7f9; }
.characters-upsell strong { font-size:14px; }
.characters-upsell span { flex:1; min-width:220px; color:var(--muted); font-size:13px; }
.characters-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.character-card { display:grid; grid-template-rows:auto 1fr auto; border:1px solid #eadfe3; border-radius:16px; background:#fff; overflow:hidden; }
.character-card.active { border-color:var(--rose); box-shadow:0 0 0 3px rgba(240,79,111,.13); }
.character-card-face { aspect-ratio:4/5; background:#f6eef1; display:grid; place-items:center; }
.character-card-face img { width:100%; height:100%; object-fit:cover; display:block; }
.character-card-face span { color:var(--rose); font-size:34px; }
.character-card-body { padding:15px 16px 6px; }
.character-card-body strong { display:block; font-size:16px; }
.character-card-body p { margin:6px 0 0; color:var(--muted); font-size:12px; line-height:1.55; }
.character-card-body small { display:block; margin-top:9px; color:#9a8f9b; font-size:11px; }
.character-card-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:13px 16px 16px; }
.character-card-actions button:not(.btn) { border:0; background:none; padding:0; color:var(--muted); font-size:12px; text-decoration:underline; cursor:pointer; }
.character-card-actions button:not(.btn):hover { color:var(--rose); }
.character-card-actions .danger:hover { color:#d54a56; }
.characters-empty { padding:60px 20px; border:1px dashed #e4d7dc; border-radius:16px; text-align:center; }
.characters-empty h2 { margin:12px 0 8px; }
.characters-empty p { max-width:440px; margin:0 auto 18px; color:var(--muted); line-height:1.6; }

/* Story builder: one panel for who the story is about and what happens to her. */
.story-builder { position:relative; margin-top:4px; padding:15px 16px; border:1px solid var(--line); border-radius:14px; background:#fdfbfc; }
.story-builder-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.story-builder.is-open .story-builder-head { align-items:flex-start; margin-bottom:4px; }
.story-builder-toggle { flex:1; min-width:0; display:flex; align-items:flex-start; gap:9px; border:0; background:none; padding:2px 0; text-align:left; cursor:pointer; color:inherit; }
.story-builder-chevron { flex:none; margin-top:1px; color:var(--muted); font-size:11px; transition:color .15s ease; }
.story-builder-toggle:hover .story-builder-chevron { color:var(--rose); }
.story-builder-titles { min-width:0; }
.story-builder-head strong { display:block; font-size:14px; }
.story-builder:not(.is-open) .story-builder-head small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.story-builder-head small { display:block; margin-top:3px; color:var(--muted); font-size:11px; line-height:1.5; }
.story-builder-link { flex:none; color:var(--rose); font-size:12px; font-weight:800; text-decoration:none; white-space:nowrap; }
.story-builder-link:hover { text-decoration:underline; }
.story-lock { flex:none; font-size:15px; }
.story-builder .studio-field { margin-top:12px; }
.story-summary { margin:13px 0 0; padding:9px 12px; border-radius:9px; background:#fff3f6; color:var(--plum); font-size:12px; }
/* Locked: the panel stays legible so the value is obvious, but nothing responds. */
.story-builder.is-locked .story-builder-body { opacity:.4; filter:saturate(.35); pointer-events:none; user-select:none; }
.story-builder-gate { margin-top:13px; padding:13px 15px; border:1px solid #f0bdc9; border-radius:11px; background:#fff7f9; }
.story-builder-gate strong { display:block; font-size:13px; }
.story-builder-gate p { margin:5px 0 11px; color:var(--muted); font-size:12px; line-height:1.55; }
.characters-grid.is-locked .character-card-face { filter:saturate(.3); opacity:.55; }
.characters-grid.is-locked .character-card-body p { opacity:.7; }

/* Report dialog. */
.report-backdrop { position:fixed; z-index:240; inset:0; display:grid; place-items:center; padding:20px; background:rgba(24,18,26,.55); backdrop-filter:blur(3px); }
.report-dialog { width:min(460px,100%); display:grid; gap:14px; padding:24px; border-radius:17px; background:#fff; box-shadow:0 26px 60px rgba(28,20,32,.28); }
.report-dialog h2 { margin:0; font-size:21px; }
.report-dialog > p { margin:0; color:var(--muted); font-size:13px; line-height:1.55; }
.report-dialog label { display:grid; gap:6px; font-size:12px; font-weight:800; }
.report-dialog small { color:var(--muted); font-weight:600; }
.report-dialog select, .report-dialog textarea { width:100%; border:1px solid #d7e0ea; border-radius:9px; padding:10px; font:inherit; font-size:14px; font-weight:400; }
.report-actions { display:flex; justify-content:flex-end; gap:9px; }
.report-actions button:not(.btn) { border:1px solid var(--line); border-radius:9px; background:#fff; padding:8px 14px; font-size:13px; cursor:pointer; }
@media (max-width:760px) { .admin-row { grid-template-columns:64px minmax(0,1fr); } .admin-row-actions { grid-column:1/-1; grid-auto-flow:column; } }

/* Account credits and daily return reward. */
.daily-claim-badge,.account-claim-badge { margin-left:auto;display:grid;place-items:center;min-width:28px;height:20px;padding:0 6px;border-radius:7px;background:#ef4444;color:#fff;font-size:9px;font-style:normal;font-weight:900;line-height:1; }
.view-compact .daily-claim-badge { position:absolute;top:3px;right:1px;min-width:20px;height:17px;padding:0 4px;font-size:8px; }
.account-claim-badge { min-width:31px; }
.daily-reward-page { max-width:1160px;margin:0 auto;padding:12px 0 70px; }
.daily-reward-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid #eadfe3; }
.daily-reward-heading > div { max-width:760px; }
.daily-reward-heading > div > span,.daily-reward-eyebrow { color:var(--rose-dark);font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase; }
.daily-reward-heading h1 { margin:0 0 9px;font-size:clamp(38px,5vw,62px);line-height:.96;letter-spacing:-3px; }
.daily-reward-heading p { max-width:680px;margin:0;color:var(--muted);font-size:14px;line-height:1.65; }
.daily-balance-inline { flex:0 0 auto;min-width:170px;display:grid;grid-template-columns:auto auto;align-items:end;column-gap:10px;padding:12px 0 3px;border-top:3px solid var(--ink); }
.daily-balance-inline small { grid-column:1/-1;color:#8a7d88;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase; }
.daily-balance-inline strong { font-size:38px;line-height:1;letter-spacing:-1.5px; }
.daily-balance-inline span { padding-bottom:3px;color:var(--muted);font-size:11px;font-weight:750; }
.daily-balance-upgrade { grid-column:1/-1;min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:0 10px;border:1px solid #efb7c5;border-radius:8px;background:#fff4f7;color:var(--rose-dark);font-size:10px;font-weight:850;white-space:nowrap; }
.daily-balance-upgrade:hover,.daily-balance-upgrade:focus-visible { border-color:var(--rose);background:#ffedf2;color:var(--rose-dark);outline:none; }
.daily-balance-upgrade b { font-size:14px;line-height:1; }
.daily-studio-layout { display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:18px; }
.daily-drop-ticket { position:relative;isolation:isolate;min-height:326px;display:grid;grid-template-columns:minmax(0,1fr) 155px;grid-template-rows:1fr auto;gap:22px 26px;overflow:hidden;padding:38px 40px 31px;border:1px solid #f5a9ba;border-radius:10px;background:linear-gradient(120deg,#fff1f4 0 55%,#ffe4eb 100%); }
.daily-drop-ticket::before { content:"MANHWA / DAILY DROP / ";position:absolute;z-index:-1;right:-63px;top:74px;color:rgba(177,39,72,.08);font-size:42px;font-weight:950;letter-spacing:.09em;line-height:1;transform:rotate(90deg);transform-origin:center;white-space:nowrap; }
.daily-drop-ticket::after { content:"";position:absolute;right:178px;top:0;bottom:0;border-left:1px dashed rgba(176,46,79,.25); }
.daily-drop-ticket.claimed { border-color:#decfd3;background:linear-gradient(120deg,#faf7f8 0 55%,#f4eef0 100%); }
.daily-ticket-copy { align-self:center;max-width:560px; }
.daily-ticket-copy > span,.daily-ticket-value small { color:#a33250;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase; }
.daily-ticket-copy h2 { max-width:520px;margin:9px 0 12px;font-size:clamp(29px,3.4vw,46px);line-height:1.02;letter-spacing:-1.8px; }
.daily-ticket-copy p { max-width:500px;margin:0;color:#695c64;font-size:13px;line-height:1.6; }
.daily-ticket-value { align-self:center;display:grid;justify-items:center;text-align:center; }
.daily-ticket-value strong { margin:3px 0 -2px;color:var(--rose-dark);font-size:62px;line-height:1;letter-spacing:-4px; }
.daily-ticket-value span { color:#78676e;font-size:10px;font-weight:800; }
.daily-ticket-action { grid-column:1/-1;display:grid;grid-template-columns:minmax(250px,380px) minmax(0,1fr);align-items:center;gap:18px;padding-top:23px;border-top:1px solid rgba(176,46,79,.2); }
.daily-claim-button { min-height:52px;border:1px solid #231b25;border-radius:7px;background:#211a23;color:#fff;font:inherit;font-size:14px;font-weight:900;cursor:pointer; }
.daily-claim-button:disabled { border-color:#d9cdd1;background:#e8dfe2;color:#7d7176;cursor:default; }
.daily-ticket-action p { margin:0;color:#786a71;font-size:10px;line-height:1.5; }
.daily-studio-rail { display:grid;align-content:start;border:1px solid #e6dce0;border-radius:10px;background:#fff; }
.daily-streak-stat { display:grid;grid-template-columns:1fr auto;align-items:end;padding:25px 23px 22px;border-bottom:1px solid #eee5e8; }
.daily-streak-stat span { grid-column:1/-1;margin-bottom:8px;color:#8a7c83;font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase; }
.daily-streak-stat strong { font-size:48px;line-height:.85;letter-spacing:-2px; }
.daily-streak-stat small { padding-bottom:3px;color:#74676d;font-size:11px;font-weight:750; }
.daily-studio-rail nav { display:grid; }
.daily-studio-rail a { position:relative;display:grid;gap:3px;padding:19px 42px 18px 23px;border-bottom:1px solid #eee5e8;color:inherit;text-decoration:none; }
.daily-studio-rail a:last-child { border-bottom:0; }
.daily-studio-rail a span { color:#8a7c83;font-size:9px; }
.daily-studio-rail a b { font-size:12px; }
.daily-studio-rail a i { position:absolute;right:20px;top:50%;color:var(--rose-dark);font-size:16px;font-style:normal;transform:translateY(-50%); }
.daily-ledger { margin-top:18px;border:1px solid #e6dce0;border-radius:10px;background:#fff; }
.daily-ledger > header { display:flex;align-items:end;justify-content:space-between;gap:20px;padding:21px 23px 17px;border-bottom:1px solid #eee5e8; }
.daily-ledger header span { color:var(--rose-dark);font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase; }
.daily-ledger h2 { margin:4px 0 0;font-size:19px;letter-spacing:-.4px; }
.daily-ledger header p { margin:0;color:#8a7c83;font-size:10px; }
.daily-ledger-days { display:grid;grid-template-columns:repeat(7,minmax(92px,1fr));overflow-x:auto; }
.daily-ledger-day { position:relative;min-height:112px;display:grid;grid-template-rows:auto 1fr auto auto;gap:6px;padding:17px 14px 14px;border-right:1px solid #eee5e8;color:#7a6e74; }
.daily-ledger-day:last-child { border-right:0; }
.daily-ledger-day > span { color:#8c7f85;font-size:10px;font-weight:900;text-transform:uppercase; }
.daily-ledger-day i { align-self:center;width:100%;height:3px;background:#e6dde0; }
.daily-ledger-day strong { color:#3e343a;font-size:13px; }
.daily-ledger-day small { color:#94888e;font-size:9px; }
.daily-ledger-day.today { background:#fff5f7; }
.daily-ledger-day.today::before { content:"";position:absolute;left:0;right:0;top:-1px;height:3px;background:var(--rose); }
.daily-ledger-day.today i { background:var(--rose); }
.daily-ledger-day.claimed { background:#f7f3f4; }
.daily-ledger-day.claimed i { background:#31272d; }
.daily-ledger-day.claimed strong { color:#31272d; }
.daily-history { margin-top:18px;padding:20px 23px;border:1px solid #e6dce0;border-radius:10px;background:#fff; }
.daily-history > div { display:flex;align-items:center;gap:12px; }
.daily-history > div > span { width:37px;height:37px;display:grid;place-items:center;border-radius:7px;background:#f7eff2;color:#8f314e; }
.daily-history h2,.daily-history p { margin:0; }
.daily-history h2 { font-size:15px; }
.daily-history p { margin-top:2px;color:#7d8999;font-size:10px; }
.daily-history ol { display:grid;gap:0;margin:15px 0 0;padding:0;border-top:1px solid #e7ebef;list-style:none; }
.daily-history li { display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:10px 2px;border-bottom:1px solid #edf0f3;font-size:11px; }
.daily-history li strong { color:var(--rose-dark); }
.daily-history li small { padding:2px 5px;border-radius:5px;background:#fff0f4;color:var(--rose-dark);font-weight:850; }
.daily-reward-guest { min-height:65vh;display:grid;place-items:center; }
.daily-reward-guest-card { position:relative;width:min(610px,100%);overflow:hidden;padding:46px 42px;border:1px solid #f3a7b9;border-radius:10px;background:linear-gradient(125deg,#fff 0 58%,#fff0f4 58%);text-align:left; }
.daily-guest-mark { position:absolute;right:43px;top:50%;display:grid;justify-items:center;color:var(--rose-dark);transform:translateY(-50%) rotate(-4deg); }
.daily-guest-mark b { font-size:62px;line-height:1;letter-spacing:-4px; }
.daily-guest-mark small { font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase; }
.daily-reward-guest-card h1 { max-width:360px;margin:10px 0 0;font-size:42px;line-height:1;letter-spacing:-2px; }
.daily-reward-guest-card p { max-width:360px;margin:13px 0 20px;color:var(--muted);line-height:1.55; }
.daily-reward-guest-card > small:last-child { display:block;margin-top:12px;color:#8b7e84;font-size:9px; }
@media(max-width:760px) {
  .daily-reward-page { padding-top:0; }
  .daily-reward-heading { align-items:flex-start;margin-bottom:18px;padding-bottom:18px; }
  .daily-reward-heading h1 { font-size:42px; }
  .daily-balance-inline { min-width:105px; }
  .daily-balance-inline strong { font-size:31px; }
  .daily-balance-inline span { display:none; }
  .daily-balance-upgrade { min-height:30px;margin-top:7px;padding:0 8px; }
  .daily-studio-layout { grid-template-columns:1fr; }
  .daily-drop-ticket { min-height:0;grid-template-columns:minmax(0,1fr) 94px;gap:18px;padding:28px 23px 23px; }
  .daily-drop-ticket::after { right:115px; }
  .daily-drop-ticket::before { display:none; }
  .daily-ticket-copy h2 { font-size:30px; }
  .daily-ticket-value strong { font-size:48px; }
  .daily-ticket-value span { font-size:8px; }
  .daily-ticket-action { grid-template-columns:1fr;gap:9px;padding-top:18px; }
  .daily-ticket-action p { text-align:center; }
  .daily-studio-rail { grid-template-columns:120px minmax(0,1fr); }
  .daily-streak-stat { border-right:1px solid #eee5e8;border-bottom:0;padding:20px; }
  .daily-studio-rail a { padding:13px 40px 12px 18px; }
  .daily-ledger > header { align-items:flex-start; }
  .daily-ledger header p { display:none; }
  .daily-ledger-days { grid-template-columns:repeat(7,minmax(80px,1fr)); }
  .daily-reward-guest-card { padding:38px 28px;background:#fff; }
  .daily-guest-mark { position:static;justify-items:start;margin:18px 0;transform:none; }
  .daily-reward-guest-card h1 { font-size:38px; }
}
@media(max-width:470px) {
  .daily-reward-heading { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px; }
  .daily-reward-heading p { grid-column:1/-1; }
  .daily-drop-ticket { grid-template-columns:1fr; }
  .daily-drop-ticket::after { display:none; }
  .daily-ticket-value { grid-row:1;justify-items:start;text-align:left; }
  .daily-ticket-copy { grid-row:2; }
  .daily-ticket-action { grid-row:3; }
  .daily-studio-rail { grid-template-columns:1fr; }
  .daily-streak-stat { grid-template-columns:auto 1fr;column-gap:9px;border-right:0;border-bottom:1px solid #eee5e8; }
  .daily-streak-stat span { grid-column:1/-1; }
}

/* Hover feedback is carried by color, border and movement - Not drop shadows. */
@media (hover:hover) {
  a:hover,button:hover,[role="button"]:hover,summary:hover,article:hover { box-shadow:none!important; }
}

/* Server-rendered listing grid on /explore paginated pages (crawler + pre-hydration). */
.seo-listing { margin-top:30px; }
.seo-listing-grid { list-style:none; margin:14px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px; }
.seo-listing-grid a { display:block; color:inherit; text-decoration:none; }
.seo-listing-grid img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:12px; display:block; }
.seo-listing-grid span { display:block; margin-top:7px; font-size:13px; font-weight:700; }
.seo-listing-grid small { display:block; color:var(--muted); font-size:11px; }

/* Landing pages: unique graphic + prompt-variation gallery per page. */
.landing-graphic { margin:26px auto 0; max-width:1180px; }
.landing-graphic figure { margin:0; padding:22px 24px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.landing-graphic figcaption { margin-bottom:14px; }
.landing-graphic figcaption strong { display:block; font-size:15px; color:var(--ink); }
.landing-graphic figcaption span { display:block; margin-top:3px; color:var(--muted); font-size:13px; }
.landing-svg { width:100%; height:auto; color:var(--ink); }
.landing-prompts { margin:34px auto 0; max-width:1180px; }
.landing-prompt-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; margin-top:14px; }
.landing-prompt { display:flex; flex-direction:column; gap:6px; text-align:left; padding:14px 15px; border:1px solid var(--line); border-radius:13px; background:#fff; cursor:pointer; transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.landing-prompt:hover { border-color:var(--rose); transform:translateY(-2px); box-shadow:0 10px 26px rgba(240,79,111,.08); }
.landing-prompt strong { font-size:14px; color:var(--ink); }
.landing-prompt span { color:var(--muted); font-size:12px; line-height:1.5; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.landing-prompt em { color:var(--rose); font-size:12px; font-weight:800; font-style:normal; }
@media (max-width:720px){ .landing-prompt-grid { grid-template-columns:1fr; } }

/* "More by" tiles, betterwaifu-style: square crops, three-up, no captions, series
   badge overlay. Lives in the base sheet so the post modal is styled on every route. */
.more-by-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.more-by-grid a { position:relative; display:block; color:inherit; text-decoration:none; min-width:0; }
.more-by-grid img { display:block; width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:10px; }
.more-by-grid a:hover img { filter:brightness(1.05); }
.more-by-grid span { display:none; }
.more-by-series { position:absolute; top:8px; right:8px; display:grid; place-items:center; width:26px; height:26px; border-radius:8px; background:rgba(17,14,20,.62); color:#fff; font-size:13px; font-style:normal; }
.more-by-avatar { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:50%; overflow:hidden; vertical-align:middle; margin:0 2px; background:var(--rose); color:#fff; font-size:14px; font-weight:800; line-height:1; }
.more-by-avatar img { width:100%; height:100%; object-fit:cover; }
