*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#F7F8FC;--bg2:#EEF2FA;--text:#14141E;--text2:#62637A;--text3:#A8A8C0;
  --ac:#8B5E1A;--border:#DDE0EF;--card:#FFFFFF;--tag:#6B4818;--tag-bg:#F0EADc;--title:#142848;
}
html.dark{
  --bg:#0F0E0C;--bg2:#171510;--text:#F5F5F5;--text2:#E0E0E0;--text3:#A0A0A0;
  --ac:#C8921A;--border:#2A2418;--card:#171510;--tag:#C8921A;--tag-bg:#1E1408;--title:#C8921A;
}
body{background:var(--bg);color:var(--text);font-family:'Lora',Georgia,serif;transition:background .5s,color .5s;min-height:100vh}

/* NAV */
nav{display:flex;justify-content:space-between;align-items:center;padding:16px 48px;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:100;transition:background .5s,border-color .5s}
.logo{font-family:'Playfair Display',serif;font-size:17px;letter-spacing:0.05em;color:var(--text);font-weight:700;font-style:italic;text-decoration:none;transition:color .5s}
.logo span{color:var(--ac);font-style:normal}
.nav-r{display:flex;align-items:center;gap:28px}
.nav-r a{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:0.14em;color:var(--text2);text-decoration:none;text-transform:uppercase;font-weight:500;transition:color .3s}
.nav-r a:hover{color:var(--ac)}

