:root { color-scheme: light; --purple:#241634; --purple-2:#332047; --paper:#f7f0e7; --white:#fffdf8; --orange:#ff7043; --gold:#ffcf66; --ink:#251c29; --muted:#6f626f; --line:#d6c9cc; --green:#2e735f; --red:#a4372b; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--ink); background:var(--paper); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; min-width:320px; } button,input,select,textarea { font:inherit; } a { color:inherit; }
.skip-link { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }.skip-link:focus { position:fixed; z-index:30; top:10px; left:10px; width:auto; height:auto; margin:0; padding:12px 16px; overflow:visible; clip:auto; background:var(--gold); color:var(--purple); }
.site-header { min-height:72px; padding:0 clamp(20px,5vw,72px); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; background:var(--purple); color:var(--white); border-bottom:1px solid #513662; }.site-header a { text-decoration:none; font-weight:800; }.site-header > a:last-child { justify-self:end; }.site-header p { margin:0; color:#cdbed5; font-size:.78rem; letter-spacing:.11em; text-transform:uppercase; }.brand span { display:inline-grid; place-items:center; width:34px; height:34px; margin-right:8px; border-radius:50%; background:var(--orange); color:var(--purple); }
.hero { position:relative; min-height:610px; overflow:hidden; padding:clamp(90px,11vw,160px) clamp(20px,8vw,120px) 90px; background:var(--purple); color:var(--white); }.hero .eyebrow { color:var(--gold); }.eyebrow { margin:0 0 18px; color:#8d3e28; font-size:.7rem; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }.hero h1 { position:relative; z-index:2; margin:0; font-family:Georgia,serif; font-size:clamp(5.5rem,15vw,13rem); font-weight:400; letter-spacing:-.08em; line-height:.75; }.lede { position:relative; z-index:2; max-width:660px; margin:52px 0 0; color:#d7cadb; font-size:clamp(1rem,2vw,1.25rem); line-height:1.65; }.sun { position:absolute; right:-60px; top:50px; width:min(48vw,600px); aspect-ratio:1; border-radius:50%; background:linear-gradient(180deg,var(--orange) 0 48%,transparent 48%); opacity:.96; }.sun::after { content:""; position:absolute; inset:52%; border-top:2px solid var(--gold); box-shadow:0 16px 0 rgba(255,207,102,.7),0 32px 0 rgba(255,207,102,.45),0 48px 0 rgba(255,207,102,.2); }.hero-meta { position:absolute; z-index:2; bottom:34px; left:clamp(20px,8vw,120px); right:clamp(20px,8vw,120px); display:flex; gap:30px; padding-top:18px; border-top:1px solid #513662; color:#bdaec5; font-size:.72rem; font-weight:750; text-transform:uppercase; letter-spacing:.12em; }
.builder,.report,.artifacts { padding:clamp(64px,8vw,110px) clamp(20px,6vw,88px); }.builder { background:var(--paper); }.report { background:var(--purple); color:var(--white); }.artifacts { background:#eee2d6; }
.section-heading { max-width:1280px; margin:0 auto 42px; display:flex; justify-content:space-between; align-items:end; gap:36px; }.section-heading h2 { margin:0; font-size:clamp(2.2rem,5vw,4.5rem); line-height:.92; letter-spacing:-.06em; }.section-heading > p { max-width:420px; margin:0; color:var(--muted); line-height:1.55; }.report .section-heading > p { color:#cdbed5; }
form { max-width:1280px; margin:0 auto; } fieldset { margin:0 0 18px; padding:0; border:1px solid var(--line); background:var(--white); } legend { width:100%; padding:18px 22px; border:1px solid var(--line); background:#ebdfd5; font-size:.78rem; font-weight:850; letter-spacing:.11em; text-transform:uppercase; }
.form-grid { padding:24px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; } label { display:grid; gap:8px; color:#4f4251; font-size:.8rem; font-weight:750; }.wide { grid-column:1/-1; } label small { color:#867985; font-weight:500; } input,select,textarea { width:100%; min-height:48px; border:1px solid #baadb4; border-radius:0; padding:11px 12px; background:#fff; color:var(--ink); } textarea { resize:vertical; } input:focus,select:focus,textarea:focus { outline:3px solid var(--orange); outline-offset:1px; border-color:var(--purple); }.final-grid { align-items:center; }.check { min-height:48px; display:flex; grid-template-columns:auto 1fr; align-items:center; gap:12px; }.check input { width:24px; min-height:24px; accent-color:var(--purple); }
.actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; } button { min-height:48px; padding:0 18px; border:1px solid currentColor; background:transparent; color:var(--purple); font-weight:800; cursor:pointer; } button:hover { background:var(--gold); } button:focus-visible,a:focus-visible { outline:3px solid var(--orange); outline-offset:4px; }.primary { background:var(--purple); color:var(--white); border-color:var(--purple); }.primary:hover { background:var(--orange); color:var(--purple); border-color:var(--orange); }.quiet { margin-left:auto; border-color:transparent; text-decoration:underline; }
.downloads { display:flex; flex-wrap:wrap; gap:8px; }.downloads button { color:var(--gold); }.downloads button:disabled { opacity:.38; cursor:not-allowed; }.summary { max-width:1280px; min-height:120px; margin:0 auto 24px; padding:24px; display:flex; align-items:center; gap:22px; border:1px solid #5b426b; background:var(--purple-2); }.summary > span { flex:0 0 72px; height:72px; display:grid; place-items:center; border:2px solid #6e537d; border-radius:50%; font-weight:900; }.summary strong { display:block; font-size:1.2rem; }.summary p { margin:7px 0 0; color:#cdbed5; }.summary.ready { border-color:#65b69c; }.summary.ready > span { border-color:#65b69c; color:#89ddc0; }.summary.not-ready { border-color:#dd735d; }.summary.not-ready > span { border-color:#dd735d; color:#ff927c; }
.findings { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.finding { padding:20px; border:1px solid #5b426b; background:#2d1c40; }.finding header { display:flex; justify-content:space-between; gap:15px; }.finding h3 { margin:0; font-size:.92rem; }.finding span { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; color:var(--gold); }.finding p { margin:12px 0 0; color:#d2c5d7; line-height:1.5; }.finding .fix { color:#aee0cf; }.finding.error { border-left:4px solid #ff765f; }.finding.warning { border-left:4px solid var(--gold); }.empty-findings { grid-column:1/-1; padding:22px; border:1px solid #65b69c; color:#aee0cf; }
.artifact-grid { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:18px; }.artifact-grid article { min-width:0; border:1px solid #cbbbc0; background:var(--white); }.artifact-grid h3 { margin:0; padding:18px 20px; border-bottom:1px solid #cbbbc0; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.9rem; }.artifact-grid pre { max-height:500px; margin:0; padding:22px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; color:#4c3d4b; font-size:.78rem; line-height:1.55; }
.principles { display:grid; grid-template-columns:repeat(3,1fr); background:var(--orange); color:var(--purple); }.principles article { min-height:280px; padding:52px clamp(24px,5vw,72px); border-right:1px solid rgba(36,22,52,.35); }.principles article:last-child { border:0; }.principles span { font-family:Georgia,serif; font-size:2.3rem; }.principles h3 { margin:44px 0 12px; font-size:1.5rem; }.principles p { margin:0; line-height:1.55; }
footer { min-height:96px; padding:24px clamp(20px,6vw,88px); display:flex; justify-content:space-between; align-items:center; gap:20px; background:var(--purple); color:#cdbed5; }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media (max-width:760px) { .site-header { grid-template-columns:1fr auto; }.site-header p { display:none; }.hero { min-height:560px; }.sun { width:360px; right:-170px; opacity:.55; }.hero-meta { gap:12px; justify-content:space-between; }.section-heading { align-items:start; flex-direction:column; }.form-grid,.findings,.artifact-grid,.principles { grid-template-columns:1fr; }.wide { grid-column:auto; }.quiet { margin-left:0; }.actions button { flex:1 1 210px; }.principles article { min-height:230px; border-right:0; border-bottom:1px solid rgba(36,22,52,.35); } footer { align-items:flex-start; flex-direction:column; } }
