@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Space+Grotesk:wght@500;600;700&display=swap');
:root { --ink:#171817; --paper:#f7f5ef; --surface:#fffdf8; --lime:#d8f36b; --orange:#e85d2a; --muted:#686a62; --line:#d9d8cd; --dark:#171817; --max:68rem; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; }
body { margin:0; min-height:100vh; display:flex; flex-direction:column; background:var(--paper); color:var(--ink); font:16px/1.6 "DM Sans",system-ui,sans-serif; }
a { color:inherit; text-underline-offset:.2em; }
.site-header { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1.1rem max(1.25rem,calc((100vw - var(--max))/2)); background:var(--dark); color:#fff; }
.brand { display:flex; align-items:center; gap:.8rem; color:#fff; text-decoration:none; font:700 1.25rem/1 "Space Grotesk",sans-serif; letter-spacing:-.04em; }
.brand img { width:3rem; height:3rem; } .site-header nav { display:flex; gap:1.7rem; font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.site-header nav a { color:#fff; text-decoration:none; opacity:.72; } .site-header nav a:hover { color:var(--lime); opacity:1; }
main { width:min(var(--max),calc(100% - 2.5rem)); margin:auto; padding:clamp(4rem,10vw,8rem) 0; }
.hero { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(15rem,.7fr); align-items:end; gap:4rem; min-height:34rem; }
.kicker { margin:0 0 1.2rem; color:var(--orange); font-size:.75rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
h1,h2 { font-family:"Space Grotesk",sans-serif; letter-spacing:-.07em; } h1 { max-width:10ch; margin:.2rem 0 1.5rem; font-size:clamp(4rem,11vw,9rem); line-height:.86; } h1 em { color:var(--orange); font-style:normal; }
.intro { max-width:32rem; margin:0; color:var(--muted); font-size:1.15rem; }
.hero-mark { justify-self:end; width:min(100%,20rem); padding:2rem; border:1px solid var(--line); border-radius:50% 50% 0 50%; background:var(--lime); transform:rotate(7deg); }
.hero-mark img { display:block; width:100%; height:auto; transform:rotate(-7deg); }
.button { display:inline-flex; margin-top:2rem; padding:.85rem 1.2rem; border-radius:999px; background:var(--dark); color:#fff; text-decoration:none; font-weight:700; } .button:hover { background:var(--orange); }
.featured { margin-top:clamp(4rem,10vw,8rem); } .featured > .kicker { display:flex; align-items:center; gap:1rem; } .featured > .kicker::after { content:""; height:1px; flex:1; background:var(--line); }
.review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1rem 0 2rem; }
.review-card { display:flex; min-height:13rem; flex-direction:column; justify-content:space-between; gap:.5rem; padding:1.5rem; border:1px solid var(--line); border-radius:1rem; background:var(--surface); text-decoration:none; transition:transform .2s,box-shadow .2s; }
.review-card:hover { transform:translateY(-5px); box-shadow:8px 8px 0 var(--lime); } .review-card time,.review-card span { color:var(--muted); font-size:.85rem; }
.review-card h2 { margin:.5rem 0; font-size:clamp(1.5rem,3vw,2.3rem); line-height:1; } .sheet { max-width:52rem; padding-top:clamp(4rem,10vw,7rem); }
.sheet h1 { max-width:13ch; font-size:clamp(3.3rem,8vw,6.5rem); } .sheet > p:not(.kicker) { max-width:40rem; font-size:1.1rem; }
.review-grid--list { grid-template-columns:1fr; } .article .lead { color:var(--muted); font-size:1.4rem; }
.grades { margin-top:4rem; } .grade-list { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; } .grade { min-height:15rem; padding:1.25rem; border:1px solid var(--line); border-radius:1rem; background:var(--surface); } .grade--top { background:var(--lime); border-color:var(--ink); } .grade-number { color:var(--orange); font:700 .8rem "Space Grotesk",sans-serif; } .grade h2 { margin:2.5rem 0 .5rem; font-size:1.7rem; } .grade p { margin:0; color:var(--muted); font-size:.95rem; } .grade--top p { color:var(--ink); }
footer { margin-top:auto; padding:2rem max(1.25rem,calc((100vw - var(--max))/2)); border-top:1px solid var(--line); color:var(--muted); font-size:.85rem; }
@media (max-width:650px) { .site-header { align-items:flex-start; } .site-header nav { gap:.7rem; padding-top:.4rem; font-size:.65rem; } .hero { display:block; min-height:0; } .hero-mark { width:11rem; margin:4rem 0 0 auto; } .review-grid,.grade-list { grid-template-columns:1fr; } main { width:min(var(--max),calc(100% - 2rem)); } .grade { min-height:0; } .grade h2 { margin-top:1.5rem; } }
