/* Furnispace webfonts.
   SUBSTITUTION NOTE: no font binaries were supplied with the source artwork.
   Archivo (display) and Figtree (UI/body) are the closest Google Fonts matches to the
   heavy flat-terminal grotesque headings and the geometric-humanist UI type in the source.
   Replace these @import lines with self-hosted @font-face rules when real files arrive. */
@import url("https://fonts.googleapis.com/css2?family=Archivo:wght@600;700;800&family=Figtree:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap");


*{box-sizing:border-box}
body{margin:0;font:var(--type-body);color:var(--text-body);background:var(--surface-app);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;color:var(--text-strong);font-family:var(--font-display);letter-spacing:var(--track-display)}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:var(--transition-control)}
a:hover{color:var(--flame-500)}
button{font:inherit}
img{display:block;max-width:100%}
.fs-eyebrow{font:var(--fw-semibold) var(--fs-micro)/1.2 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.fs-section-title{font:var(--type-section);text-transform:uppercase;letter-spacing:-.015em}
:root{
/* Neutrals — warm-leaning greys sampled from the source artwork */
--ink-900:#111111;--ink-800:#2b2b2b;--ink-700:#3d3d3d;--ink-600:#5c5c5c;--ink-500:#7a7a7a;--ink-400:#9b9b9b;--ink-300:#c6c6c6;--ink-200:#e2e1de;--ink-100:#efefec;--ink-50:#f6f5f2;--white:#ffffff;
/* Brand accent — the rating/AI-active orange */
--flame-700:#b93c05;--flame-600:#d7480a;--flame-500:#f3570a;--flame-400:#f77c3f;--flame-200:#fbc7a6;--flame-50:#fdf1e9;
/* Support hues */
--gold-500:#ffc700;--gold-50:#fff8e0;
--mint-500:#1f9c86;--mint-50:#f0fbf7;
--violet-500:#5b4bdb;
/* Semantic surfaces */
--surface-page:#e9e8e5;--surface-app:#fdfcfb;--surface-card:#ffffff;--surface-sunken:#f2f3f0;--surface-inverse:#2b2b2b;--surface-tint:#fdf1e9;
/* Semantic text */
--text-strong:#111111;--text-body:#3d3d3d;--text-muted:#7a7a7a;--text-faint:#9b9b9b;--text-inverse:#ffffff;--text-accent:#f3570a;--text-link:#111111;
/* Lines */
--border-hairline:#e2e1de;--border-strong:#111111;--border-field:#c6c6c6;--border-focus:#f3570a;
/* Actions */
--action-primary:#2b2b2b;--action-primary-hover:#111111;--action-accent:#f3570a;--action-accent-hover:#d7480a;
/* Status */
--status-success:#1f9c86;--status-success-bg:#f0fbf7;--status-warning:#ffc700;--status-danger:#d7480a;--status-verified:#5b4bdb;
/* AI studio surfaces (dark glass overlays on room imagery) */
--ai-glass:rgba(255,255,255,.92);--ai-toolbar:#1b1b1b;--ai-pin:#0fd6a4;
}
:root{
--shadow-none:none;
--shadow-hairline:0 0 0 1px var(--border-hairline);
--shadow-card:0 1px 2px rgba(17,17,17,.04),0 6px 16px rgba(17,17,17,.05);
--shadow-panel:0 8px 28px rgba(17,17,17,.12);
--shadow-float:0 12px 40px rgba(17,17,17,.18);
--shadow-toolbar:0 10px 30px rgba(0,0,0,.32);
--shadow-frame:0 24px 60px rgba(17,17,17,.10);
--blur-glass:blur(14px);/* @kind other */
}
:root{
--ease-standard:cubic-bezier(.2,0,0,1);/* @kind other */--ease-out:cubic-bezier(.16,1,.3,1);/* @kind other */--ease-in:cubic-bezier(.4,0,1,1);/* @kind other */
--dur-instant:90ms;/* @kind other */--dur-fast:160ms;/* @kind other */--dur-base:240ms;/* @kind other */--dur-slow:420ms;/* @kind other */
--press-scale:.98;/* @kind other */--hover-lift:-1px;/* @kind other */
--transition-control:background-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard);/* @kind other */
}
:root{
--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-2xl:28px;--radius-pill:999px;
--radius-card:12px;--radius-media:12px;--radius-control:8px;--radius-chip:999px;--radius-panel:14px;--radius-frame:24px;
}
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;
--gutter:20px;/* @kind spacing */--page-max:1180px;/* @kind spacing */--section-gap:72px;/* @kind spacing */--control-h:44px;/* @kind spacing */--control-h-sm:34px;/* @kind spacing */
}
:root{
--font-display:"Archivo","Helvetica Neue",Arial,sans-serif;
--font-sans:"Figtree","Helvetica Neue",Arial,sans-serif;
--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
/* CJK stack — Traditional Chinese first, then SC / JP / KR, falling back to the Latin sans */
--font-cjk:"Figtree","Noto Sans TC","PingFang TC","Microsoft JhengHei","Noto Sans SC","PingFang SC","Hiragino Sans","Noto Sans JP","Noto Sans KR","Helvetica Neue",Arial,sans-serif;
/* Scale — one scale for both breakpoints; 16px body matches Pinterest, Dribbble,
   Airbnb, Figma, and the 14–16px floor Chinese-language sites require. */
--fs-display-xl:76px;--fs-display-l:44px;--fs-display-m:32px;--fs-display-s:24px;
--fs-title:22px;--fs-body-l:18px;--fs-body:16px;--fs-body-s:14px;--fs-caption:13px;--fs-micro:12px;
/* Line heights */
--lh-tight:1.02;/* @kind other */--lh-display:1.12;/* @kind other */--lh-snug:1.3;/* @kind other */--lh-body:1.6;/* @kind other */
/* Weights */
--fw-regular:400;/* @kind other */--fw-medium:500;/* @kind other */--fw-semibold:600;/* @kind other */--fw-bold:700;/* @kind other */--fw-black:800;/* @kind other */
/* Tracking */
--track-display:-.02em;/* @kind other */--track-tight:-.01em;/* @kind other */--track-normal:0;/* @kind other */--track-label:.02em;/* @kind other */--track-micro:.08em;/* @kind other */--track-label-sm:.06em;/* @kind other */--track-badge:.04em;/* @kind other */
/* Semantic roles */
--type-hero:var(--fw-black) var(--fs-display-l)/var(--lh-display) var(--font-display);/* @kind font */
--type-section:var(--fw-bold) var(--fs-display-m)/var(--lh-display) var(--font-display);/* @kind font */
--type-title:var(--fw-semibold) var(--fs-title)/var(--lh-snug) var(--font-sans);/* @kind font */
--type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-sans);/* @kind font */
--type-label:var(--fw-medium) var(--fs-body-s)/1.2 var(--font-sans);/* @kind font */
--type-caption:var(--fw-regular) var(--fs-caption)/1.4 var(--font-sans);/* @kind font */
}

