:root { --paper:#f7f6f2; --white:#fffefa; --ink:#111110; --muted:#6c6a63; --line:#d9d7cf; --gold:#9e8345; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:var(--paper); color:var(--ink); font-family:Inter,Arial,sans-serif; }
a { color:inherit; }
.portal-shell { width:min(100% - 64px,1380px); margin:0 auto; }
.portal-brand { display:inline-block; color:var(--ink); font-family:"Bodoni Moda",Georgia,serif; font-size:1.45rem; text-decoration:none; letter-spacing:.02em; }.portal-brand em { font-style:italic; font-weight:400; }
.login-view { min-height:100vh; padding:34px 0; }.login-layout { min-height:calc(100vh - 110px); display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(50px,10vw,160px); align-items:center; }.portal-kicker { color:var(--gold); font-size:.67rem; font-weight:700; letter-spacing:.14em; }.login-intro h1,.dashboard-heading h1 { font-family:"Bodoni Moda",Georgia,serif; font-weight:500; font-size:clamp(3.5rem,7vw,7rem); line-height:.96; margin:24px 0 30px; }.login-intro h1 i { color:var(--gold); font-style:italic; }.login-intro p { max-width:470px; color:var(--muted); line-height:1.75; }.back-link { display:inline-block; margin-top:60px; color:var(--muted); font-size:.75rem; font-weight:700; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; }.back-link:hover { color:var(--ink); }
.login-form { max-width:420px; padding:32px; border:1px solid var(--line); background:var(--white); }.form-heading { display:grid; gap:10px; padding-bottom:28px; margin-bottom:30px; border-bottom:1px solid var(--line); }.form-heading span { color:var(--gold); font-size:.65rem; font-weight:700; letter-spacing:.12em; }.form-heading strong { font-family:"Bodoni Moda",Georgia,serif; font-size:1.8rem; font-weight:500; line-height:1.1; }.login-form label { display:block; margin:19px 0 8px; color:var(--muted); font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.login-form input { width:100%; padding:14px 0; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); font:inherit; outline:none; }.login-form input:focus { border-color:var(--gold); }.portal-button { width:100%; display:flex; align-items:center; justify-content:space-between; margin-top:31px; padding:17px 18px; border:0; background:var(--ink); color:var(--white); cursor:pointer; font-size:.73rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.portal-button:hover { background:var(--gold); color:var(--ink); }.status { min-height:20px; color:#a54436; font-size:.78rem; }.status.success { color:#657d43; }
.dashboard-view { min-height:100vh; padding:32px 0 90px; }.portal-header { display:flex; justify-content:space-between; align-items:center; padding-bottom:24px; border-bottom:1px solid var(--line); }.portal-actions { display:flex; align-items:center; gap:20px; color:var(--muted); font-size:.76rem; }.quiet-button { border:0; border-bottom:1px solid var(--gold); background:transparent; color:var(--ink); padding:7px 0; cursor:pointer; font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.dashboard-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; padding:80px 0 45px; }.dashboard-heading h1 { margin:18px 0 0; font-size:clamp(2.8rem,5.2vw,5.8rem); }.dashboard-heading p { color:var(--muted); font-size:.85rem; }.dashboard-summary { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.dashboard-summary div { min-height:125px; display:flex; flex-direction:column; justify-content:center; gap:14px; padding:20px 24px; border-right:1px solid var(--line); }.dashboard-summary div:first-child { padding-left:0; }.dashboard-summary div:last-child { border-right:0; }.dashboard-summary span { color:var(--gold); font-size:.64rem; font-weight:700; letter-spacing:.12em; }.dashboard-summary strong { font-family:"Bodoni Moda",Georgia,serif; font-size:2rem; font-weight:500; }.project-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; padding:90px 0 30px; }.project-heading h2 { font-family:"Bodoni Moda",Georgia,serif; font-size:3rem; font-weight:500; margin:0; }.project-heading p { max-width:350px; color:var(--muted); font-size:.83rem; }.client-projects { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }.client-project { background:var(--white); border:1px solid var(--line); padding:26px; display:flex; flex-direction:column; min-height:250px; }.client-project .project-meta { display:flex; justify-content:space-between; gap:20px; color:var(--gold); font-size:.64rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }.client-project h3 { font-family:"Bodoni Moda",Georgia,serif; font-size:1.8rem; line-height:1.1; font-weight:500; margin:35px 0 12px; }.client-project p { max-width:520px; color:var(--muted); font-size:.83rem; line-height:1.7; }.client-project .project-footer { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:auto; padding-top:30px; }.project-link { color:var(--ink); font-size:.67rem; font-weight:700; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }.project-link:hover { color:var(--gold); }.empty-state { border:1px dashed var(--line); padding:45px 28px; color:var(--muted); grid-column:1 / -1; }
@media (max-width:760px) { .portal-shell { width:min(100% - 32px,1380px); }.login-layout { display:block; padding-top:90px; }.login-intro h1 { font-size:clamp(3rem,16vw,5rem); }.login-form { margin-top:60px; padding:25px; }.back-link { margin-top:35px; }.portal-header { align-items:flex-start; gap:20px; }.portal-actions { display:block; text-align:right; }.portal-actions span { display:block; margin-bottom:12px; }.dashboard-heading { display:block; padding:65px 0 35px; }.dashboard-heading p { margin-top:25px; }.dashboard-summary { grid-template-columns:1fr; }.dashboard-summary div, .dashboard-summary div:first-child { min-height:90px; padding:17px 0; border-right:0; border-bottom:1px solid var(--line); }.dashboard-summary div:last-child { border-bottom:0; }.project-heading { display:block; padding-top:65px; }.project-heading p { margin-top:17px; }.client-projects { grid-template-columns:1fr; }.client-project { min-height:280px; } }
