:root{
  /* FAU blue: #04316A (base), #004A9F (active), #041E42 (darkest), #CED9E7 (light) */
  --fau:#04316a; --fau2:#004a9f; --fau3:#041e42; --fau-l:#ced9e7;
  --bg:#f3f5f8; --card:#fff; --ink:#14202e; --sub:#4d5b6b; --line:#c9d2dd; --accent:#04316a; --on:#fff; --pore:#9fb7d6;
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0d1520; --card:#142030; --ink:#e7edf5; --sub:#9fb0c4; --line:#27384d; --accent:#8db4ea; --pore:#5d86bd}}
:root[data-theme="dark"]{--bg:#0d1520; --card:#142030; --ink:#e7edf5; --sub:#9fb0c4; --line:#27384d; --accent:#8db4ea; --pore:#5d86bd}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(72px + env(safe-area-inset-top,0px))}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",sans-serif;line-height:1.85;overflow-x:hidden}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
h1,h2,h3{font-family:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;margin:0;font-weight:700}
.wrap{max-width:1040px;margin:0 auto;padding:0 24px}

/* header */
.site-header{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:10;background:var(--fau);color:#fff}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:60px;gap:18px;max-width:1200px}
.brand{font-family:"Shippori Mincho",serif;font-weight:700;text-decoration:none;white-space:nowrap}
nav{overflow-x:auto;scrollbar-width:none;display:flex;align-items:center;gap:20px}
nav a{text-decoration:none;font-size:.9rem;white-space:nowrap;padding:4px 0;border-bottom:2px solid transparent;opacity:.85}
nav a:hover,nav a.on{opacity:1;border-bottom-color:#fff}
.lang{display:flex;border:1px solid rgba(255,255,255,.5);margin-left:6px;flex:none}
.lang a{color:#fff;text-decoration:none;font-size:.82rem;padding:3px 10px;border-bottom:0;opacity:1}
.lang a.on{background:#fff;color:var(--fau)}

/* fly-in */
.fx{opacity:0;transition:opacity .5s ease-out,transform .85s cubic-bezier(.16,1,.3,1);transition-delay:var(--d,0s);will-change:transform}
.fx.up{transform:translateY(90px)} .fx.l{transform:translateX(-120px)} .fx.r{transform:translateX(120px)}
.fx.in{opacity:1;transform:none}

/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;background:var(--fau);color:#fff;overflow:hidden}
.hero .wrap{position:relative;padding-top:100px;padding-bottom:60px;width:100%}
.hero .univ{margin:0 0 12px;letter-spacing:.12em}
.hero h1{font-size:clamp(1.5rem,6.3vw,4.6rem);line-height:1.2}
.hero h1 span:first-child{white-space:nowrap}
html[lang="en"] .hero h1 span:first-child{white-space:normal}
.hero h1 span{display:block}
.hero h1 .g{font-size:.38em;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;letter-spacing:.08em;margin-top:18px;color:var(--fau-l)}
.hero .tag{max-width:30em;margin:28px 0 0;color:var(--fau-l)}

/* sections */
section{padding:96px 0;border-top:1px solid var(--line)}
.sub-first{padding-top:130px}
.head{display:flex;align-items:baseline;gap:16px;margin-bottom:34px;flex-wrap:wrap}
.head h2{font-size:clamp(1.8rem,4.2vw,2.6rem);color:var(--accent)}
.head span{color:var(--sub);font-size:.9rem}.head span:empty{display:none}
.lead{font-family:"Shippori Mincho",serif;font-size:1.3rem;line-height:1.9;max-width:28em;margin:0 0 18px}
.body{max-width:38em;color:var(--sub);margin:0 0 14px}
.more{display:inline-block;margin-top:24px;padding:10px 28px;background:var(--fau);color:#fff;text-decoration:none;font-weight:700;transition:background .2s}
.more:hover{background:var(--fau2)}

.photo{position:relative;aspect-ratio:16/9;background:var(--fau-l);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--fau);overflow:hidden}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo b{font-family:"Shippori Mincho",serif;font-size:1.2rem}

.themes{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}
.theme{padding:30px 26px;background:var(--card);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.theme:nth-child(3n){border-right:0}.theme:nth-last-child(-n+3){border-bottom:0}
.theme h3{font-size:1.12rem;line-height:1.5;margin-bottom:4px}
.theme .e{color:var(--accent);font-size:.82rem;margin:0 0 10px}
.theme p{margin:0;color:var(--sub);font-size:.94rem}
.compact{grid-template-columns:repeat(3,1fr)}.compact .theme p:last-child{display:none}

.list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.list li{display:grid;grid-template-columns:7.5em 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.list time{color:var(--sub);font-variant-numeric:tabular-nums}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:44px}
.cols h3{font-size:1.1rem;margin-bottom:10px;color:var(--accent)}
.cols p{margin:0 0 6px;color:var(--sub)}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}
.person{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--fau);padding:22px}
.person h3{font-size:1.1rem}.person p{margin:4px 0 0;color:var(--sub);font-size:.92rem}
.site-footer{background:var(--fau3);color:#dbe4f0;padding:36px 0 40px;font-size:.88rem}
.site-footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

@media (max-width:780px){
  .themes,.compact{grid-template-columns:1fr}
  .theme,.theme:nth-child(3n),.theme:nth-last-child(-n+3){border-right:0;border-bottom:1px solid var(--line)}
  .theme:last-child{border-bottom:0}
  .cols{grid-template-columns:1fr;gap:30px}.list li{grid-template-columns:1fr;gap:2px}
  section{padding:70px 0}.brand{font-size:.9rem}
}
@media (prefers-reduced-motion:reduce){.fx,.fx.up,.fx.l,.fx.r{opacity:1;transform:none;transition:none}}

/* pretzel line */
.hero svg.pzbg{position:absolute;right:-3%;top:50%;transform:translateY(-50%);height:88%;width:auto;aspect-ratio:4/3;overflow:visible}
.pz{fill:none;stroke-linecap:round;stroke-linejoin:round}
.pz.base{stroke:var(--pore);stroke-width:4;opacity:.6;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.6s cubic-bezier(.6,0,.2,1) .2s forwards}
.pz.run{stroke:#fff;stroke-width:7;stroke-dasharray:.1 .9;opacity:0;animation:runp 5.5s linear 2.8s infinite}
.pz.run.b{animation-delay:5.55s}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes runp{0%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-1;opacity:1}}
.photo svg.pzbg2{position:absolute;inset:0;width:100%;height:100%;padding:6%}
.photo .pz.base{stroke:var(--fau);opacity:.3}
.photo .pz.run{stroke:var(--fau);stroke-width:6}
.pzi{display:block;width:64px;height:48px;margin-bottom:14px;color:var(--accent)}
@media (max-width:780px){.hero svg.pzbg{right:-35%;top:64%;height:62%;opacity:.55}}
@media (prefers-reduced-motion:reduce){.pz.base{animation:none;stroke-dashoffset:0}.pz.run{display:none}}

/* WordPress additions */
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
.ph{position:relative;color:var(--fau);font-size:.85rem;padding:8px;text-align:center;word-break:break-all}
.theme-img{aspect-ratio:3/2;background:var(--fau-l);margin:-30px -26px 18px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.theme-img img{width:100%;height:100%;object-fit:cover}
.compact .theme-img{display:none}
.person-img{aspect-ratio:4/5;background:var(--fau-l);margin:-22px -22px 16px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.person-img img{width:100%;height:100%;object-fit:cover}
.entry{max-width:38em;margin-top:30px}
.entry img{max-width:100%;height:auto}
.list a{text-decoration:none}.list a:hover{text-decoration:underline;text-underline-offset:4px}
.pager{margin-top:30px;display:flex;gap:18px}
.access-photo{aspect-ratio:3/2;background:var(--fau-l);margin-top:20px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.access-photo img{width:100%;height:100%;object-fit:cover}
