:root { --g-paper:#FBF3EF; --g-ink:#2B2320; --g-muted:#6B675C; --g-rule:#EAE2D8; --g-coral:#E8503A; }
* { box-sizing:border-box; }
body { margin:0; background:var(--g-paper); color:var(--g-ink); font-family:'Instrument Sans',sans-serif; font-size:16px; line-height:1.5; }
a { color:inherit; -webkit-tap-highlight-color:#E8503A24; }
a:focus-visible { outline:2px solid var(--g-ink); outline-offset:5px; }
.g-wrap { width:min(1320px,calc(100% - 96px)); margin-inline:auto; }
.g-header { display:flex; align-items:center; justify-content:space-between; padding-block:28px; border-bottom:1px solid var(--g-rule); }
.g-logo { display:flex; align-items:center; }
.g-logo img { display:block; width:128px; height:44px; object-fit:contain; }
.g-label { font-size:13px; letter-spacing:.015em; color:var(--g-muted); }
.g-intro { padding:58px 0 44px; }
.g-eyebrow { margin:0; font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:500; }
.g-intro>.g-eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:22px; }
.g-intro>.g-eyebrow::before { content:''; width:15px; height:8px; border-radius:16px 16px 0 0; background:var(--g-coral); }
.g-intro-grid { display:grid; grid-template-columns:1.65fr 1fr; align-items:end; gap:70px; }
h1 { font-family:'Sora',sans-serif; font-size:clamp(32px,3.5vw,48px); font-weight:500; line-height:1.18; letter-spacing:-.035em; margin:0; text-wrap:balance; }
.g-intro-grid>p { max-width:390px; margin:0 0 4px; color:var(--g-muted); font-size:17px; line-height:1.6; text-wrap:pretty; }
.g-directions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.g-card { background:#fff; border:1px solid var(--g-rule); border-radius:12px; overflow:hidden; display:flex; flex-direction:column; }
.g-preview { display:block; position:relative; background:#EEEAE5; overflow:hidden; border-bottom:1px solid var(--g-rule); }
.g-preview img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; transition:transform 220ms ease; }
.g-preview-action { position:absolute; bottom:14px; right:14px; display:flex; align-items:center; gap:26px; padding:9px 13px; background:var(--g-ink); color:white; font-size:12px; font-weight:500; letter-spacing:.015em; opacity:0; transform:translateY(5px); transition:opacity 180ms ease,transform 180ms ease; }
.g-preview:hover img { transform:scale(1.015); }
.g-preview:hover .g-preview-action,.g-preview:focus-visible .g-preview-action { opacity:1; transform:translateY(0); }
.g-card-content { padding:26px; display:flex; flex-direction:column; flex:1; }
.g-card-heading { display:flex; align-items:center; gap:13px; }
.g-index { font:12px 'IBM Plex Mono',monospace; color:var(--g-muted); letter-spacing:.02em; }
h2 { font-family:'Sora',sans-serif; font-size:28px; font-weight:500; line-height:1.2; letter-spacing:-.025em; margin:0; }
h2 a { text-decoration:none; }
h2 a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.g-role { font-size:14px; font-weight:600; margin:14px 0 10px; }
.g-description { margin:0; color:var(--g-muted); font-size:16px; line-height:1.55; min-height:76px; text-wrap:pretty; }
.g-choice { border-top:1px solid var(--g-rule); padding-top:18px; margin:20px 0 24px; font-size:14px; color:var(--g-muted); line-height:1.5; text-wrap:pretty; }
.g-choice strong { display:block; font-weight:500; color:var(--g-ink); margin-bottom:4px; }
.g-page-links { display:grid; grid-template-columns:1fr 1fr; gap:4px 20px; margin-top:10px; }
.g-page-links a { display:flex; align-items:center; justify-content:space-between; gap:9px; min-height:36px; color:var(--g-ink); font-size:13px; text-decoration:none; }
.g-page-links a:hover { text-decoration:underline; text-underline-offset:4px; }
.g-link { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:12px 0 0; margin-top:auto; border-top:1px solid var(--g-rule); text-decoration:none; font-size:14px; font-weight:500; letter-spacing:.01em; }
.g-link:hover { text-decoration:underline; text-underline-offset:4px; }
.g-link span { font-size:21px; line-height:1; }
.g-reading { display:grid; grid-template-columns:1fr 3fr; gap:34px; padding:32px 0; margin-top:24px; border-bottom:1px solid var(--g-rule); }
.g-reading .g-eyebrow { padding-top:4px; }
.g-reading>p:last-child { max-width:780px; margin:0; color:var(--g-muted); font-size:15px; line-height:1.6; text-wrap:pretty; }
.g-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 0 30px; font-size:12px; letter-spacing:.015em; color:var(--g-muted); }
@media(max-width:1050px) { .g-wrap { width:calc(100% - 48px); } .g-intro-grid { gap:32px; grid-template-columns:1.5fr 1fr; } .g-directions { gap:16px; } .g-card-content { padding:20px; } .g-card-heading { gap:9px; } h2 { font-size:25px; } .g-description { font-size:15px; min-height:95px; } }
@media(max-width:760px) { .g-intro { padding:38px 0 32px; } .g-intro-grid { display:block; } .g-intro-grid>p { max-width:580px; margin-top:22px; font-size:16px; } .g-directions { grid-template-columns:1fr; gap:28px; } .g-card-content { padding:26px; } .g-description { min-height:0; } .g-preview-action { opacity:1; transform:none; } .g-choice { margin:20px 0; } .g-reading { grid-template-columns:1fr; gap:15px; } .g-footer { align-items:flex-start; flex-direction:column; gap:6px; } }
@media(max-width:400px) { .g-wrap { width:calc(100% - 32px); } .g-header { padding-block:20px; } .g-logo img { width:110px; height:38px; } .g-label { font-size:12px; } h1 { font-size:30px; } .g-card-content { padding:22px; } .g-intro>.g-eyebrow { font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .g-preview img,.g-preview-action { transition:none; } .g-preview:hover img { transform:none; } }
