@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=League+Spartan:wght@500;600;700;800&display=swap');
:root{
  --navy:#112235;--navy2:#1c3147;--ink:#1f2a31;--muted:#68737b;--line:#d8d4ca;
  --cream:#eee9de;--paper:#f8f6f0;--white:#fff;--accent:#667b50;--green:#667b50;
  --shadow:0 12px 30px rgba(24,31,38,.08);--radius:18px;--max:1180px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.55}
a{color:inherit}.app-shell{display:grid;grid-template-columns:285px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#0d1d2d 0%,#16293d 100%);color:white;padding:28px 24px;display:flex;flex-direction:column;overflow:auto}.portal-link{display:flex;align-items:center;gap:12px;color:white;text-decoration:none;font-size:14px;font-weight:650}.brand-mark{display:grid;place-items:center;width:54px;height:54px;border:1px solid currentColor;border-radius:50%;font-weight:800;letter-spacing:-1px}.small-mark{width:32px;height:32px;font-size:11px}.client-lockup{padding:32px 0 24px;border-bottom:1px solid rgba(255,255,255,.13)}.client-lockup h2{font-size:21px;line-height:1.25;margin:6px 0 0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:800;margin:0 0 8px;color:var(--accent)}.sidebar nav{padding:22px 0;display:grid;gap:2px}.sidebar nav a{color:#cbd1d5;text-decoration:none;padding:9px 10px;border-radius:9px;font-size:14px}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.08);color:#fff}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.13);padding-top:20px}.sidebar-footer p{margin:0 0 4px}.small{font-size:12px}.muted{color:var(--muted)}.sidebar .muted{color:#879098}
.main{min-width:0}.section{max-width:var(--max);margin:0 auto;padding:72px 52px;border-bottom:1px solid #e6e2d9}.hero-section{padding-top:62px}.section h1{font-size:clamp(36px,5vw,64px);line-height:1.04;letter-spacing:-.045em;margin:0 0 24px;max-width:900px}.section h2{font-size:clamp(29px,3vw,42px);line-height:1.12;letter-spacing:-.03em;margin:0 0 28px}.section h3{font-size:20px;line-height:1.25;margin:0 0 10px}.lead{font-size:18px;color:#555f66;margin:0}.lead.max{max-width:850px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.status{display:inline-flex;align-items:center;white-space:nowrap;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:7px 10px;border-radius:999px}.status-active{color:#2f5740;background:#e4efe6}.status-planned{color:#685528;background:#f5ead0}.status-progress{color:#274e6e;background:#e0edf5}.status-review{color:#6b4c74;background:#eee4f1}.status-final{color:#fff;background:#385c43}.status-blocked{color:#703d3d;background:#f4dfdf}
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:42px 0}.metric{background:white;border:1px solid var(--line);border-radius:14px;padding:18px;min-height:100px}.metric span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700;display:block;margin-bottom:14px}.metric strong{font-size:18px}.callout{border-radius:var(--radius);padding:30px;background:var(--cream);border:1px solid #e1ddd2;display:grid;grid-template-columns:1.1fr .9fr;gap:36px;margin:26px 0 36px}.callout p{margin:0}.start-list{margin:0;padding-left:22px;display:grid;gap:8px}.start-list a{text-decoration:none;border-bottom:1px solid #bdb5a4}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px}.person{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #eeeae2}.person:last-child{border-bottom:0}.person span{font-size:13px;color:var(--muted);text-align:right}.clean-list{margin:0;padding:0;list-style:none}.clean-list li{padding:9px 0 9px 20px;position:relative;border-bottom:1px solid #eeeae2}.clean-list li:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);position:absolute;left:0;top:17px}.clean-list li:last-child{border-bottom:0}.muted-list li{color:#5f686f}
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.story{position:relative;min-height:225px;padding-top:54px}.story .number{position:absolute;top:20px;right:20px;font-size:12px;font-weight:800;color:#aaa397}.story p{color:#626b71;margin-bottom:0}.question-panel{margin-top:18px;background:linear-gradient(135deg,#13283c,#1c3549);color:white;border-radius:var(--radius);padding:28px}.question-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.question-grid p{margin:0;padding:14px 16px;border:1px solid rgba(255,255,255,.14);border-radius:12px;color:#e9ecee}.deliverable-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.deliverable-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px}.deliverable-card .num{font-size:12px;font-weight:800;color:var(--accent);letter-spacing:.1em}.deliverable-card h3{margin-top:34px}.deliverable-card p{color:#626b71;margin-bottom:0}.note{margin-top:18px;padding:18px 20px;border-left:4px solid var(--accent);background:#f5f0e6}
.timeline{display:grid;gap:10px}.week{display:grid;grid-template-columns:90px 1.2fr 1fr auto;align-items:center;gap:18px;background:white;border:1px solid var(--line);border-radius:14px;padding:16px 18px}.week .weeknum{font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--accent)}.week strong{font-size:15px}.week p{margin:0;color:var(--muted);font-size:13px}.legend{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.waiting{background:#b5874f}.evergreen{background:#57705c}.request-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.request-group{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.request-group h3{padding:20px 20px 14px;margin:0}.request-row{padding:13px 20px;border-top:1px solid #eeeae2;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.request-row small{color:var(--muted);display:block}.request-owner{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#785e36}
.meeting-list{display:grid;gap:12px}.meeting{display:grid;grid-template-columns:140px 1fr auto;gap:20px;align-items:center;background:white;border:1px solid var(--line);border-radius:14px;padding:18px}.meeting-date{font-size:12px;color:var(--muted)}.meeting p{margin:4px 0 0;color:var(--muted);font-size:13px}.research-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.interview-meter{text-align:right}.interview-meter span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.interview-meter strong{font-size:22px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:white}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:15px;border-bottom:1px solid #eeeae2;vertical-align:top}th{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);background:#f6f3ec}td{font-size:13px}.deliverable-status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.deliverable-status{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:24px}.deliverable-status .top{display:flex;justify-content:space-between;gap:15px;align-items:start}.deliverable-status p{color:var(--muted);font-size:13px}.progress{height:6px;background:#eeeae2;border-radius:20px;overflow:hidden;margin-top:20px}.progress span{height:100%;display:block;background:var(--accent);border-radius:20px}.phase2{background:linear-gradient(135deg,#13283c,#1c3549);color:white;border-radius:24px;padding:44px}.phase2 h2{max-width:800px}.phase2 .lead{color:#cbd1d5}.pill-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.pill-row span{border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:8px 12px;font-size:12px}footer{max-width:var(--max);margin:auto;padding:28px 52px 50px;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:20px}
.portal-home{min-height:100vh;background:var(--navy);color:white}.portal-shell{max-width:1000px;margin:auto;padding:100px 30px}.portal-shell .eyebrow{margin-top:28px}.portal-shell h1{font-size:56px;letter-spacing:-.04em;margin:6px 0 14px}.portal-shell .lead{color:#c7cdd1;max-width:660px}.client-grid{margin-top:48px;display:grid;gap:14px}.client-card{background:#fff;color:var(--ink);border-radius:18px;padding:26px;text-decoration:none;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow)}.client-card h2{font-size:24px;margin:12px 0 4px}.client-card p{margin:0;color:var(--muted)}.client-card .arrow{font-size:32px}.portal-shell .muted{color:#89939b}
@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar nav{grid-template-columns:repeat(4,1fr)}.sidebar-footer{display:none}.metric-grid,.request-groups,.research-grid{grid-template-columns:repeat(2,1fr)}.week{grid-template-columns:70px 1fr auto}.week p{grid-column:2/3}.section{padding:55px 28px}.story-grid,.deliverable-grid,.two-col,.deliverable-status-grid{grid-template-columns:1fr}.callout{grid-template-columns:1fr}.meeting{grid-template-columns:110px 1fr}.meeting .status{grid-column:2}.question-grid{grid-template-columns:1fr}}
@media(max-width:650px){.sidebar nav{grid-template-columns:repeat(2,1fr)}.section{padding:42px 20px}.section-head{display:block}.section-head>.status{margin-top:14px}.metric-grid,.request-groups,.research-grid{grid-template-columns:1fr}.week{grid-template-columns:1fr}.week p{grid-column:auto}.meeting{grid-template-columns:1fr}.meeting .status{grid-column:auto;justify-self:start}.question-panel,.phase2{padding:24px}.portal-shell h1{font-size:42px}footer{padding:24px 20px;display:block}.interview-meter{text-align:left;margin-top:14px}}

/* Four Wheel Campers workspace branding */
.fwc-portal-link{align-items:center;gap:10px;padding-bottom:4px}
.fwc-tree{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.72);font-size:15px;color:#9dae82;transform:rotate(0deg)}
.fwc-wordmark{display:flex;flex-direction:column;line-height:1.05;letter-spacing:.055em}
.fwc-wordmark b{font-size:12px;color:#fff}
.fwc-wordmark small{font-size:8px;letter-spacing:.22em;color:#aeb8bf;margin-top:5px}
.hero-section{position:relative}
.hero-section:before{content:"";position:absolute;top:0;left:52px;right:52px;height:5px;background:linear-gradient(90deg,#667b50 0 24%,#c8a879 24% 36%,#112235 36% 100%)}
.hero-section h1{font-weight:760}
.metric{border-top:3px solid #667b50}
.callout.onboarding{background:linear-gradient(135deg,#eee9de,#f7f4ed);border-color:#d8d1c3}
.question-panel .eyebrow,.phase2 .eyebrow{color:#afbd91}
.deliverable-card .num,.week .weeknum{color:#667b50}
.note{border-left-color:#667b50;background:#eef0e7}
.progress span{background:#667b50}
.status-active{color:#32472e;background:#e4ecdf}
.waiting{background:#c8a879}.evergreen{background:#667b50}
@media(max-width:650px){.hero-section:before{left:20px;right:20px}}

/* Typography + actual FWC logo */
body{font-family:"Inter",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
h1,h2,h3,.sidebar nav a,.status,.eyebrow,.metric span,.week .weeknum,.request-owner,.portal-link,.client-card h2,.question-grid p{font-family:"League Spartan","Arial Narrow",Arial,sans-serif}
.section h1{font-weight:700;letter-spacing:-.025em}
.section h2{font-weight:700;letter-spacing:-.018em}
.section h3{font-weight:650;letter-spacing:-.01em}
.sidebar nav a{font-weight:600;letter-spacing:.015em}
.eyebrow,.status,.metric span,.week .weeknum,.request-owner{font-weight:700;letter-spacing:.105em}
.fwc-portal-link{display:block;padding:0 0 8px}
.fwc-logo{display:block;width:100%;max-width:235px;height:auto;object-fit:contain}
.fwc-tree,.fwc-wordmark{display:none!important}
.client-lockup{padding-top:24px}
.client-lockup h2{font-family:"League Spartan","Arial Narrow",Arial,sans-serif;font-weight:650;letter-spacing:-.01em}

/* Nov 9 project-status refinement */
.section h1{font-weight:600}
.section h2{font-weight:600}
.section h3{font-weight:500}
.client-lockup h2{font-weight:500}
.deliverable-card h3,.deliverable-status h3,.story h3,.request-group h3{font-weight:500}
.metric strong,.week strong,.meeting strong,.person strong{font-weight:600}
.status-complete{color:#31583b;background:#dfeadf}
.status-waiting{color:#6c572d;background:#f4e7c9}
.request-row .request-status{font-size:11px;margin-top:3px}
.request-row .received{color:#3f6848}
.request-row .pending{color:#806a38}
