:root {
  --ink: #1b151b;
  --muted: #746873;
  --line: #eadde4;
  --paper: #fffdfd;
  --wash: #fff6fa;
  --soft: #f8f0f4;
  --rose: #ff3d7f;
  --rose-dark: #d51656;  /* 4.58:1 on the lightest panel it is used on */
  /* Text-only variants. --rose is 3.37:1 on white and --green 4.44:1, both below the
     4.5:1 AA floor for body copy. They stay as-is for fills, borders and large display
     type, where the floor is 3:1 - only `color:` declarations move to these. */
  --rose-text: #c8134f;
  --green-text: #1a7358;
  --peach: #ff9fbd;
  --plum: #4a2338;
  --green: #208769;
  --shadow: 0 16px 44px rgba(77, 24, 50, .11);
  --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%; height: auto; }
/* Without height:auto the width/height attributes added for CLS win outright:
   max-width shrinks the width, the attribute pins the height, and every image
   stretches. The guide hero rendered 661x1280 against a 1024x1280 source. */
::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: 16px 12px 12px;
  transition: width .24s ease, padding .24s ease;
}
.brand { display:flex; align-items:center; gap:12px; padding:0 2px 20px; font-size:20px; font-weight:900; letter-spacing:-.9px; }
.brand-mark { width:76px; height:76px; border-radius:18px; display:block; overflow:hidden; background:var(--ink); box-shadow:0 9px 22px rgba(25,22,32,.2); flex:none; }
.brand-mark img { width:100%; height:100%; object-fit:cover; }
.brand-dot { color: var(--rose-text); }
.nav-label { color: #7d717b; font-weight: 800; font-size: 9px; letter-spacing: 1.3px; padding: 20px 12px 6px; text-transform: uppercase; }
.nav-list { display: grid; gap: 2px; }
.nav-link { display: flex; align-items: center; gap: 12px; min-height: 43px; padding: 0 12px; border-radius: 14px; font-weight: 700; 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-text); color: #fff; font-size: 9px; line-height: 18px; min-width: 18px; padding: 0 4px; text-align: center; border-radius: 999px; }
.sidebar-bottom { margin-top: auto; display: grid; gap: 8px; }
.sidebar-note { background: var(--wash); border: 1px solid #f3dfe3; padding: 12px; 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:8px 10px; 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-text); 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-text);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:9px; white-space:nowrap; }
.sidebar-pricing > b { color: var(--rose-text); font-size:17px; }
.side-sign { border: 0; background: var(--rose); color: white; padding: 12px 12px; border-radius: 14px; 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:8px; padding:8px 10px; border:1px solid #e8cbd3; border-radius:10px; background:var(--rose-text); color:#fff; white-space:nowrap; }
.side-google .google-logo { width:25px; height:25px; }
.sidebar-utilities { display:grid; gap:0px; 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:700; 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 4px;border-radius:6px;background:var(--rose-text);color:#fff;font-size:9px;line-height:1;font-weight:900; }
.sidebar-account-wrap { position:relative; }
.sidebar-account { width:100%; min-width:0; min-height:49px; padding:6px 8px; display:grid; grid-template-columns:35px minmax(0,1fr) auto; align-items:center; gap:8px; border:1px solid transparent; border-radius:10px; 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:#4a7d22;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:13px; }
.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:12px; padding:16px 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:2px; color:#66758d; font-size:15px; }
.profile-avatar-editor { display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;padding:12px;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:29px;font-weight:900; }
.profile-avatar-editor img { width:100%;height:100%;object-fit:cover; }
.profile-avatar-editor label { position:relative;display:grid;gap:2px;cursor:pointer; }.profile-avatar-editor label span { color:var(--muted);font-size:9px; }.profile-avatar-editor input { position:absolute;width:1px;height:1px;opacity:0; }.profile-avatar-editor b { width:max-content;margin-top:4px;padding:6px 10px;border:1px solid #d8e0e9;border-radius:6px;background:#fff;color:var(--rose-dark);font-size:9px; }
.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:15px; 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:6px; 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(20px, 4vw, 56px); 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: 10px; background: #fff; height: 42px; padding: 0 40px 0 40px; outline: none; }
.search-mini input:focus { border-color: var(--rose-text); box-shadow: 0 0 0 3px rgba(240,79,111,.1); }
.search-mini svg { position: absolute; left: 13px; top: 11px; width: 19px; color: #7c727a; }
.top-actions { display: flex; align-items: center; gap: 20px; margin-left: auto; font-weight: 800; }
.top-generate-cta { height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;border:1px solid var(--rose-dark);border-radius:10px;background:var(--rose-dark);color:#fff;font-size:13px;font-weight:900;white-space:nowrap;transition:background .16s,border-color .16s; }
.top-generate-cta:hover,.top-generate-cta:focus-visible { border-color:var(--plum);background:var(--plum);color:#fff;outline:none; }
.top-link { padding: 8px 4px; cursor: pointer; border: 0; background: none; }
.top-link:hover { color: var(--rose-text); }
.site-breadcrumbs { min-height:44px;display:flex;align-items:center;padding:0 clamp(20px,4vw,56px);border-bottom:1px solid rgba(234,223,227,.72);background:rgba(255,253,252,.95);color:#7b7182;font-size:12px;font-weight:800; }
.site-breadcrumbs ol { width:100%;margin:0;padding:0;display:flex;align-items:center;gap:6px;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:6px;padding:0 8px;border-radius:6px;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:#806f7c; }
.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:#7c717e; }
.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: 10px; display: inline-flex; align-items: center; gap: 8px; font-weight: 800; cursor: pointer; }
.google-logo { width:24px; height:24px; flex:none; display:grid; place-items:center; padding:2px; 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:8px; 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) 64px; }
.home-main { padding-top: 16px; }
.hero { position: relative; overflow: hidden; background: #fbf5fb; border: 1px solid #f0e6ef; border-radius: 24px; 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: 16px auto 10px; font-size: clamp(35px, 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: 17px; }
.hero-actions { display: flex; justify-content: center; gap: 12px; margin: 24px 0 32px; }
.btn { border: 1px solid transparent; min-height: 47px; padding: 0 20px; border-radius: 14px; font-weight: 800; cursor: pointer; transition: .18s; display: inline-flex; gap: 8px; align-items: center; justify-content: center; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--rose-dark); 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: #b5556e; color: var(--rose-dark); }
.btn-dark { background: var(--ink); color: white; }
.btn-small { min-height: 38px; padding: 0 12px; 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: 14px 14px 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:10px; background:rgba(25,18,24,.58); color:#fff; font-size:29px; 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: 32px 0 0; }
.prompt-dock-heading { margin-bottom:16px; }
.prompt-dock-heading h2 { margin:0; font-size:clamp(24px,3vw,35px); letter-spacing:-1.4px; }
.prompt-box { background: white; border: 1px solid #e1d8dc; border-radius: 18px; 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:#d13860; 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 16px; min-height: 132px; max-height:300px; color: var(--ink); font:inherit; font-size:15px; line-height:1.55; }
.prompt-go { min-width:150px; border: 0; border-radius: 10px; background: var(--rose-dark); color: white; cursor: pointer; font:inherit; font-weight:900; font-size:15px; display:flex; align-items:center; justify-content:center; gap:12px; transition:transform .18s,background .18s; }
.prompt-go b { font-size:20px; font-weight:600; }
.prompt-go:hover { transform:translateY(-1px); background:var(--plum); }
.prompt-options { display: flex; align-items: stretch; gap: 8px; margin: 0 0 12px; padding:2px 2px 4px; overflow-x: auto; scrollbar-width: none; }
.prompt-options::-webkit-scrollbar { display: none; }
.prompt-helper { margin:4px 2px 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:10px; background:#fff; padding:12px 16px; 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:4px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.prompt-example:hover, .prompt-example.active { border-color:#db2e57; background:#fff4f6; transform:translateY(-1px); }
.prompt-footnote { margin:10px 2px 0; color:var(--muted); font-size:12px; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:0px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

.section { padding-top: 56px; }
.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(24px, 3vw, 42px); line-height: 1.05; letter-spacing: -1.6px; }
.section-kicker { color: var(--rose-dark); font-weight: 900; font-size: 11px; text-transform: uppercase; letter-spacing: 1.4px; margin-bottom: 6px; }
.section-note { color: var(--muted); max-width: 560px; margin: 6px 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: 16px; }
.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:17px; }
.collection-copy span { font-size:12px; opacity:.8; }

.gallery-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.home-gallery-options { display:flex;align-items:center;justify-content:flex-end;gap:12px; }
.home-grid-toggle { min-height:42px;display:flex;align-items:center;gap:2px;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:6px;border:0;border-radius:6px;background:transparent;color:#69768a;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:9px; }
.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:2px;background:currentColor; }
.tabs { display:flex; gap:4px; background:#f5eff1; padding:4px; border-radius:10px; }
.tab { border:0; background:transparent; padding:8px 12px; border-radius:6px; 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:12px; 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: 14px; 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); }
/* The overlay sits outside the card anchor so the byline can be its own link, and is
   transparent to the pointer so the rest of it still opens the artwork. */
.art-overlay { position:absolute; inset:auto 0 0; padding:48px 12px 12px; color:white; background:linear-gradient(transparent,rgba(14,8,12,.83)); opacity:0; transform:translateY(8px); transition:.2s; pointer-events:none; }
.art-overlay a { pointer-events:auto; color:inherit; text-decoration:none; }
.art-overlay a:hover, .art-overlay a:focus-visible { text-decoration:underline; }
.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:2px; }

.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:10px;padding:12px 16px;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:#dd2a53;background:#fff8fa;outline:none; }
.home-feed-loader strong { font-size:12px; }
.home-feed-loader small { color:var(--muted);font-size:9px; }
.home-feed-spinner { grid-row:1 / 3;width:24px;height:24px;border:3px solid #f5d8df;border-top-color: var(--rose-text);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:0px; background:var(--line); border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.trust-cell { background:#fff; padding:24px; }
.trust-cell strong { font-size:24px; 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:#a5919f; }

.magazine-grid { display:grid; grid-template-columns:1.35fr 1fr 1fr; grid-template-rows:repeat(2, 220px); gap:12px; }
.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:24px; color:white; }
.story-tag { color:var(--rose-dark); font-size:9px; text-transform:uppercase; letter-spacing:1.2px; font-weight:900; }
.story-card.featured .story-tag { color:#e80032; text-shadow:0 1px 2px rgba(20,10,18,.55); }
.story-card h3 { margin:6px 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:#8f6782; }

.footer { margin-top:64px; border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:40px; padding:40px 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-text); }
.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-text); }
.footer-bottom { grid-column:1/-1; border-top:1px solid var(--line); display:flex; justify-content:space-between; padding:16px 0 0; color:#7a6f78; font-size:11px; }

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

.create-layout { display:grid; grid-template-columns:minmax(310px, .78fr) minmax(0,1.22fr); gap:20px; padding-top:28px; }
.panel { border:1px solid var(--line); background:#fff; border-radius:18px; padding:20px; box-shadow:0 10px 35px rgba(44,25,35,.04); }
.panel-title { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.panel-title h2, .panel h3 { margin:0; font-size:17px; letter-spacing:-.4px; }
.field { margin-top:16px; }
.field label { display:flex; justify-content:space-between; font-size:12px; font-weight:800; margin-bottom:6px; }
.field textarea, .field input, .field select { width:100%; border:1px solid var(--line); border-radius:10px; background:#fff; padding:10px 12px; outline:none; }
.field textarea { min-height:130px; resize:vertical; }
.field textarea:focus, .field input:focus, .field select:focus { border-color: var(--rose-text); box-shadow:0 0 0 3px rgba(240,79,111,.1); }
.segmented { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.segment { border:1px solid var(--line); background:#fff; border-radius:10px; padding:10px 6px; font-size:12px; font-weight:800; cursor:pointer; }
.segment.active { border-color:#de2556; background:#fff1f4; color:#bd3655; }
.range { accent-color: var(--rose-text); }
.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:92px; height:92px; padding:4px; overflow:hidden; border-radius:24px; background:white; display:grid; place-items:center; margin:0 auto 16px; color: var(--rose-text); box-shadow:var(--shadow); }
.empty-icon img { width:100%; height:100%; border-radius:14px; 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; margin:0 auto; padding:12px 28px 20px; color:#263142; scrollbar-width:thin; }
.render-visual { width:164px; aspect-ratio:4/5; position:relative; margin:0 auto 12px; display:grid; place-items:center; }
.render-portrait { width:132px; height:165px; 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:24px; background:linear-gradient(150deg,rgba(255,255,255,.92),rgba(255,239,244,.78) 58%,rgba(232,220,248,.86)); }
.render-portrait img { width:92px; height:92px; position:relative; z-index:2; object-fit:cover; border-radius:24px; 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-text); animation:sparkPulse 1.7s ease-in-out infinite; }
.render-spark.spark-one { top:30px; right:6px; font-size:17px; }
.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:#67768d; font-size:11px; font-weight:800; letter-spacing:.02em; }
.render-provider { display:inline-flex; align-items:center; gap:6px; 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:20px; letter-spacing:-.5px; text-align:left; }
.generation-progress>p { min-height:0; margin:4px 0 12px; color:#67768d; 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:#65768d; font-size:9px; font-weight:800; }
.render-eta { margin-top:12px; padding:10px 12px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:2px 12px; border:1px solid #dce3eb; border-radius:10px; background:rgba(255,255,255,.72); text-align:left; }
.render-eta span { color:#66768c; 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:#65768d; 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:0px 8px;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:6px;background:linear-gradient(135deg,var(--rose),#a855f7);color:#fff; }.render-speed-upsell strong { font-size:11px; }.render-speed-upsell small { color:#667489;font-size:9px; }.render-speed-upsell b { grid-column:3;grid-row:1/3;color:var(--rose-dark);font-size:9px; }.render-speed-upsell:hover { border-color: var(--rose-text);box-shadow:none;transform:translateY(-1px); }
.render-phases { margin:12px 0 12px; padding:0; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); list-style:none; }
.render-phases li { position:relative; padding-top:16px; color:#627084; 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-text); 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-text); 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:#66768c; 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:9px; white-space:nowrap; text-overflow:ellipsis; }
.cancel-generation { display:block; margin:12px auto 0; border:0; background:transparent; color:#67768d; font-size:9px; 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:6px; background:rgba(255,255,255,.92); color:#625965; padding:6px 10px; font-size:9px; font-weight:800; backdrop-filter:blur(8px); }
.generation-caption { position:absolute; z-index:4; left:18px; right:18px; top:18px; max-width:560px; padding:12px 48px 12px 16px; border:1px solid rgba(225,217,222,.9); border-radius:10px; 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:10px;background:#fff;color:#536176;font-size:20px;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:#d93159;background:#fff3f6;color:var(--rose-dark);outline:none; }
.generation-description-required { display:grid;gap:8px;padding:16px;max-width:610px;border-color:#d6365d;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:#657388;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em; }
.generation-description-required textarea { width:100%;min-height:82px;resize:vertical;border:1px solid #d8e0e9;border-radius:10px;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:#e11e4d;box-shadow:0 0 0 3px rgba(240,79,111,.11); }
.generation-description-required button { justify-self:start;border:0;border-radius:10px;background:var(--rose-text);color:#fff;padding:10px 12px;font:inherit;font-size:11px;font-weight:900;cursor:pointer; }
.generation-description-required button:disabled { opacity:.65;cursor:wait; }
.generation-description-required small { color:#67768a;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:12px 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:52px; height:52px; border-radius:14px; }
  .view-compact .nav-list { gap:6px; }
  .view-compact .nav-link { position:relative; justify-content:center; min-height:48px; padding:0; border-radius:10px; }
  .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:6px; }
  .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:0px 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 2px; font-size:9px; }
  .view-compact .sidebar-account { min-height:48px; grid-template-columns:1fr; place-items:center; gap:0; padding:4px 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:6px 10px;
    border:1px solid #eadfe3;
    border-radius:6px;
    background:#241f29;
    color:#fff;
    box-shadow:0 8px 22px rgba(31,23,31,.17);
    font-size:12px;
    font-weight:800;
    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:32px 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:12px 0 20px;font:italic clamp(50px,5.4vw,78px)/.96 Georgia,serif;letter-spacing:-3.7px;color:#181522; }
.referral-hero h1 em { color: var(--rose-text);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:16px 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:6px;color:#6b7585;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em; }
.referral-hero-actions { display:flex;align-items:center;gap:10px; }
.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:4px;font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;opacity:.78; }
.referral-art-caption strong { font-size:13px; }
.affiliate-dashboard { scroll-margin-top:20px;margin-top:64px;padding:28px;border:1px solid #eadce2;border-radius:24px;background:#fff;box-shadow:0 20px 55px rgba(55,29,43,.08); }
.affiliate-dashboard-head { display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:24px; }
.affiliate-dashboard-head h2 { margin:6px 0 6px;font:italic clamp(34px,4vw,48px)/1 Georgia,serif;letter-spacing:-1.6px; }
.affiliate-dashboard-head p { margin:0;color:#69768a; }
.affiliate-status { display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;background:#ebfbf2;color:var(--green-text);font-size:9px;font-weight:900;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:12px;align-items:end;padding:20px;border:1px solid #e2e7ed;border-radius:14px;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:#667387;font-size:9px;font-weight:900;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:12px 0 24px; }
.affiliate-share-row > span { margin-right:4px;color:#687688;font-size:9px;font-weight:800; }
.affiliate-share-row button { display:flex;align-items:center;gap:6px;min-height:36px;padding:0 10px;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:#dc2c58;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:#178540; }
.affiliate-share-row .social-reddit { color:#d63a00; }
.affiliate-share-row .social-telegram { color:#1a7ba8; }
.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:16px;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:9px;font-weight:900; }
.affiliate-stats strong { margin:16px 0 4px;color:#211c28;font:italic 700 33px/1 Georgia,serif; }
.affiliate-stats small { color:#657487;font-size:9px; }
.affiliate-recent { display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;margin-top:28px;padding-top:24px;border-top:1px solid #e4e8ed; }
.affiliate-recent h3 { margin:0 0 6px;font-size:17px; }.affiliate-recent p { margin:0;color:#697689;font-size:9px;line-height:1.6; }
.affiliate-table-wrap { overflow:auto; }.affiliate-table-wrap table { width:100%;border-collapse:collapse;font-size:9px;text-align:left; }
.affiliate-table-wrap th { padding:10px;color:#69768a;font-size:9px;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:4px 6px;border-radius:6px;background:#eefbf4;color:#208356;font-weight:800; }
.affiliate-empty { display:grid;gap:4px;padding:16px;text-align:center; }.affiliate-empty strong { color:#343d4d; }.affiliate-empty span { color:#677588; }
.referral-calculator { display:grid;grid-template-columns:minmax(300px,.7fr) minmax(560px,1.3fr);gap:48px;align-items:center;margin-top:90px;padding:48px;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:#ff9ab5; }.referral-calculator-copy h2 { margin:8px 0 12px;font:italic clamp(38px,4.4vw,57px)/1 Georgia,serif;letter-spacing:-2px; }.referral-calculator-copy > p { margin:0;color:#e6d8ea;line-height:1.65; }
.referral-calculator-note { margin-top:24px;padding:12px;border:1px solid rgba(255,255,255,.13);border-radius:10px;color:#ddc9e0;font-size:9px;line-height:1.5; }
.referral-calculator-panel { padding:28px;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:#e6d8ea;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:16px;color:#e6d8ea;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 10px;font:inherit; }
.referral-estimates { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px; }.referral-estimates article { min-height:128px;padding:16px;border:1px solid rgba(255,255,255,.13);border-radius:14px;background:rgba(255,255,255,.07); }.referral-estimates article.featured { background:linear-gradient(145deg,#cf1f5c,#7d3aa8);border-color:transparent; }.referral-estimates small,.referral-estimates strong,.referral-estimates span { display:block; }.referral-estimates small { min-height:26px;color:#ddc9e0;font-size:9px;font-weight:900;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:#ddc9e0;font-size:9px;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:64px;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:#697487;line-height:1.65; }.referral-how-copy img { width:100%;height:310px;margin-top:24px;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:28px 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 6px;font-size:17px; }.referral-steps p { margin:0;color:#697487;font-size:12px;line-height:1.65; }
.referral-rules { margin-top:100px;padding-top:56px;border-top:1px solid #e5e8ed; }.referral-rules > div:first-child { max-width:630px; }.referral-rules h2 { margin:8px 0 28px;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:20px;border:1px solid #e5e7eb;border-radius:14px;background:#fff; }.referral-rule-grid strong { font-size:13px; }.referral-rule-grid p { margin:10px 0 0;color:#687689;font-size:9px;line-height:1.6; }
.referral-final { margin-top:90px;padding:56px 24px;border:1px solid #f1cbd5;border-radius:24px;background:linear-gradient(135deg,#fff2f5,#fbf5ff);text-align:center; }.referral-final h2 { margin:8px 0;font:italic clamp(41px,5vw,62px)/1 Georgia,serif;letter-spacing:-2.4px; }.referral-final p { color:#687487; }.referral-final .btn { margin-top:12px; }

@media (max-width:1050px) {
  .referral-hero { grid-template-columns:1fr; }.referral-hero-copy { padding:32px 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:12px; }.referral-hero { min-height:0;gap:16px; }.referral-hero h1 { font-size:45px;letter-spacing:-2.4px; }.referral-hero-copy > p { font-size:13px; }.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:16px; }.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:12px; }.referral-calculator { margin-top:56px;padding:24px 16px;gap:28px; }.referral-calculator-panel { padding:16px; }.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:64px;grid-template-columns:1fr;gap:24px; }.referral-how-copy img { height:260px; }.referral-rules { margin-top:64px;padding-top:48px; }.referral-rule-grid { grid-template-columns:1fr; }.referral-final { margin-top:56px;padding:40px 16px; }
}

.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:24px; background:white; padding:28px; box-shadow:0 25px 80px rgba(0,0,0,.25); }
.modal h2 { font-size:29px; letter-spacing:-1px; margin:6px 0; }
.modal p { color:var(--muted); }
.modal-actions { display:grid; gap:8px; margin-top:20px; }
.profile-edit-modal { position:relative;width:min(620px,100%); }
.profile-edit-modal > label,.folder-modal > label { display:grid;gap:6px;margin-top:12px;font-size:12px;font-weight:800; }
.profile-edit-modal input,.profile-edit-modal textarea,.folder-modal input { border:1px solid var(--line);border-radius:10px;padding:10px; }
.profile-edit-modal textarea { min-height:90px;resize:vertical; }
.profile-country-field small { color:var(--muted);font-size:9px;font-weight:600;line-height:1.4; }
.profile-pro-label { width:max-content;margin-left:4px;padding:2px 6px;border-radius:999px;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:6px;margin-top:12px;padding:12px;border:1px solid #eadde1;border-radius:10px;background:#fffafb; }
.profile-website-locked > div { display:flex;align-items:center;gap:6px;font-size:12px; }
.profile-website-locked > div span { padding:2px 6px;border-radius:999px;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:900;cursor:pointer; }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:10px; }
.form-row label { display:grid;gap:6px;margin-top:12px;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:6px;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:6px; }
.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 12px; border-radius:14px; 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:16px 0; padding:12px; border:1px solid #ecdce0; border-radius:10px; background:#fffafb; }
.folder-delete-count strong { color:#c8344c; font-size:29px; 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:12px 16px; 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:10px; background:var(--wash); }
.edit-source-tabs button { flex:1; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:8px 12px; border:0; border-radius:10px; 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:0px 6px; border-radius:999px; background:#f0e2e8; color:var(--rose-dark); font-style:normal; font-size:11px; }
.edit-source-tabs button[aria-selected="true"] i { background:var(--rose-text); color:#fff; }
.edit-source-panel[hidden] { display:none; }
.edit-source-empty { padding:32px 20px; display:grid; justify-items:center; gap:4px; border:2px dashed #e3d5db; border-radius:14px; background:var(--wash); text-align:center; }
.edit-source-empty p { color:var(--muted); font-size:13px; }
.edit-source-drop { width:100%; margin-top:12px; padding:24px 20px; display:grid; justify-items:center; gap:6px; border:2px dashed #e3d5db; border-radius:14px; 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:12px; 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:10px; 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:16px; border-radius:14px; background:linear-gradient(135deg,var(--rose),#a855f7); color:#fff; font-size:20px; box-shadow:0 10px 24px rgba(196,58,101,.22); }
.queue-upgrade-modal > p { margin:12px 0 0; line-height:1.55; }
.queue-upgrade-benefits { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin-top:20px; }
.queue-upgrade-benefits span { min-width:0; padding:10px 6px; border:1px solid #eed9df; border-radius:10px; 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:6px;margin-top:16px; }.speed-benefit-row span { border-radius:6px;background:#f5f1fb;padding:6px 8px;color:#665a77;font-size:9px;font-weight:800; }.speed-plan-options { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:20px; }.speed-plan-option { min-width:0;min-height:152px;display:flex;flex-direction:column;gap:10px;border:1px solid #dce3eb;border-radius:14px;background:#fff;padding:16px;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:15px; }.speed-plan-option b { color:var(--rose-dark);font-size:17px; }.speed-plan-option small { margin-top:2px;color:#627084;font-size:9px;line-height:1.35; }.speed-plan-option em { margin-top:auto;color:#657388;font-size:9px;font-style:normal;line-height:1.45; }.speed-plan-option:hover { border-color:#dc2d57;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:12px;padding-top:16px;border-top:1px solid #e2e7ed; }.speed-upgrade-footer > span small,.speed-upgrade-footer > span strong { display:block; }.speed-upgrade-footer > span small { color:#627084;font-size:9px;text-transform:uppercase;letter-spacing:.08em; }.speed-upgrade-footer > span strong { margin-top:2px;font-size:12px; }.speed-compare-link { display:block;margin:12px auto 0;border:0;background:none;color:#67768e;font-size:9px;font-weight:800;cursor:pointer; }
.auth-choice { border:1px solid var(--line); border-radius:14px; padding:12px; display:grid; grid-template-columns:1fr auto; gap:16px; align-items:center; margin-top:16px; }
.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:4px 0; display:flex; align-items:center; gap:10px; color:#7d707a; font-size:9px; text-transform:uppercase; }
.auth-divider:before, .auth-divider:after { content:""; height:1px; background:var(--line); flex:1; }
.auth-cancel { width:100%; margin-top:16px; }
.auth-terms { text-align:center; font-size:9px; margin:12px 12px 0; }
.share-modal { position:relative;width:min(560px,100%); }.share-modal > p { margin:8px 0 20px; }.share-destinations { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px; }.share-destinations a { min-width:0;display:grid;place-items:center;gap:6px;border:1px solid #dce3eb;border-radius:10px;background:#fff;padding:12px 6px;color:#354154;text-decoration:none;font-size:9px;font-weight:800;transition:.15s ease; }.share-destinations a:hover { border-color:#da2d56;background:#fff5f7;transform:translateY(-2px); }.share-destinations b { width:44px;height:44px;display:grid;place-items:center;border-radius:10px;background:#f2f5f8;color:#253143; }.share-destinations b .social-brand-icon { width:25px;height:25px; }.share-destinations a:first-child b { background:#e8f9ef;color:#12834a; }.share-destinations a:nth-child(2) b { background:#fff0e8;color:#cf4711; }.share-destinations a:nth-child(3) b { background:#e9f5ff;color:#1e7cac; }.share-destinations a:nth-child(4) b { background:#1d2430;color:#fff; }.share-direct { display:grid;gap:6px;margin-top:20px;color:#67768d;font-size:9px;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:10px 0 0 10px;background:#f8fafc;padding:0 10px;color:#526176; }.share-direct button { border:0;border-radius:0 10px 10px 0;background:var(--rose-text);padding:0 16px;color:#fff;font-size:9px;font-weight:900;cursor:pointer; }.share-native { width:100%;margin-top:10px;border:0;background:none;padding:6px;color:#67768d;font-size:9px;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:24px;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:24px 24px 16px; }
.notifications-modal h2 { display:flex;align-items:center;gap:8px;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 6px;border-radius:6px;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:14px;background:#fff;color:#263142;font-size:24px;line-height:1;cursor:pointer; }
.notifications-close:hover { border-color:#de2652;background:#fff6f8;color:var(--rose-dark); }
.notifications-toolbar { min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 24px;border-top:1px solid #edf0f4;border-bottom:1px solid #e5e9ef;background:#fbfcfd; }
.notifications-toolbar > div { display:flex;gap:4px;padding:2px;border-radius:10px;background:#edf1f5; }
.notifications-toolbar button { border:0;background:transparent;color:#677587;font-size:11px;font-weight:900;cursor:pointer; }
.notifications-toolbar > div button { min-height:33px;padding:0 12px;border-radius:6px; }
.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:12px;padding:12px 24px;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-text); }
.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:#67768b;font-size:9px;font-weight:800; }
.notification-item > i { width:8px;height:8px;border-radius:50%;background:var(--rose); }
.notification-item > b { color:#657489;font-size:20px;font-weight:600; }
.notifications-empty { min-height:330px;display:grid;place-items:center;align-content:center;padding:32px;text-align:center; }
.notifications-empty > span { width:62px;height:62px;display:grid;place-items:center;border-radius:18px;background:#fff0f3;color: var(--rose-text); }
.notifications-empty svg { width:27px;height:27px; }
.notifications-empty h3 { margin:16px 0 0;font-size:20px; }
.notifications-empty p { max-width:330px;margin:6px 0;color:#697586;font-size:11px;line-height:1.55; }
.notifications-empty button { margin-top:12px;border:1px solid #efb1c0;border-radius:10px;background:#fff;padding:8px 12px;color:var(--rose-dark);font-size:9px;font-weight:900;cursor:pointer; }
.notifications-modal > footer { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-top:1px solid #e5e9ef;background:#fbfcfd;color:#677587;font-size:9px;font-weight:800; }
.notifications-modal > footer a { color:var(--rose-dark);font-size:9px;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:24px 24px 0 0; }
  .notifications-modal > header { padding:20px 16px 12px; }
  .notifications-toolbar { padding:6px 16px; }
  .notification-item { grid-template-columns:52px minmax(0,1fr) 8px 8px;gap:10px;min-height:88px;padding:12px 16px; }
  .notification-item > img,.notification-type-icon { width:52px;height:52px;border-radius:10px; }
  .notifications-modal > footer { padding:12px 16px; }
}
.age-card { width:min(540px,100%); background:#fffdfc; border-radius:24px; padding:40px; text-align:center; }
.age-logo { margin:0 auto 16px; width:84px; height:84px; border-radius:24px; 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:16px 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:10px; font-weight:700; 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-text); }

@media(prefers-reduced-motion:reduce) {
  .render-portrait:before,.render-portrait img,.render-orbit,.render-provider i { animation:none !important; }
  /* A frozen scan line parks as a stray bar above the portrait and frozen sparks
     float mid-air - Decoration that only exists to move is hidden when motion is off. */
  .render-scan,.render-spark { display: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:48px 40px; }
  .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:24px; }
  .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:16px; }
  .post-viewer { min-height:520px; }
  .profile-summary { grid-template-columns:1fr; gap:16px; }
  .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:16px; }
  .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:20px clamp(16px,4vw,28px) 28px;scrollbar-gutter:auto; }
  .prompt-library-head { position:sticky;z-index:4;top:-22px;margin:0 calc(clamp(16px,4vw,28px) * -1) 0;padding:16px clamp(16px,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:16px;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:8px 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:24px;padding:32px 20px;border-radius:18px; }
  .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:12px; }
  .help-search-meta { display:none; }
  .help-support-card { grid-template-columns:45px minmax(0,1fr);align-items:center;gap:0 12px;padding:16px; }
  .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:17px; }
  .help-support-card p { margin:2px 0 0; }
  .help-support-card .btn,.help-support-card > a:last-child { grid-column:1/-1; }
  .help-support-card .btn { margin-top:12px; }
  .help-popular,.help-browse { padding-top:40px; }
  .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:20px; }
  .help-topic-card p { min-height:0; }
  .help-results-heading { margin-top:48px; }
  .help-topic-section { grid-template-columns:1fr;gap:12px;padding:24px 0 28px; }
  .help-topic-section > header { padding-right:10px; }
  .help-answer summary { min-height:60px;padding:12px 2px;font-size:13px; }
  .help-answer-body { padding:0 2px 20px; }
  .help-answer-body p { font-size:12px; }
  .help-contact-strip { align-items:stretch;flex-direction:column;padding:20px 20px; }
  .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 16px; 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:29px; 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:10px; font-size:15px; }
  .topbar { height:62px;padding:0 12px;display:grid;grid-template-columns:42px 42px minmax(0,1fr) auto;gap:8px; }
  .topbar-mobile-brand { width:42px;height:42px;display:grid!important;place-items:center;justify-self:start;overflow:hidden;border-radius:10px;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:8px;margin-left:0; }
  .top-generate-cta { height:38px;padding:0 10px;font-size:12px; }
  .top-link { display:none; }
  .google-btn { height:38px; padding:0 10px; }
  .main { padding-left:16px; padding-right:16px; }
  .hero { padding:32px 12px 0; min-height:430px; border-radius:18px; }
  .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:-12px; 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:24px; }
  .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:40px; }
  .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:8px; }
  .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:150px; margin-bottom:10px; }
  .render-portrait { width:120px; height:150px; }
  .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:29px; letter-spacing:-1.4px; }
  .tool-workspace { grid-template-columns:1fr; border-radius:14px; }
  .tool-controls { border-right:0; border-bottom:1px solid var(--line); padding:16px; }
  .tool-fields { grid-template-columns:1fr; }
  .tool-field-wide { grid-column:auto; }
  .tool-result-empty { min-height:430px; padding:28px 16px; }
  .tool-result-image { padding:12px; }
  .tool-analysis-result { margin:12px; padding:16px; }
  .tool-result-actions .btn { flex:1; }
  .tool-explainer { grid-template-columns:1fr; }
  .focused-generator { grid-template-columns:1fr; gap:16px; }
  .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:16px; }
  .focused-generator-form > label { align-items:start; flex-direction:column; gap:2px; }
  .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:6px; }
  .share-direct input { border-right:1px solid #d7e0ea;border-radius:10px; }
  .share-direct button { min-height:44px;border-radius:10px; }
  .prompt-library-modal { padding-left:16px;padding-right:16px; }
  .prompt-library-head { margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px; }
  .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:10px 12px 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:2px; 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:16px; }
  .post-details { position:static; grid-row:2; }
  .post-viewer { min-height:430px; padding:16px 40px; }
  .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:20px; }
  .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 16px; flex-wrap:wrap; }
  .profile-avatar { width:82px; height:82px; margin-top:-40px; font-size:35px; }
  .profile-name { padding-top:8px; }
  .profile-name h1 { font-size:20px; }
  .creator-badge { display:none; }
  .profile-buttons { width:100%; margin-left:100px; margin-top:-28px; }
  .profile-summary { padding:16px; }
  .profile-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
  .connections-page { padding-top:16px; }
  .connections-header { border-radius:14px; }
  .connections-back { margin:12px 16px 0; }
  .connections-identity { padding:12px 16px 16px; }
  .connections-identity > span { width:55px; height:55px; border-radius:14px; }
  .connections-identity h1 { font-size:24px; }
  .connections-tabs { padding:0 10px; }
  .connections-tabs a { min-width:0; flex:1; padding:12px 8px; text-align:center; }
  .connections-intro { padding-top:24px; align-items:start; }
  .connections-intro h2 { font-size:20px; }
  .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:12px 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:12px; }
  .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:16px; }
  .pinned-card h3 { font-size:20px; }
  .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:64px 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:8px; }
  .history-mobile-brand .brand-mark { width:42px; height:42px; 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:4px; margin-left:auto; padding:0 12px; border-radius:10px; background:var(--rose-text); color:#fff; font-size:12px; font-weight:900; 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:12px 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 6px;gap:6px; }
  .history-view-tabs strong { white-space:normal;line-height:1.25; }
  .comment-direction-tabs { width:100%; }
  .comment-direction-tabs button { min-height:48px; padding:6px 6px; line-height:1.25; }
  .comment-history-search { height:48px; }
  .comment-history-search input { min-width:0; font-size:15px; }
  .comment-history-search kbd { display:none; }
  .comment-history-head { align-items:start;flex-direction:column;gap:6px; }
  .comment-history-head p { text-align:left; }
  .comment-history-card { grid-template-columns:58px minmax(0,1fr);gap:10px; }
  .comment-history-thumb { width:58px;height:58px; }
  .comment-history-actions { grid-column:2;display:flex;justify-content:flex-start;gap:16px; }
  .comment-history-empty { padding:48px 12px; }
  .comment-history-empty h2 { margin:0; font-size:29px; line-height:1.15; letter-spacing:-.8px; }
  .comment-history-empty p { max-width:330px; margin:16px auto 0; font-size:13px; line-height:1.55; }
  .comment-history-empty .btn { width:min(100%,240px); margin-top:20px; }
  .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:16px; }
  .form-row { grid-template-columns:1fr; }
  .pricing-hero { padding:20px 2px 20px; }
  .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:56px; margin-top:0; }
  .pricing-benefits article { min-height:0; grid-template-columns:1fr; gap:8px; padding:28px 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:56px; padding:40px 16px; }
  .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 56px; }
  .checkout-grid { grid-template-columns:1fr; }
  .checkout-summary { position:static;grid-row:1; }
  .checkout-heading h1 { letter-spacing:-1.8px; }
  .checkout-form-section { padding:20px 16px; }
  .checkout-renewal-note,.checkout-form-error { margin-left:16px;margin-right:16px; }
  .checkout-pay { margin-left:16px;margin-right:16px; }
  .checkout-trust { margin-left:16px;margin-right:16px; }
  .checkout-legal { margin-left:16px;margin-right:16px; }
  .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:6px; }
  .top-generate-cta { padding:0 8px;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 16px 48px;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:64px; }
  .site-breadcrumbs { min-height:40px;padding:0 16px;font-size:11px; }
  .site-breadcrumbs a { padding:0 4px; }
  .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(29px,4vw,42px); line-height:1.12; letter-spacing:-1.5px; margin:0 0 12px; }
.seo-prerender h2 { font-size:20px; letter-spacing:-.5px; margin:28px 0 8px; }
.seo-prerender h3 { font-size:15px; margin:16px 0 4px; 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:800; }
.seo-prerender em { font-style:italic; }
.seo-prerender ul { margin:0 0 12px; padding-left:20px; color:var(--muted); line-height:1.6; }
.seo-prerender li { margin-bottom:4px; }
.seo-prerender a { color:var(--rose-dark); text-decoration:underline; text-underline-offset:2px; }
.seo-prerender .seo-tag-plain { color:var(--muted); text-decoration:underline dotted; text-underline-offset:2px; }
.seo-prerender a:hover { color: var(--rose-text); }
.seo-prerender figure { margin:0 0 20px; }
.seo-prerender figure img { width:100%; height:auto; border-radius:14px; }
.seo-prerender figcaption { margin-top:6px; color:var(--muted); font-size:12px; }
.seo-summary { margin:0 0 20px; padding:12px 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:12px 0 16px; padding:12px 16px; border:1px solid #e6edf4; border-radius:10px; 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 16px; overflow-x:auto; border:1px solid #e6edf4; border-radius:10px; }
.seo-table-wrap table { width:100%; border-collapse:collapse; font-size:13px; }
.seo-table-wrap caption { padding:10px 12px; 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:8px 12px; 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 12px; padding:12px 12px; 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:10px; 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:-20px 0 0 -20px; 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 12px; border:1px solid #eadfe3; border-radius:10px; background:#fff; display:flex; flex-direction:column; gap:2px; }
.history-stats span { color:var(--muted); font-size:9px; 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:2px 8px; border-radius:999px; background:rgba(25,22,32,.82); color:#fff; font-size:9px; font-weight:800; letter-spacing:.02em; text-transform:capitalize; backdrop-filter:blur(4px); }

/* Niche galleries on the focused generator pages. */
.niche-gallery { margin-top:32px; }
.niche-gallery .empty-page { padding:32px 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-text); font-size:12px; font-weight:800; cursor:pointer; }
.character-row { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.character-chip { display:inline-flex; align-items:center; gap:6px; min-height:36px; max-width:100%; padding:4px 12px 4px 4px; border:1px solid var(--line); border-radius:999px; 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:4px 16px; 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-text); font-style:normal; font-size:12px; flex:none; }
.character-chip:hover { border-color:#d6355b; background:#fff8fa; }
.character-chip:focus-visible { outline:2px solid var(--rose); outline-offset:2px; }
.character-chip.active { border-color: var(--rose-text); background:#fff5f8; color:var(--rose-dark); font-weight:800; }
.character-active { margin-top:8px; padding:10px 12px; border:1px solid #f0d7e0; border-radius:10px; background:#fff8fa; }
.character-active > strong { display:block; font-size:12px; }
.character-active > span { display:block; margin-top:2px; 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:8px; }
.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-text); }

/* 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:4px; padding:4px 8px 4px 6px; border-radius:999px; 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:10px; 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:10px; }
.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:10px; 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:8px; padding:8px 10px; border:0; border-radius:6px; 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:9px; 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:10px; padding:8px 10px; font:inherit; font-size:13px; resize:vertical; }
.comment-edit-form textarea:focus { border-color: var(--rose-text); outline:none; }
.comment-edit-form div { display:flex; gap:8px; }
.comment-edit-form button { border:1px solid #d7e0ea; border-radius:6px; background:#fff; padding:6px 12px; font-size:12px; cursor:pointer; }
.comment-edit-form button[type="submit"] { border-color: var(--rose-text); background:var(--rose-text); color:#fff; font-weight:800; }
.comment-edit-form button:disabled { opacity:.5; cursor:not-allowed; }

/* Character bible page. */
.characters-page { padding:8px 0 56px; }
.characters-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:24px; }
.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:12px 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:#d2385c; 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:12px; flex-wrap:wrap; margin-bottom:20px; padding:12px 16px; border:1px solid #f0bdc9; border-radius:14px; background:#fff7f9; }
.characters-upsell strong { font-size:13px; }
.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:14px; background:#fff; overflow:hidden; }
.character-card.active { border-color: var(--rose-text); 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-text); font-size:35px; }
.character-card-body { padding:16px 16px 6px; }
.character-card-body strong { display:block; font-size:15px; }
.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:8px; color:#7c707d; font-size:11px; }
.character-card-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:12px 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-text); }
.character-card-actions .danger:hover { color:#d23e4a; }
.characters-empty { padding:56px 20px; border:1px dashed #e4d7dc; border-radius:14px; text-align:center; }
.characters-empty h2 { margin:12px 0 8px; }
.characters-empty p { max-width:440px; margin:0 auto 16px; 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:16px 16px; border:1px solid var(--line); border-radius:14px; background:#fdfbfc; }
.story-builder-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 12px; }
.story-builder.is-open .story-builder-head { align-items:flex-start; margin-bottom:4px; }
.story-builder-toggle { flex:1 1 210px; min-width:0; display:flex; align-items:flex-start; gap:8px; border:0; background:none; padding:2px 0; text-align:left; cursor:pointer; color:inherit; }
.story-builder-chevron { flex:none; margin-top:0px; color:var(--muted); font-size:11px; transition:color .15s ease; }
.story-builder-toggle:hover .story-builder-chevron { color: var(--rose-text); }
.story-builder-titles { min-width:0; }
.story-builder-head strong { display:block; font-size:13px; }
.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:2px; color:var(--muted); font-size:11px; line-height:1.5; }
.story-builder-link { flex:none; color: var(--rose-text); font-size:12px; font-weight:800; text-decoration:none; white-space:nowrap; }
.story-builder-link:hover { text-decoration:underline; }
.story-builder-off { flex:none; padding:4px 10px; border:1px solid #efb4c3; border-radius:6px; background:#fff; color: var(--rose-text); font-size:11px; font-weight:800; line-height:1; white-space:nowrap; cursor:pointer; }
.story-builder-off:hover { border-color:#e0224a; background:#fff3f6; }
.story-lock { flex:none; font-size:15px; }
.story-builder .studio-field { margin-top:12px; }
.story-summary { margin:12px 0 0; padding:8px 12px; border-radius:10px; 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:12px; padding:12px 16px; border:1px solid #f0bdc9; border-radius:10px; background:#fff7f9; }
.story-builder-gate strong { display:block; font-size:13px; }
.story-builder-gate p { margin:4px 0 10px; 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:12px; padding:24px; border-radius:18px; background:#fff; box-shadow:0 26px 60px rgba(28,20,32,.28); }
.report-dialog h2 { margin:0; font-size:20px; }
.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:10px; padding:10px; font:inherit; font-size:13px; font-weight:400; }
.report-actions { display:flex; justify-content:flex-end; gap:8px; }
.report-actions button:not(.btn) { border:1px solid var(--line); border-radius:10px; background:#fff; padding:8px 12px; 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:6px;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:9px; }
.account-claim-badge { min-width:31px; }
.daily-reward-page { max-width:1160px;margin:0 auto;padding:12px 0 64px; }
.daily-reward-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:28px;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:9px;font-weight:900;letter-spacing:.16em;text-transform:uppercase; }
.daily-reward-heading h1 { margin:0 0 8px;font-size:clamp(35px,5vw,62px);line-height:.96;letter-spacing:-3px; }
.daily-reward-heading p { max-width:680px;margin:0;color:var(--muted);font-size:13px;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 2px;border-top:3px solid var(--ink); }
.daily-balance-inline small { grid-column:1/-1;color:#7d707b;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase; }
.daily-balance-inline strong { font-size:35px;line-height:1;letter-spacing:-1.5px; }
.daily-balance-inline span { padding-bottom:2px;color:var(--muted);font-size:11px;font-weight:800; }
.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:6px;background:#fff4f7;color:var(--rose-dark);font-size:9px;font-weight:900;white-space:nowrap; }
.daily-balance-upgrade:hover,.daily-balance-upgrade:focus-visible { border-color: var(--rose-text);background:#ffedf2;color:var(--rose-dark);outline:none; }
.daily-balance-upgrade b { font-size:13px;line-height:1; }
.daily-studio-layout { display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:16px; }
.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:20px 24px;overflow:hidden;padding:40px 40px 32px;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:900;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:#976875;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:8px 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:2px 0 -2px;color:var(--rose-dark);font-size:62px;line-height:1;letter-spacing:-4px; }
.daily-ticket-value span { color:#78676e;font-size:9px;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:16px;padding-top:24px;border-top:1px solid rgba(176,46,79,.2); }
.daily-claim-button { min-height:52px;border:1px solid #231b25;border-radius:6px;background:#211a23;color:#fff;font:inherit;font-size:13px;font-weight:900;cursor:pointer; }
.daily-claim-button:disabled { border-color:#8d6b77;background:#e8dfe2;color:#7d7176;cursor:default; }
.daily-ticket-action p { margin:0;color:#786a71;font-size:9px;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:24px 24px 20px;border-bottom:1px solid #eee5e8; }
.daily-streak-stat span { grid-column:1/-1;margin-bottom:8px;color:#7a6d73;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:2px;color:#74676d;font-size:11px;font-weight:800; }
.daily-studio-rail nav { display:grid; }
.daily-studio-rail a { position:relative;display:grid;gap:2px;padding:20px 40px 16px 24px;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:#7a6d73;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:15px;font-style:normal;transform:translateY(-50%); }
.daily-ledger { margin-top:16px;border:1px solid #e6dce0;border-radius:10px;background:#fff; }
.daily-ledger > header { display:flex;align-items:end;justify-content:space-between;gap:20px;padding:20px 24px 16px;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:20px;letter-spacing:-.4px; }
.daily-ledger header p { margin:0;color:#7a6d73;font-size:9px; }
.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:16px 12px 12px;border-right:1px solid #eee5e8;color:#7a6e74; }
.daily-ledger-day:last-child { border-right:0; }
.daily-ledger-day > span { color:#7a6d73;font-size:9px;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:#796e74;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-invite { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:16px; padding:20px 24px; border:1px solid #edcdd5; border-radius:14px; background:linear-gradient(112deg,#fff2f5,#fffaf8 55%,#f5efff); }
.daily-invite-eyebrow { color:var(--rose-dark); font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.daily-invite-copy h2 { margin:6px 0 6px; font-size:20px; }
.daily-invite-copy p { max-width:560px; color:var(--muted); font-size:13px; }
.daily-invite-actions { display:flex; flex-direction:column; align-items:flex-end; gap:6px; flex:none; }
.daily-invite-actions small { color:#687487; font-size:11px; }
@media (max-width:700px){ .daily-invite{flex-direction:column;align-items:flex-start} .daily-invite-actions{align-items:flex-start} }
.daily-history { margin-top:16px;padding:20px 24px;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:6px;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:#687585;font-size:9px; }
.daily-history ol { display:grid;gap:0;margin:16px 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 4px;border-radius:4px;background:#fff0f4;color:var(--rose-dark);font-weight:900; }
.daily-reward-guest { min-height:65vh;display:grid;place-items:center; }
.daily-reward-guest-card { position:relative;width:min(610px,100%);overflow:hidden;padding:48px 40px;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:9px;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:12px 0 20px;color:var(--muted);line-height:1.55; }
.daily-reward-guest-card > small:last-child { display:block;margin-top:12px;color:#7e7177;font-size:9px; }
@media(max-width:760px) {
  .daily-reward-page { padding-top:0; }
  .daily-reward-heading { align-items:flex-start;margin-bottom:16px;padding-bottom:16px; }
  .daily-reward-heading h1 { font-size:42px; }
  .daily-balance-inline { min-width:105px; }
  .daily-balance-inline strong { font-size:29px; }
  .daily-balance-inline span { display:none; }
  .daily-balance-upgrade { min-height:30px;margin-top:6px;padding:0 8px; }
  .daily-studio-layout { grid-template-columns:1fr; }
  .daily-drop-ticket { min-height:0;grid-template-columns:minmax(0,1fr) 94px;gap:16px;padding:28px 24px 24px; }
  .daily-drop-ticket::after { right:115px; }
  .daily-drop-ticket::before { display:none; }
  .daily-ticket-copy h2 { font-size:29px; }
  .daily-ticket-value strong { font-size:48px; }
  .daily-ticket-value span { font-size:9px; }
  .daily-ticket-action { grid-template-columns:1fr;gap:8px;padding-top:16px; }
  .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:12px 40px 12px 16px; }
  .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:40px 28px;background:#fff; }
  .daily-guest-mark { position:static;justify-items:start;margin:16px 0;transform:none; }
  .daily-reward-guest-card h1 { font-size:35px; }
}
@media(max-width:470px) {
  .daily-reward-heading { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px; }
  .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:8px;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:28px; }
.seo-listing-grid { list-style:none; margin:12px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; }
.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:10px; display:block; }
.seo-listing-grid span { display:block; margin-top:6px; font-size:13px; font-weight:700; }
.seo-listing-grid small { display:block; color:var(--muted); font-size:11px; }
/* The byline is its own link, so it must not inherit the card anchor's block display. */
.seo-listing-grid small a { display:inline; color:var(--rose-text); text-decoration:none; }
.seo-listing-grid small a:hover { text-decoration:underline; }
/* The creator byline on a gallery card: a destination inside a clickable card. */
.card-creator { color:var(--rose-text); text-decoration:none; font-weight:700; }
.card-creator:hover { text-decoration:underline; }

/* Landing pages: unique graphic + prompt-variation gallery per page. */
.landing-graphic { margin:24px auto 0; max-width:1180px; }
.landing-graphic figure { margin:0; padding:20px 24px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.landing-graphic figcaption { margin-bottom:12px; }
.landing-graphic figcaption strong { display:block; font-size:15px; color:var(--ink); }
.landing-graphic figcaption span { display:block; margin-top:2px; color:var(--muted); font-size:13px; }
.landing-svg { width:100%; height:auto; color:var(--ink); }
.landing-prompts { margin:32px auto 0; max-width:1180px; }
.landing-prompt-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; margin-top:12px; }
.landing-prompt { display:flex; flex-direction:column; gap:6px; text-align:left; padding:12px 16px; border:1px solid var(--line); border-radius:14px; background:#fff; cursor:pointer; transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease; }
.landing-prompt:hover { border-color: var(--rose-text); transform:translateY(-2px); box-shadow:0 10px 26px rgba(240,79,111,.08); }
.landing-prompt strong { font-size:13px; 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-text); 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:6px; 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-text); color:#fff; font-size:13px; font-weight:800; line-height:1; }
.more-by-avatar img { width:100%; height:100%; object-fit:cover; }

/* Skeleton loading system - Every async surface reserves its FINAL dimensions before
   data arrives, so hydration swaps in place instead of shifting the page (CLS). */
.skeleton { position:relative; overflow:hidden; background:#efe9ee; border-radius:10px; }
.skeleton::after { content:""; position:absolute; inset:0; transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);
  animation:skeleton-sweep 1.3s ease-in-out infinite; }
@keyframes skeleton-sweep { to { transform:translateX(100%); } }
@media (prefers-reduced-motion:reduce) { .skeleton::after { animation:none; } }
.skeleton-card { aspect-ratio:4/5; width:100%; border-radius:14px; }
.skeleton-square { aspect-ratio:1/1; width:100%; }
.skeleton-line { height:13px; margin:8px 0; }
.skeleton-line.wide { width:88%; } .skeleton-line.mid { width:62%; } .skeleton-line.short { width:38%; }
.skeleton-title { height:26px; width:75%; margin:12px 0 10px; }
.skeleton-chip { display:inline-block; width:74px; height:30px; border-radius:6px; margin:0 6px 6px 0; }
.skeleton-button { height:42px; border-radius:10px; }
.skeleton-avatar { width:44px; height:44px; border-radius:50%; flex:none; }
.skeleton-viewer { width:100%; min-height:inherit; border-radius:inherit; aspect-ratio:4/5; max-height:calc(100vh - 172px); }

/* CLS: reserved hero heights - These images sat at 0px and grew on decode, shifting
   everything below them at the very top of the viewport. */
.page-hero-card img { height:390px; object-fit:cover; }
.article-cover { height:420px; object-fit:cover; }
@media(max-width:760px) {
  .page-hero-card img { height:230px; }
  .article-cover { height:250px; }
}

/* Profile comment wall: flat comments only - Reply threading belongs to posts. */
.profile-wall { max-width:760px; }
.profile-wall .comment-actions [data-comment-reply],
.profile-wall .comment-actions [data-comment-like] { display:none; }
.profile-wall-empty { padding:16px 0; color:#6d6574; }

/* Identity pipeline: conflict dialog, strength badges, and the workflow explainer. */
.identity-conflict-backdrop { position:fixed; inset:0; z-index:220; display:grid; place-items:center; padding:20px; background:rgba(24,14,20,.5); }
.identity-conflict-modal { width:min(480px,100%); padding:24px 24px; border:1px solid #efc3cf; border-radius:14px; background:#fff; box-shadow:0 30px 70px rgba(40,15,28,.3); }
.identity-conflict-modal h3 { margin:0 0 8px; font-size:20px; }
.identity-conflict-modal > p { margin:0 0 12px; color:#6b7686; font-size:13px; line-height:1.55; }
.identity-conflict-list { margin:0 0 16px; padding:0; list-style:none; display:grid; gap:8px; }
.identity-conflict-list li { display:grid; gap:2px; padding:8px 12px; border:1px solid #f2dbe2; border-radius:10px; background:#fff7f9; }
.identity-conflict-list span { color:#a06175; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.identity-conflict-list strong { color:#cb3455; font-size:13px; }
.identity-conflict-list em { color:#6b7686; font-size:12px; font-style:normal; }
.identity-conflict-actions { display:flex; gap:8px; flex-wrap:wrap; }
.identity-conflict-modal small { display:block; margin-top:12px; color:#687487; font-size:11px; }
.identity-strength { display:inline-flex; align-items:center; gap:4px; margin-right:8px; padding:4px 8px; border-radius:6px; font-size:11px; font-weight:800; }
.identity-strength.strong { color:#18815a; background:#e9f8f1; }
.identity-strength.weak { color:#a86400; background:#fdf3e4; }
.identity-strength-hint { display:block; margin:6px 0 8px; color:#687487; font-size:11px; line-height:1.45; }
.identity-explainer { margin-top:24px; padding:20px 24px; border:1px solid #e3e8f0; border-radius:14px; background:#fff; }
.identity-explainer h2 { margin:0 0 12px; font-size:17px; }
.identity-explainer ol { margin:0; padding-left:16px; display:grid; gap:8px; }
.identity-explainer li { font-size:13px; line-height:1.55; color:#4d5a6b; }
.identity-explainer em { color:#687487; font-style:normal; }
.identity-explainer-note { margin:12px 0 0; padding-top:10px; border-top:1px dashed #e3e8f0; color:#6b7686; font-size:12px; }

.folder-context-menu { position:fixed; z-index:260; min-width:172px; padding:4px; border:1px solid #e3d3da; border-radius:10px; background:#fff; box-shadow:0 16px 40px rgba(40,15,28,.18); }
.folder-context-menu button { display:block; width:100%; padding:8px 10px; border:0; border-radius:6px; background:none; color:#3d4655; font-size:12px; font-weight:700; text-align:left; cursor:pointer; }
.folder-context-menu button:hover { background:#fff3f6; color:#cb3455; }
.folder-context-menu button.danger:hover { background:#fdeaea; color:#c0272d; }

/* The crawler's copy of the page, which #app removes on hydration. A no-JS reader
   sees these, so they need to be legible rather than a wall of default anchors. */
/* The hub directories and the homepage subject row outlive hydration - the SPA
   re-renders them inside the layout - so they are styled by class rather than by the
   #seo-content wrapper, which only exists until the app removes it. Scoped to
   #seo-content they became plain bulleted lists the moment JavaScript ran. */
.hub-directory { margin:28px 0 0; }
.hub-directory ul, #seo-content .seo-footer ul { list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:.35rem .75rem; }
.hub-directory li span { color:var(--muted,#777); font-size:.85em; }
#seo-content .seo-footer { display:grid; gap:1.5rem; padding:1.5rem 0;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); border-top:1px solid var(--rule,#eee); }
#seo-content .seo-footer strong { display:block; margin-bottom:.4rem; }
#seo-content .seo-footer ul { grid-template-columns:1fr; }
#seo-content .seo-crumbs ol { list-style:none; display:flex; flex-wrap:wrap; gap:.4rem;
  margin:0 0 1rem; padding:0; font-size:.85rem; color:var(--muted,#777); }
#seo-content .seo-crumbs li + li::before { content:"›"; margin-right:.4rem; opacity:.55; }

/* Legal intake forms. Server-rendered and usable without JavaScript, so the styling
   has to stand on its own rather than assume a hydrated component. */
.legal-form { display:grid; gap:1.25rem; max-width:44rem; margin:1.5rem 0; }
.legal-field { display:grid; gap:.35rem; }
.legal-field label { font-weight:600; }
.legal-field label em { font-weight:400; color:var(--muted,#777); font-style:normal; }
.legal-field small { color:var(--muted,#777); font-size:.875rem; line-height:1.5; }
.legal-field input[type=text], .legal-field input[type=email], .legal-field input[type=date],
.legal-field select, .legal-field textarea {
  width:100%; padding:.6rem .7rem; border:1px solid var(--rule,#ccc); border-radius:6px;
  font:inherit; background:var(--panel,#fff); color:inherit; }
.legal-field textarea { resize:vertical; min-height:6rem; }
.legal-field [aria-invalid=true] { border-color:#b03a4b; }
.legal-error { color:#b03a4b; font-size:.875rem; font-weight:600; }
.legal-check { display:grid; grid-template-columns:auto 1fr; gap:.6rem; align-items:start;
  font-weight:400; line-height:1.5; }
.legal-check input { margin-top:.25rem; }
.legal-form-errors { border-left:4px solid #b03a4b; background:rgba(176,58,75,.07);
  padding:.85rem 1rem; margin:1rem 0; }
.legal-form-errors p { margin:.25rem 0 0; }
.legal-submit { display:grid; gap:.5rem; }
.legal-submit button { justify-self:start; padding:.7rem 1.5rem; border:0; border-radius:6px;
  background:var(--ink,#16202e); color:#fff; font:inherit; font-weight:600; cursor:pointer; }
.legal-submit button:hover { opacity:.9; }
.legal-trap { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.legal-outcome { flex:1 1 18rem; padding:.45rem .6rem; border:1px solid var(--rule,#ccc);
  border-radius:6px; font:inherit; }

/* --- HTML sitemap (/sitemap) ------------------------------------------------ */
.sitemap-page { max-width: 62rem; }
.sitemap-lede { color: var(--muted, #b6a8c4); margin: 0 0 2rem; }
.sitemap-group { margin: 0 0 2.25rem; }
.sitemap-group h2 { font-size: 1.15rem; margin: 0 0 0.25rem; }
.sitemap-group > p { color: var(--muted, #b6a8c4); font-size: 0.93rem; margin: 0 0 0.9rem; }
.sitemap-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.45rem 1.5rem;
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.sitemap-links a { text-decoration: none; }
.sitemap-links a:hover { text-decoration: underline; }

/* --- @mention autocomplete -------------------------------------------------- */
.mention-menu-anchor { position: relative; }
.mention-menu { position: absolute; z-index: 40; left: 0; right: 0; top: 0.25rem; margin: 0;
  padding: 0.3rem; list-style: none; max-height: 17rem; overflow-y: auto;
  background: var(--surface, #fff); border: 1px solid var(--border, rgba(0,0,0,0.12));
  border-radius: 0.75rem; box-shadow: 0 12px 34px rgba(0,0,0,0.16); }
.mention-menu li { margin: 0; }
.mention-menu button { display: flex; align-items: center; gap: 0.6rem; width: 100%;
  padding: 0.45rem 0.55rem; border: 0; border-radius: 0.5rem; background: none;
  text-align: left; cursor: pointer; font: inherit; color: inherit; }
.mention-menu button:hover, .mention-menu button.is-active { background: var(--hover, rgba(0,0,0,0.06)); }
.mention-avatar { width: 1.9rem; height: 1.9rem; flex: 0 0 auto; border-radius: 50%;
  display: grid; place-items: center; overflow: hidden; font-weight: 700; font-size: 0.8rem;
  background: var(--accent-soft, #ede4f3); }
.mention-avatar img { width: 100%; height: 100%; object-fit: cover; }
.mention-names { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.mention-names strong { font-size: 0.92rem; }
.mention-names small { color: var(--muted, #7d7189); font-size: 0.78rem; }
.mention-count { margin-left: auto; font-size: 0.75rem; color: var(--muted, #7d7189); }
.comment-mention { font-weight: 700; text-decoration: none; }
.comment-mention:hover { text-decoration: underline; }

/* --- 404 ------------------------------------------------------------------- */
.notfound-hero .eyebrow { letter-spacing: 0.18em; }
.notfound-body { max-width: 62rem; }
.notfound-lede { color: var(--muted, #7d7189); margin: 0 0 1.5rem; }
.notfound-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.6rem;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.notfound-links a { display: block; padding: 0.85rem 1rem; border-radius: 0.7rem;
  border: 1px solid var(--border, rgba(0,0,0,0.12)); text-decoration: none; color: inherit; }
.notfound-links a:hover { border-color: var(--rose, #e0417a); }
.notfound-links strong { display: block; font-size: 0.98rem; }
.notfound-links span { display: block; color: var(--muted, #7d7189); font-size: 0.85rem; margin-top: 0.15rem; }


/* ===========================================================================
   Referrals and Credits - structural redesign
   ---------------------------------------------------------------------------
   Both pages shipped with the sibling manhwa site's exact styling: 69 and 84
   byte-identical rules, soft rose borders, translucent cards, 14px radii.
   This changes the GEOMETRY rather than the palette - squared corners, hairline
   rules instead of shadowed cards, an asymmetric hero, numbered steps and
   tabular figures. It reads as a rate sheet rather than a greetings card.

   Deliberately stays on the light ground. An earlier attempt re-themed these
   two pages dark, which meant overriding every inherited colour in ~150 existing
   rules; three passes in, headings were still landing at 1.1:1 on their own
   background. Working with the cascade instead of against it keeps every
   existing text colour legible.
   =========================================================================== */

.referral-page, .daily-reward-page {
  --rs-line: #e4dbe6;
  --rs-rule: #221a26;
  --rs-accent: var(--rose, #e0417a);
  --rs-quiet: #6f6475;
}

/* Hairline-ruled blocks, not floating cards. */
/* NOT .referral-calculator: that block is built dark on purpose - white type over
   rgba(255,255,255,.08) fills - so painting it white rendered its heading and every
   figure white-on-white at 1.00:1. It keeps its own dark ground and only takes the
   squared corner. Same reason .referral-art-caption is left alone: it is white type
   over a gradient laid on the photograph. */
.referral-hero, .referral-how, .referral-rules, .referral-final,
.daily-drop-ticket, .daily-invite, .daily-history, .daily-reward-guest-card {
  border: 1px solid var(--rs-line);
  border-radius: 2px;
  box-shadow: none;
  background: #fff;
}
.referral-calculator { border-radius: 2px; }
.referral-calculator-panel { border-radius: 2px; }

/* A placard label, set against a rule. */
.referral-overline, .daily-reward-eyebrow, .daily-invite-eyebrow {
  display: inline-block;
  font-size: 0.66rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--rs-quiet);
  border-left: 3px solid var(--rs-accent);
  padding: 0.1rem 0 0.1rem 0.65rem;
  background: none;
  border-radius: 0;
}

/* Asymmetric hero: copy narrow, artwork wide and flush to the edge. */
.referral-hero {
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: 0;
  min-height: 0;
  overflow: hidden;
}
.referral-hero-copy { padding: clamp(1.75rem, 3.5vw, 3rem); }
.referral-hero h1 { font-size: clamp(1.9rem, 4vw, 2.9rem); line-height: 1.06; letter-spacing: -0.025em; }
.referral-hero h1 em { font-style: normal; color: var(--rs-accent); }
.referral-hero-art img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* The three rates read as a rate sheet: ruled columns, tabular figures. */
.referral-rate-row {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
  border-top: 1px solid var(--rs-rule); border-bottom: 1px solid var(--rs-line);
  margin: 1.75rem 0 1.5rem;
}
.referral-rate-row article {
  padding: 0.95rem 0.4rem 0.85rem 0; background: none; border: 0; border-radius: 0;
  box-shadow: none; border-right: 1px solid var(--rs-line);
}
.referral-rate-row article:last-child { border-right: 0; padding-right: 0; }
.referral-rate-row strong {
  display: block; font-size: clamp(1.6rem, 3.2vw, 2.3rem); line-height: 1;
  letter-spacing: -0.035em; font-variant-numeric: tabular-nums;
}
.referral-rate-row span {
  font-size: 0.68rem; letter-spacing: 0.13em; text-transform: uppercase; color: var(--rs-quiet);
}

/* Numbered steps, set like a contract clause list. */
.referral-steps { counter-reset: step; list-style: none; padding: 0; }
.referral-steps > li { counter-increment: step; position: relative; padding-left: 3.1rem; margin-bottom: 1rem; }
.referral-steps > li::before {
  content: counter(step, decimal-leading-zero);
  position: absolute; left: 0; top: 0.1rem;
  font-variant-numeric: tabular-nums; font-size: 0.72rem; letter-spacing: 0.08em;
  color: var(--rs-accent); border: 1px solid var(--rs-line); border-radius: 2px;
  padding: 0.15rem 0.42rem;
}
.referral-rule-grid { gap: 0px; background: var(--rs-line); border: 1px solid var(--rs-line); border-radius: 2px; }
.referral-rule-grid > * { background: #fff; padding: 0.95rem 1.05rem; border-radius: 0; box-shadow: none; }

/* Credits: the week is a ruled strip of dated cells, not soft bubbles. */
.daily-ticket-value { font-variant-numeric: tabular-nums; letter-spacing: -0.04em; color: var(--rs-accent); }
.daily-balance-inline { font-variant-numeric: tabular-nums; border-left: 3px solid var(--rs-accent); padding-left: 0.65rem; }
.daily-ledger-days {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 0px;
  background: var(--rs-line); border: 1px solid var(--rs-line); border-radius: 2px; overflow: hidden;
}
.daily-ledger-day {
  background: #fff; border: 0; border-radius: 0; box-shadow: none;
  padding: 0.65rem 0.25rem; text-align: center;
}
.daily-ledger-day.claimed, .daily-ledger-day[data-claimed="true"] { border-bottom: 3px solid var(--rs-accent); }
.daily-ledger-day.today, .daily-ledger-day[data-today="true"] { background: #faf6fb; }
.daily-streak-stat { font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.daily-claim-badge {
  border: 1px solid var(--rs-accent); background: none; color: var(--rs-accent);
  border-radius: 999px; font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase;
}

@media (max-width: 860px) {
  .referral-hero { grid-template-columns: 1fr; }
  .referral-hero-art { min-height: 240px; }
  .daily-ledger-days { grid-template-columns: repeat(4, 1fr); }
}

/* ---------------------------------------------------------------------------
   Overlay captions need a scrim.
   .art-overlay already lays a gradient behind its white text. .collection-copy
   and .referral-art-caption did not - they set colour:#fff directly over the
   photograph and relied on every image happening to be dark. Measured white on
   an unpainted ground across /, /create, /models, /learn and /blog, and the
   brighter photographic heroes made it unreadable. Same treatment, applied
   where it was missing rather than inventing a second pattern.
   --------------------------------------------------------------------------- */
.collection-card::after,
.referral-hero-art::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 62%;
  pointer-events: none;
  background: linear-gradient(transparent, rgba(14, 8, 18, 0.82));
  z-index: 1;
}
.collection-copy { z-index: 2; text-shadow: 0 1px 2px rgba(14, 8, 18, 0.45); }
.referral-art-caption { z-index: 2; text-shadow: 0 1px 2px rgba(14, 8, 18, 0.45); }

/* A guide's opening figure is illustration, not a hero slab. Uncapped it filled the
   whole article column - 661px wide and taller than the viewport on a 4:5 source. */
.article > figure { max-width: 440px; margin-left: auto; margin-right: auto; }
.article > figure img { width: 100%; border-radius: 14px; }

/* One saved character rendered into three scenes on /characters. The strip is the
   page's evidence, so it sits above the fold on desktop and scrolls horizontally on a
   phone rather than shrinking three portraits into stamps. */
.character-demo{margin:40px 0 0;}
.character-demo-head{max-width:640px;margin:0 0 20px;}
.character-demo-head h2{font-size:24px;font-weight:700;margin:6px 0 8px;}
.character-demo-head p{color:var(--muted);font-size:15px;margin:0;}
.character-demo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.character-demo-strip figure{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.character-demo-strip img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;}
.character-demo-strip figcaption{padding:12px 16px 16px;display:grid;gap:4px;}
.character-demo-strip figcaption strong{font-size:15px;font-weight:700;}
.character-demo-strip figcaption span{color:var(--muted);font-size:12px;line-height:1.5;}
.character-demo-note{margin:16px 0 0;padding:12px 16px;border-radius:10px;background:var(--soft);color:var(--muted);font-size:13px;line-height:1.6;}
@media (max-width:760px){
  .character-demo-strip{grid-template-columns:repeat(3,74vw);overflow-x:auto;scroll-snap-type:x mandatory;padding:0 0 8px;}
  .character-demo-strip figure{scroll-snap-align:start;}
  .character-demo-head h2{font-size:20px;}
}
