@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&family=Source+Sans+3:wght@400;500;600;700&display=swap');

:root { --ink:#142927; --muted:#66817d; --paper:#f5f0e5; --cream:#fffdf8; --line:#d7d2c5; --sage:#b9cdb6; --moss:#315d55; --coral:#c96151; --sun:#d9a64b; --gold:#b98936; --wine:#6d2637; --shadow:0 18px 45px rgba(26,54,48,.12); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:linear-gradient(145deg,#fff0cd 0%,#ffd095 42%,#e99a7f 100%); color:var(--ink); font-family:'Source Sans 3',sans-serif; font-size:18px; line-height:1.55; }
a { color:inherit; text-decoration:none; } img { display:block; max-width:100%; } button,input,textarea { font:inherit; }
.shell { width:min(1160px,calc(100% - 48px)); margin:auto; }
.site-header { position:sticky; top:0; z-index:10; background:rgba(245,242,235,.93); border-bottom:1px solid transparent; backdrop-filter:blur(12px); }
.site-header .shell { height:76px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { font-family:'DM Mono',monospace; font-size:12px; letter-spacing:.12em; text-transform:uppercase; font-weight:500; }
.nav { display:flex; gap:23px; font-size:15px; }.nav a { padding:7px 0; border-bottom:1px solid transparent; }.nav a:hover,.nav a.active { border-color:var(--ink); }
.menu-toggle { display:none; border:0; background:transparent; font-size:25px; }
.eyebrow { font-family:'DM Mono',monospace; font-size:12px; color:var(--moss); text-transform:uppercase; letter-spacing:.12em; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:'Playfair Display',serif; line-height:1.04; font-weight:600; } h1 { font-size:clamp(56px,8vw,110px); letter-spacing:-.05em; } h2 { font-size:clamp(36px,4vw,58px); letter-spacing:-.04em; } h3 { font-size:30px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:11px 22px; border:1px solid var(--ink); background:var(--ink); color:white; border-radius:999px; font-weight:600; transition:.2s transform,.2s background; cursor:pointer; }.button:hover { transform:translateY(-2px); background:var(--moss); }.button.secondary { background:transparent; color:var(--ink); }.button.secondary:hover { background:var(--cream); }
.hero { min-height:760px; padding:100px 0 75px; overflow:hidden; position:relative; background:radial-gradient(circle at 88% 15%,#ffe585 0 8%,transparent 8.2%),radial-gradient(circle at 87% 14%,rgba(255,229,133,.28) 0 16%,transparent 16.2%),radial-gradient(circle at 12% 83%,rgba(255,116,95,.42) 0 17%,transparent 17.2%),linear-gradient(122deg,#fff0c9 0%,#ffb46a 37%,#e75f71 68%,#3e4f9b 100%); }.hero:before,.hero:after { content:""; position:absolute; pointer-events:none; opacity:.72; }.hero:before { width:650px; height:650px; right:-190px; top:24px; border:3px solid #ffdf79; transform:rotate(45deg); box-shadow:0 0 0 15px rgba(255,247,217,.32),0 0 0 30px rgba(104,58,135,.16); }.hero:after { width:300px; height:300px; left:-125px; bottom:-135px; border:3px solid #7a2451; transform:rotate(45deg); }.hero-grid { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:46px; position:relative; }.hero-grid:before { content:""; position:absolute; inset:-38px -24px; pointer-events:none; border-top:2px solid #fff0c9; border-bottom:2px solid #fff0c9; background:linear-gradient(90deg,#7a2451,#fff0c9,#7a2451) 0 12px/100% 2px no-repeat,linear-gradient(90deg,#7a2451,#fff0c9,#7a2451) 0 calc(100% - 12px)/100% 2px no-repeat; opacity:.84; }.hero-grid:after { content:"◆   ✦   ◆"; position:absolute; left:50%; bottom:-49px; transform:translateX(-50%); background:#e97968; color:#fff0c9; padding:0 16px; font-size:14px; letter-spacing:11px; z-index:2; }.hero-copy { position:relative; z-index:1; }.hero h1 { max-width:750px; margin:14px 0 26px; text-shadow:0 2px 0 rgba(255,242,207,.35); }.hero h1 em { color:#7a2451; font-weight:500; }.lede { font-size:23px; line-height:1.4; max-width:510px; }.button-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }.button { box-shadow:0 5px 0 rgba(72,34,52,.24); }.hero-art { position:relative; min-height:595px; }.hero-art:before { content:""; position:absolute; width:460px; height:500px; left:50%; top:20px; transform:translateX(-50%); border:3px solid #fff0c9; clip-path:polygon(50% 0,100% 14%,100% 86%,50% 100%,0 86%,0 14%); box-shadow:0 0 0 13px rgba(122,36,81,.24),0 0 0 16px #ffdc72; }.hero-art:after { content:"✦  ◇  ✦"; position:absolute; bottom:2px; left:50%; transform:translateX(-50%); color:#fff0c9; letter-spacing:12px; font-size:18px; white-space:nowrap; }.cover { position:relative; z-index:1; width:min(350px,80%); margin:0 auto; filter:drop-shadow(17px 23px 17px rgba(54,31,24,.35)); transform:rotate(4deg); }.sun { position:absolute; width:360px; height:360px; border-radius:50%; background:linear-gradient(135deg,#ffe580,#ff9b61); right:-10px; top:80px; z-index:-1; box-shadow:0 0 0 20px rgba(255,240,201,.3),0 0 0 23px #f8d452; }.scribble { position:absolute; width:260px; height:120px; left:-10px; bottom:20px; border:3px solid var(--coral); border-color:var(--coral) transparent transparent var(--coral); border-radius:52% 0 0 0; transform:rotate(-13deg); }
.marquee { background:var(--wine); color:#fff7e8; overflow:hidden; white-space:nowrap; font-family:'Playfair Display',serif; font-size:26px; font-style:italic; padding:18px 0; }.marquee span { display:inline-block; padding-left:100%; animation:scroll 24s linear infinite; }@keyframes scroll { to { transform:translateX(-100%); } }
.section { padding:112px 0; }.section-intro { max-width:690px; }.section-intro p { font-size:21px; color:var(--muted); }.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }.quote { padding:42px; background:var(--sage); font-family:'Playfair Display',serif; font-size:31px; line-height:1.25; }.quote cite { display:block; margin-top:22px; font:12px 'DM Mono',monospace; letter-spacing:.1em; text-transform:uppercase; font-style:normal; }
.byline { font-family:'Playfair Display',serif; font-style:italic; color:var(--wine); font-size:22px; margin-top:26px; }
.gallery { display:grid; grid-template-columns:1fr 1fr 1fr; gap:22px; margin-top:50px; }.gallery figure { margin:0; background:var(--cream); padding:14px; }.gallery img { width:100%; height:370px; object-fit:cover; }.gallery figure:nth-child(3) img { object-fit:contain; background:linear-gradient(145deg,#342c25,#d8ad54); }.gallery figcaption { padding:14px 2px 2px; font-family:'Playfair Display',serif; font-style:italic; }
.community { background:linear-gradient(135deg,#9bd6e5 0%,#d4e8ae 44%,#ffd471 100%); }.post-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:44px; }.post-card { background:var(--paper); border:1px solid var(--line); padding:28px; display:flex; flex-direction:column; min-height:295px; }.post-card .meta,.post-meta { font:12px 'DM Mono',monospace; color:var(--muted); text-transform:uppercase; letter-spacing:.07em; }.post-card h3 { margin:18px 0 12px; }.read-more { margin-top:auto; font-weight:700; color:var(--moss); }
.newsletter { background:var(--coral); color:#fffdf8; }.newsletter-grid { display:grid; grid-template-columns:1fr 1.3fr 150px; gap:42px; align-items:center; }.newsletter h2 { margin-bottom:0; }.subscribe-form { display:grid; grid-template-columns:1fr 1fr auto; gap:10px; }.subscribe-form input,.comment-form input,.comment-form textarea { border:1px solid rgba(20,41,39,.45); background:#fffdf8; padding:12px 14px; border-radius:3px; color:var(--ink); }.subscribe-form .button { background:var(--ink); }.form-note { min-height:24px; font-size:15px; margin:12px 0 0; }.contact-email { color:#fffdf8; text-decoration:underline; text-underline-offset:3px; }.instagram-qr { text-align:center; font:12px/1.3 'DM Mono',monospace; letter-spacing:.06em; text-transform:uppercase; }.instagram-qr img { width:118px; margin:0 auto 8px; border:5px solid #fffdf8; border-radius:10px; }
.footer { padding:34px 0; font-size:15px; }.footer .shell { display:flex; justify-content:space-between; gap:20px; }.footer a { text-decoration:underline; text-underline-offset:3px; }
.page-hero { padding:100px 0 55px; border-bottom:1px solid var(--line); }.page-hero h1 { margin:12px 0 0; }.content { padding:70px 0 110px; }.blog-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:66px; }.blog-post { padding:0 0 52px; margin-bottom:48px; border-bottom:1px solid var(--line); }.blog-post h2 { margin:12px 0 18px; }.blog-post .post-body { max-width:690px; }.post-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:25px; }.action { border:1px solid var(--line); background:transparent; padding:7px 12px; border-radius:999px; color:var(--ink); cursor:pointer; font-size:15px; }.action:hover { background:var(--sage); }.comments { margin-top:28px; max-width:670px; }.comments h3 { font-size:24px; }.comment { padding:12px 0; border-top:1px solid var(--line); }.comment strong { font-size:16px; }.comment p { margin:3px 0 0; }.comment-form { display:grid; gap:10px; margin-top:18px; }.comment-form textarea { min-height:90px; resize:vertical; }.comment-form .button { justify-self:start; min-height:40px; padding:7px 17px; font-size:15px; }
.sidebar { background:var(--cream); padding:27px; height:max-content; }.sidebar h3 { margin-bottom:12px; }.sidebar p { color:var(--muted); font-size:16px; }.stack { display:grid; gap:12px; }.about-page { display:grid; grid-template-columns:.8fr 1.2fr; gap:75px; }.author-image { width:100%; max-height:610px; object-fit:cover; object-position:center; }.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; }.contact-grid .quote { align-self:start; }
.admin-wrap { max-width:700px; margin:70px auto; background:var(--cream); padding:40px; border:1px solid var(--line); }.admin-wrap label { display:grid; gap:6px; margin-bottom:14px; font-weight:600; }.admin-wrap input,.admin-wrap textarea { border:1px solid var(--line); padding:10px; background:white; }.subscriber-list { padding-left:0; list-style:none; }.subscriber-list li { padding:10px 0; border-bottom:1px solid var(--line); }
@media (max-width:800px) { body { font-size:17px; }.shell { width:min(100% - 34px,1160px); }.site-header .shell { height:65px; }.menu-toggle { display:block; }.nav { display:none; position:absolute; top:65px; left:0; right:0; padding:15px 18px 20px; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; gap:4px; }.nav.open { display:flex; }.hero { padding:52px 0 40px; min-height:auto; }.hero-grid,.about-grid,.newsletter-grid,.blog-layout,.about-page,.contact-grid { grid-template-columns:1fr; gap:35px; }.hero-art { min-height:480px; }.cover { width:275px; }.sun { width:290px; height:290px; right:0; top:40px; }.gallery,.post-grid { grid-template-columns:1fr; }.gallery img { height:auto; max-height:500px; }.section { padding:72px 0; }.subscribe-form { grid-template-columns:1fr; }.footer .shell { flex-direction:column; }.page-hero { padding:66px 0 38px; }.content { padding:50px 0 80px; } }
