.scf .science-library h2,.scf .tripadvisor-card h2 { font-size:clamp(28px,4vw,46px); margin:0 0 .35em; }
.scf .science-library-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr)); gap:20px; margin-top:24px; }
.scf .science-library article,.scf .tripadvisor-card { padding:clamp(20px,4vw,36px); border:2px solid #9fcde7; border-radius:23px; background:#e7f6ff; box-shadow:4px 5px #c6e9fb; }
.scf .science-library article:nth-child(2) { background:#fff4c5; border-color:#d9ba57; box-shadow:4px 5px #f3df9a; }
.scf .science-library article h3 { margin:0 0 .35em; }
.scf .science-library article p { margin-bottom:14px; }
.scf .tripadvisor-section { padding-block:34px; }
.scf .tripadvisor-card { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px 30px; }
.scf .tripadvisor-card p { margin:0; }
.scf .coaster-hero { background:#d9f1ff; border-bottom:4px solid #ffda43; padding:clamp(26px,6vw,70px) 0; }
.scf .coaster-hero h1 { font-size:clamp(44px,7vw,82px); line-height:1.04; margin:16px 0; }
.scf .coaster-hero p { font-size:clamp(17px,2vw,20px); max-width:650px; }
.scf .coaster-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr)); gap:22px; }
.scf .coaster-card { display:grid; grid-template-rows:1fr auto; height:100%; overflow:hidden; background:white; border:2px solid #b8dfef; border-radius:18px; box-shadow:4px 5px #c7eafb; text-decoration:none; }
.scf .coaster-card:hover { border-color:#1869ba; }
.scf .coaster-card img { object-fit:contain; width:100%; height:auto; aspect-ratio:1; background:#edf8ff; }
.scf .coaster-card span { padding:14px; font-size:19px; font-weight:850; }
.scf .coaster-dialog { width:min(100% - 24px,1000px); max-height:calc(100dvh - 24px); border:2px solid #87b9dd; border-radius:20px; background:#f3faff; color:#123d77; padding:clamp(10px,2vw,21px); }
.scf .coaster-dialog::backdrop { background:#092745db; }
.scf .coaster-dialog-head,.scf .coaster-dialog-meta { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.scf .coaster-dialog-head h2 { font-size:clamp(20px,4vw,30px); margin:0; }
.scf .coaster-dialog button { cursor:pointer; }
.scf .coaster-dialog :is([data-coaster-close],[data-coaster-prev],[data-coaster-next]) { flex:none; width:44px; height:44px; border:1px solid #93bedb; border-radius:10px; color:#123d77; background:#fff; font-size:26px; }
.scf .coaster-stage { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; margin:8px 0; }
.scf .coaster-stage a { display:block; background:#deedf7; }
.scf .coaster-stage img { display:block; width:100%; height:min(60dvh,670px); object-fit:contain; }
.scf .coaster-dialog-meta { padding:3px 0 9px; font-size:14px; font-weight:800; }
.scf .coaster-dialog-meta a { text-decoration:underline; }
.scf .coaster-thumbs { display:flex; gap:7px; padding:5px; overflow:auto; }
.scf .coaster-thumbs button { flex:0 0 65px; height:58px; background:white; border:2px solid #bad9eb; border-radius:6px; padding:2px; }
.scf .coaster-thumbs button[aria-current] { border-color:#174b82; outline:2px solid #ffc948; }
.scf .coaster-thumbs img { width:100%; height:100%; object-fit:contain; }
.scf :is(.coaster-dialog,.coaster-section) :is(a,button):focus-visible { outline:3px solid #215c9d; outline-offset:2px; }
body:has(.coaster-dialog[open]) { overflow:hidden; }
@media(max-width:480px) { .scf .coaster-stage { gap:3px; } .scf .coaster-stage button { width:34px; } }
