:root{
  --bg:oklch(0.987 0.008 80);
  --ink:oklch(0.20 0.012 70);
  --muted:oklch(0.42 0.012 70);
  --faint:oklch(0.60 0.012 70);
  --accent:oklch(0.66 0.14 60);
  --line:rgba(0,0,0,.14);
  --maxw:720px;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Space Grotesk',system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:inherit;}
::selection{background:var(--accent);color:#fff;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:color-mix(in oklab,var(--bg) 86%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px;}
.brand{font-weight:700;font-size:18px;letter-spacing:-0.01em;text-decoration:none;}
.brand .dot{color:var(--accent);}
.nav-links{display:flex;gap:26px;}
.nav-links a{font-size:14px;letter-spacing:0.02em;color:var(--muted);text-decoration:none;transition:color .15s;}
.nav-links a:hover{color:var(--accent);}

/* sections */
main section{padding:96px 0;}
.hero{padding:104px 0 88px;}
.hero h1{margin:0;font-size:clamp(52px,11vw,92px);line-height:0.92;letter-spacing:-0.04em;font-weight:700;}
.hero h1 .dot{color:var(--accent);}
.hero p{margin:34px 0 0;font-size:clamp(19px,2.6vw,23px);font-weight:400;line-height:1.45;color:var(--muted);max-width:42ch;}

.eyebrow{font-size:13px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);margin:0 0 34px;}

.prose{display:flex;flex-direction:column;gap:24px;max-width:62ch;}
.prose p{margin:0;font-size:clamp(17px,2.1vw,20px);line-height:1.7;}
.prose-lead{font-size:clamp(19px,2.5vw,23px);line-height:1.55;letter-spacing:-0.01em;}
.prose-closer{margin-top:8px;padding-top:26px;border-top:1px solid var(--line);font-size:clamp(18px,2.2vw,21px);line-height:1.5;letter-spacing:-0.01em;}

/* writing list */
.entry{display:block;text-decoration:none;color:inherit;border-top:2px solid var(--ink);padding-top:28px;transition:opacity .15s;}
.entry:hover{opacity:.7;}
.entry-head{display:flex;justify-content:space-between;align-items:baseline;gap:22px;}
.entry h3{margin:0;font-size:clamp(26px,4vw,34px);font-weight:600;letter-spacing:-0.02em;line-height:1.14;}
.entry .chev{font-size:30px;color:var(--accent);line-height:1;}
.entry p{margin:18px 0 0;font-size:clamp(16px,1.9vw,18px);line-height:1.55;color:var(--muted);}
.entry .date{margin-top:18px;font-size:14px;letter-spacing:0.03em;color:var(--faint);}
.more{margin-top:40px;font-size:15px;color:var(--faint);}
.writing-list{display:flex;flex-direction:column;gap:52px;}
.more-link{display:inline-block;margin-top:44px;font-size:15px;color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line);}
.more-link:hover{color:var(--accent);}

/* contact */
.contact-lead{margin:0 0 34px;font-size:clamp(18px,2.2vw,20px);line-height:1.6;max-width:34ch;}
form{display:flex;flex-direction:column;gap:18px;max-width:540px;}
.form-row{display:flex;gap:18px;}
input,textarea{font:inherit;color:var(--ink);width:100%;border:1.5px solid var(--line);background:transparent;padding:16px 18px;font-size:16px;border-radius:5px;outline:none;transition:border-color .15s;}
input::placeholder,textarea::placeholder{color:rgba(0,0,0,.32);}
textarea{resize:vertical;min-height:130px;line-height:1.5;}
input:focus,textarea:focus{border-color:var(--accent);}
.form-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:6px;}
button{font:inherit;background:var(--ink);color:var(--bg);border:none;padding:17px 40px;font-size:15px;font-weight:600;letter-spacing:0.02em;cursor:pointer;border-radius:5px;transition:background .15s,color .15s;}
button:hover{background:var(--accent);color:#fff;}
.form-actions a{font-size:16px;color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line);}
.form-actions a:hover{color:var(--accent);}

