/* boomeslime.com shared stylesheet, generated by content/site/build_site.py (source: content/site/site.css) */
@font-face{font-family:"Boome UI";src:url(/assets/fonts/BoomeUI-Bold.ttf) format("truetype");font-weight:700;font-display:swap}
:root{--sea:#063b62;--sea-deep:#042b4a;--sea-lift:#0b4d7c;--foam:#f4fffe;--text:#d9f0f4;--muted:#a9cdd8;--mint:#8ce9d6;--sun:#ffe286;--ink:#16323d;--line:#ffffff1f;--display:"Boome UI","Nunito",ui-rounded,system-ui,sans-serif;--gutter:max(16px,5vw)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--sea);color:var(--text);font:18px/1.7 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overflow-wrap:break-word;overflow-x:hidden}
img{max-width:100%;height:auto}
a{color:var(--sun);text-underline-offset:4px}
a:focus-visible,summary:focus-visible{outline:3px solid var(--mint);outline-offset:4px;border-radius:6px}
h1,h2,.fname,.cast-name{font-family:var(--display);font-weight:700;color:var(--foam);letter-spacing:-.01em}
h1{font-size:clamp(36px,7.2vw,72px);line-height:1.08;margin:.2em 0 .45em}
h2{font-size:clamp(26px,4vw,40px);line-height:1.15;margin:1.4em 0 .5em}
.skip{position:absolute;left:16px;top:8px;background:var(--sun);color:var(--ink);padding:10px 16px;border-radius:10px;z-index:9;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
.skip:focus{clip-path:none;width:auto;height:auto;overflow:visible}

/* header */
.top{display:flex;align-items:center;gap:8px 20px;flex-wrap:wrap;padding:10px var(--gutter);max-width:1240px;margin:0 auto;position:relative;z-index:3}
.brand{display:flex;align-items:center;min-height:44px;margin-right:auto}
.brand img{width:120px;height:auto;display:block}
.main-nav{display:flex;flex-wrap:wrap;gap:0 4px;order:2}
.main-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;color:var(--foam);text-decoration:none;font-weight:650;font-size:16px;border-radius:10px}
.main-nav a:hover{color:var(--sun)}
.main-nav a[aria-current=page]{color:var(--sun);box-shadow:inset 0 -3px 0 var(--sun)}
.top .lang{order:3}
.home .brand{visibility:hidden;width:0;overflow:hidden}
h1,h2{text-wrap:balance}

/* language picker: native names, works without JS */
.lang{position:relative}
.lang summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1.5px solid #8fd6e0;border-radius:12px;color:var(--foam);font-size:16px;font-weight:650;cursor:pointer;white-space:nowrap}
.lang summary::-webkit-details-marker{display:none}
.lang summary::after{content:"";width:7px;height:7px;border:solid currentColor;border-width:0 2px 2px 0;transform:translateY(-2px) rotate(45deg);margin-left:2px}
.lang[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.lang ul{position:absolute;right:0;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;background:var(--foam);border-radius:14px;box-shadow:0 12px 40px #0006;min-width:180px;z-index:5}
.lang li a{display:flex;align-items:center;min-height:44px;padding:0 14px;color:var(--ink);text-decoration:none;font-weight:600;border-radius:10px}
.lang li a:hover{background:#e3f6f4}
.lang li a[aria-current=true]{background:#d4f3ec;font-weight:800}
.lang li a[aria-current=true]::after{content:"✓";margin-left:auto;padding-left:16px}
.foot .lang ul{top:auto;bottom:calc(100% + 6px);left:0;right:auto}

/* home hero */
.hero{position:relative;margin:0 auto;max-width:1600px}
.hero picture,.hero-art{display:block;width:100%}
.hero-art{height:min(68vh,50vw);min-height:380px;object-fit:cover;object-position:50% 42%}
.hero-logo{display:none}
.wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:48px;fill:var(--sun)}
.sunband{background:var(--sun);color:var(--ink)}
.intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:16px 6%;align-items:end;max-width:1240px;margin:0 auto;padding:20px var(--gutter) 64px}
.sunband h1,.sunband .lede{color:var(--ink)}
.sunband .cta{background:var(--sea);color:var(--foam);box-shadow:0 6px 0 var(--sea-deep),0 14px 30px #0003}
.sunband .cta:hover{box-shadow:0 8px 0 var(--sea-deep),0 18px 34px #0004}
.sunband .cta:active{box-shadow:0 3px 0 var(--sea-deep),0 8px 18px #0003}
.sunband .cta-note{color:#4d3f10}
.sunband a:focus-visible{outline-color:var(--sea)}
.sunband+.band{border-top:0}
.intro h1{margin:0}
.lede{font-size:20px;color:var(--text);margin:0 0 22px;max-width:34em}
.cta{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:12px 30px;background:var(--sun);color:var(--ink);font-weight:850;font-size:18px;text-decoration:none;text-align:center;border-radius:999px;box-shadow:0 6px 0 #c9a23d,0 14px 30px #0005;transition:transform .15s ease,box-shadow .15s ease}
.cta:hover{transform:translateY(-2px);box-shadow:0 8px 0 #c9a23d,0 18px 34px #0006}
.cta:active{transform:translateY(3px);box-shadow:0 3px 0 #c9a23d,0 8px 18px #0005}
.cta-note{font-size:15px;color:var(--muted);margin:14px 0 0}

/* home bands */
.band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:32px 7%;align-items:center;max-width:1240px;margin:0 auto;padding:72px var(--gutter);border-top:1px solid var(--line)}
.band h2{margin-top:.1em}
.band-text p{max-width:32em}
.eyebrow{font-size:14px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--mint);margin:0}
.more{display:inline-flex;align-items:center;min-height:44px;font-weight:750}
.shot{margin:0}
.shot img{display:block;width:100%;border-radius:22px;box-shadow:0 20px 60px #0007;border:3px solid #ffffff22}
.shot figcaption{font-size:14px;line-height:1.5;color:var(--muted);margin-top:12px}
.friend-list{list-style:none;margin:0;padding:0}
.friend-list li+li{border-top:1px solid var(--line)}
.friend-list a{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 18px;min-height:64px;padding:12px 4px;text-decoration:none}
.fname{color:var(--c);font-size:clamp(30px,4.2vw,44px);line-height:1.1}
.ftag{color:var(--text);font-size:17px}
.friend-list a:hover .ftag{color:var(--foam);text-decoration:underline;text-underline-offset:4px}
.story{grid-template-columns:minmax(0,1fr)}
.story .band-text{max-width:720px}
.teaser{font-size:22px;font-style:italic;color:var(--foam)}

/* cast stage (in-game v4 portraits over the lagoon backdrop) */
.cast-stage{background:linear-gradient(180deg,var(--sea) 0,#063b62c7 22%,#063b62c7 78%,var(--sea) 100%),url(/assets/site/lagoon-1600.webp) center/cover no-repeat}
.cast-inner{max-width:1240px;margin:0 auto;padding:80px var(--gutter)}
.cast-inner .band-text p{max-width:34em}
.cast-inner h2{margin-top:.1em}
.cast-row{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px 16px;margin:28px 0 12px;padding:0}
.cast-row a{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;text-decoration:none;padding-bottom:8px}
.cast-row img{width:100%;max-width:220px;filter:drop-shadow(0 14px 16px #0007);transition:transform .2s ease}
.cast-row a:hover img{transform:translateY(-6px)}
.cast-row .fname{font-size:clamp(26px,2.6vw,36px)}
.cast-row .ftag{font-size:15px;line-height:1.35;color:var(--foam);max-width:14em}
.cast-head{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap}
.cast-head img{width:clamp(110px,24vw,190px);filter:drop-shadow(0 12px 14px #0007)}
.cast-head .cast-name{margin:0}

/* interior pages */
.prose{max-width:760px;margin:0 auto;padding:40px var(--gutter) 80px}
.prose h1{font-size:clamp(34px,6.4vw,60px)}
.prose ul,.prose ol{padding-left:1.3em}
.prose li{margin:.35em 0}
.prose .cta{margin:12px 0}
.note{font-size:15px;color:var(--muted);border-left:3px solid var(--line);padding-left:14px}
.subtitle{font-family:var(--display);font-size:clamp(22px,3.2vw,30px);color:var(--foam);margin-top:-.4em}
.cast-name{color:var(--c);font-size:clamp(56px,12vw,104px);margin-bottom:.15em}
.castnav{margin-top:40px;border-top:1px solid var(--line);padding-top:16px}
.castnav ul{list-style:none;display:flex;flex-wrap:wrap;gap:0 6px;margin:0;padding:0}
.castnav a{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;font-family:var(--display);font-size:22px;color:var(--c);text-decoration:none}
.castnav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:3px}
.tale{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin:28px 0}
.tale h2{margin:.1em 0 .3em}
.tale h2 a{color:var(--foam);text-decoration:none}
.tale h2 a:hover{color:var(--sun)}
.story-page .prose>p:not(.eyebrow):not(.note){font-size:20px;line-height:1.8}
.pager{margin-top:36px}

/* footer */
.foot{max-width:1240px;margin:0 auto;padding:28px var(--gutter) 40px;border-top:1px solid var(--line);font-size:15px;color:var(--muted)}
.foot-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 20px}
.foot-row+.foot-row{margin-top:6px}
.foot nav{display:flex;flex-wrap:wrap;gap:0 6px}
.foot nav a,.foot-brand{display:inline-flex;align-items:center;min-height:44px;padding:0 8px;color:var(--foam)}
.foot-brand{font-family:var(--display);font-size:20px;text-decoration:none;padding-left:0}
.foot p{margin:14px 0 0;max-width:46em}

@media (max-width:959px){
 .band{grid-template-columns:minmax(0,1fr);padding:56px var(--gutter)}
 .top{gap:8px 10px}
 .intro{grid-template-columns:minmax(0,1fr);gap:12px}
 .main-nav a{padding:0 8px;font-size:15px}
}
@media (max-width:699px){
 body{font-size:17px}
 .top{padding:6px var(--gutter)}
 .brand img{width:104px}
 .main-nav{order:3;width:100%;margin:0 -10px}
 .main-nav a{font-size:15px;padding:0 10px}
 .top .lang{order:2}
 .lang summary{padding:0 12px}
 .home .brand{visibility:visible;width:0;overflow:hidden;margin-right:auto;min-height:44px}
 .hero-logo{display:block;width:min(70%,360px);margin:2px auto -5%;position:relative;z-index:2;filter:drop-shadow(0 8px 18px #0006)}
 .hero-art{height:auto;min-height:0;aspect-ratio:4/3;object-position:50% 62%}
 .wave{height:28px}
 .intro{grid-template-columns:minmax(0,1fr);padding:4px var(--gutter) 48px}
 .lede{font-size:18px}
 .cta{width:100%;padding:12px 20px}
 .cast-inner{padding:56px var(--gutter)}
 .cast-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cast-row li:first-child{grid-column:1/-1}
 .cast-row li:first-child img{max-width:240px}
 .teaser{font-size:19px}
 .prose{padding-top:20px}
}
/* 008c short phones (e.g. 320x568, 375x667): primary CTA must sit fully inside the first screen.
   Art window clamps to the viewport height (Design RESULT-014: clamp(46vw, 100svh - 400px, 75vw));
   the one wordmark moves onto the sky of the art instead of stacking above it. */
@media (max-width:699px) and (max-height:760px){
 .hero{overflow:hidden}
 .hero-logo{position:absolute;top:4px;left:50%;transform:translateX(-50%);margin:0;width:min(48%,260px)}
 .hero-art{aspect-ratio:auto;height:clamp(46vw,calc(100vh - 420px),75vw);height:clamp(46vw,calc(100svh - 420px),75vw);object-position:50% 56%}
 .intro{gap:8px}
 .intro h1{font-size:clamp(30px,9vw,40px)}
 .lede{font-size:16px;margin-bottom:16px}
}
@media (max-width:359px){
 .cta{font-size:16px;padding:12px 14px}
}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{transition:none!important;animation:none!important}
}
