.ff-intro{align-items:end;gap:20px;display:grid}@media (min-width:1024px){.ff-intro[data-art=true]{grid-template-columns:minmax(0,1fr) auto}}.ff-intro-side{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ff-disc{aspect-ratio:1;background:var(--ff-disc-bg,#fef7eb);width:168px;box-shadow:0 0 0 10px #fffdf98c, 0 0 0 11px var(--ff-line), var(--ff-shadow-card);border-radius:999px;flex:none;display:block;position:relative;overflow:hidden}.ff-disc img{object-fit:cover}.ff-disc-sm{width:120px}.ff-disc-lg{width:min(260px,64vw)}.ff-intro .ff-disc{display:none}@media (min-width:1024px){.ff-intro .ff-disc{margin:0 12px 4px 0;display:block}}.ff-empty{background:var(--ff-paper);box-shadow:var(--ff-shadow-card);text-align:center;border-radius:32px;flex-direction:column;align-items:center;margin-top:32px;padding:44px 24px 48px;display:flex}.ff-empty h2{max-width:32rem;font-family:var(--font-serif), "Newsreader", Georgia, serif;letter-spacing:-.026em;color:var(--ff-ink);text-wrap:balance;margin-top:28px;font-size:clamp(28px,4vw,40px);font-weight:400;line-height:1.06}.ff-empty h2 em{color:var(--ff-orange-ink);font-style:italic}.ff-empty-copy{max-width:28rem;color:var(--ff-muted-2);text-wrap:pretty;margin-top:12px;font-size:15px;line-height:1.6}.ff-empty .ff-kicker{margin-top:28px}.ff-empty .ff-kicker+h2{margin-top:12px}.ff-card{background:var(--ff-paper);box-shadow:var(--ff-shadow-card);border-radius:28px}.ff-card-pad{padding:clamp(20px,2.4vw,28px)}.ff-card-head{align-items:flex-start;gap:14px;display:flex}.ff-card-head :is(h2,h3){font-family:var(--font-serif), "Newsreader", Georgia, serif;letter-spacing:-.02em;color:var(--ff-ink);font-size:24px;font-weight:420;line-height:1.12}.ff-card-head p{color:var(--ff-muted-2);text-wrap:pretty;margin-top:4px;font-size:13.5px;line-height:1.5}.ff-card-night{background:var(--ff-night);color:#f6efe3;box-shadow:0 30px 60px -34px #140e06b3}.ff-card-night .ff-card-head :is(h2,h3){color:#fffaf2}.ff-card-night .ff-card-head p{color:#f6efe3ad}.ff-card-night .ff-emoji{background:var(--ff-night-2);box-shadow:inset 0 0 0 1px var(--ff-night-line)}.ff-inbox-row{grid-template-columns:40px minmax(0,1fr) auto;gap:14px;min-height:74px;padding:14px 20px}.ff-inbox-ava{background:var(--ff-paper-2);width:40px;height:40px;box-shadow:inset 0 0 0 1px var(--ff-line);border-radius:999px;place-items:center;font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:18px;line-height:1;display:grid;position:relative}.ff-inbox-row[data-new=true] .ff-inbox-ava{box-shadow:inset 0 0 0 1.5px var(--ff-orange), 0 0 0 4px #f2611d1f}.ff-inbox-row[data-new=true] .ff-inbox-ava:after{content:"";background:var(--ff-orange);width:11px;height:11px;box-shadow:0 0 0 2px var(--ff-paper);border-radius:999px;position:absolute;top:-1px;right:-1px}.ff-inbox-row[data-new=true] .ff-inbox-title{font-weight:620}.ff-inbox-row:hover .ff-inbox-time{color:var(--ff-ink-2)}@media (max-width:720px){.ff-inbox-row{grid-template-columns:36px minmax(0,1fr) auto;gap:12px;padding:12px 14px}.ff-inbox-ava{width:36px;height:36px;font-size:16px}}.ff-tabs-scroll{scrollbar-width:none;gap:8px;margin:0 -4px;padding:2px 4px;display:flex;overflow-x:auto}.ff-tabs-scroll::-webkit-scrollbar{display:none}.ff-tab{background:var(--ff-paper-2);height:38px;box-shadow:inset 0 0 0 1px var(--ff-line);color:var(--ff-ink-2);transition:background .2s ease, color .2s ease, box-shadow .2s ease, transform .35s var(--ff-ease);border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 14px 0 10px;font-size:13.5px;font-weight:560;text-decoration:none;display:inline-flex}.ff-tab:hover{color:var(--ff-ink);background:#fff;box-shadow:inset 0 0 0 1px #1715122e}.ff-tab:active{transform:scale(.97)}.ff-tab i{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-size:15px;font-style:normal;line-height:1}.ff-tab b{font-variant-numeric:tabular-nums;background:#17151212;border-radius:999px;place-items:center;min-width:22px;height:22px;padding:0 7px;font-size:11.5px;font-weight:650;display:inline-grid}.ff-tab[aria-selected=true]{background:var(--ff-ink);color:#fffaf2;box-shadow:0 12px 24px -14px #171512b3}.ff-tab[aria-selected=true] b{background:var(--ff-orange);color:var(--ff-ink)}.ff-proj{background:var(--ff-paper);height:100%;box-shadow:var(--ff-shadow-card);color:inherit;transition:transform .45s var(--ff-ease), box-shadow .45s var(--ff-ease);border-radius:28px;flex-direction:column;padding:22px 22px 20px;text-decoration:none;display:flex;position:relative}.ff-proj:hover{box-shadow:var(--ff-shadow-lift);transform:translateY(-4px)}.ff-proj-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.ff-mono{background:var(--ff-ink);color:#fffaf2;width:48px;height:48px;font-family:var(--font-serif), "Newsreader", Georgia, serif;border-radius:16px;flex:none;place-items:center;font-size:26px;font-style:italic;line-height:1;display:grid}.ff-mono[data-tone=orange]{background:var(--ff-orange);color:var(--ff-ink)}.ff-mono[data-tone=sand]{background:var(--ff-sand);color:var(--ff-ink)}.ff-proj-knob{background:var(--ff-paper-2);width:38px;height:38px;box-shadow:inset 0 0 0 1px var(--ff-line);color:var(--ff-ink);transition:background .3s ease, transform .45s var(--ff-ease);border-radius:999px;place-items:center;display:grid}.ff-proj-knob svg{width:16px;height:16px}.ff-proj:hover .ff-proj-knob{background:var(--ff-orange);transform:rotate(-45deg)}.ff-proj h2{font-family:var(--font-serif), "Newsreader", Georgia, serif;letter-spacing:-.024em;color:var(--ff-ink);margin-top:22px;font-size:30px;font-weight:400;line-height:1.05}.ff-proj-key{width:fit-content;max-width:100%;font-family:var(--font-geist-mono), ui-monospace, monospace;color:var(--ff-muted-2);text-overflow:ellipsis;white-space:nowrap;background:#1715120d;border-radius:999px;margin-top:10px;padding:4px 10px;font-size:11.5px;display:block;overflow:hidden}.ff-proj-stats{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:20px;display:flex}.ff-stat-pill{background:var(--ff-paper-2);height:28px;box-shadow:inset 0 0 0 1px var(--ff-line);color:var(--ff-ink-2);border-radius:999px;align-items:center;gap:6px;padding:0 10px 0 8px;font-size:12px;font-weight:560;display:inline-flex}.ff-stat-pill i{place-items:center;font-style:normal;display:grid}.ff-stat-pill i svg{width:14px;height:14px}.ff-stat-pill-hot{background:var(--ff-orange-soft);box-shadow:none;color:var(--ff-orange-ink)}.ff-new-card{background:var(--ff-night);color:#f6efe3;border-radius:28px;flex-direction:column;justify-content:space-between;gap:18px;padding:22px;display:flex;box-shadow:0 30px 60px -34px #140e06b3}.ff-new-card label{font-family:var(--font-serif), "Newsreader", Georgia, serif;letter-spacing:-.02em;color:#fffaf2;font-size:26px;font-weight:400;line-height:1.1}.ff-new-card p{color:#f6efe3a8;margin-top:6px;font-size:13.5px;line-height:1.5}.ff-new-card [data-slot=input]{border-color:var(--ff-night-line);color:#fffaf2;background:#fff8eb0f;border-radius:999px;height:46px;padding:0 18px}.ff-new-card [data-slot=input]::placeholder{color:#f6efe366}.ff-new-card [data-slot=button]{border-radius:999px;height:46px;background:var(--ff-orange)!important;color:var(--ff-ink)!important}.ff-new-card [data-slot=button]:hover{background:var(--ff-orange-deep)!important}.ff-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.ff-key-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ff-key-row code{background:var(--ff-paper-2);box-shadow:inset 0 0 0 1px var(--ff-line);font-family:var(--font-geist-mono), ui-monospace, monospace;color:var(--ff-ink-2);word-break:break-all;border-radius:999px;padding:6px 12px;font-size:12px}.ff-prompt-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;padding:22px 22px 18px;display:flex}.ff-prompt-pre{background:var(--ff-night);max-height:28rem;box-shadow:inset 0 0 0 1px var(--ff-night-line);color:#eee5d6;font-family:var(--font-geist-mono), ui-monospace, monospace;white-space:pre-wrap;border-radius:20px;margin:0 10px 10px;padding:18px 20px;font-size:12.5px;line-height:1.7;overflow:auto}.ff-text-btn{height:36px;color:var(--ff-muted-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 12px;font-size:13px;font-weight:540;transition:background .2s,color .2s}.ff-text-btn:hover{color:var(--ff-ink);background:#1715120f}.ff-section-title{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-top:48px;display:flex}.ff-section-title h2{font-family:var(--font-serif), "Newsreader", Georgia, serif;letter-spacing:-.024em;color:var(--ff-ink);font-size:clamp(26px,3vw,34px);font-weight:400;line-height:1.08}.ff-section-title a{color:var(--ff-orange-ink);font-size:13.5px;font-weight:560;text-decoration:none}.ff-section-title a:hover{text-underline-offset:4px;text-decoration:underline}.ff-settings{gap:16px;margin-top:32px;display:grid}@media (min-width:1080px){.ff-settings{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:start}}.ff-settings-col{gap:16px;display:grid}.ff-card [data-slot=input]{border-radius:14px;height:44px;padding:0 14px}.ff-detail-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ff-detail-pager{background:var(--ff-paper-2);box-shadow:inset 0 0 0 1px var(--ff-line);border-radius:999px;gap:4px;padding:4px;display:inline-flex}.ff-detail-pager a,.ff-detail-pager span{height:32px;color:var(--ff-ink-2);border-radius:999px;align-items:center;gap:4px;padding:0 12px;font-size:13px;font-weight:560;text-decoration:none;transition:background .2s;display:inline-flex}.ff-detail-pager a:hover{background:#17151212}.ff-detail-pager span{opacity:.4}.ff-detail-pager svg{width:15px;height:15px}.ff-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ff-detail-title{max-width:48rem;font-family:var(--font-serif), "Newsreader", Georgia, serif;letter-spacing:-.028em;color:var(--ff-ink);text-wrap:balance;font-size:clamp(30px,4.4vw,48px);font-weight:400;line-height:1.06}.ff-detail-grid{gap:16px;margin-top:32px;display:grid}@media (min-width:1080px){.ff-detail-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:start}}.ff-shot{background:var(--ff-cream-2);box-shadow:inset 0 0 0 1px var(--ff-line);border-radius:24px;overflow:hidden}.ff-shot img{object-fit:contain;width:100%;max-height:32rem;display:block}.ff-notes{gap:10px;margin-top:18px;display:grid}.ff-notes li{background:var(--ff-paper-2);box-shadow:inset 0 0 0 1px var(--ff-line);border-radius:18px;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:12px 14px;display:grid}.ff-notes .ff-avatar-btn{width:32px;height:32px;font-size:10px}.ff-notes p{color:var(--ff-ink);white-space:pre-wrap;font-size:14px;line-height:1.55}.ff-notes small{color:var(--ff-muted);margin-top:4px;font-size:12px;display:block}.ff-seg{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:16px;display:grid}.ff-seg [data-slot=button]{border-radius:16px;justify-content:flex-start;gap:8px;height:44px;padding:0 14px}.ff-seg [data-slot=button] i{font-family:Apple Color Emoji,Segoe UI Emoji,Noto Color Emoji,sans-serif;font-style:normal}.ff-dl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ff-dl-grid>.ff-dl-wide{grid-column:1/-1}.ff-dl dd a{color:var(--ff-orange-ink);word-break:break-all}.ff-console{font-family:var(--font-geist-mono), ui-monospace, monospace;white-space:pre-wrap;word-break:break-all;margin:0;font-size:11.5px;line-height:1.6}.ff-onb{gap:16px;margin-top:32px;display:grid}@media (min-width:1024px){.ff-onb{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}}.ff-onb-art{background:var(--ff-night);color:#f6efe3;border-radius:32px;flex-direction:column;justify-content:space-between;gap:24px;padding:clamp(22px,3vw,32px);display:flex;position:relative;overflow:hidden;box-shadow:0 30px 60px -34px #140e06b3}.ff-onb-art:after{content:"";pointer-events:none;background:radial-gradient(closest-side,#f2611d66,#0000);border-radius:999px;width:420px;height:420px;position:absolute;top:-160px;right:-140px}.ff-onb-art .ff-disc{z-index:1;box-shadow:0 0 0 12px #fff8eb0a, 0 0 0 13px var(--ff-night-line);align-self:center}:is(.ff-onb-art,.ff-auth-side) .ff-step-row{box-shadow:inset 0 0 0 1px var(--ff-night-line);background:#fff8eb0d}:is(.ff-onb-art,.ff-auth-side) .ff-step-label{color:#fffaf2}:is(.ff-onb-art,.ff-auth-side) .ff-step-hint{color:#f6efe399}:is(.ff-onb-art,.ff-auth-side) .ff-emoji{background:var(--ff-night-2);box-shadow:inset 0 0 0 1px var(--ff-night-line)}.ff-guest-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.ff-center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:72px 16px 96px;display:flex}.ff-center .ff-disc{margin-top:40px}.ff-center .ff-kicker{margin:36px auto 0}.ff-docs{width:min(880px,100%);margin:0 auto}.ff-docs-hero{align-items:center;gap:24px;display:grid}@media (min-width:900px){.ff-docs-hero{grid-template-columns:minmax(0,1fr) auto}}.ff-docs-hero .ff-disc{display:none}@media (min-width:900px){.ff-docs-hero .ff-disc{display:block}}.ff-docs .ff-card+.ff-card{margin-top:14px}.ff-docs .ff-card p{color:var(--ff-muted-2);font-size:14.5px;line-height:1.65}.ff-docs .ff-card p code,.ff-docs .ff-card li code{font-family:var(--font-geist-mono), ui-monospace, monospace;color:var(--ff-ink);background:#1715120f;border-radius:6px;padding:1px 6px;font-size:12.5px}.ff-docs-group{margin-top:48px;scroll-margin-top:96px}.ff-docs-group>h2{font-family:var(--font-serif), "Newsreader", Georgia, serif;letter-spacing:-.026em;color:var(--ff-ink);margin-bottom:16px;font-size:clamp(28px,3.4vw,38px);font-weight:400;line-height:1.05}.ff-docs-group>h2 em{color:var(--ff-orange-ink);font-style:italic}.ff-docs .ff-card[id]{scroll-margin-top:96px}.ff-docs-guest{padding:120px 20px 96px}.ff-mini-grid{gap:10px;display:grid}@media (min-width:640px){.ff-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.ff-mini{background:var(--ff-paper-2);box-shadow:inset 0 0 0 1px var(--ff-line);border-radius:20px;padding:16px}.ff-mini b{color:var(--ff-ink);font-size:14.5px;font-weight:600;display:block}.ff-docs .ff-mini p{margin-top:6px;font-size:13.5px}.ff-float-usage .ff-float-meter{margin-top:4px}@media (prefers-reduced-motion:no-preference){.ff-float-meter i{animation:ff-meter-in 1.2s var(--ff-ease) backwards}}@keyframes ff-meter-in{0%{transform:scaleX(0)}}.ff-skel{background:#e2d7c48c;border-radius:999px;display:block;position:relative;overflow:hidden}.ff-skel-card{box-shadow:var(--ff-shadow-card);background:#fbf8f2cc;border-radius:28px}@media (prefers-reduced-motion:no-preference){.ff-skel:after,.ff-skel-card:after{content:"";background:linear-gradient(90deg,#0000,#fffdf9bf,#0000);animation:1.6s ease-in-out infinite ff-shimmer;position:absolute;inset:0;transform:translate(-100%)}.ff-skel-card{position:relative;overflow:hidden}}@keyframes ff-shimmer{to{transform:translate(100%)}}.ff-skel-rail{z-index:40;right:12px;bottom:max(12px, env(safe-area-inset-bottom));background:var(--ff-night);border-radius:999px;height:68px;position:fixed;left:12px;box-shadow:0 30px 60px -30px #140e0699}@media (min-width:900px){.ff-skel-rail{border-radius:30px;width:236px;height:auto;inset:16px auto 16px 16px}}.ff-pulse-dot{background:var(--ff-orange);border-radius:999px;width:8px;height:8px;position:relative}@media (prefers-reduced-motion:no-preference){.ff-pulse-dot:after{content:"";border-radius:inherit;background:var(--ff-orange);animation:ff-pulse 1.4s var(--ff-ease) infinite;position:absolute;inset:0}}@keyframes ff-pulse{to{opacity:0;transform:scale(2.6)}}