/* article (blog post) */
.article{padding:80px 0 40px;}
.article .back{display:inline-block;font-size:14px;color:var(--muted);text-decoration:none;margin-bottom:40px;}
.article .back:hover{color:var(--accent);}
.article .meta{font-size:14px;letter-spacing:0.04em;color:var(--faint);margin-bottom:20px;}
.article h1{margin:0;font-size:clamp(34px,6vw,52px);line-height:1.04;letter-spacing:-0.03em;font-weight:700;}
.article .lead{margin:28px 0 0;font-size:clamp(19px,2.4vw,22px);line-height:1.6;color:var(--muted);}
.article-body{margin-top:48px;max-width:64ch;}
.article-body p{margin:0 0 24px;font-size:clamp(17px,2.1vw,19px);line-height:1.75;}
.article-body h2{margin:48px 0 18px;font-size:clamp(22px,3vw,28px);font-weight:600;letter-spacing:-0.01em;line-height:1.2;}
.article-body blockquote{margin:36px 0;padding:6px 0 6px 26px;border-left:3px solid var(--accent);font-size:clamp(20px,2.6vw,24px);line-height:1.45;letter-spacing:-0.01em;}
.article-body a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px;}

/* legal pages */
.legal{padding:80px 0 40px;}
.legal h1{margin:0 0 10px;font-size:clamp(32px,5vw,46px);line-height:1.05;letter-spacing:-0.03em;font-weight:700;}
.legal .updated{font-size:14px;letter-spacing:0.03em;color:var(--faint);margin-bottom:14px;}
.legal .note{font-size:14px;line-height:1.6;color:var(--muted);background:color-mix(in oklab,var(--accent) 9%,transparent);border:1px solid color-mix(in oklab,var(--accent) 30%,transparent);border-radius:6px;padding:16px 18px;margin-bottom:48px;}
.legal-body{max-width:64ch;}
.legal-body h2{margin:44px 0 14px;font-size:clamp(19px,2.6vw,24px);font-weight:600;letter-spacing:-0.01em;}
.legal-body p{margin:0 0 18px;font-size:16px;line-height:1.7;color:var(--ink);}
.legal-body ul{margin:0 0 18px;padding-left:22px;}
.legal-body li{font-size:16px;line-height:1.7;margin-bottom:8px;}
.legal-body a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px;}

/* footer */
footer{border-top:1px solid var(--line);padding:48px 0 64px;}
.foot-inner{max-width:var(--maxw);margin:0 auto;padding:0 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;}
.foot-links{display:flex;gap:22px;}
.foot-links a{font-size:14px;color:var(--muted);text-decoration:none;}
.foot-links a:hover{color:var(--accent);}
.foot-copy{font-size:13px;color:var(--faint);}

/* cookie notice */
.cookie-notice{position:fixed;bottom:18px;left:18px;z-index:30;max-width:min(380px,calc(100vw - 36px));display:flex;align-items:center;gap:14px;padding:13px 16px;background:color-mix(in oklab,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.08);}
.cookie-notice p{margin:0;font-size:13px;line-height:1.5;color:var(--muted);}
.cookie-notice a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:2px;}
.cookie-notice button{flex:none;font:inherit;font-size:13px;font-weight:600;letter-spacing:0.02em;cursor:pointer;background:var(--ink);color:var(--bg);border:none;padding:9px 16px;border-radius:5px;transition:background .15s,color .15s;}
.cookie-notice button:hover{background:var(--accent);color:#fff;}

@media(max-width:640px){
  .wrap,.nav-inner,.foot-inner{padding-left:20px;padding-right:20px;}
  main section{padding:64px 0;}
  .hero{padding:72px 0 56px;}
  .article,.legal{padding-top:56px;}
  .nav-links{gap:18px;}
  .form-row{flex-direction:column;}
  .entry-head{align-items:flex-start;}
  .foot-inner{flex-direction:column;align-items:flex-start;gap:14px;}
}
