:root{
  /* Layout idea: one sunny cartoon world. The rig on a rolling sea is the menu; every section melts into the next on a wave. Nothing has a hard corner. */
  --sky:#7fd0ff;
  --sea:#1d7fd6;
  --sea-deep:#0f5aa8;
  --sun:#ffc93c;
  --navy:#1b2a5c;
  --foam:#f2fbff;
  --sand:#fff4d6;
  --drill:#3fb34f; --maint:#2f8fe8; --marine:#ffcf2e; --safety:#e8423a; --service:#ff8a1f; --boss:#ffffff; --pink:#ff6b8a;
  --display:"Baloo 2", "Arial Rounded MT Bold", system-ui, sans-serif;
  --body:"Nunito", "Segoe UI", system-ui, sans-serif;
  --spring:cubic-bezier(.3,1.8,.5,1);
  --hat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='30' viewBox='0 0 34 30'%3E%3Cpath d='M4 22c0-9 6-16 13-16s13 7 13 16z' fill='%23ffcf2e' stroke='%231b2a5c' stroke-width='2.5' stroke-linejoin='round'/%3E%3Crect x='1.5' y='21' width='31' height='6' rx='3' fill='%23ffcf2e' stroke='%231b2a5c' stroke-width='2.5'/%3E%3C/svg%3E") 4 4;
  --hat-red:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='30' viewBox='0 0 34 30'%3E%3Cpath d='M4 22c0-9 6-16 13-16s13 7 13 16z' fill='%23e8423a' stroke='%231b2a5c' stroke-width='2.5' stroke-linejoin='round'/%3E%3Crect x='1.5' y='21' width='31' height='6' rx='3' fill='%23e8423a' stroke='%231b2a5c' stroke-width='2.5'/%3E%3C/svg%3E") 4 4;
  color-scheme: light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--foam);color:var(--navy);font-family:var(--body);font-size:18px;line-height:1.5;cursor:var(--hat),auto}
a,button,label,[data-hot],input[type=range]{cursor:var(--hat-red),pointer}
input[type=text]{cursor:text}
h1,h2,h3{font-family:var(--display);line-height:1.08;margin:0;text-wrap:balance}
h1{font-size:clamp(38px,6.5vw,78px)}
h2{font-size:clamp(30px,4.6vw,52px)}
h3{font-size:clamp(21px,2.4vw,26px)}
p{margin:0}
img{max-width:100%}
a{color:var(--sea-deep)}
:focus-visible{outline:4px solid var(--sun);outline-offset:4px;border-radius:999px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 16px;border-radius:999px;z-index:50}
.skip:focus{left:12px}

/* Floating pill nav */
.nav{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:30;display:flex;gap:4px;align-items:center;
  background:rgba(255,255,255,.94);backdrop-filter:blur(8px);padding:6px 8px;border-radius:999px;
  box-shadow:0 10px 30px rgba(15,90,168,.25);max-width:calc(100% - 20px);overflow-x:auto;scrollbar-width:none}
.nav::-webkit-scrollbar{display:none}
.nav .home{display:flex;flex:none}
.nav img{height:42px;width:auto;max-width:none;transition:transform .4s var(--spring)}
.nav img:hover{transform:rotate(-8deg) scale(1.12)}
.pill{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-weight:700;font-size:16px;border:0;border-radius:999px;padding:8px 15px;
  background:transparent;color:var(--navy);text-decoration:none;white-space:nowrap;transition:transform .35s var(--spring),background .2s}
