/* OLAF uses the same nation.js entrances, reveals, menus and parallax. */
.olaf-theme { --color-bg-dark:#091217; --color-bg-mid:#12222b; --color-gold:#a6dfef; --color-gold-dim:#4b899e; color:#e4edf0; background:var(--color-bg-dark); }
.olaf-theme main { overflow:clip; }
.olaf-theme .section { scroll-margin-top:80px; }
.olaf-theme .section-title { font-size:clamp(1.6rem,4vw,3rem); overflow-wrap:anywhere; }
.olaf-section-label { display:block; margin-top:12px; font:400 .95rem var(--font-jp); letter-spacing:.18em; color:#a9c4cf; }
.olaf-hero { min-height:100svh; isolation:isolate; }
.olaf-hero .hero-content { width:100%; padding:0 6%; text-shadow:0 3px 18px #000; }
.olaf-kicker { font:.72rem var(--font-en); letter-spacing:.23em; color:#b6d6dc; margin-bottom:30px; }
.olaf-hero .jp-title { font:400 clamp(2.1rem,5.8vw,5rem) var(--font-jp); letter-spacing:.09em; }
.olaf-hero .en-title { font-size:clamp(.85rem,2vw,1.6rem); color:var(--color-gold); max-width:1000px; margin:20px auto 28px; line-height:1.7; overflow-wrap:anywhere; }
.olaf-hero .subtitle { border-block:1px solid #77adc080; padding:14px 8px; font-size:clamp(.95rem,2vw,1.2rem); }
.olaf-affiliation { margin-top:22px; color:#b6d6dc; font-size:.85rem; }
/* Overscan covers the entire shared parallax range, including both endpoints. */
.olaf-hero .hero-bg { top:-50%; left:0; width:100%; height:150%; filter:brightness(.55); background-position:center; }
.olaf-theme .summary-section { overflow:hidden; }
.olaf-theme .summary-bg { top:-30%; height:140%; filter:brightness(.25); }
.olaf-theme .summary-section>.container { z-index:2; }
.olaf-section:nth-of-type(even) { background:linear-gradient(120deg,#142d36,#0c151e); border-block:1px solid #69a9bc26; }
.olaf-prose { max-width:900px; margin:32px auto; }
.olaf-prose p,.olaf-card p { line-height:2; }
.olaf-prose p+p,.olaf-card p+p { margin-top:18px; }
.olaf-grid,.olaf-founders { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.olaf-card,.olaf-founder { min-width:0; background:linear-gradient(140deg,#1c313d,#0e1c25); border:1px solid #4b899e77; border-top:2px solid var(--color-gold-dim); }
.olaf-card { padding:36px; }
.olaf-card h3,.olaf-founder h3 { color:var(--color-gold); font:400 clamp(1.15rem,2vw,1.5rem) var(--font-jp); letter-spacing:.05em; margin-bottom:18px; }
.olaf-card ul { padding-left:1.3em; margin:20px 0; }
.olaf-card li+li { margin-top:10px; }
.olaf-theme main a { color:var(--color-gold); text-decoration:underline; text-underline-offset:4px; }
.olaf-founder { overflow:hidden; }
.olaf-founder>img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; padding:18px; background:#10151b; }
.olaf-founder>div { padding:28px; }
.olaf-theme .footer-btn { margin:22px 0 0; }
.olaf-theme blockquote { margin:22px 0; padding:20px 24px; border-left:3px solid var(--color-gold); background:#9ee5eb0b; line-height:2; }
.olaf-theme .olaf-manifesto { font-size:clamp(1.25rem,3vw,2rem); max-width:960px; margin:0 auto 45px; }
.olaf-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; padding-left:24px; max-width:900px; margin:32px auto; }
.olaf-process li { padding:20px; border-bottom:1px solid var(--color-gold-dim); }
.olaf-theme .mobile-nav { height:100dvh; overflow-y:auto; padding:90px 20px 35px; align-items:safe center; }
.olaf-theme .mobile-nav li { margin:8px 0; }
.olaf-theme a:focus-visible,.olaf-theme button:focus-visible { outline:2px solid var(--color-gold); outline-offset:5px; }
@media(max-width:768px) { .olaf-theme .section { padding:80px 0; } .olaf-theme .section-title { margin-bottom:40px; } .olaf-grid,.olaf-founders,.olaf-process { grid-template-columns:1fr; } .olaf-card,.olaf-founder>div { padding:26px 22px; } .olaf-theme .footer-btn { margin:16px 6px 0; } }
