body { font-family:"Inter",sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
.font-serif,.font-headline { font-family:"Newsreader",serif; }

.gg-project { --gg-green:#304326; --gg-ink:#382c21; --gg-muted:#6f5942; --gg-paper:#f6efdd; --gg-gold:#efbd47; background:#f9f9f6; color:var(--gg-ink); }
.gg-wrap { max-width:1280px; margin:auto; padding-left:32px; padding-right:32px; }
.gg-project h1,.gg-project h2,.gg-project h3,.gg-hook { font-family:"Newsreader",serif; }
.gg-project h2 { font-size:clamp(2.8rem,5vw,4.5rem); line-height:1.05; letter-spacing:-.035em; }
.gg-project h2 em { font-weight:400; }
.gg-project p { line-height:1.8; }
.gg-eyebrow { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.18em; color:#516b38; margin-bottom:24px; }
.gg-hero { background:var(--gg-green); color:#fff8e6; padding:44px 0 72px; }
.gg-back { display:inline-block; color:#e9d9b4; font-size:.72rem; text-transform:uppercase; font-weight:700; letter-spacing:.16em; margin-bottom:50px; }
.gg-hero-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:48px; align-items:center; }
.gg-hero .gg-eyebrow { color:#e9d9b4; display:flex; gap:14px; flex-wrap:wrap; align-items:center; letter-spacing:.1em; }
.gg-status { border:1px solid #cab470; border-radius:100px; padding:5px 12px; color:#f9d986; }
.gg-hero h1 { font-size:clamp(4.5rem,8vw,7rem); line-height:.86; letter-spacing:-.045em; font-weight:400; }
.gg-hero h1 span { color:var(--gg-gold); }
.gg-hook { font-size:clamp(1.8rem,3vw,2.6rem); line-height:1.13!important; margin-top:32px; }
.gg-intro { color:#e2e5d3; max-width:390px; margin-top:20px; font-size:1rem; }
.gg-actions { display:flex; gap:24px; flex-wrap:wrap; align-items:center; margin-top:30px; }
.gg-button { display:inline-flex; gap:18px; align-items:center; background:var(--gg-gold); color:#302916; padding:14px 20px; border-radius:5px; font-size:.8rem; font-weight:700; min-height:48px; transition:background .2s,transform .2s; }
.gg-button:hover { background:#ffd474; transform:translateY(-2px); }
.gg-text-link { font-size:.85rem; text-decoration:underline; text-underline-offset:6px; }
.gg-hero-art { margin:0; }
.gg-hero-art img { width:100%; aspect-ratio:1.15; object-fit:cover; object-position:51% center; border-radius:120px 120px 8px 8px; border:1px solid #d7c59666; box-shadow:0 24px 60px #17241166; }
.gg-hero-art figcaption { color:#ced7bc; font-size:.72rem; margin-top:18px; text-align:center; }
.gg-overview { display:grid; grid-template-columns:1.15fr .85fr; gap:100px; padding-top:100px; padding-bottom:100px; }
.gg-story p:not(.gg-eyebrow) { margin-top:24px; font-size:1.07rem; color:var(--gg-muted); }
.gg-story a { color:#516b38; text-decoration:underline; text-underline-offset:4px; }
.gg-snapshot { align-self:start; background:var(--gg-paper); border:1px solid #ddcfaf; padding:32px; border-radius:8px; }
.gg-snapshot dl { display:grid; gap:24px; }
.gg-snapshot dt { text-transform:uppercase; letter-spacing:.13em; font-size:.65rem; font-weight:700; color:#516b38; }
.gg-snapshot dd { margin-top:8px; line-height:1.7; font-size:.94rem; }
.gg-showcase { background:#eee9de; padding:90px 0; scroll-margin-top:100px; }
.gg-section-heading { display:flex; gap:64px; align-items:end; justify-content:space-between; margin-bottom:40px; }
.gg-section-heading > p { max-width:380px; color:var(--gg-muted); }
.gg-screen { margin:0; min-width:0; }
.gg-screen img { display:block; width:100%; height:auto; border:1px solid #ccbea4; border-radius:8px; box-shadow:0 12px 30px #382c2112; }
.gg-screen a { display:block; border-radius:8px; }
.gg-screen figcaption { color:var(--gg-muted); font-size:.85rem; line-height:1.65; padding:16px 0 0; }
.gg-screen figcaption strong { color:var(--gg-ink); }
.gg-screen-main { margin-bottom:40px; }
.gg-screen-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.gg-screen-note { color:var(--gg-muted); font-size:.72rem; margin-top:28px; }
.gg-principles { padding-top:100px; padding-bottom:100px; }
.gg-principle-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:36px; margin-top:48px; }
.gg-principle-grid article { border-top:1px solid #cbbb9b; padding-top:24px; }
.gg-number { color:#718353; font-size:.75rem; font-weight:700; }
.gg-principle-grid h3 { font-size:2rem; margin:18px 0 14px; line-height:1.1; }
.gg-principle-grid p { color:var(--gg-muted); font-size:.94rem; }
.gg-closing { display:grid; grid-template-columns:1fr .5fr; gap:60px; align-items:center; background:var(--gg-paper); border:1px solid #ddcfaf; border-radius:8px; padding-top:48px; padding-bottom:48px; margin-bottom:90px; }
.gg-closing p:not(.gg-eyebrow) { color:var(--gg-muted); max-width:640px; margin:24px 0; }
.gg-closing img { max-width:240px; width:100%; height:auto; justify-self:center; }
.gg-project a:focus-visible { outline:3px solid #ad7520; outline-offset:5px; }
html.dark .gg-project { --gg-ink:#f6efdd; --gg-muted:#d0c6b3; --gg-paper:#252d20; background:#141a12; }
html.dark .gg-project .gg-eyebrow,html.dark .gg-story a,html.dark .gg-snapshot dt { color:#b9cb94; }
html.dark .gg-showcase { background:#1e261a; }
html.dark .gg-snapshot,html.dark .gg-closing { border-color:#566347; }
html.dark .gg-hero .gg-eyebrow { color:#e9d9b4; }
@media(max-width:900px) { .gg-hero-grid { grid-template-columns:1fr 1fr; gap:30px; } .gg-overview { gap:40px; } .gg-section-heading { gap:32px; } .gg-closing { margin-left:24px; margin-right:24px; } }
@media(max-width:640px) { .gg-wrap { padding-left:24px; padding-right:24px; } .gg-hero { padding-top:28px; padding-bottom:48px; } .gg-back { margin-bottom:36px; } .gg-hero-grid,.gg-overview,.gg-screen-grid,.gg-principle-grid { grid-template-columns:1fr; } .gg-hero-art { margin-top:16px; } .gg-hero-art img { aspect-ratio:1.25; border-radius:80px 80px 6px 6px; } .gg-overview,.gg-principles { padding-top:64px; padding-bottom:64px; } .gg-section-heading { display:block; } .gg-section-heading > p { margin-top:24px; } .gg-showcase { padding:64px 0; } .gg-closing { grid-template-columns:1fr; gap:24px; margin-bottom:64px; } .gg-closing img { max-width:160px; } }
@media(prefers-reduced-motion:reduce) { .gg-button { transition:none; } }