.pill:hover{background:#e8f6ff;transform:scale(1.08)}
.pill:active{transform:scale(.92)}
.pill[aria-current="page"]{background:#e1f1ff}
.pill.red{background:var(--safety);color:#fff}
.pill.red:hover{background:#ff5a50}
.pill.blue{background:var(--maint);color:#fff}
.pill.blue:hover{background:#4aa3f5}
.pill.sun{background:var(--sun)}
.toggle{background:#eef7ff;font-size:14px}
.toggle[aria-pressed="true"]{background:var(--marine)}

/* Page hero (inner pages) */
.page-top{position:relative;background:linear-gradient(#58bdfb,var(--sky) 70%,#a9e1ff);padding:110px 16px 20px;text-align:center;overflow:hidden}
.page-top h1{color:#fff;text-shadow:0 4px 0 var(--sea-deep),0 10px 24px rgba(15,90,168,.35)}
.page-top p{font-weight:800;font-size:clamp(17px,2.2vw,21px);margin:8px auto 0;max-width:46ch}
.page-top .mascot{height:150px;width:auto;margin-top:12px;transition:transform .5s var(--spring);transform-origin:50% 100%}
.page-top .mascot:hover{transform:rotate(-8deg) scale(1.08)}
.page-top>*:not(.cloud){position:relative;z-index:1}
.page-top .cloud{position:absolute;z-index:0;width:150px;height:46px;background:#fff;border-radius:999px;opacity:.6;animation:drift 70s linear infinite}
.page-top .cloud::before{content:"";position:absolute;width:70px;height:62px;background:#fff;border-radius:50%;left:30px;top:-28px}
.page-top .cloud.c2{top:150px;animation-duration:95s;animation-delay:-40s;transform:scale(.7)}
@keyframes drift{from{left:-200px}to{left:110%}}

/* Wave edges */
.edge{display:block;width:100%;height:60px}
section{padding:26px 16px 44px}
.wrap{width:min(1100px,100%);margin:0 auto}
.lead{max-width:62ch;font-size:19px;margin-top:10px}
.center{text-align:center}
.center .lead{margin-left:auto;margin-right:auto}
.sea-section{background:var(--sea-deep);color:#fff}
.sea-section h2{color:#fff}
.sea-section a{color:#fff}
.sand{background:var(--sand)}

/* Organic blobs */
.blob{background:#fff;padding:26px 26px 30px;border-radius:58% 42% 55% 45% / 48% 52% 48% 52%;box-shadow:0 14px 30px rgba(15,90,168,.14);
  transition:border-radius 1.2s ease, transform .45s var(--spring)}
.blob:hover{border-radius:42% 58% 45% 55% / 55% 45% 55% 45%;transform:translateY(-6px) rotate(-1deg)}
.soft{background:#fff;border-radius:44px;padding:26px 26px 30px;box-shadow:0 14px 30px rgba(15,90,168,.14)}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;margin-top:26px}
.step-num{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:26px;color:#fff;margin-bottom:10px}
.blob h3,.soft h3{margin-bottom:6px}

/* Start-here bubbles */
.starts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px;margin-top:26px}
.start{display:block;text-decoration:none;color:var(--navy);text-align:center;padding:24px 22px 28px;border-radius:50% 50% 46% 54% / 40% 40% 60% 60%;
  background:#fff;box-shadow:0 14px 30px rgba(15,90,168,.16);transition:transform .45s var(--spring),border-radius 1s}
.start:hover{transform:translateY(-8px) scale(1.03);border-radius:46% 54% 50% 50% / 46% 36% 64% 54%}
.start img{height:150px;width:auto;transition:transform .5s var(--spring);transform-origin:50% 100%}
.start:hover img{transform:rotate(-7deg) scale(1.08)}
.start h3{margin-top:6px}
.start p{font-size:16px;margin-top:4px}
.start .go{display:inline-block;margin-top:12px;font-family:var(--display);font-weight:800;color:#fff;border-radius:999px;padding:6px 18px}

/* Grown-up switch */
.switch{display:inline-flex;align-items:center;gap:10px;margin-top:18px;border:0;background:#fff;border-radius:999px;padding:8px 18px 8px 8px;font-family:var(--display);font-weight:800;font-size:18px;color:var(--navy);box-shadow:0 8px 20px rgba(15,90,168,.18);transition:transform .35s var(--spring)}
.switch:hover{transform:scale(1.06)}.switch:active{transform:scale(.94)}
.knob{width:52px;height:30px;border-radius:999px;background:#cfe6f7;position:relative;transition:background .3s;flex:none}
.knob::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .35s var(--spring);box-shadow:0 2px 4px rgba(0,0,0,.2)}
.switch[aria-pressed="true"] .knob{background:var(--drill)}
.switch[aria-pressed="true"] .knob::after{transform:translateX(22px)}
.grown{display:none;margin-top:10px;background:#eef7ff;border-radius:22px;padding:10px 14px;font-size:16px}
body.grownups .grown{display:block}

/* Crew */
.dept{margin-top:34px}
.dept-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dept-head .hat-ico{width:46px;height:36px}
.crew{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:20px;margin-top:16px}
.card{position:relative;border:0;font:inherit;color:inherit;text-align:center;background:#fff;padding:18px 14px 20px;
  border-radius:50% 50% 46% 54% / 30% 30% 70% 70%;box-shadow:0 12px 26px rgba(15,90,168,.14);transition:transform .45s var(--spring),border-radius 1s}
.card:hover{transform:translateY(-8px);border-radius:46% 54% 50% 50% / 34% 26% 74% 66%}
.card .halo{width:116px;height:116px;border-radius:50%;margin:0 auto -94px;opacity:.28}
.card img{height:150px;width:auto;position:relative;transition:transform .5s var(--spring);transform-origin:50% 100%}
.card:hover img{transform:rotate(-7deg) scale(1.08)}
.card h3{font-size:20px;margin-top:6px}
.flaw{font-size:15px;margin-top:4px}
.real{font-size:14.5px;margin-top:8px;background:#eef7ff;border-radius:18px;padding:8px 10px;display:none}
.card[aria-expanded="true"] .real{display:block;animation:pop .45s var(--spring)}
.card .more{display:inline-block;margin-top:10px;font-family:var(--display);font-weight:800;font-size:15px;color:#fff;border-radius:999px;padding:4px 14px}
.hats{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hat-chip{display:flex;align-items:center;gap:8px;background:#fff;border-radius:999px;padding:6px 14px 6px 6px;font-weight:800;font-size:15px;box-shadow:0 6px 14px rgba(15,90,168,.12);transition:transform .35s var(--spring)}
.hat-chip:hover{transform:scale(1.08) rotate(-2deg)}
.hat-chip svg{width:34px;height:26px;flex:none}
@keyframes pop{from{transform:scale(.4);opacity:0}}

/* Episodes TV */
.tv{position:relative;max-width:900px;margin:26px auto 0;background:var(--marine);border:6px solid var(--navy);border-radius:60px;padding:22px 22px 54px;box-shadow:0 18px 40px rgba(0,30,80,.35)}
.tv::before,.tv::after{content:"";position:absolute;top:-46px;width:8px;height:56px;background:var(--navy);border-radius:999px}
.tv::before{left:40%;transform:rotate(-24deg)}
.tv::after{left:58%;transform:rotate(24deg)}
.tv .screen{position:relative;aspect-ratio:16/9;border-radius:38px;overflow:hidden;background:radial-gradient(circle at 50% 40%,#2b95e6,#0f3f7a)}
.tv iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tv .fallback{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#fff;padding:20px}
.tv .knobs{position:absolute;bottom:14px;left:0;right:0;display:flex;justify-content:center;gap:14px}
.tv .knobs i{width:22px;height:22px;border-radius:50%;background:var(--navy);transition:transform .4s var(--spring)}
.tv:hover .knobs i:first-child{transform:rotate(180deg) scale(1.2)}
.buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.buttons .pill{font-size:19px;padding:12px 24px}

/* Big button */
.big{font-family:var(--display);font-weight:800;font-size:22px;border:0;border-radius:999px;padding:12px 30px;background:var(--sun);color:var(--navy);margin-top:14px;box-shadow:0 6px 0 #d99a00;transition:transform .3s var(--spring);text-decoration:none;display:inline-block}
.big:hover{transform:scale(1.07) rotate(-1deg)}.big:active{transform:translateY(4px) scale(.96);box-shadow:0 2px 0 #d99a00}

/* Game */
.game-wrap{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:26px;align-items:center;margin-top:24px}
@media (max-width:820px){.game-wrap{grid-template-columns:1fr}}
.game{position:relative;border-radius:46px;overflow:hidden;background:linear-gradient(#9fdcff,#d9f3ff);box-shadow:0 18px 36px rgba(0,30,80,.35);aspect-ratio:4/3;touch-action:none}
.game canvas{width:100%;height:100%;display:block}
.game .overlay{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px;background:rgba(15,90,168,.6);color:#fff;border-radius:46px;transition:opacity .3s}
.game .overlay.hide{opacity:0;pointer-events:none}
.game .overlay h3{font-size:clamp(26px,4vw,42px)}
.score{position:absolute;top:14px;left:18px;right:18px;display:flex;justify-content:space-between;font-family:var(--display);font-weight:800;font-size:clamp(16px,2.4vw,22px);color:var(--navy);pointer-events:none;font-variant-numeric:tabular-nums}
.game-side p{font-size:18px}
.tip{margin-top:14px;background:rgba(255,255,255,.14);border-radius:28px;padding:14px 18px;font-size:16px}
.mode{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.mode .pill{background:rgba(255,255,255,.15);color:#fff}
.mode .pill[aria-pressed="true"]{background:#fff;color:var(--sea-deep)}
.best{margin-top:12px;font-weight:800}
.soon{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;margin-top:22px}
.soon .blob{text-align:center;padding:22px 18px 26px}
.soon .tag{display:inline-block;margin-top:10px;background:var(--sand);border-radius:999px;padding:4px 14px;font-weight:800;font-size:14px}

/* Quiz */
.quiz{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px;align-items:center;margin-top:20px}
@media (max-width:720px){.quiz{grid-template-columns:1fr}.quiz .officer{display:none}}
.opts{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.opt{font:inherit;font-weight:800;text-align:left;border:3px solid #d6ecfb;background:#f6fbff;border-radius:999px;padding:12px 20px;color:var(--navy);transition:transform .3s var(--spring),background .2s,border-color .2s}
.opt:hover{transform:translateX(8px);border-color:var(--maint)}
.opt.right{background:#dff6e2;border-color:var(--drill)}
.opt.wrong{background:#fde3e1;border-color:var(--safety);animation:shake .4s}
@keyframes shake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.feedback{min-height:28px;margin-top:12px;font-weight:800}
.progress{display:flex;gap:8px;margin-bottom:12px}
.progress i{width:14px;height:14px;border-radius:50%;background:#d6ecfb}
.progress i.done{background:var(--drill)}
.officer{position:relative;text-align:center}
.officer img{height:260px;width:auto}
.officer.cheer img{animation:hop .7s var(--spring) 2}
.officer .beacon{width:70px;height:70px;left:calc(50% - 46px);top:-16px;opacity:0}
.officer:hover .beacon,.officer.cheer .beacon{opacity:1}

/* Certificate */
.cert-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:18px}
.cert-tools label{font-weight:800}
.cert-tools input{font:inherit;font-weight:800;border:3px solid #d6ecfb;border-radius:999px;padding:10px 18px;min-width:0;width:min(280px,100%);color:var(--navy)}
.cert-tools input:focus{outline:none;border-color:var(--sun)}
.cert{margin-top:22px;background:#fff;border:6px solid var(--safety);border-radius:60px;padding:34px 26px;text-align:center;box-shadow:0 14px 30px rgba(15,90,168,.14)}
.cert h3{font-size:clamp(28px,4vw,44px);color:var(--safety)}
.cert .who{font-family:var(--display);font-weight:800;font-size:clamp(30px,5vw,52px);margin:10px 0;min-height:1.2em;border-bottom:4px dotted #cfe0ee;display:inline-block;padding:0 24px}
.cert img{height:150px;width:auto}
.cert .rules{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.cert .rules span{background:var(--sand);border-radius:999px;padding:6px 14px;font-weight:800;font-size:15px}

/* Lesson steps */
.lesson{display:grid;gap:22px;margin-top:24px}
.lesson-step{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;align-items:center}
@media (max-width:560px){.lesson-step{grid-template-columns:1fr;text-align:center}.lesson-step img{margin:0 auto}}
.lesson-step img{height:140px;width:auto;transition:transform .5s var(--spring)}
.lesson-step:hover img{transform:rotate(-6deg) scale(1.08)}

/* Rig hero (home) */
.hero{position:relative;background:linear-gradient(#58bdfb 0%,var(--sky) 55%,#bfe9ff 100%);padding-top:84px;overflow:hidden}
.hero-title{position:relative;z-index:3;text-align:center;padding:8px 16px 0}
.hero-title h1{color:#fff;text-shadow:0 4px 0 var(--sea-deep),0 10px 24px rgba(15,90,168,.35)}
.hero-title p{font-size:clamp(16px,2.2vw,22px);font-weight:800;margin-top:6px}
.stage-row{background:linear-gradient(to bottom,transparent 73.5%,#4fb1f0 73.5%,#3aa3ec 78%,#1d7fd6 82%,#0f5aa8 88%)}
.stage{position:relative;width:min(1200px,100%);margin:0 auto;aspect-ratio:2/1}
.stage svg.world{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
.cloudg{animation:driftg 60s linear infinite}
.cloudg.c2{animation-duration:85s;animation-delay:-30s}
.cloudg.c3{animation-duration:110s;animation-delay:-70s}
@keyframes driftg{from{transform:translateX(-300px)}to{transform:translateX(1500px)}}
.sun{transform-origin:1060px 90px;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.rig{animation:bob 6s ease-in-out infinite;transform-origin:600px 400px}
@keyframes bob{50%{transform:translateY(-6px) rotate(-.4deg)}}
.wave{animation:wave 7s ease-in-out infinite}
.wave.w2{animation-duration:9s;animation-direction:reverse}
.wave.w3{animation-duration:11s}
@keyframes wave{50%{transform:translateX(-60px)}}
.gull{animation:fly 22s linear infinite}
@keyframes fly{0%{transform:translate(-120px,120px)}50%{transform:translate(620px,40px)}100%{transform:translate(1350px,110px)}}
.gull .wing{transform-origin:20px 10px;animation:flap .5s ease-in-out infinite alternate}
@keyframes flap{to{transform:scaleY(-.6)}}
.hot{position:absolute;border-radius:999px;z-index:2}
.hot .tag{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translate(-50%,8px) scale(.6);opacity:0;
  background:#fff;color:var(--navy);font-family:var(--display);font-weight:800;font-size:clamp(12px,1.5vw,17px);
  padding:6px 14px;border-radius:999px;white-space:nowrap;box-shadow:0 8px 20px rgba(15,90,168,.3);transition:all .35s var(--spring);pointer-events:none}
.hot:hover .tag,.hot:focus-visible .tag{opacity:1;transform:translate(-50%,0) scale(1)}
.hot:hover,.hot:focus-visible{background:radial-gradient(closest-side,rgba(255,240,150,.55),rgba(255,240,150,0))}
[data-part]{transition:filter .3s, transform .5s var(--spring);transform-box:fill-box;transform-origin:center bottom}
.glow{filter:drop-shadow(0 0 10px #fff6a8) drop-shadow(0 0 4px #ffe76a)}
.part-derrick.glow .bit{animation:drill .4s linear infinite}
@keyframes drill{50%{transform:translateY(6px)}}
.part-crane.glow .boom{animation:swing 1.2s ease-in-out infinite alternate;transform-box:view-box;transform-origin:905px 300px}
@keyframes swing{to{transform:rotate(-8deg)}}
.part-lifeboat.glow{animation:wobble .6s ease-in-out infinite alternate}
.part-galley.glow,.part-heli.glow,.part-tv.glow,.part-board.glow{animation:wobble 1s ease-in-out infinite alternate}
@keyframes wobble{to{transform:rotate(1.5deg) scale(1.03)}}
.pig{background:none;border:0;padding:0;font:inherit;position:absolute;z-index:3;transform-origin:50% 100%;transition:transform .4s var(--spring);filter:drop-shadow(0 6px 4px rgba(0,30,80,.25))}
.pig img{height:100%;width:auto;display:block;pointer-events:none}
.pig:hover{animation:hop .6s var(--spring)}
@keyframes hop{30%{transform:translateY(-14%) rotate(-6deg) scaleY(1.05)}60%{transform:translateY(0) rotate(4deg) scaleY(.94)}100%{transform:none}}
.pig .bubble{position:absolute;left:50%;bottom:100%;transform:translate(-50%,10px) scale(.5);opacity:0;background:#fff;color:var(--navy);
  font-family:var(--display);font-weight:700;font-size:clamp(11px,1.4vw,16px);padding:6px 12px;border-radius:22px;white-space:nowrap;
  box-shadow:0 6px 16px rgba(15,90,168,.3);transition:all .35s var(--spring);pointer-events:none}
.pig:hover .bubble,.pig:focus-visible .bubble{opacity:1;transform:translate(-50%,-6px) scale(1)}
.pig.sleeper{transform:rotate(-78deg);transform-origin:50% 90%}
.pig.sleeper:hover{animation:roll 1s ease-in-out}
@keyframes roll{40%{transform:rotate(-100deg) translateX(-8%)}100%{transform:rotate(-78deg)}}
.zzz{position:absolute;z-index:4;font-family:var(--display);font-weight:800;color:#fff;text-shadow:0 2px 0 var(--sea-deep);pointer-events:none}
.zzz span{position:absolute;animation:z 3s ease-in infinite;opacity:0}
.zzz span:nth-child(2){animation-delay:1s}.zzz span:nth-child(3){animation-delay:2s}
@keyframes z{0%{opacity:0;transform:translate(0,0) scale(.6)}20%{opacity:1}100%{opacity:0;transform:translate(30px,-50px) scale(1.3)}}
.beacon{position:absolute;z-index:4;border-radius:50%;pointer-events:none;mix-blend-mode:screen;animation:flash 1.2s steps(2) infinite}
@keyframes flash{0%{background:radial-gradient(closest-side,rgba(255,40,40,.9),transparent)}100%{background:radial-gradient(closest-side,rgba(60,120,255,.9),transparent)}}
.hint{position:relative;z-index:3;margin:-2px 0 0;background:var(--sea-deep);text-align:center;font-weight:800;color:#fff;font-size:16px;padding:6px 16px 14px}

/* Coming soon */
.coming{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:26px;align-items:center;margin-top:20px}
@media (max-width:720px){.coming{grid-template-columns:1fr;text-align:center}.coming img{margin:0 auto}}
.recipe li{margin:6px 0}
.sheet{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:26px;align-items:center;margin-top:22px}
@media (max-width:720px){.sheet{grid-template-columns:1fr}}
.sheet .paper{background:#fff;border-radius:40px;padding:18px;box-shadow:0 14px 30px rgba(15,90,168,.14);transition:transform .45s var(--spring)}
.sheet .paper:hover{transform:rotate(-2deg) scale(1.03)}
.sheet .paper img{display:block;width:100%;height:auto;border-radius:24px}

/* Footer */
footer{background:var(--navy);color:#dfefff;padding:30px 16px 40px;text-align:center}
footer h2{color:#fff;font-size:clamp(26px,4vw,36px)}
footer .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:14px 0}
footer .pill{background:#fff;color:var(--navy)}
footer nav{display:flex;gap:6px 16px;justify-content:center;flex-wrap:wrap;margin-top:10px}
footer nav a{color:#dfefff;font-weight:700}
footer small{display:block;max-width:62ch;margin:16px auto 0;font-size:15px;opacity:.85}

body.calm *, body.calm *::before, body.calm *::after{animation-play-state:paused !important;transition-duration:.01s !important;scroll-behavior:auto !important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}}
@media (max-width:600px){body{font-size:17px}.nav{top:8px}.nav img{height:36px}.pill{padding:7px 11px;font-size:15px}}

@media print{
  body *{visibility:hidden}
  #certificate,#certificate *{visibility:visible}
  #certificate{position:absolute;left:0;top:0;width:100%;box-shadow:none}
}
