
.mascot-boundary-running .boundary-character{scale:-1 1;}
.mario-intro-inner{min-height:1080px;}
.sojeong-emergence{position:absolute;right:-10px;top:65px;width:620px;height:900px;pointer-events:none;}
.sojeong-emergence .mario-intro-character{position:absolute;top:0;left:0;right:auto;width:100%;height:auto;margin:0;z-index:2;}
.intro-ball{position:absolute;width:72%;height:auto;left:14%;bottom:0;}
.intro-ball-back{z-index:1;}.intro-ball-front{z-index:3;}
.intro-release-light{position:absolute;z-index:1;bottom:100px;left:14%;width:72%;height:500px;background:radial-gradient(ellipse at center bottom,#fffde4 0,#ffe48c99 25%,transparent 68%);opacity:0;}
.mario-intro.is-armed .sojeong-emergence .mario-intro-character{opacity:0;transform:translateY(440px) scale(.1);transform-origin:50% 85%;}
.mario-intro.is-armed.is-revealed .sojeong-emergence .mario-intro-character{opacity:1;transform:none;transition:none;animation:mascot-launch 1.5s .25s cubic-bezier(.16,1,.3,1) both;}
.mario-intro.is-revealed .intro-release-light{animation:release-flash 1.7s ease-out both;}
@keyframes mascot-launch{0%{opacity:0;transform:translateY(440px) scale(.1);}20%{opacity:1;}70%{transform:translateY(-30px) scale(1.05);}100%{opacity:1;transform:none;}}
@keyframes release-flash{0%{opacity:0;scale:.5;}25%{opacity:1;scale:1.1;}100%{opacity:.12;scale:1.2;}}
.presenter-nav{position:fixed;right:22px;bottom:18px;z-index:500;display:flex;align-items:center;gap:12px;background:#fffef1ed;color:#204679;padding:8px;border:1px solid #20467922;border-radius:40px;box-shadow:0 4px 24px #12345a22;font-size:12px;}
.presenter-nav button{border:0;background:#1675e8;color:white;border-radius:30px;padding:10px 16px;font-weight:800;}.presenter-nav button:disabled{opacity:.35;cursor:default;}.pt-active .presenter-nav{display:none;}
@media(min-width:1600px){.sojeong-emergence{width:680px;right:-90px;top:35px;height:940px;}.mario-intro-inner{min-height:1120px;}}
@media(max-width:1000px) and (min-width:701px){.sojeong-emergence{width:57%;right:-3%;top:180px;height:740px;}.mario-intro-inner{min-height:1030px;}}
@media(max-width:700px){.sojeong-emergence{position:relative;width:100%;right:auto;top:auto;height:auto;aspect-ratio:.72;margin-top:28px;}.mario-intro-inner{min-height:0;padding-bottom:100px;}.sojeong-emergence .mario-intro-character{top:0;width:100%;max-width:none;}.presenter-nav{right:10px;bottom:10px;gap:8px;font-size:10px;}.presenter-nav button{padding:9px 12px;}.intro-release-light{height:300px;}}
@media(prefers-reduced-motion:reduce){.mario-intro.is-armed .sojeong-emergence .mario-intro-character,.mario-intro.is-armed.is-revealed .sojeong-emergence .mario-intro-character{opacity:1;transform:none;animation:none;}.mario-intro.is-revealed .intro-release-light{animation:none;}}

@media(min-width:701px){.mario-intro-inner{min-height:100svh;padding-top:60px;padding-bottom:70px;}.sojeong-emergence{top:40px;right:0;width:min(48vw,680px);height:85svh;max-height:900px;}.sojeong-emergence .mario-intro-character{width:85%;left:7.5%;}.intro-ball{width:68%;left:16%;}}

@font-face{font-family:'Black Han Sans';src:url('assets/fonts/BlackHanSans-Regular.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap;}
.deck-copy #booster-title,.collection .intro h1{font-family:'Black Han Sans','Noto Sans KR',sans-serif;font-weight:400;letter-spacing:-.035em;line-height:1.3;}
.booster .deck-copy #booster-title{color:#1675e8;text-shadow:0 2px 0 #ffffffb3;}
.collection .intro h1{color:#fff;font-size:clamp(40px,4.5vw,68px);text-shadow:0 3px 0 #074ba4;}

.booster .deck-copy #booster-title{color:#126bd6;}

/* Match the opening button text. */
.booster .deck-progress{color:#249e58;}

/* Complete motifs stay inside a seamless repeating tile. */
.collection{background-color:#1979fa;background-image:url("assets/card-pattern.svg");background-size:960px 560px;background-position:center top;background-repeat:repeat;}
@media(max-width:700px){.collection{background-size:720px 420px;}}
/* Follow the live viewport when browser chrome hides or macOS enters full screen. */
html,body{width:100%;min-height:100%;}
.home{height:100vh;height:100dvh;min-height:0;}
.adventure-world{width:100%;height:100%;object-fit:cover;}
.mpr-presentation{height:100vh;height:100dvh;}
@media(min-width:701px){
 .mario-intro-inner{min-height:100vh;min-height:100dvh;}
 .sojeong-emergence{height:85vh;height:85dvh;max-height:none;width:min(48vw,75dvh,780px);}
 .booster{min-height:100vh;min-height:100dvh;padding-block:clamp(40px,8dvh,110px);}
 .deck-layout{min-height:0;}
 .deck-scene{height:clamp(400px,70dvh,720px);}
}
@media(min-width:701px) and (max-height:750px){
 .mario-intro-inner{padding-block:35px;}
 .sojeong-greeting{font-size:clamp(40px,8dvh,68px);}
 .sojeong-name{font-size:clamp(48px,10dvh,80px);}
 .mario-intro #mario-intro-title{margin-bottom:28px;}
 .sojeong-introduction{font-size:16px;}
 .sojeong-emergence{top:20px;height:90dvh;}
 .booster .deck-copy #booster-title{font-size:clamp(48px,10dvh,76px);}
}
/* Sky-blue card-pack control with a larger brand mark. */
.booster .deck-action{background:#e6f8ff;color:#126bd6;border-color:#45b9e8;box-shadow:0 9px 0 #2198cc,0 15px 0 #1479b2;}
.booster .deck-action:enabled:hover,.booster .deck-action:focus-visible{background:#d4f2ff;box-shadow:0 3px 0 #2198cc,0 9px 0 #1479b2;}
.booster .deck-action:enabled:active{box-shadow:0 1px 0 #1479b2;}
.booster .deck-button-logo{flex-basis:150px;border-right-color:#45b9e8;}
#booster-status{display:none;}
@media(max-width:1000px) and (min-width:701px){.booster .deck-button-logo{flex-basis:105px;}}
@media(max-width:700px){.booster .deck-button-logo{flex-basis:100px;padding-right:12px;}.booster .deck-action{gap:10px;padding-inline:12px;}.booster .deck-button-text{font-size:clamp(12px,3.4vw,16px);}}
/* The surprised mascot congratulates this month's work. */
.mascot-cheer{position:absolute;z-index:2;right:calc(5% + clamp(320px,37vw,540px) - 35px);top:-195px;width:clamp(260px,29vw,420px);margin:0;padding:27px 30px;border:5px solid #1675e8;border-radius:34px;background:#fff;color:#363a40;font-family:'Black Han Sans','Noto Sans KR',sans-serif;font-weight:400;font-size:clamp(25px,2.7vw,40px);line-height:1.4;letter-spacing:-.035em;text-align:center;box-shadow:0 7px 0 #074ba41a;}
.mascot-cheer::before,.mascot-cheer::after{content:'';position:absolute;width:0;height:0;border-style:solid;}
.mascot-cheer::before{right:-30px;bottom:27px;border-width:15px 0 15px 30px;border-color:transparent transparent transparent #1675e8;}
.mascot-cheer::after{right:-20px;bottom:32px;border-width:10px 0 10px 23px;border-color:transparent transparent transparent #fff;}
@media(max-width:700px){.mascot-cheer{left:4%;right:auto;top:-275px;width:min(68vw,330px);padding:18px 20px;border-width:4px;border-radius:26px;font-size:clamp(23px,5vw,30px);}.mascot-cheer::before{right:25px;bottom:-27px;border-width:27px 14px 0 14px;border-color:#1675e8 transparent transparent transparent;}.mascot-cheer::after{right:29px;bottom:-18px;border-width:20px 10px 0 10px;border-color:#fff transparent transparent transparent;}}
.mascot-nameplate{position:absolute;z-index:4;left:50%;bottom:-48px;transform:translateX(-50%);margin:0;padding:12px 27px;max-width:90%;white-space:nowrap;border:2px solid #1675e8;border-radius:16px;background:rgba(232,235,239,.72);color:#363a40;font-family:inherit;font-size:clamp(16px,1.45vw,21px);font-weight:700;line-height:1.5;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);}
@media(max-width:700px){.mascot-nameplate{bottom:-45px;padding:10px 23px;font-size:17px;}}
/* A dedicated closing beat before the continuously moving card collection. */
.mascot-boundary-surprised{height:auto;min-height:80vh;min-height:80dvh;margin:0;background:#1979fa url('assets/card-pattern.svg') center top/960px 560px repeat;isolation:isolate;scroll-margin-top:0;}
.mascot-boundary-surprised::before{content:'';position:absolute;inset:0 0 auto;height:160px;z-index:-1;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 220' preserveAspectRatio='none'%3E%3Cpath fill='%239dd7e3' d='M0 0H1200V150C1090 85 1050 95 940 140S770 210 650 120S470 55 360 90S150 -20 0 35Z'/%3E%3C/svg%3E") center top/100% 100% no-repeat;}
.mascot-boundary-surprised .boundary-character{top:18%;right:5%;width:clamp(320px,37vw,540px);}
.mascot-boundary-surprised .mascot-cheer{top:36%;right:calc(5% + clamp(320px,37vw,540px) - 35px);transform-origin:right center;}
.mascot-cheer.bubble-visible{animation:cheer-grow .85s cubic-bezier(.16,1,.3,1) both;}
@keyframes cheer-grow{from{transform:scale(.65);opacity:.3;}to{transform:scale(1.12);opacity:1;}}
.collection{margin-top:0;padding-top:55px;}
.collection::before{display:none;}
@media(max-width:700px){.mascot-boundary-surprised{min-height:720px;min-height:max(720px,90dvh);background-size:720px 420px;}.mascot-boundary-surprised .boundary-character{top:43%;right:3%;width:min(82vw,430px);}.mascot-boundary-surprised .mascot-cheer{top:22%;left:5%;right:auto;width:min(75vw,350px);transform-origin:left bottom;}.collection{margin-top:0;padding-top:40px;}}
@media(prefers-reduced-motion:reduce){.mascot-cheer.bubble-visible{animation:none;transform:scale(1.05);}}
/* One uninterrupted, irregular pattern behind both closing scenes. */
.collection-world{background:#1979fa url('assets/card-pattern.svg') center top/1200px 900px repeat;}
.collection-world .mascot-boundary-surprised,.collection-world .collection{background:transparent;}
.collection-world .mascot-boundary-surprised{min-height:clamp(500px,70dvh,720px);}
.collection-world .collection{padding-top:0;}
.collection-world .collection .intro{padding-top:24px;}
.mascot-boundary-surprised .mascot-cheer{width:clamp(340px,37vw,560px);padding:36px 38px;font-size:clamp(32px,3.2vw,52px);border-radius:42px;}
@media(max-width:1000px) and (min-width:701px){.mascot-boundary-surprised .mascot-cheer{right:43%;width:48vw;padding:28px 22px;font-size:34px;}}
@media(max-width:700px){.collection-world{background-size:900px 675px;}.collection-world .mascot-boundary-surprised{min-height:max(660px,85dvh);}.mascot-boundary-surprised .mascot-cheer{width:min(80vw,390px);left:4%;right:auto;padding:24px 22px;font-size:clamp(27px,6vw,36px);border-radius:32px;}}
.mascot-cheer-reply{display:block;margin-top:18px;color:#63676e;font-family:'Noto Sans KR',Arial,sans-serif;font-size:clamp(13px,1.2vw,18px);font-weight:400;line-height:1.6;letter-spacing:-.025em;}
@media(max-width:700px){.mascot-cheer-reply{margin-top:12px;font-size:13px;}}
/* Keep the closing pair across the sky / blue-wave join. */
.collection-world .mascot-boundary-surprised{min-height:clamp(360px,48dvh,500px);}
.mascot-boundary-surprised .boundary-character{top:-125px;}
.mascot-boundary-surprised .mascot-cheer{top:-40px;}
@media(max-width:700px){
 .collection-world .mascot-boundary-surprised{min-height:370px;}
 .mascot-boundary-surprised .boundary-character{top:65px;right:0;width:min(68vw,360px);}
 .mascot-boundary-surprised .mascot-cheer{top:-75px;left:5%;width:min(80vw,390px);}
}
