/* kakaki soft — static site */
:root {
  --bg:#100f0c; --surface:#191813; --footbg:#0b0a08;
  --headbg:rgba(16,15,12,.8); --fg:#f3efe6; --muted:#9a958a;
  --border:#2a2823; --accent:#c8f04f; --accent-ink:#16150f; --accent-solid:#c8f04f;
}
html[data-theme="light"] {
  --bg:#f4f1e9; --surface:#fbf9f3; --footbg:#ece8dd;
  --headbg:rgba(244,241,233,.82); --fg:#16150f; --muted:#6b665b;
  --border:#ddd8cc; --accent:#b6dd2e; --accent-ink:#16150f; --accent-solid:#6f8a13;
}
@media (prefers-color-scheme: light) {
  html:not([data-theme]) {
    --bg:#f4f1e9; --surface:#fbf9f3; --footbg:#ece8dd;
    --headbg:rgba(244,241,233,.82); --fg:#16150f; --muted:#6b665b;
    --border:#ddd8cc; --accent:#b6dd2e; --accent-ink:#16150f; --accent-solid:#6f8a13;
  }
}

* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  background:var(--bg); color:var(--fg);
  transition:background .4s ease,color .4s ease;
  overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
a { color:inherit; text-decoration:none; }
img { display:block; }

@keyframes ticker { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@keyframes riseIn { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
@keyframes blink { 0%,49% { opacity:1; } 50%,100% { opacity:0; } }

.wrap { max-width:900px; margin:0 auto; }

/* Header */
.site-header {
  position:sticky; top:0; z-index:30;
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 22px; background:var(--headbg);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
}
.brand { display:flex; align-items:baseline; gap:8px; }
.brand b { font-family:'Bricolage Grotesque',sans-serif; font-weight:800; font-size:22px; letter-spacing:-.03em; }
.brand span { font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.2em; color:var(--muted); text-transform:uppercase; }

.header-actions { display:flex; align-items:center; gap:12px; }
.lang-switch { font-family:'Space Mono',monospace; font-size:11px; letter-spacing:.12em; color:var(--muted); text-transform:uppercase; transition:color .25s ease; }
.lang-switch:hover { color:var(--fg); }

.theme-toggle {
  display:flex; cursor:pointer; font-family:'Space Mono',monospace;
  font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  border:1px solid var(--border); border-radius:999px; overflow:hidden;
  background:none; user-select:none;
}
.theme-toggle span { padding:6px 11px; color:var(--muted); transition:background .3s ease,color .3s ease; }
html:not([data-theme]) .theme-toggle .c-dark,
html[data-theme="dark"] .theme-toggle .c-dark { background:var(--accent); color:var(--accent-ink); }
html[data-theme="light"] .theme-toggle .c-light { background:var(--accent); color:var(--accent-ink); }
html[data-theme="light"] .theme-toggle .c-dark { background:transparent; color:var(--muted); }
@media (prefers-color-scheme: light) {
  html:not([data-theme]) .theme-toggle .c-dark { background:transparent; color:var(--muted); }
  html:not([data-theme]) .theme-toggle .c-light { background:var(--accent); color:var(--accent-ink); }
}

/* Hero */
.hero { padding:52px 22px 40px; animation:riseIn .7s ease both; }
.eyebrow { font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.14em; color:var(--muted); text-transform:uppercase; display:flex; align-items:center; gap:8px; }
.dot { width:8px; height:8px; border-radius:50%; background:var(--accent); display:inline-block; animation:blink 1.6s steps(1) infinite; }
.hero h1 { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:clamp(42px,13vw,68px); line-height:.98; letter-spacing:-.035em; margin-top:20px; text-wrap:balance; }
.mark { background:var(--accent); color:var(--accent-ink); padding:0 .08em; display:inline-block; transform:rotate(-1.5deg); border-radius:3px; }
.hero p { margin-top:22px; font-size:17px; line-height:1.55; color:var(--muted); max-width:440px; }
.cta-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.btn { font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:16px; padding:14px 24px; border-radius:999px; }
.btn-primary { background:var(--accent); color:var(--accent-ink); }
.btn-ghost { border:1px solid var(--border); color:var(--fg); }

/* Ticker */
.ticker { border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:var(--accent); color:var(--accent-ink); overflow:hidden; padding:11px 0; }
.ticker-track { display:flex; width:max-content; animation:ticker 22s linear infinite; font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:15px; letter-spacing:-.01em; }
.ticker-track > span { display:flex; }
.ticker-track em { font-style:normal; padding:0 18px; }

/* Sections */
section { padding:56px 22px; }
.kicker { font-family:'Space Mono',monospace; font-size:12px; letter-spacing:.16em; color:var(--muted); text-transform:uppercase; }
.about .lead { margin-top:20px; font-family:'Bricolage Grotesque',sans-serif; font-weight:500; font-size:clamp(22px,6.5vw,30px); line-height:1.28; letter-spacing:-.02em; text-wrap:pretty; }
.about .lead .sub { color:var(--muted); }

.offer { padding-top:8px; padding-bottom:56px; }
.offer .kicker { margin-bottom:8px; }
.offer-item { display:block; border-top:1px solid var(--border); padding:26px 0; }
.offer-item:last-of-type { border-bottom:1px solid var(--border); }
.offer-row { display:flex; align-items:flex-start; gap:16px; }
.offer-idx { font-family:'Space Mono',monospace; font-size:13px; color:var(--accent-solid); padding-top:6px; }
.offer-body { flex:1; }
.offer-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.offer-head h3 { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:clamp(26px,8vw,36px); letter-spacing:-.03em; line-height:1; }
.arrow { font-size:22px; color:var(--muted); transition:transform .25s ease, color .25s ease; }
.offer-item:hover .arrow { transform:translate(3px,-3px); color:var(--accent-solid); }
.offer-body p { margin-top:10px; font-size:15px; line-height:1.55; color:var(--muted); max-width:400px; }

.contact { padding-top:8px; padding-bottom:64px; }
.contact h2 { font-family:'Bricolage Grotesque',sans-serif; font-weight:700; font-size:clamp(34px,11vw,56px); line-height:1; letter-spacing:-.035em; margin-top:18px; text-wrap:balance; }
.mail { display:inline-flex; align-items:center; gap:10px; margin-top:26px; font-family:'Bricolage Grotesque',sans-serif; font-weight:600; font-size:clamp(20px,6vw,26px); letter-spacing:-.02em; border-bottom:3px solid var(--accent); padding-bottom:4px; }
.mail span { font-size:.8em; }

/* Footer */
.site-footer { border-top:1px solid var(--border); padding:34px 22px 40px; background:var(--footbg); }
.foot-top { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.foot-top img { height:52px; width:auto; opacity:.95; }
.foot-top p { font-family:'Space Mono',monospace; font-size:11px; line-height:1.7; color:var(--muted); text-align:right; }
.foot-grant { margin-top:26px; padding-top:22px; border-top:1px solid var(--border); display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.foot-grant p { font-size:12px; line-height:1.5; color:var(--muted); flex:1; min-width:180px; }
.foot-grant strong { color:var(--fg); }
.grant-logo { background:#fff; padding:8px 12px; border-radius:10px; }
.grant-logo img { max-height:48px; width:auto; }

@media (prefers-reduced-motion: reduce) {
  .ticker-track, .dot { animation:none; }
  .hero { animation:none; }
  html { scroll-behavior:auto; }
}