/* Mobile — display sizes step down; the body scale is already at the Apple HIG
   (17px body / 11px floor) and Material 3 (16px body / 12px label) minimums. */
@media (max-width:600px){
  :root{
    --fs-display-xl:44px;--fs-display-l:30px;--fs-display-m:26px;--fs-display-s:21px;
    --fs-title:19px;
  }
}

/* Traditional Chinese and other CJK: strokes sit inside a fixed square, so glyphs
   need more leading, must never be letterspaced, and never rely on a Latin-only face. */
:lang(zh),:lang(ja),:lang(ko){
  --font-sans:var(--font-cjk);
  --font-display:var(--font-cjk);
  --lh-body:1.85;
  --track-display:0;
  --track-tight:0;
  --track-label:0;
  --track-micro:0;
  --track-label-sm:0;
  --track-badge:0;
  line-height:1.85;
}
:lang(zh) p,:lang(ja) p,:lang(ko) p,
:lang(zh) span,:lang(ja) span,:lang(ko) span,
:lang(zh) div,:lang(ja) div,:lang(ko) div,
:lang(zh) a,:lang(ja) a,:lang(ko) a,
:lang(zh) li,:lang(ja) li,:lang(ko) li,
:lang(zh) h1,:lang(zh) h2,:lang(zh) h3,
:lang(ja) h1,:lang(ja) h2,:lang(ja) h3,
:lang(ko) h1,:lang(ko) h2,:lang(ko) h3{line-height:1.85!important;letter-spacing:0!important}

