/* Ripplemere site: the game's own "Sunlit Pixel Pond" look (see ~/Developer/pond/DESIGN.md).
   Cream paper over pale water, pixel lettering for titles only, Nunito for reading,
   hard blue lips instead of blurred shadows, Deep Ink text on coloured buttons. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --teal:#2EC4B6; --teal-lip:#1E9C91; --lagoon:#0B6E99; --lagoon-ink:#064A68; --ink:#0B3A52; --reed:#2F5F75;
  --mint:#9EE6DD; --mint-edge:#5FCFC2; --cream:#FFF8F0; --water:#BDE7EE; --water-lip:#A7DCE6; --foam:#CFE6EC;
  --sun:#FFD23F; --apricot:#FFC27A; --apricot-lip:#E39A4A;
  --pixel:'Pixelify Sans','Tiny5',ui-rounded,system-ui,sans-serif;
  --read:'Nunito',ui-rounded,system-ui,-apple-system,sans-serif;
  --m:clamp(16px,4vw,40px); --measure:68ch;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--read);font-weight:500;font-size:17px;line-height:1.6;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased;font-synthesis-weight:none}
img{display:block;max-width:100%;height:auto}
.px{image-rendering:pixelated}
a{color:var(--lagoon);text-underline-offset:3px;text-decoration-thickness:2px}
a:hover{color:var(--lagoon-ink)}
:focus-visible{outline:3px solid var(--lagoon);outline-offset:3px;border-radius:6px}
strong{font-weight:800}
.skip{position:absolute;left:-9999px;top:12px;background:var(--teal);color:var(--ink);padding:10px 16px;font-weight:800;border-radius:9px;z-index:10}
.skip:focus{left:16px}

/* top bar */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px var(--m);background:var(--cream);border-bottom:3px solid var(--foam)}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-family:var(--pixel);font-weight:700;font-size:24px;letter-spacing:.03em}
.brand img{width:40px;height:40px;border-radius:10px;box-shadow:0 3px 0 var(--water-lip)}
.nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.nav a{color:var(--lagoon-ink);font-weight:700;text-decoration:none;padding:8px 12px;border-radius:9px}
.nav a:hover{background:#fff;box-shadow:0 0 0 2px var(--foam)}
.nav a[aria-current]{background:var(--mint);box-shadow:0 0 0 2px var(--mint-edge)}
.lang{display:inline-flex;margin-left:6px;border:2px solid var(--foam);border-radius:12px;background:#fff;overflow:hidden}
.lang button{font:inherit;font-weight:800;font-size:14px;letter-spacing:.06em;color:var(--lagoon-ink);background:none;border:0;min-width:44px;min-height:40px;cursor:pointer}
.lang button[aria-pressed="true"]{background:var(--mint)}

/* buttons: coloured slab on its own darker lip, sinks when pressed */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 24px;border-radius:18px;background:var(--teal);color:var(--ink);font-weight:800;font-size:18px;text-decoration:none;box-shadow:0 5px 0 var(--teal-lip);transition:transform .08s,box-shadow .08s}
.btn:hover{color:var(--ink);background:#45CDC0}
.btn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--teal-lip)}
.btn.alt{background:#fff;box-shadow:0 0 0 2px var(--foam),0 5px 0 var(--foam);color:var(--lagoon-ink)}
.btn.alt:active{box-shadow:0 0 0 2px var(--foam),0 1px 0 var(--foam)}

/* home: the pond as a wide band, a cream card floating on it */
.hero{position:relative;background:var(--water) url(images/pond-wide-s.webp) center/cover no-repeat;padding:clamp(48px,9vw,120px) var(--m)}
@media (min-width:861px){.hero{background-image:url(images/pond-wide.webp)}}
.hero .card{max-width:620px;background:var(--cream);border-radius:28px;padding:clamp(24px,4vw,44px);box-shadow:0 6px 0 var(--water-lip),0 18px 40px #0B6E9926}
.hero img.icon{width:88px;height:88px;border-radius:20px;box-shadow:0 4px 0 var(--water-lip);margin-bottom:20px}
.hero h1{font-family:var(--pixel);font-weight:700;font-size:clamp(44px,8.5vw,84px);line-height:1;letter-spacing:.03em;color:var(--lagoon-ink);text-shadow:3px 3px 0 var(--mint),6px 6px 0 #fff}
.hero .tag{font-family:var(--pixel);font-weight:700;font-size:clamp(22px,3vw,28px);line-height:1.15;color:var(--lagoon);margin:16px 0 14px}
.hero p.lede{font-size:18px;max-width:46ch}
.hero .cta{display:flex;flex-wrap:wrap;gap:14px 16px;margin-top:26px}
.hero .note{margin-top:14px;font-size:14px;color:var(--reed)}

.section{padding:clamp(56px,8vw,104px) var(--m);max-width:1160px;margin:0 auto}
.section h2,.doc h2{font-family:var(--pixel);font-weight:700;font-size:clamp(30px,4.4vw,44px);line-height:1.05;letter-spacing:.03em;color:var(--lagoon-ink)}
.section > p{max-width:var(--measure);margin-top:12px;color:var(--reed)}
.points{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px;list-style:none}
.points li{background:#fff;border:3px solid var(--foam);border-radius:18px;padding:22px;box-shadow:0 4px 0 var(--water-lip)}
.points h3{font-family:var(--pixel);font-weight:700;font-size:22px;line-height:1.1;letter-spacing:.03em;color:var(--lagoon-ink);margin-bottom:8px}
.points p{color:var(--reed)}
.shots{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:32px}
.shots img{border-radius:20px;box-shadow:0 0 0 3px var(--foam),0 5px 0 3px var(--water-lip);background:var(--water)}
.water{background:var(--water);border-top:3px solid var(--water-lip);border-bottom:3px solid var(--water-lip)}

/* legal and help pages */
.title{padding:clamp(48px,7vw,88px) var(--m) 8px;max-width:920px;margin:0 auto}
.title h1{font-family:var(--pixel);font-weight:700;font-size:clamp(40px,7vw,68px);line-height:1;letter-spacing:.03em;color:var(--lagoon-ink);text-shadow:3px 3px 0 var(--mint)}
.title p{margin-top:14px;color:var(--reed);max-width:var(--measure)}
.doc{padding:16px var(--m) clamp(64px,9vw,112px);max-width:920px;margin:0 auto}
.doc h2{font-size:clamp(26px,3.4vw,34px);margin:52px 0 14px}
.doc h3{font-weight:800;font-size:19px;margin:22px 0 6px;color:var(--ink)}
.doc p,.doc ul{max-width:var(--measure);margin-bottom:12px}
.doc ul{padding-left:22px}
.doc li{margin-bottom:6px}
.box{background:#fff;border:3px solid var(--foam);border-radius:18px;padding:22px 24px;box-shadow:0 4px 0 var(--water-lip);max-width:var(--measure)}
.box.sum{background:var(--mint);border-color:var(--mint-edge);box-shadow:0 4px 0 var(--mint-edge)}
.box.sum ul{margin:0}
.path{display:inline-block;font-weight:800;color:var(--lagoon-ink);background:var(--water);border-radius:8px;padding:0 8px}
.qa{display:grid;gap:16px;margin-top:8px}
.qa .box{max-width:none}
.qa h3{margin-top:0}
.qa p:last-child{margin-bottom:0}
.mail{font-weight:800;font-size:clamp(20px,3vw,26px);word-break:break-word}

/* footer */
.foot{background:var(--lagoon-ink);color:var(--cream);padding:48px var(--m) 40px}
.foot .in{max-width:1160px;margin:0 auto;display:flex;flex-wrap:wrap;gap:28px 48px;justify-content:space-between;align-items:flex-start}
.foot .name{font-family:var(--pixel);font-weight:700;font-size:30px;letter-spacing:.03em}
.foot .name + p{color:var(--mint);margin-top:4px}
.foot ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 22px}
.foot a{color:var(--cream);font-weight:700}
.foot a:hover{color:var(--mint)}
.foot .legal{flex-basis:100%;font-size:14px;color:var(--water)}
.foot .legal a{color:var(--water)}

/* 404 */
.lost{min-height:62vh;display:grid;place-items:center;text-align:center;padding:64px var(--m)}
.lost h1{font-family:var(--pixel);font-weight:700;font-size:clamp(44px,9vw,88px);line-height:1;color:var(--lagoon-ink);text-shadow:3px 3px 0 var(--mint)}
.lost p{margin:16px auto 28px;max-width:40ch;color:var(--reed)}

@media (max-width:860px){
  .points{grid-template-columns:1fr}
  .shots{grid-template-columns:repeat(5,62vw);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}
  .shots img{scroll-snap-align:start}
  .brand span{display:none}
  .nav a{padding:8px 8px}
  .hero .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
