/*
Theme Name: SoilTune
Theme URI: https://soiltune.com/
Author: SoilTune
Description: SoilTune bunny diary theme for soiltune.com. Handwritten diary styling. Lightweight, no frameworks.
Version: 3.0.0
License: GNU GPL v2 or later
Text Domain: azmi-bunnies
*/
:root{
  --paper:#faf5e9; --paper2:#f3ead3; --card:#fffdf6; --ink:#2b2620; --ink2:#4c463c;
  --muted:#7a7163; --line:#e7d9b8; --line2:#dccb9f;
  --leaf:#2f7a4d; --leaf-dark:#1f5c39; --carrot:#e07b2a; --gold:#f0a92e;
  --tape:rgba(240,169,46,.35); --stamp:#b3402e;
  --radius:18px; --max:1140px;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --hand:"Caveat",cursive;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --shadow:0 1px 2px rgba(60,45,20,.07),0 12px 32px rgba(60,45,20,.10);
  --shadow-sm:0 1px 2px rgba(60,45,20,.08),0 4px 14px rgba(60,45,20,.08);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;color:var(--ink);font:16px/1.7 var(--sans);
  background:var(--paper);
  background-image:
    radial-gradient(1000px 300px at 15% -40px, #fff8df 0%, transparent 60%),
    repeating-linear-gradient(0deg, transparent 0 27px, rgba(120,100,60,.06) 27px 28px);
}
img{max-width:100%;height:auto}
a{color:var(--leaf);text-underline-offset:3px}
a:hover{color:var(--leaf-dark)}
:focus-visible{outline:3px solid var(--carrot);outline-offset:2px;border-radius:8px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 18px}
.hand{font-family:var(--hand)}
/* top ribbon */
.ribbon{background:#241f18;color:#f6ecd4;font-size:12.5px;letter-spacing:.02em}
.ribbon .wrap{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:7px 18px;flex-wrap:wrap;row-gap:2px}
.ribbon .dot{opacity:.6}
@media(max-width:520px){
  .ribbon .r-date .dot,.ribbon .r-date{display:none}
  .ribbon .wrap{justify-content:center}
}
/* header */
.site-header{background:rgba(255,253,246,.94);backdrop-filter:blur(10px);border-bottom:1.5px solid var(--line);position:sticky;top:0;z-index:60}
.bar{display:flex;align-items:center;gap:12px;padding:12px 18px;max-width:var(--max);margin:0 auto}
.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:12px}
.brand-mark{width:46px;height:46px;border-radius:14px 14px 14px 4px;background:#fff;border:1.5px solid var(--line);display:grid;place-items:center;font-size:26px;flex:none;box-shadow:var(--shadow-sm);transform:rotate(-3deg)}
.brand b{font-family:var(--serif);font-size:20px;letter-spacing:-.02em;display:block;line-height:1.1}
.brand small{display:block;font-size:12px;color:var(--muted);font-weight:600}
.brand small em{font-family:var(--hand);font-style:normal;font-size:14px;color:var(--carrot)}
.menu-toggle{margin-left:auto;background:var(--ink);color:#fff;border:0;border-radius:12px;padding:10px 14px;font-size:18px;line-height:1;cursor:pointer}
.nav{display:none;flex-direction:column;gap:2px;padding:0 18px 14px;max-width:var(--max);margin:0 auto}
.nav.open{display:flex}
.nav a{text-decoration:none;color:var(--ink);font-weight:600;font-size:15px;padding:12px;border-radius:10px}
.nav a:hover{background:#f6ecd2}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.hsearch{display:flex;gap:6px;padding:6px 0 2px}
.hsearch input{flex:1;min-width:0;padding:11px 12px;font-size:14px}
.hsearch button{background:var(--ink);color:#fff;border:0;border-radius:10px;padding:0 14px;font-size:16px;cursor:pointer}
/* diary hero */
.hero{border-bottom:1.5px solid var(--line);padding:30px 0 26px;position:relative;overflow:hidden}
.hero-inner{display:grid;gap:22px}
.journal-tag{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:6px 13px;font-size:13px;color:var(--ink2);box-shadow:var(--shadow-sm)}
.journal-tag i{font-style:normal;background:var(--ink);color:#fff;border-radius:999px;font-size:11px;padding:2px 8px;letter-spacing:.08em;text-transform:uppercase}
.hero h1{font-family:var(--serif);margin:12px 0 8px;font-size:clamp(32px,6vw,52px);line-height:1.02;letter-spacing:-.025em}
.hero h1 .underline{background:linear-gradient(transparent 62%, #ffe1a8 62% 94%, transparent 94%)}
.hero p.lead{margin:0;color:var(--ink2);font-size:clamp(15px,2.4vw,18px);max-width:60ch}
.hero p.lead .hand{font-size:1.25em;color:var(--stamp)}
.hero-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--leaf);color:#fff;text-decoration:none;padding:13px 19px;border-radius:14px;font-weight:700;font-size:15px;box-shadow:var(--shadow-sm);border:1.5px solid var(--leaf-dark)}
.btn:hover{background:var(--leaf-dark);color:#fff;transform:translateY(-1px)}
.btn.paper{background:#fff;color:var(--ink);border:1.5px solid var(--line2)}
.btn.paper:hover{background:#fff8e2}
/* polaroid / today card */
.today-card{background:var(--card);border:1.5px solid var(--line);border-radius:6px 6px var(--radius) var(--radius);box-shadow:var(--shadow);padding:12px 12px 16px;transform:rotate(1.2deg);position:relative}
.today-card::before{content:"";position:absolute;top:-14px;left:50%;transform:translateX(-50%) rotate(-2deg);width:120px;height:28px;background:var(--tape);border-left:1px dashed rgba(0,0,0,.12);border-right:1px dashed rgba(0,0,0,.12)}
.today-card figure{margin:0;background:#fff;border:1px solid var(--line);padding:8px 8px 10px}
.today-card img{width:100%;height:230px;object-fit:cover;display:block;filter:sepia(.12) contrast(1.02)}
.today-card figcaption{font-family:var(--hand);font-size:20px;color:var(--ink2);padding:8px 4px 0;display:flex;justify-content:space-between}
.today-card h2{font-family:var(--hand);font-size:24px;margin:10px 4px 2px;color:var(--ink)}
.today-card p{font-size:13.5px;color:var(--muted);margin:0 4px 10px}
.today-card .mini-link{margin:0 4px;font-weight:700;font-size:14px}
/* sections */
.section{padding:26px 0 6px}
.sec-head{display:flex;align-items:end;justify-content:space-between;gap:12px;border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:4px}
.sec-head h2{font-family:var(--serif);font-size:clamp(21px,3.4vw,28px);letter-spacing:-.02em;margin:0}
.sec-head h2 span{font-family:var(--hand);font-weight:500;color:var(--stamp);font-size:1.1em}
.sec-head .sub{color:var(--muted);margin:2px 0 0;font-size:13.5px}
.sec-head a.all{flex:none;font-size:13px;font-weight:700;text-decoration:none;border:1.5px solid var(--line2);background:#fff;padding:8px 12px;border-radius:999px;color:var(--ink)}
.grid{display:grid;grid-template-columns:1fr;gap:16px;margin:16px 0}
/* diary index cards */
.card{background:var(--card);border:1.5px solid var(--line);border-radius:4px 4px var(--radius) var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);position:relative;transition:transform .16s ease,box-shadow .16s ease}
.card:nth-child(odd){transform:rotate(-.4deg)} .card:nth-child(even){transform:rotate(.4deg)}
.card:hover{transform:rotate(0) translateY(-3px);box-shadow:var(--shadow)}
.card .tape{position:absolute;top:-1px;left:50%;transform:translateX(-50%) rotate(-3deg);width:92px;height:22px;background:var(--tape);z-index:2}
.card a.thumb{display:block;aspect-ratio:16/10;overflow:hidden;background:#efe5c8;border-bottom:1.5px solid var(--line)}
.card a.thumb img{width:100%;height:100%;object-fit:cover;display:block;filter:sepia(.14)}
.card .pad{padding:13px 15px 14px;display:flex;flex-direction:column;gap:8px;flex:1}
.entry-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.entry-row .no{background:var(--ink);color:#fff;border-radius:7px;padding:2px 8px;letter-spacing:.04em}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ink);background:#fff;border:1.5px solid var(--line2);border-radius:999px;padding:3px 10px;width:fit-content}
.pill i{width:9px;height:9px;border-radius:50%;display:inline-block}
.card h3{margin:0;font-family:var(--serif);font-size:18.5px;line-height:1.3;letter-spacing:-.01em}
.card h3 a{text-decoration:none;color:var(--ink)}
.card h3 a:hover{color:var(--leaf-dark);text-decoration:underline;text-decoration-color:#ffd88a;text-decoration-thickness:3px}
.card p.ex{margin:0;color:var(--muted);font-size:14px}
.card .meta{font-size:12.5px;color:var(--muted);margin-top:auto;border-top:1px dashed var(--line2);padding-top:8px;display:flex;gap:8px;flex-wrap:wrap}
/* topics = diary tabs */
.topics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.topic{background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:13px 13px 12px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.topic::after{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--tab,var(--leaf))}
.topic:hover{transform:translateY(-2px)}
.topic b{display:block;font-family:var(--serif);font-size:15.5px}
.topic .e{font-size:18px}
.topic span.d{display:block;font-size:12.5px;color:var(--muted);margin:3px 0 6px;line-height:1.5}
.topic span.c{font-size:12px;font-weight:700;color:var(--leaf-dark)}
/* diary quote strip */
.diary-strip{background:#241f18;color:#f6ecd4;border-radius:var(--radius);padding:20px;margin:22px 0;display:grid;gap:12px;box-shadow:var(--shadow)}
.diary-strip .hand{font-size:26px;line-height:1.2;color:#ffd88a}
.diary-strip p{margin:0;color:#d9cdae;font-size:14px;max-width:70ch}
.diary-strip .btn{justify-self:start}
/* post = diary page */
.diary-wrap{max-width:800px;margin:0 auto;padding:22px 18px 30px}
.crumb{font-size:13px;color:var(--muted);margin-bottom:8px}
.crumb a{color:var(--muted)}
.post{background:var(--card);border:1.5px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:22px 20px;position:relative}
.post::before{content:"";position:absolute;inset:0 0 auto 0;height:10px;background:repeating-linear-gradient(90deg,var(--carrot) 0 18px,#fff 18px 26px,var(--leaf) 26px 44px,#fff 44px 52px);border-radius:8px 8px 0 0;opacity:.9}
.post h1{font-family:var(--serif);font-size:clamp(28px,5vw,40px);line-height:1.1;letter-spacing:-.025em;margin:14px 0 6px}
.post .datestamp{display:inline-flex;align-items:center;gap:8px;border:1.5px dashed var(--stamp);color:var(--stamp);border-radius:10px;padding:5px 11px;font-weight:700;font-size:13px;transform:rotate(-1.2deg);background:#fff}
.post .meta{color:var(--muted);font-size:13.5px;margin:10px 0 0}
.post figure{margin:18px 0;background:#fff;border:1.5px solid var(--line);padding:10px;box-shadow:var(--shadow-sm);transform:rotate(-.5deg)}
.post figure img{width:100%;filter:sepia(.1)}
.post figcaption{font-family:var(--hand);font-size:19px;color:var(--ink2);padding:8px 4px 2px}
.post h2{font-family:var(--serif);font-size:clamp(20px,3.4vw,25px);margin:28px 0 8px;letter-spacing:-.01em}
.post h2::before{content:"✎ ";color:var(--carrot)}
.post p{color:#37332b}
.post ul,.post ol{color:#37332b}
.table-wrap{overflow-x:auto;border:1.5px solid var(--line);border-radius:12px;background:#fff}
.post table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.post .table-wrap table{display:table}
.post table.log-table{width:100%;min-width:520px;border-collapse:collapse;font-size:14px;margin:0}
.log-table th,.log-table td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left}
.log-table th{background:#f6ecd2;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.notice{background:#fff8e2;border:1.5px solid #e8cf8f;border-left-width:6px;border-left-color:var(--carrot);border-radius:12px;padding:12px 14px;font-size:14px}
.notice b.hand{font-size:18px;color:var(--stamp)}
.toc{background:#faf3df;border:1.5px dashed var(--line2);border-radius:12px;padding:12px 14px;font-size:14px;margin:16px 0}
.authorbox{display:flex;gap:12px;background:#f6ecd2;border:1.5px solid var(--line);border-radius:14px;padding:14px;margin:22px 0 0}
.authorbox .face{width:52px;height:52px;border-radius:50%;background:#fff;border:1.5px solid var(--line2);display:grid;place-items:center;font-size:28px;flex:none}
.authorbox p{margin:2px 0 0;font-size:14px;color:var(--ink2)}
.related h3,.postnav h3{font-family:var(--serif);font-size:20px;margin:26px 0 8px}
.rel-grid{display:grid;gap:12px;grid-template-columns:1fr}
.postnav{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.postnav a{flex:1 1 200px;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;text-decoration:none;color:var(--ink);font-size:14px}
/* archive = chapter */
.chapter{padding:24px 0 10px}
.chapter-head{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px;position:relative;overflow:hidden}
.chapter-head::before{content:"";position:absolute;left:0;top:0;bottom:0;width:10px;background:var(--tab,var(--leaf))}
.chapter-head h1{font-family:var(--serif);font-size:clamp(26px,4.6vw,38px);margin:4px 0 6px;letter-spacing:-.02em}
.chapter-head p{color:var(--ink2);margin:0;max-width:70ch}
.chapter-head .count{font-family:var(--hand);font-size:20px;color:var(--stamp)}
.chap-nav{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.chap-nav a{text-decoration:none;font-size:13px;font-weight:700;color:var(--ink);background:#fff;border:1.5px solid var(--line2);padding:7px 12px;border-radius:999px}
/* ad slots - quiet */
.ad-slot{background:transparent;border:1.5px dashed #cbbd97;border-radius:12px;text-align:center;color:#a29372;font-size:12px;padding:12px;margin:18px 0;letter-spacing:.02em}
.ad-slot-live{margin:18px 0;text-align:center;min-height:90px}
/* footer */
.site-footer{border-top:2px solid var(--ink);margin-top:30px;padding:28px 0 60px;background:#241f18;color:#e9dcc0}
.site-footer a{color:#ffd88a}
.foot-grid{display:grid;gap:18px}
.foot-grid h3{font-family:var(--hand);font-size:24px;margin:0 0 6px;color:#ffd88a;font-weight:500}
.foot-grid p{color:#c9bb9c;font-size:14px}
.foot-grid nav{display:flex;gap:8px;flex-wrap:wrap}
.foot-grid nav a{text-decoration:none;border:1px solid #4a4234;padding:7px 12px;border-radius:999px;font-size:13px}
.foot-bottom{border-top:1px solid #4a4234;margin-top:14px;padding-top:12px;font-size:13px;color:#a89778;display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between}
input,textarea{font:inherit;border:1.5px solid var(--line2);border-radius:10px;background:#fff;color:var(--ink)}
input:focus,textarea:focus{border-color:var(--carrot);outline:none}
.pagination{margin:18px 0;display:flex;gap:8px;flex-wrap:wrap}
.pagination .page-numbers{text-decoration:none;border:1.5px solid var(--line2);background:#fff;padding:8px 13px;border-radius:10px;color:var(--ink);font-weight:700;font-size:14px}
.pagination .current{background:var(--ink);color:#fff;border-color:var(--ink)}
@media(min-width:700px){
  .grid{grid-template-columns:repeat(2,1fr);gap:18px}
  .topics{grid-template-columns:repeat(3,1fr)}
  .hero-inner{grid-template-columns:1.55fr .9fr;align-items:start}
  .rel-grid{grid-template-columns:repeat(3,1fr)}
  .diary-strip{grid-template-columns:1.4fr .6fr;align-items:center}
  .post{padding:30px 32px}
}
@media(min-width:900px){
  .menu-toggle{display:none}
  .nav{display:flex;flex-direction:row;align-items:center;padding:0}
  .nav ul{flex-direction:row;align-items:center;gap:2px}
  .bar{padding:14px 18px}
  .nav{margin-left:auto}
  .hsearch{margin:0 0 0 8px;padding:0}
  .hsearch input{width:140px;flex:none}
  .hsearch input:focus{width:190px}
  .grid{grid-template-columns:repeat(3,1fr)}
  .foot-grid{grid-template-columns:1.2fr .8fr .8fr}
  .diary-wrap{padding:30px 18px 44px}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}
