@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--blue:#2343ea;--ink:#16265c;--yellow:#ffe15c;--paper:#f7f8fc;--line:#dce1ed;--muted:#5c6480}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 'DM Sans',sans-serif}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #db5900;outline-offset:5px}h1,h2,h3,.logo{font-family:'Space Grotesk',sans-serif;line-height:1.08}h1{font-size:clamp(3rem,6.5vw,6.8rem);letter-spacing:-.06em;margin:20px 0 26px;font-weight:600}h2{font-size:clamp(2rem,3.5vw,3.4rem);letter-spacing:-.045em;margin:12px 0 24px}h3{font-size:1.65rem;letter-spacing:-.03em}p{max-width:65ch}.demo{text-align:center;background:var(--ink);color:white;padding:7px 18px;font-size:.75rem;letter-spacing:.1em}header{display:flex;align-items:center;gap:24px;max-width:1600px;margin:auto;padding:24px 4%;border-bottom:1px solid var(--line)}.logo{font-size:2.3rem;font-weight:700;text-decoration:none;letter-spacing:-.08em;white-space:nowrap}.logo span{color:var(--blue);display:inline-block;font-size:1.5rem;vertical-align:top;margin-left:3px}nav{display:flex;gap:19px;margin:auto;flex-wrap:wrap}nav a{text-decoration:none;font-size:.875rem;font-weight:600}nav a:hover,nav a[aria-current]{color:var(--blue);text-decoration:underline;text-underline-offset:6px}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;background:var(--blue);color:#fff;text-decoration:none;border:0;border-radius:100px;padding:16px 25px;font-weight:700;min-height:50px;line-height:1.3}.button:hover{filter:brightness(.95);transform:translateY(-2px)}.small{font-size:.875rem;padding:13px 20px;white-space:nowrap}.yellow{background:var(--yellow);color:var(--ink)}.white{background:white;color:var(--ink)}.outline{border:1px solid var(--line);background:transparent;color:var(--ink)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;font-weight:700;display:block}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:6%;padding:65px 5% 55px;max-width:1500px;margin:auto;align-items:center}.hero h1 em{color:var(--blue);font-style:normal}.hero p{font-size:1.2rem;max-width:470px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}.hero-art{position:relative;background:var(--blue);border-radius:46% 46% 12% 12%;min-height:500px;display:flex;align-items:center;justify-content:center;padding:45px;isolation:isolate}.hero-art img{width:100%;max-height:440px;object-fit:contain;filter:drop-shadow(0 18px 16px #0b1b7766);transform:rotate(-5deg);border-radius:8px}.sticker{position:absolute;background:var(--yellow);color:var(--ink);font-weight:700;line-height:1.15;padding:22px;border-radius:50%;width:123px;height:123px;display:grid;place-content:center;text-align:center;right:-15px;top:25px;transform:rotate(12deg);z-index:2}.art-label{position:absolute;bottom:16px;color:white;font-size:.8rem;right:28px}.strip{background:var(--yellow);padding:19px 4%;display:flex;justify-content:space-around;gap:20px;font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.1rem;flex-wrap:wrap}.section{max-width:1400px;margin:auto;padding:65px 5%}.section-title{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px}.section-title h2{margin-bottom:0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:white;border:1px solid var(--line);border-radius:22px;overflow:hidden;padding:27px;display:flex;flex-direction:column;align-items:flex-start}.card h3{margin:18px 0 8px}.card p{margin:10px 0 24px;color:var(--muted)}.card .link{margin-top:auto}.link{background:none;border:0;padding:0;color:var(--blue);font-weight:700;text-decoration:underline;text-underline-offset:5px}.number{font-family:'Space Grotesk',sans-serif;font-size:3.5rem;line-height:1;color:var(--blue)}.tag{display:inline-block;font-size:.8rem;line-height:1.2;padding:8px 12px;border-radius:50px;background:#edf0ff;font-weight:700;color:var(--blue)}.blue-block{background:var(--blue);color:white;border-radius:28px;padding:48px;display:grid;grid-template-columns:1.2fr 1fr;gap:45px;align-items:center}.blue-block p{color:#e2e7ff}.passport{background:var(--yellow);color:var(--ink);padding:35px;border-radius:16px;transform:rotate(4deg);border:2px solid var(--ink);box-shadow:8px 8px 0 #10218f}.passport strong{font-family:'Space Grotesk';font-size:2.2rem;line-height:1.1;display:block}.stamps{display:flex;gap:12px;margin:25px 0}.stamp{width:60px;height:60px;border:2px dashed currentColor;border-radius:50%;display:grid;place-items:center;font-weight:700}.page-intro{padding:58px 5% 30px;max-width:1400px;margin:auto}.page-intro h1{font-size:clamp(3rem,5.7vw,5.5rem);max-width:950px}.page-intro p{font-size:1.15rem;color:var(--muted)}.two{display:grid;grid-template-columns:1fr 1fr;gap:32px}.feature{border-radius:25px;background:#e8edff;padding:35px}.feature.yellow{background:var(--yellow)}.feature ol{padding-left:22px}.feature li{padding:8px 0}.note{font-size:.875rem;color:var(--muted)}.book{width:100%;height:300px;object-fit:contain;margin-bottom:20px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:flex;flex-direction:column;gap:8px;font-weight:600;font-size:.9rem}input,select,textarea{padding:12px;border:1px solid #aab4ce;background:white;color:var(--ink);border-radius:10px;min-width:0;width:100%}.full{grid-column:1/-1}textarea{min-height:130px;resize:vertical}.game-shell{max-width:1120px;margin:0 auto;padding:40px 5% 70px}.game-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.game-panel{background:white;border:1px solid var(--line);padding:40px;border-radius:28px}.game-panel h1{font-size:clamp(2.7rem,5vw,4.7rem)}.game-panel h2{font-size:clamp(1.9rem,3vw,2.7rem)}.choices{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.choice{border:2px solid var(--line);background:white;border-radius:16px;padding:20px;text-align:left;color:var(--ink);font-weight:600;min-height:75px}.choice:hover{border-color:var(--blue);background:#f1f4ff}.choice.selected{border-color:var(--blue);background:#edf1ff;box-shadow:0 0 0 2px var(--blue)}.choice:disabled{cursor:default}.choice.correct{border-color:#157546;background:#e7f8ed}.choice.wrong{border-color:#a05015;background:#fff4e5}.choice span{display:block;font-weight:400;font-size:.875rem;margin-top:6px}.progress{height:8px;background:#e3e7f3;border-radius:10px;overflow:hidden;margin:20px 0 30px}.progress div{height:100%;background:var(--blue)}.feedback{padding:20px;border-radius:16px;background:#e7f8ed;margin:20px 0;color:#125335}.feedback.retry{background:#fff4e5;color:#783b10}.observation{padding:20px 25px;border-left:4px solid var(--blue);background:#edf1ff;margin:20px 0}.route-pills{display:flex;gap:12px;flex-wrap:wrap}.route-pills .choice{flex:1}.result{text-align:center}.result .stamps{justify-content:center}.result .stamp{width:80px;height:80px;color:var(--blue);background:var(--yellow)}.result p{margin:20px auto}.result .actions{justify-content:center}.story-text{font-size:1.15rem;line-height:1.85}.story-text p{max-width:800px}.source{font-size:.85rem;color:var(--muted)}footer{background:var(--ink);color:white;padding:45px 5%;display:flex;align-items:center;gap:25px;flex-wrap:wrap}footer .logo span{color:var(--yellow)}footer p{font-size:.95rem}footer div{display:flex;gap:25px;margin-left:auto;flex-wrap:wrap}footer a{font-size:.875rem}footer small{width:100%;border-top:1px solid #ffffff30;padding-top:20px;color:#c9d0ed}dialog{border:0;border-radius:24px;padding:42px;max-width:700px;width:calc(100% - 30px);max-height:85vh;color:var(--ink)}dialog::backdrop{background:#10204c99;backdrop-filter:blur(4px)}.close{float:right;border:0;background:#edf1ff;border-radius:50%;font-size:1.7rem;width:44px;height:44px;color:var(--ink)}.skip{position:absolute;top:-100px;background:white;padding:10px;z-index:10}.skip:focus{top:0}.social-label{font-family:'Space Grotesk';font-size:1.6rem;font-weight:700}.hidden{display:none!important}@media(min-width:1450px){nav{gap:24px}}@media(max-width:1180px){header{flex-wrap:wrap}nav{order:3;width:100%;justify-content:center}header>.button{margin-left:auto}.hero-art{min-height:420px}.hero{gap:4%}}@media(max-width:760px){header{padding:18px 5%;gap:12px}nav{flex-wrap:nowrap;overflow:auto;justify-content:flex-start;gap:20px;padding:10px 0}nav a{white-space:nowrap;font-size:.875rem}.demo{font-size:.7rem}.hero{grid-template-columns:1fr;padding-top:32px;gap:30px}.hero h1{font-size:3.8rem}.hero-art{min-height:360px;margin:0 18px 15px}.hero-art img{max-height:320px}.sticker{right:-15px;width:100px;height:100px;font-size:.875rem}.grid,.two,.blue-block{grid-template-columns:1fr}.section{padding-top:42px;padding-bottom:42px}.section-title{display:block}.section-title>a{display:inline-block;margin-top:20px}.blue-block{padding:28px;gap:24px}.passport{transform:rotate(2deg);margin:10px}.choices,.fields{grid-template-columns:1fr}.game-panel{padding:25px}.game-top{align-items:flex-start;font-size:.85rem}.route-pills{display:grid}.strip{font-size:.9rem;justify-content:center}.strip span:last-child{display:none}.page-intro{padding-top:35px}.page-intro h1{font-size:3.3rem}footer{gap:12px}footer div{margin:15px 0}.game-shell{padding-top:25px}dialog{padding:25px}.logo{font-size:2rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{header,footer,.demo,.no-print{display:none}body{background:white}.game-panel{border:0}.game-shell{max-width:none}.result{margin-top:50px}}
/* Tripinhas: six-piece reward puzzle */
.hero-art:has(.mascot-hero){background:#e6f4ff;border-radius:38px;min-height:500px}.hero-art .mascot-hero{width:auto;max-width:100%;height:440px;max-height:440px;object-fit:contain;transform:none;filter:none;border-radius:0}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:30px;align-items:start}.question-area .choices{grid-template-columns:1fr}.puzzle-card{margin:0;padding:18px;background:#eef1ff;border:1px solid var(--line);border-radius:20px;text-align:center}.puzzle-card figcaption{margin-bottom:14px}.puzzle-card figcaption strong{display:block;font-size:1.2rem}.puzzle-card .eyebrow{font-size:.75rem;letter-spacing:.06em}.puzzle-card p{font-size:.875rem;margin:12px 0 0}.puzzle-board{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr);aspect-ratio:225/400;width:100%;overflow:hidden;border:3px solid var(--blue);border-radius:12px;background:#e6f4ff}.puzzle-piece{display:grid;place-items:center;background:#dce3fc;border:1px solid #a9b6e6;color:#324b9b;font-weight:700;font-size:1.7rem}.puzzle-piece.revealed{background-image:url('tripinhas-transparente.png');background-size:200% 300%;background-position:var(--x) var(--y);border-color:#fff4}.puzzle-piece.revealed span{visibility:hidden}.puzzle-piece.new-piece{animation:reveal-piece .5s ease-out}.puzzle-board.complete .puzzle-piece{border-color:transparent}.tripinhas-message{background:var(--blue);border-radius:24px;color:white;padding:32px;text-align:left;align-self:center}.tripinhas-message .note{color:#e0e6ff}.final-layout{grid-template-columns:250px minmax(0,1fr);max-width:780px;margin:30px auto}.game-preview-mascot{float:right;margin:0 0 20px 25px;background:#e6f4ff;border-radius:20px;padding:10px}.game-preview-mascot img{width:100px;height:auto;display:block}.stamps{flex-wrap:wrap}.passport .stamp{width:45px;height:45px}@keyframes reveal-piece{from{opacity:.1;filter:brightness(2)}to{opacity:1;filter:brightness(1)}}@media(max-width:760px){.hero-art:has(.mascot-hero){min-height:390px}.hero-art .mascot-hero{height:350px}.game-layout,.final-layout{grid-template-columns:1fr}.puzzle-card{width:205px;max-width:100%;margin:0 auto;grid-row:1}.puzzle-board{max-height:270px;width:auto;max-width:100%;margin:auto}.game-layout{gap:22px}.final-layout .puzzle-card{width:225px}.game-preview-mascot{float:none;display:none}.tripinhas-message{padding:24px}.game-panel .game-top{flex-wrap:wrap}.hero-art{padding:20px}}@media(prefers-reduced-motion:reduce){.puzzle-piece.new-piece{animation:none}}@media print{.game-layout.final-layout{grid-template-columns:200px 1fr}.puzzle-piece{print-color-adjust:exact;-webkit-print-color-adjust:exact}.tripinhas-message{background:white;color:var(--ink);padding:10px}.puzzle-card{break-inside:avoid}.result h1{font-size:3rem}}
/* The envelope is the game's collection control and animation destination. */
.envelope-card{background:#edf1ff}.reward-stage{position:relative;height:285px;isolation:isolate}.envelope-icon{position:relative;width:100%;line-height:0}.envelope-icon svg{width:100%;height:auto;display:block}.envelope-seal{position:absolute;left:42%;top:57%;background:var(--blue);color:white;border:3px solid white;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-weight:700;font-size:18px;line-height:1}.reward-envelope{position:absolute;width:205px;max-width:100%;left:50%;bottom:12px;transform:translateX(-50%);z-index:2}.reward-piece{position:absolute;top:20px;left:calc(50% - 45px);width:90px;height:106.67px;background-image:url('tripinhas-transparente.png');background-size:200% 300%;background-position:var(--x) var(--y);border:3px solid var(--yellow);border-radius:10px;box-shadow:0 9px 22px #16265c44;opacity:0;z-index:3}.collected-pieces{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}.collected-pieces span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px dashed #7282b8;color:#4e5f93;font-size:.875rem}.collected-pieces .collected{background:var(--blue);border:1px solid var(--blue);color:white}.assembly-stage{position:relative;padding-bottom:140px;isolation:isolate}.assembly-stage .puzzle-board{overflow:visible;border-radius:0;background:#dce3fc;border:0}.assembly-tile{position:relative;z-index:3;border-color:transparent!important}.assembly-envelope{position:absolute;bottom:0;left:50%;width:190px;max-width:100%;transform:translateX(-50%);z-index:1}.assembly-card .link{margin-top:15px}.awaiting-assembly{visibility:hidden}.button:disabled,.link:disabled{cursor:wait;opacity:.6;transform:none}.question-area .choices{grid-template-columns:1fr 1fr}.assembly-card{overflow:visible}@media(max-width:760px){.question-area .choices{grid-template-columns:1fr}.envelope-card{width:100%}.reward-stage{height:220px;max-width:240px;margin:auto}.reward-piece{top:0;width:72px;height:85.33px;left:calc(50% - 36px)}.reward-envelope{width:170px;bottom:0}.assembly-card{width:225px!important}.assembly-stage .puzzle-board{width:169px;height:300.44px;max-height:none}.assembly-stage{padding-bottom:120px}.assembly-envelope{width:170px}}@media print{.assembly-envelope,.envelope-card{display:none}.assembly-stage{padding-bottom:0}.assembly-tile{transform:none!important;opacity:1!important}.awaiting-assembly{visibility:visible}}

/* A bright setting for the transparent mascot. */
.hero-art:has(.mascot-hero){background:radial-gradient(ellipse at 50% 43%,#ffe985 0%,#fff1b3 33%,transparent 34%),linear-gradient(150deg,#e1f6ff 0%,#c9eaff 62%,#aaceff 100%);border-radius:48% 48% 22% 22%;border:1px solid #b9ddf7;box-shadow:0 20px 50px #2343ea12}.hero-art .mascot-hero{filter:drop-shadow(0 12px 8px #173b711f)}.hero-art .sticker{box-shadow:0 8px 20px #2343ea1a;border:2px solid white}.game-preview-mascot{background:linear-gradient(145deg,#fff0a5,#d6f0ff)}.reward-piece,.puzzle-piece.revealed{background-color:#e6f4ff}.assembly-stage .puzzle-board{background:#e6f4ff}

/* Mobile navigation and comfortable touch layouts. */
.menu-toggle{display:none;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);font-weight:700}
main,.hero>*,.grid>*,.two>*,.game-layout>*,.fields>*{min-width:0}
img{max-width:100%}input,select,textarea{font-size:1rem}
@media screen and (max-width:760px){
 body{font-size:1rem;overflow-wrap:break-word}
 .demo{font-size:.75rem;letter-spacing:.03em;padding:7px 16px;line-height:1.45}
 header{padding:12px 16px;gap:10px;display:flex;flex-wrap:wrap}
 header .logo{font-size:1.9rem;margin-right:auto}
 header>.button{order:1;margin-left:0;min-height:44px;padding:10px 14px;gap:8px;white-space:normal}
 .navigation-ready .menu-toggle{display:inline-flex;order:2}
 header nav{order:3;display:flex;flex-wrap:wrap;overflow:visible;gap:4px;width:100%;padding:8px 0 0}
 .navigation-ready header nav{display:none}
 .navigation-ready header.menu-open nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 header nav a{display:flex;align-items:center;min-height:48px;padding:10px 12px;border-radius:10px;white-space:normal;background:#edf1ff;font-size:.9375rem}
 .hero{padding:28px 20px 32px;gap:22px}
 .hero h1,.page-intro h1{font-size:clamp(2.4rem,10vw,3.8rem);letter-spacing:-.045em}
 .hero h1{margin:14px 0 20px}.hero p,.page-intro p,.story-text{font-size:1rem}
 .hero-art:has(.mascot-hero){min-height:0;height:330px;margin:0 8px;padding:20px}
 .hero-art .mascot-hero{height:300px;max-height:100%;width:auto}
 .sticker{right:-6px;top:12px;width:88px;height:88px;padding:12px}
 .eyebrow{font-size:.875rem;letter-spacing:.07em}
 .section,.page-intro{padding-left:20px;padding-right:20px}
 .section{padding-top:32px;padding-bottom:32px}
 .card,.feature{padding:22px}.blue-block{padding:24px;gap:18px}
 .passport{padding:22px;margin:4px;transform:none}.passport strong{font-size:1.8rem}.stamps{gap:8px}
 .section-title h2,h2{font-size:clamp(1.8rem,7vw,2.5rem)}
 .actions{gap:10px;margin:20px 0}.actions>.button{width:100%;gap:12px}
 .link{display:inline-flex;align-items:center;min-height:44px;line-height:1.5}
 .game-shell{padding:20px 12px 40px}.game-panel{padding:20px 16px;border-radius:20px}
 .game-shell>.game-top{flex-wrap:wrap;gap:8px;margin-bottom:12px}
 .game-top>a{display:inline-flex;align-items:center;min-height:44px}
 .game-panel h1{font-size:clamp(2.2rem,9vw,3.2rem)}
 .game-panel h2{font-size:clamp(1.6rem,6.5vw,2.2rem);line-height:1.2}
 .game-panel .game-top{gap:8px;margin-bottom:12px;font-size:.875rem}
 .progress{margin:12px 0 18px}.game-layout{gap:20px}
 .choice{padding:16px;min-height:56px;font-size:1rem;line-height:1.45}
 .choices{gap:12px;margin:18px 0}.observation,.feedback{padding:16px;margin:16px 0}
 .envelope-card{display:grid;grid-template-columns:minmax(0,1fr) 116px;column-gap:8px;align-items:center;padding:12px;border-radius:16px}
 .envelope-card figcaption{grid-column:1;grid-row:1;margin:0;text-align:left}
 .envelope-card figcaption strong{font-size:1rem}.puzzle-card .eyebrow{font-size:.875rem}
 .envelope-card .reward-stage{grid-column:2;grid-row:1/4;width:116px;height:135px;margin:0;max-width:100%}
 .reward-piece{width:52px;height:61.63px;left:calc(50% - 26px);top:0}
 .reward-envelope{width:116px;bottom:0}.reward-envelope .envelope-seal{width:24px;height:24px;font-size:14px;border-width:2px}
 .envelope-card .collected-pieces{grid-column:1;grid-row:2;justify-content:flex-start;gap:4px;margin-top:8px}
 .envelope-card .collected-pieces span{width:24px;height:24px}
 .envelope-card p{grid-column:1;grid-row:3;text-align:left;font-size:.875rem;line-height:1.4;margin:8px 0 0}
 .final-layout{margin:20px auto}.tripinhas-message{padding:22px}.tripinhas-message .button{width:100%}
 footer{padding:32px 20px max(24px,env(safe-area-inset-bottom));gap:10px}
 footer p{margin:8px 0}footer div{display:grid;gap:4px;width:100%;margin:8px 0}
 footer div a{display:flex;align-items:center;min-height:44px;font-size:.9375rem}
 dialog{padding:22px 18px;max-height:85dvh;overflow:auto;overscroll-behavior:contain}
 dialog h2{clear:both;padding-top:12px}input,select,textarea{min-height:48px}
}
@media screen and (max-width:359px){
 header .logo{font-size:1.65rem}header>.button{font-size:.8125rem;padding:10px}.menu-toggle{padding:10px;font-size:.875rem}
 .hero-art:has(.mascot-hero){height:290px}.hero-art .mascot-hero{height:260px}
 .envelope-card{grid-template-columns:minmax(0,1fr) 100px}.envelope-card .reward-stage{width:100px}.reward-envelope{width:100px}
}
@media print{.menu-toggle{display:none!important}}
/* Reading notes connect places, discoveries and missions. */
.theme-list{display:grid;grid-template-columns:1fr 1fr;gap:16px}.theme{background:white;border:1px solid var(--line);border-radius:18px;padding:20px}.theme summary,.discovery summary,.mission-clue summary{cursor:pointer;font-weight:700;min-height:44px;padding:10px 0}.theme summary span{font-weight:400;font-size:.875rem;display:block;color:var(--muted)}.theme ul{padding-left:22px}.theme li{padding:4px 0}.discovery{width:100%;border-top:1px solid var(--line);margin-top:auto}.discovery p{color:var(--ink);margin-bottom:20px}.mission-clue{margin-top:12px}.mission-clue p{margin:8px 0}.source a{display:inline-block;padding:8px 0;min-height:44px}.feedback .source{margin:8px 0 0}.card .source{margin-top:12px}@media(max-width:760px){.theme-list{grid-template-columns:1fr}.theme{padding:16px}}
/* Clear editorial roles, with a geographic atlas at the centre. */
.institutions{background:var(--ink);color:white;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:48px}.institutions p{color:#dce5ff}.institution-links{display:grid;gap:16px;align-content:center}.institution-links a{display:grid;gap:8px;padding:26px;border:1px solid #ffffff50;border-radius:20px;text-decoration:none}.institution-links a:hover{background:#ffffff10}.institution-links strong{font:600 2rem 'Space Grotesk',sans-serif;color:var(--yellow)}.institution-links span:last-child{font-size:.875rem;color:#dce5ff}.identity{display:grid;grid-template-columns:320px 1fr;gap:70px;align-items:center}.identity-portrait{background:radial-gradient(ellipse,#ffe78c,transparent 70%);text-align:center}.identity-portrait img{height:420px;width:auto;object-fit:contain}.personality{display:flex;flex-wrap:wrap;gap:10px}.personality span{background:#e5eaff;padding:8px 16px;border-radius:50px;font-weight:600}.atlas-section{padding-top:12px}.map-spotlights{display:flex;gap:16px;margin-bottom:22px}.map-spotlights button{background:var(--ink);color:white;border:2px solid var(--ink);padding:18px 24px;border-radius:18px;text-align:left;flex:1;min-height:80px}.map-spotlights button span{display:block;font-size:.75rem;letter-spacing:.12em;color:var(--yellow)}.map-spotlights button strong{font-size:1.3rem}.map-spotlights button[aria-pressed=true]{background:var(--blue);border-color:var(--blue)}.atlas-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:24px;align-items:start}.atlas-main{min-width:0}.map-tools{display:flex;gap:12px;align-items:end;margin-bottom:14px}.map-tools label{flex:1;min-width:0}.map-tools .button{white-space:normal;min-height:48px}#tripinhas-map{height:540px;border:1px solid var(--line);border-radius:24px;background:#e9eef6;z-index:0;font-family:'DM Sans',sans-serif}.map-loading{padding:28px}.leaflet-control-attribution{font-size:11px!important}.leaflet-control-zoom a{width:44px!important;height:44px!important;line-height:44px!important}.tripinhas-pin{background:var(--blue);color:white;border:3px solid white;border-radius:50%;box-shadow:0 3px 10px #16265c60;display:grid;place-items:center;font-weight:700;font-size:14px}.tripinhas-pin.featured-pin{background:var(--yellow);color:var(--ink);border-color:var(--ink);font-size:18px}.tripinhas-pin:focus-visible{outline:4px solid #db5900;outline-offset:3px}.map-detail{background:white;padding:28px;border-radius:24px;border:1px solid var(--line);scroll-margin-top:20px;min-width:0}.map-detail .map-number{display:block;font:600 3.5rem 'Space Grotesk',sans-serif;color:var(--blue);margin-top:12px;line-height:1.2}.map-detail h2{font-size:2rem;line-height:1.15;margin:12px 0 20px}.map-detail h3{font-size:1.25rem;line-height:1.35}.map-detail p{font-size:1rem}.map-challenge{background:#fff2b8;border-radius:14px;padding:18px}.map-challenge p{margin-bottom:0}.map-detail .actions{margin-bottom:0}.map-directory{margin-top:18px;background:white;border:1px solid var(--line);border-radius:18px;padding:16px}.map-directory summary{cursor:pointer;padding:12px 4px;font-weight:700;min-height:48px}.map-directory>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:12px}.map-directory button{background:#edf1ff;border:1px solid var(--line);border-radius:10px;padding:12px;text-align:left;min-height:48px;color:var(--ink)}.map-directory button[aria-pressed=true]{background:var(--blue);color:white}.story-lead{max-width:750px;margin-bottom:32px}.outings{display:grid;grid-template-columns:1fr 1fr;gap:24px}.outing{display:flex;gap:22px;padding:28px;background:white;border:1px solid var(--line);border-radius:24px}.outing:nth-child(-n+2){background:#edf1ff}.outing .number{font-size:2.3rem}.outing h2{font-size:1.8rem;line-height:1.2}.outing .tag{line-height:1.5}.featured-book{display:grid;grid-template-columns:280px 1fr;gap:40px;align-items:center;background:white;border:1px solid var(--line);padding:35px;border-radius:26px}.featured-book .book{height:330px;margin:0}.featured-book h2{font-size:2.4rem}.collection{background:#edf1ff;border-radius:28px}.volume-list{display:grid;gap:12px;margin-top:28px}.volume-list article{display:flex;align-items:center;gap:24px;padding:24px;background:white;border-radius:16px}.volume-number{font:600 2.5rem 'Space Grotesk',sans-serif;color:var(--blue)}.volume-list h3{margin:0 0 8px}.volume-list p{margin:0}.volume-list .link{margin-left:auto;flex-shrink:0}.question-area>.observation{font-size:.9375rem}.question-area>.eyebrow{color:var(--muted)}
@media(max-width:1000px){.atlas-layout{grid-template-columns:1fr 1fr}#tripinhas-map{height:500px}.identity{gap:30px;grid-template-columns:240px 1fr}.outings{grid-template-columns:1fr}.volume-list article{flex-wrap:wrap}.volume-list .link{margin-left:0}.map-directory>div{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.institutions,.identity,.atlas-layout,.featured-book{grid-template-columns:1fr;gap:24px}.institutions{padding:36px 20px}.institutions h2{font-size:2rem}.identity{padding-top:10px}.identity-portrait img{height:270px}.institution-links a{padding:20px}.map-spotlights{gap:10px}.map-spotlights button{padding:14px;min-width:0}.map-spotlights button strong{font-size:1rem}.map-spotlights button span{font-size:.75rem;letter-spacing:.05em}.map-tools{gap:8px}.map-tools .button{font-size:.875rem;padding:12px}#tripinhas-map{height:360px;border-radius:18px}.map-detail{padding:22px}.map-directory>div{grid-template-columns:1fr}.map-detail h2{font-size:1.8rem}.map-detail .map-number{font-size:2.7rem}.outing{padding:22px;gap:14px}.outing .number{font-size:1.8rem}.outing h2{font-size:1.6rem}.featured-book{padding:24px}.featured-book h2{font-size:1.9rem}.featured-book .book{height:270px}.collection{border-radius:0}.volume-list article{gap:16px;padding:20px}.volume-list article>div{flex:1;min-width:0}.volume-list .link{width:100%}.volume-list h3{font-size:1.4rem}}
/* A playful story atlas: conceptual stops, with no geographic navigation. */
.adventure-intro{padding-bottom:18px}.adventure-intro h1{font-size:clamp(2.5rem,5vw,4.5rem);margin-bottom:16px}.adventure-intro em{font-style:normal;color:var(--blue)}.adventure-intro p{margin-bottom:0}.adventure-toolbar{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.adventure-toolbar label{max-width:460px;flex:1}.adventure-toolbar button:disabled{cursor:default}.adventure-layout{grid-template-columns:minmax(0,1fr) 320px}.adventure-board{position:relative;height:710px;isolation:isolate;border:2px solid #b8d4ec;border-radius:32px;background:#eaf5ff;box-shadow:0 10px 0 #dbe7f3;overflow:hidden}.adventure-board::before{content:'';position:absolute;inset:0;background:linear-gradient(#ffffff35,#ffffff10),url('porto-aventuras.webp') center/cover;z-index:-1}.board-heading{position:absolute;left:24px;right:24px;top:22px;display:flex;justify-content:space-between;align-items:center;gap:12px}.board-heading span:first-child{font-weight:800;font-size:.875rem;letter-spacing:.08em;background:#fffefaee;border-radius:50px;padding:8px 14px}.board-heading span:last-child{font-size:.875rem;font-weight:600;background:#fffefaee;padding:6px 12px;border-radius:50px}.adventure-trail{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.adventure-trail polyline{fill:none;stroke:#2343ea88;stroke-width:4;stroke-dasharray:3 12;stroke-linecap:round;vector-effect:non-scaling-stroke;animation:trail-travel 12s linear infinite}.adventure-stop{position:absolute;left:var(--stop-x);top:var(--stop-y);transform:translate(-50%,-26px);display:flex;flex-direction:column;align-items:center;gap:5px;width:130px;border:0;background:transparent;padding:0;color:var(--ink);z-index:2;animation:stop-arrive .5s both;animation-delay:var(--stop-delay)}.stop-disc{display:grid;place-items:center;min-width:52px;height:52px;border:3px solid white;border-radius:50%;background:var(--blue);box-shadow:0 4px 0 #12257c,0 7px 16px #16265c33;color:white;font:700 1.2rem 'Space Grotesk',sans-serif;transition:scale .2s,background .2s}.stop-label{display:block;padding:5px 9px;background:#fffffff5;border:1px solid #dce1ed;border-radius:10px;font-size:.875rem;line-height:1.2;font-weight:700;box-shadow:0 2px 3px #16265c15;max-width:130px}.stop-featured{font-size:.75rem;font-weight:700;line-height:1.2;background:var(--ink);color:white;border-radius:50px;padding:4px 8px}.hero-stop .stop-disc{background:var(--yellow);color:var(--ink);border-color:var(--ink)}.adventure-stop:hover .stop-disc,.adventure-stop:focus-visible .stop-disc{scale:1.13}.adventure-stop[aria-pressed=true]{z-index:3}.adventure-stop[aria-pressed=true] .stop-disc{background:var(--yellow);color:var(--ink);border-color:var(--ink);animation:stop-bob 2.6s ease-in-out infinite}.adventure-stop[aria-pressed=true] .stop-label{background:var(--ink);color:white;border-color:var(--ink)}.adventure-stop:focus-visible{outline:3px solid #db5900;outline-offset:7px;border-radius:12px}.board-guide{position:absolute;left:13px;bottom:14px;display:flex;align-items:center;gap:12px;pointer-events:none}.board-guide img{height:118px;width:auto;animation:guide-float 4s ease-in-out infinite}.board-guide>span{font-size:.875rem;line-height:1.25;font-weight:700;background:#fff7c7;padding:12px 16px;border:2px solid var(--ink);border-radius:18px;box-shadow:3px 3px 0 var(--ink)}.board-note{margin:18px 8px 0}.adventure-detail{position:sticky;top:20px;border:2px solid var(--ink);box-shadow:5px 5px 0 #dce5ff}.adventure-detail .map-number{font-size:2.8rem}.adventure-detail h2{font-size:1.7rem}.adventure-detail .actions .button{width:100%;font-size:.9375rem}.adventure-modal .map-number{display:none}.adventure-modal .map-challenge{margin-top:18px}.motion-paused *{animation-play-state:paused!important}.motion-paused .adventure-stop{animation:none!important}.motion-paused .stop-disc{animation:none!important}.adventure-toolbar .button{min-height:48px}
@keyframes trail-travel{to{stroke-dashoffset:-150}}@keyframes stop-bob{0%,100%{translate:0 0}50%{translate:0 -5px}}@keyframes guide-float{0%,100%{translate:0 0;rotate:-2deg}50%{translate:0 -6px;rotate:2deg}}@keyframes stop-arrive{from{opacity:0;scale:.8}to{opacity:1;scale:1}}
@media(max-width:1150px){.adventure-layout{grid-template-columns:1fr}.adventure-detail{position:static}.adventure-detail .actions .button{width:auto}.adventure-board{height:700px}.board-guide{left:auto;right:16px}}
@media(max-width:760px){.adventure-toolbar{align-items:stretch;flex-wrap:wrap;gap:12px}.adventure-toolbar label{flex-basis:100%;max-width:none}.adventure-toolbar button{font-size:.875rem;padding:10px 16px}.adventure-board{height:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 8px;padding:84px 10px 22px;border-radius:22px}.adventure-board::before{background-size:auto 100%;opacity:.6}.board-heading{top:18px;left:14px;right:14px;display:block}.board-heading span:first-child{display:inline-block;font-size:.75rem;padding:6px 10px}.board-heading span:last-child{display:none}.adventure-stop{position:relative;left:auto;top:auto;transform:none;width:100%;min-height:108px;align-self:start;gap:6px}.stop-disc{min-width:48px;height:48px;font-size:1.05rem}.stop-label{font-size:.875rem;padding:5px 6px;max-width:100%;overflow-wrap:normal;hyphens:auto;line-height:1.2}.stop-featured{font-size:.75rem;padding:4px 6px}.adventure-trail{display:none}.adventure-board::after{content:'';position:absolute;top:104px;bottom:130px;left:50%;border-left:3px dotted #2343ea45;z-index:-1}.board-guide{position:static;grid-column:2/4;justify-content:center;gap:6px;align-self:center}.board-guide img{height:110px}.board-guide>span{font-size:.75rem;padding:9px;max-width:105px}.adventure-detail{padding:22px}.adventure-intro h1{font-size:clamp(2.2rem,9vw,3.4rem)}.adventure-modal .actions .button{width:100%}}
@media(prefers-reduced-motion:reduce){.adventure-board *{animation:none!important;transition:none!important}.adventure-stop{opacity:1;scale:1}}
@media(min-width:761px){.adventure-board::before{background-size:100% 100%}.board-guide{left:16px;right:auto;bottom:10px}.board-guide img{height:84px}.board-guide>span{font-size:.75rem;padding:9px 12px}}