/* TOGGLE */
.tog{width:36px;height:20px;border-radius:10px;background:var(--border);border:none;cursor:pointer;position:relative;padding:0;transition:background .4s;flex-shrink:0}
.tog-knob{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--text3);transition:transform .4s,background .4s;display:block}
html.dark .tog{background:var(--ac)}
html.dark .tog-knob{transform:translateX(16px);background:#F0E8D8}

/* HERO */
.hero{position:relative;overflow:hidden;height:420px;background:linear-gradient(160deg,#E8F2FF 0%,#F2F6FF 50%,var(--bg) 100%);transition:background .5s}
html.dark .hero{background:linear-gradient(160deg,#1A1008 0%,#140E06 50%,var(--bg) 100%)}
#map{position:absolute;top:0;left:0;width:100%;height:100%;display:block}
.hero-text{position:absolute;top:0;left:0;padding:64px 48px;z-index:2}
.eyebrow{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:0.38em;color:var(--ac);text-transform:uppercase;font-weight:600;margin-bottom:20px;display:flex;align-items:center;gap:10px;animation:up .8s .1s ease both}
.eyebrow::before{content:'';display:inline-block;width:18px;height:1px;background:var(--ac)}
.hero-text h1{font-family:'Playfair Display',serif;font-size:clamp(36px,5vw,60px);font-weight:700;line-height:1.08;color:var(--text);letter-spacing:0.01em;margin-bottom:16px;animation:up .8s .25s ease both;transition:color .5s}
.hero-text h1 em{color:var(--ac);font-style:italic}
.hero-text p{font-family:'Lora',serif;font-style:italic;font-size:15px;color:var(--text2);margin-bottom:24px;animation:up .8s .4s ease both;transition:color .5s}
.coord{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:0.25em;color:var(--text3);animation:up .8s .55s ease both;transition:color .5s}
@keyframes up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

/* KARTO DIVIDER */
.karto-sep{padding:12px 48px;border-bottom:1px solid var(--border);transition:border-color .5s}

/* POSTS */
.posts-wrap{padding:48px 48px 64px;max-width:1080px;margin:0 auto}
.sec-label{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:0.3em;color:var(--text3);text-transform:uppercase;font-weight:500;display:flex;align-items:center;gap:14px;margin-bottom:32px;transition:color .5s}
.sec-label::before,.sec-label::after{content:'';flex:1;height:1px;background:var(--border);transition:background .5s}

/* GRID */
.posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);transition:background .5s}
.pcard{background:var(--card);position:relative;overflow:hidden;transition:background .4s,transform .3s}
.pcard a{display:block;padding:28px 24px;text-decoration:none;height:100%}
.pcard:hover{background:var(--bg2);transform:translateY(-3px)}
.pcard.featured{grid-column:span 2}
.pline{position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--ac);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.pcard:hover .pline{transform:scaleX(1)}

.ptag{display:inline-flex;align-items:center;gap:5px;font-family:'Inter',sans-serif;font-size:9px;letter-spacing:0.15em;background:var(--tag-bg);color:var(--tag);padding:3px 10px;border-radius:2px;text-transform:uppercase;font-weight:600;margin-bottom:14px;transition:background .4s,color .4s}
.pdot{width:4px;height:4px;border-radius:50%;background:var(--ac);display:inline-block;transition:background .4s}
.ptitle{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;color:var(--title);line-height:1.3;margin-bottom:12px;transition:color .35s}
.pcard.featured .ptitle{font-size:22px;line-height:1.15}
.pcard:hover .ptitle{color:var(--ac)}
.pexcerpt{font-family:'Lora',serif;font-style:italic;font-size:14px;color:var(--text2);line-height:1.8;margin-bottom:16px;transition:color .4s}
.pmeta{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:0.08em;color:var(--text3);text-transform:uppercase;font-weight:500;transition:color .4s}
.pnum{position:absolute;bottom:20px;right:22px;font-family:'Playfair Display',serif;font-size:40px;color:var(--border);font-weight:700;line-height:1;pointer-events:none;transition:color .4s}
.pcard:hover .pnum{color:var(--tag-bg)}

/* FOOTER */
footer{padding:24px 48px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--bg);transition:background .5s,border-color .5s}
footer span{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:0.12em;color:var(--text3);text-transform:uppercase;transition:color .5s}

.page-wrap{max-width:760px;margin:0 auto;padding:64px 48px 80px}
.page-eyebrow{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:0.35em;color:var(--ac);text-transform:uppercase;font-weight:600;margin-bottom:20px;display:flex;align-items:center;gap:10px}
.page-eyebrow::before{content:'';display:inline-block;width:16px;height:1px;background:var(--ac)}
.page-title{font-family:'Playfair Display',serif;font-size:clamp(28px,4vw,48px);font-weight:700;color:var(--text);margin-bottom:48px;transition:color .5s}
.arch-year{margin-bottom:48px}
.arch-year-label{font-family:'Playfair Display',serif;font-size:32px;font-weight:700;color:var(--ac);margin-bottom:24px;padding-bottom:12px;border-bottom:1px solid var(--border);transition:color .4s,border-color .4s}
.arch-month{display:grid;grid-template-columns:140px 1fr;margin-bottom:4px;align-items:start}
.arch-month-label{font-family:'Inter',sans-serif;font-size:11px;letter-spacing:0.12em;color:var(--ac);text-transform:uppercase;font-weight:600;padding-top:14px;transition:color .4s}
.arch-posts{border-left:1px solid var(--border);padding-left:28px;transition:border-color .4s}
.arch-item{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--border);text-decoration:none;gap:16px;transition:all .25s}
.arch-item:last-child{border-bottom:none}
.arch-item:hover .arch-title{color:var(--ac)}
.arch-title{font-family:'Playfair Display',serif;font-size:15px;color:var(--text);font-weight:600;line-height:1.4;transition:color .25s}
.arch-meta{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:0.08em;color:var(--text3);text-transform:uppercase;white-space:nowrap;flex-shrink:0;transition:color .4s}
.post-wrap{max-width:680px;margin:0 auto;padding:64px 48px 80px}
.post-header{margin-bottom:48px;padding-bottom:32px;border-bottom:1px solid var(--border);transition:border-color .4s}
.post-title{font-family:'Playfair Display',serif;font-size:clamp(28px,4vw,44px);font-weight:700;color:var(--title);line-height:1.15;margin-top:16px;transition:color .5s}
.post-body{font-family:'Lora',serif;font-size:18px;line-height:1.9;color:var(--text);transition:color .5s}
.post-body p{margin-bottom:1.6em}
.post-body h2,.post-body h3{font-family:'Playfair Display',serif;color:var(--ac);margin:2em 0 0.8em}
.post-body a{color:var(--ac)}
.post-body blockquote{border-left:2px solid var(--ac);padding-left:20px;font-style:italic;color:var(--text2);margin:2em 0}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);margin-top:64px;border-top:1px solid var(--border)}
.post-nav-link{background:var(--card);padding:24px;text-decoration:none;transition:background .3s}
.post-nav-link:hover{background:var(--bg2)}
.post-nav-next{text-align:right}
.post-nav-label{display:block;font-family:'Inter',sans-serif;font-size:10px;letter-spacing:0.15em;color:var(--ac);text-transform:uppercase;font-weight:600;margin-bottom:8px}
.post-nav-title{font-family:'Playfair Display',serif;font-size:15px;color:var(--text);font-weight:600;line-height:1.3;transition:color .3s}
.post-nav-link:hover .post-nav-title{color:var(--ac)}