:root{--cream:#fff2d7;--pink:#ff4086;--yellow:#ffd21a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#130604;color:var(--cream);font-family:'DM Sans',sans-serif;overflow-x:hidden}.portfolio-header{height:88px;width:min(1230px,calc(100% - 48px));display:flex;align-items:center;justify-content:space-between;margin:auto;position:absolute;z-index:10;top:0;left:0;right:0}.logo-link img{display:block;width:174px;filter:drop-shadow(0 5px 3px #17040088)}.portfolio-header nav{display:flex;gap:28px}.portfolio-header nav a{color:#fff4d8;text-decoration:none;font-size:13px;text-transform:uppercase;letter-spacing:1.2px;font-weight:700}.menu-button{display:none;background:none;border:0;color:var(--cream);font-size:28px}.portfolio-intro{min-height:100svh;position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse at 50% 52%,#522317 0,#290e0a 40%,#130604 75%)}.portfolio-intro:before,.portfolio-intro:after{content:'';position:absolute;border-radius:50%;filter:blur(4px)}.portfolio-intro:before{width:62vw;height:22vw;background:#ff6d291c;bottom:-10vw;left:-8vw;transform:rotate(-9deg)}.portfolio-intro:after{width:35vw;height:35vw;background:#f5008820;top:-16vw;right:-7vw}.hero-logo{width:min(88vw,1010px);position:relative;z-index:1;filter:drop-shadow(0 22px 10px #000b);animation:logo-breathe 5s ease-in-out infinite}.portfolio-intro p{position:relative;z-index:2;margin:18px 0 0;text-align:center;font-size:clamp(16px,2vw,21px);line-height:1.5;color:#ffe9c5}.scroll-cue{z-index:2;color:var(--yellow);text-decoration:none;font-size:12px;letter-spacing:1.1px;text-transform:uppercase;font-weight:700;margin-top:58px}.scroll-cue span{display:block;text-align:center;font-size:23px;animation:arrow-bounce 1.6s ease-in-out infinite}.intro-bubbles i{position:absolute;border-radius:50%;box-shadow:inset 8px 8px 10px #ffffff63,inset -15px -15px 18px #8d1e1e6b,12px 16px 15px #0007;animation:bubble-float 6s ease-in-out infinite}.intro-bubbles i:nth-child(1){width:90px;height:90px;background:#ff6424;top:23%;left:10%}.intro-bubbles i:nth-child(2){width:48px;height:48px;background:#ffd21a;top:62%;left:17%;animation-delay:-2s}.intro-bubbles i:nth-child(3){width:82px;height:82px;background:#11c4e8;right:11%;top:24%;animation-delay:-3.5s}.intro-bubbles i:nth-child(4){width:54px;height:54px;background:#aaeb00;right:18%;bottom:18%;animation-delay:-1.5s}.game-world{position:relative;min-height:820px;overflow:hidden;isolation:isolate;display:flex;align-items:center}.world-inner{position:relative;z-index:3;width:min(1160px,calc(100% - 64px));margin:auto;display:flex;align-items:center;justify-content:space-between;gap:60px}.world-reverse{flex-direction:row-reverse}.world-copy{width:44%;max-width:470px}.world-number{font-size:12px;font-weight:700;letter-spacing:1.8px;margin:0 0 20px}.world-copy h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(74px,10vw,135px);letter-spacing:-7px;line-height:.78;margin:0;color:#fff5e3;text-shadow:0 8px 0 #00000016}.world-copy h1 em{font-family:Georgia,serif;font-weight:400}.world-description{max-width:370px;font-size:17px;line-height:1.6;margin:32px 0;color:#fff8e9}.world-actions{display:flex;gap:17px;align-items:center}.store-link,.trailer-link{display:inline-flex;align-items:center;gap:14px;text-decoration:none;border:0;border-radius:999px;padding:15px 21px;font:700 13px 'DM Sans',sans-serif;cursor:pointer;transition:transform .25s,box-shadow .25s}.store-link:hover,.trailer-link:hover{transform:translateY(-5px)}.store-link b{font-size:19px}.trailer-link{background:#ffffff24;color:#fff;border:1px solid #ffffff56;backdrop-filter:blur(8px)}.trailer-link span{font-size:12px}.wave{position:absolute;z-index:1;width:130%;left:-15%;height:170px;border-radius:50%}.wave-top{top:-112px}.wave-bottom{bottom:-120px}.world-orb{position:absolute;z-index:0;border-radius:50%;filter:blur(1px);opacity:.6}.game-sculpture{width:470px;height:500px;position:relative;flex:none;perspective:1000px;filter:drop-shadow(0 30px 17px #0005)}.world-dream{background:linear-gradient(135deg,#c93a75,#ff6c9f 55%,#fbc34a)}.world-dream .wave-top,.world-dream .wave-bottom{background:#130604}.world-dream .world-orb{background:#ffe26f}.world-dream .orb-one{width:220px;height:220px;left:-70px;bottom:12%}.world-dream .orb-two{width:130px;height:130px;right:8%;top:11%;background:#e91e74}.world-dream .world-number,.world-dream h1 em{color:#ffe987}.dream-planet{position:absolute;width:390px;height:390px;border-radius:50%;right:0;top:32px;background:radial-gradient(circle at 31% 25%,#fffbd0,#ffd26d 37%,#f48a55 73%,#ca406e);box-shadow:inset -30px -30px 34px #9a204662,inset 15px 15px 30px #ffffff8a,0 30px 30px #93224e66;transform:rotate(-10deg);animation:planet-roll 11s linear infinite}.dream-planet:after{content:'';position:absolute;width:470px;height:130px;border:19px solid #fdefa4;border-radius:50%;left:-50px;top:124px;transform:rotate(-18deg);box-shadow:0 10px 10px #8d254755}.dream-cloud{position:absolute;width:128px;height:43px;border-radius:50%;background:#fff6df;box-shadow:inset -7px -8px 8px #dfab9b70,0 12px 10px #972c5660;z-index:3}.dream-cloud:before,.dream-cloud:after{content:'';position:absolute;border-radius:50%;background:inherit}.dream-cloud:before{width:56px;height:56px;bottom:0;left:16px}.dream-cloud:after{width:68px;height:68px;bottom:0;right:13px}.cloud-one{left:23px;top:153px;animation:cloud-wiggle 5s ease-in-out infinite}.cloud-two{right:5px;bottom:88px;transform:scale(.7);animation:cloud-wiggle 5s -2s ease-in-out infinite}.dream-creature{position:absolute;z-index:4;left:144px;bottom:62px;width:112px;height:125px;border-radius:48% 48% 43% 43%;display:grid;place-items:center;font-size:73px;color:#71336a;background:radial-gradient(circle at 34% 25%,#fff9b9,#b8ea43 42%,#63b340 79%);box-shadow:inset -17px -18px 17px #318f467a,0 20px 18px #82285677;animation:creature-bob 3s ease-in-out infinite}.dream-label,.berry-label{position:absolute;z-index:5;font:700 40px/.75 'Space Grotesk',sans-serif;color:#fff8db;text-shadow:4px 5px 0 #7d1c5e;left:0;bottom:6px;transform:rotate(-8deg)}.dream-label b,.berry-label b{font-size:58px}.world-berry{background:linear-gradient(125deg,#05abd4,#106acb 48%,#5030a0)}.world-berry .wave-top,.world-berry .wave-bottom{background:#f5b018}.world-berry .world-orb{background:#ef4d9a}.world-berry .orb-one{height:280px;width:280px;right:-90px;bottom:6%}.world-berry .orb-two{width:100px;height:100px;left:9%;top:18%;background:#d7f000}.world-berry .world-number,.world-berry h1 em{color:#f7ef6e}.berry-piece{position:absolute;border-radius:48% 52% 46% 54%;display:grid;place-items:center;color:#fff6a0;font-size:59px;text-shadow:0 5px 4px #66205166;box-shadow:inset 17px 15px 23px #ffffff7a,inset -24px -26px 27px #8e174f8a,0 21px 0 #7e184e,0 34px 27px #0007;animation:berry-pop 4s ease-in-out infinite}.berry-a{width:210px;height:210px;background:radial-gradient(circle at 30% 24%,#ffedb5,#ff649e 38%,#de1c73 78%);top:38px;left:59px;transform:rotate(-13deg)}.berry-b{width:165px;height:165px;background:radial-gradient(circle at 30% 24%,#fff5bf,#ff9b2b 38%,#e95122 78%);right:15px;bottom:53px;animation-delay:-1.5s}.berry-c{width:112px;height:112px;background:radial-gradient(circle at 30% 24%,#faffd0,#c5ed2d 38%,#66b91b 78%);left:0;bottom:27px;animation-delay:-2.5s}.berry-leaf{position:absolute;right:117px;top:33px;color:#cbed19;font-size:90px;filter:drop-shadow(0 9px 4px #114e6177);transform:rotate(25deg)}.berry-label{bottom:15px;left:93px;text-shadow:4px 5px 0 #134a99;transform:rotate(-4deg)}.world-coming{background:linear-gradient(125deg,#76c41b,#b8e32c 48%,#12b9bd)}.world-coming .wave-top,.world-coming .wave-bottom{background:#1d1144}.world-coming .world-orb{background:#fff270}.world-coming .orb-one{width:250px;height:250px;left:-80px;bottom:7%}.world-coming .orb-two{width:155px;height:155px;right:10%;top:16%;background:#ff65a7}.world-coming .world-number,.world-coming h1 em{color:#1739a1}.soft-link{background:#1d1144;color:#fff;box-shadow:0 8px 0 #0a0524,0 17px 22px #15345b66}.mystery-ball{position:absolute;width:290px;height:290px;border-radius:50%;right:65px;top:80px;display:grid;place-items:center;background:radial-gradient(circle at 31% 24%,#fffccd,#8ddaea 30%,#2286de 68%,#3f35a1);box-shadow:inset 21px 17px 25px #ffffff6b,inset -28px -29px 30px #2121738a,0 27px 0 #2f317c,0 42px 35px #14505f77;color:#fff8bf;font:700 180px 'Space Grotesk';text-shadow:0 13px 0 #1959b0;animation:planet-roll 8s linear infinite}.mystery-star{position:absolute;color:#fff7a6;font-size:78px;filter:drop-shadow(0 8px 3px #18845799);animation:star-pop 3s ease-in-out infinite}.star-a{left:24px;top:90px}.star-b{right:20px;bottom:58px;animation-delay:-1.3s}.star-c{left:134px;bottom:16px;font-size:48px;animation-delay:-2s}footer{background:#130604;display:flex;min-height:300px;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#f7dfb5;text-align:center}footer img{width:min(300px,74vw);filter:drop-shadow(0 8px 4px #0009)}footer p{margin:0;font-size:16px}footer div{display:flex;gap:20px;margin:5px 0}footer a{color:#ffcf45;font-size:13px;text-decoration:none}footer small{color:#9a7a68;font-size:11px;letter-spacing:1px}.video-dialog{border:0;padding:0;background:#180710;width:min(850px,92vw);border-radius:16px;overflow:visible}.video-dialog::backdrop{background:#10040ade}.video-frame{aspect-ratio:16/9}.video-frame iframe{width:100%;height:100%;border:0;display:block}.close-video{position:absolute;right:-15px;top:-15px;border:0;background:#fff5d5;color:#310b17;width:34px;height:34px;border-radius:50%;font-size:24px;cursor:pointer}@keyframes logo-breathe{50%{transform:scale(1.035) rotate(-.5deg)}}@keyframes bubble-float{50%{transform:translateY(-23px) rotate(17deg)}}@keyframes arrow-bounce{50%{transform:translateY(8px)}}@keyframes planet-roll{to{transform:rotate(350deg)}}@keyframes cloud-wiggle{50%{transform:translateY(-15px) rotate(5deg)}}@keyframes creature-bob{50%{transform:translateY(-18px) rotate(5deg)}}@keyframes berry-pop{50%{translate:0 -22px;scale:1.06}}@keyframes star-pop{50%{transform:translateY(-16px) scale(1.16) rotate(18deg)}}.reveal{opacity:0;transform:translateY(45px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}.reveal.is-visible{opacity:1;transform:none}@media(max-width:800px){.portfolio-header{width:calc(100% - 36px);height:70px}.logo-link img{width:128px}.menu-button{display:block;position:relative;z-index:3}.portfolio-header nav{display:none;position:absolute;right:0;top:58px;min-width:150px;padding:17px;border-radius:17px;background:#2d0e11;box-shadow:0 16px 30px #0008;flex-direction:column;align-items:center}.portfolio-header nav.open{display:flex}.hero-logo{width:94vw}.portfolio-intro p{font-size:15px;padding:0 20px}.intro-bubbles i:nth-child(n){scale:.65}.game-world{min-height:760px}.world-inner,.world-reverse{width:calc(100% - 42px);flex-direction:column;gap:5px;align-items:flex-start;padding:104px 0 62px}.world-copy{width:100%;z-index:4}.world-copy h1{font-size:76px;letter-spacing:-5px}.world-description{font-size:15px;margin:23px 0}.game-sculpture{width:310px;height:330px;align-self:center;margin-top:-5px;transform:scale(.78);transform-origin:center bottom}.dream-planet{width:340px;height:340px}.dream-planet:after{width:400px}.berry-a{width:190px;height:190px}.mystery-ball{width:260px;height:260px;font-size:160px;right:20px}.wave{height:130px}.world-orb{opacity:.36}.trailer-link,.store-link{padding:13px 16px}footer{min-height:240px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
:root{}/* GIF gameplay panel: landscape-panel supports 16:9; portrait-panel supports 9:16. */.gameplay-panel{position:relative;isolation:isolate;overflow:hidden;background:#260a2b;border:8px solid #fff1d1;border-radius:27px;box-shadow:inset 0 0 0 3px #8b244f,0 13px 0 #7d1b4a,0 31px 34px #5d154b88;transform:rotate(3deg);width:min(48vw,610px);aspect-ratio:16/9}.gameplay-panel:before{content:'';position:absolute;z-index:3;pointer-events:none;inset:0;background:linear-gradient(120deg,#ffffff48,transparent 24% 72%,#4611484d);mix-blend-mode:soft-light}.gameplay-panel:after{content:'';position:absolute;z-index:4;width:54px;height:8px;border-radius:8px;background:#4c1540;top:12px;left:calc(50% - 27px);box-shadow:0 2px 0 #ffffff44}.gameplay-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}.gif-placeholder{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:9px;background:radial-gradient(circle at 28% 23%,#ffefb1,#ff7d9e 38%,#d23186 72%,#5a1a70);color:#fff4d4}.gif-placeholder span{font-size:11px;font-weight:700;letter-spacing:1.6px}.gif-placeholder b{font:600 17px/1.4 'Space Grotesk',sans-serif}.gif-placeholder code{font-size:12px}.gif-placeholder i{font-style:normal;font-size:62px;color:#ffe55f;filter:drop-shadow(0 8px 3px #8c1a5e77);animation:star-pop 3s ease-in-out infinite}.gameplay-panel.has-gif .gif-placeholder{display:none}.portrait-panel{width:min(29vw,360px);aspect-ratio:9/16}@media(max-width:800px){.gameplay-panel{width:100%;max-width:480px;align-self:center;transform:rotate(1.5deg);border-width:6px}.portrait-panel{width:min(72vw,320px)}}
:root{}/* ASMR Cream: a gentle waterfall of glossy creams. */.world-cream{background:linear-gradient(135deg,#ff78a6 0%,#f84785 46%,#f5a03e 100%)}.world-cream .wave-top,.world-cream .wave-bottom{background:#fff1c8}.world-cream .world-orb{background:#fff0b2}.world-cream .orb-one{width:220px;height:220px;left:-70px;bottom:12%}.world-cream .orb-two{width:130px;height:130px;right:8%;top:11%;background:#ffdc37}.world-cream .world-number,.world-cream h1 em{color:#fff0a1}.cream-drizzle{position:absolute;inset:0;z-index:1;overflow:hidden;opacity:.48}.cream-drizzle i{position:absolute;top:-35%;width:28px;height:56%;border-radius:0 0 50% 50%;background:linear-gradient(90deg,#9b321b,#ff9d56 42%,#642016);box-shadow:inset 7px 0 6px #ffcf9b88,inset -7px 0 7px #48110988,0 0 16px #ffbe7070;animation:cream-fall 13s cubic-bezier(.42,0,.58,1) infinite}.cream-drizzle i:after{content:'';position:absolute;width:44px;height:44px;border-radius:50%;left:-8px;bottom:-20px;background:inherit;box-shadow:inset 7px 2px 5px #ffe4b288}.cream-drizzle i:nth-child(1){left:7%;height:41%;animation-delay:-2s}.cream-drizzle i:nth-child(2){left:24%;width:18px;height:63%;background:linear-gradient(90deg,#ba691d,#ffe07d 43%,#b75b16);animation-delay:-8s}.cream-drizzle i:nth-child(3){left:46%;width:35px;height:48%;background:linear-gradient(90deg,#9c164d,#ff9ec5 43%,#9c164d);animation-delay:-5s}.cream-drizzle i:nth-child(4){left:68%;width:20px;height:68%;background:linear-gradient(90deg,#d45e16,#ffd85d 43%,#cf4f13);animation-delay:-10s}.cream-drizzle i:nth-child(5){left:84%;height:39%;background:linear-gradient(90deg,#8e2414,#fb7d36 43%,#75200e);animation-delay:-1s}.cream-drizzle i:nth-child(6){left:94%;width:17px;height:57%;background:linear-gradient(90deg,#a21551,#f581af 43%,#921044);animation-delay:-6s}.cream-panel{border-color:#fff5cf;box-shadow:inset 0 0 0 3px #be3567,0 13px 0 #b52b5f,0 31px 34px #7a123e88}.cream-panel .gif-placeholder{background:radial-gradient(circle at 53% 34%,#ffeebe 0%,#ffc057 32%,#ee4c82 67%,#a91e56 100%);overflow:hidden}.cream-panel .gif-placeholder>span,.cream-panel .gif-placeholder>b{position:relative;z-index:4;text-shadow:0 2px 2px #7e1745}.cream-icon{position:relative;z-index:3;width:min(50%,260px);height:auto;filter:drop-shadow(0 14px 8px #71103488);animation:cream-icon-breathe 5s ease-in-out infinite}.panel-cream-drips{position:absolute;inset:-10px 0 0;z-index:2;display:flex;justify-content:space-around;pointer-events:none}.panel-cream-drips i{width:9%;height:53%;border-radius:0 0 50% 50%;background:linear-gradient(90deg,#8d321b,#ffd084 46%,#ad3d1a);box-shadow:inset 6px 0 5px #ffe8ba88,inset -5px 0 6px #77200f88;animation:panel-drip 7s ease-in-out infinite}.panel-cream-drips i:nth-child(2){height:72%;background:linear-gradient(90deg,#a71956,#ff9cc7 46%,#a71956);animation-delay:-3s}.panel-cream-drips i:nth-child(3){height:39%;background:linear-gradient(90deg,#c66b15,#ffe268 46%,#c25e10);animation-delay:-5s}.panel-cream-drips i:nth-child(4){height:64%;background:linear-gradient(90deg,#75301e,#e57c45 46%,#742719);animation-delay:-1.5s}@keyframes cream-fall{0%,100%{transform:translateY(-8%) scaleY(.8);opacity:.2}45%,60%{transform:translateY(105%) scaleY(1.08);opacity:.8}}@keyframes panel-drip{50%{transform:translateY(28px) scaleY(1.12)}}@keyframes cream-icon-breathe{50%{transform:translateY(-8px) scale(1.035)}}@media(max-width:800px){.cream-icon{width:min(54%,210px)}.cream-drizzle i{opacity:.7}}
:root{} .cream-panel .cream-icon{position:absolute;inset:auto;width:min(50%,260px);height:auto;z-index:3}
:root{} .flavour-list{display:flex;flex-wrap:wrap;gap:8px;max-width:390px;margin:-7px 0 27px}.flavour-list span{border-radius:999px;padding:7px 11px;color:#fff9e9;font-size:11px;font-weight:700;letter-spacing:.25px;box-shadow:inset 1px 1px #ffffff80,0 4px 0 #00000020,0 7px 10px #8a17455c}.flavour-chocolate{background:linear-gradient(135deg,#8e351c,#4d160f)}.flavour-vanilla{background:linear-gradient(135deg,#fff6bd,#e5a948);color:#723311!important}.flavour-strawberry{background:linear-gradient(135deg,#ff88b7,#d9246b)}.flavour-mango{background:linear-gradient(135deg,#ffc93c,#e87514)}.flavour-mint{background:linear-gradient(135deg,#75e0bc,#168e84)}.cream-drizzle i:nth-child(6){background:linear-gradient(90deg,#0f7d75,#77e2bb 43%,#0c7169)}.panel-cream-drips i:nth-child(5){height:47%;background:linear-gradient(90deg,#147c73,#7ce6bd 46%,#106e68);animation-delay:-4s}
:root{}/* Cleaner ASMR Cream layout: icon belongs beside the title, GIF is the hero artwork. */.world-cream{background:linear-gradient(135deg,#c93a75,#ff6c9f 55%,#fbc34a)}.world-cream .wave-top,.world-cream .wave-bottom{background:#130604}.world-cream .world-orb{background:#ffe26f}.world-cream .orb-one{width:220px;height:220px;left:-70px;bottom:12%}.world-cream .orb-two{width:130px;height:130px;right:8%;top:11%;background:#e91e74}.world-cream .world-number,.world-cream h1 em{color:#ffe987}.cream-title{display:flex;align-items:center;gap:18px}.cream-title img{width:94px;height:94px;object-fit:contain;filter:drop-shadow(0 8px 5px #7b174475);flex:none}.cream-title h1{margin:0}.cream-panel{background:#26121a;border-color:#fff2c8;box-shadow:inset 0 0 0 3px #ce795e,0 13px 0 #8f3e44,0 31px 34px #67153988;transform:rotate(2deg)}.cream-panel .gif-placeholder{background:linear-gradient(145deg,#ff92b6,#f4b351);color:#fff8dc}.cream-panel .gif-placeholder span{font-size:11px;letter-spacing:1.4px;font-weight:700}.cream-panel.has-gif{background:#1a1214}.cream-panel.has-gif:before{background:linear-gradient(120deg,#ffffff27,transparent 24% 72%,#32101035)}@media(max-width:800px){.cream-title img{width:72px;height:72px}.cream-title{gap:12px}.cream-panel{transform:rotate(1deg)}}
:root{} .cream-title-icon{display:block;width:min(100%,330px);height:auto;margin:-7px 0 24px;filter:drop-shadow(0 18px 12px #7b174475);animation:cream-icon-breathe 5s ease-in-out infinite}.cream-title{display:none}@media(max-width:800px){.cream-title-icon{width:min(78vw,300px);margin:0 0 21px}}
:root{} .cream-title-icon{width:min(100%,390px)}.play-portal{display:inline-flex;align-items:center;gap:13px;border-radius:18px;padding:10px 16px 10px 11px;background:#fff8e9;color:#3b251b;text-decoration:none;box-shadow:inset 1px 1px #fff,0 6px 0 #b55b66,0 13px 18px #7c164459;transition:transform .25s,box-shadow .25s}.play-portal:hover{transform:translateY(-4px);box-shadow:inset 1px 1px #fff,0 10px 0 #b55b66,0 18px 22px #7c164459}.play-portal span:last-child{display:flex;flex-direction:column;gap:1px}.play-portal b{font-size:14px}.play-portal small{font-size:10px;text-transform:uppercase;letter-spacing:.85px;color:#bd4161;font-weight:700}.play-triangle{width:30px;height:32px;display:block;clip-path:polygon(0 0,100% 50%,0 100%);background:linear-gradient(145deg,#49c6f2 0 36%,#75d443 36% 58%,#ffd34b 58% 74%,#ef5a65 74%);filter:drop-shadow(0 2px 1px #4f615466)}
:root{} .play-portal{background:linear-gradient(145deg,#ff9abc 0%,#f34d87 52%,#c92565 100%);color:#fff8df;border:2px solid #ffd9a2;border-bottom-color:#8d1c4b;box-shadow:inset 2px 2px #fff5,inset -4px -5px 6px #8d1d4d80,0 7px 0 #8b1b4a,0 14px 20px #7c164459}.play-portal:hover{box-shadow:inset 2px 2px #fff5,inset -4px -5px 6px #8d1d4d80,0 10px 0 #8b1b4a,0 19px 24px #7c164459}.play-portal small{color:#fff5c0;text-shadow:0 1px #8d1c4b}.play-triangle{filter:drop-shadow(0 2px 1px #6c143e88)}@media(max-width:800px){.world-inner>.world-copy{display:contents}.world-copy>.world-number,.world-copy>.cream-title-icon,.world-copy>.world-description{order:1}.gameplay-panel{order:2}.world-copy>.play-portal{order:3;align-self:center;margin-top:5px}}
:root{} @media(max-width:800px){.world-coming .world-copy{display:block}.world-coming .gameplay-panel{order:initial}}
:root{} .play-portal{min-width:218px;gap:12px;padding:9px 17px 9px 9px;border:1px solid #fff8dd;border-radius:16px;background:linear-gradient(145deg,#fffdf2,#f7d9c8);color:#5c2a2b;box-shadow:inset 1px 1px #fff,inset -2px -3px 5px #d47f8c4d,0 5px 0 #b32b5d,0 10px 16px #7c16434d}.play-portal:hover{box-shadow:inset 1px 1px #fff,inset -2px -3px 5px #d47f8c4d,0 8px 0 #b32b5d,0 15px 20px #7c16434d}.play-portal span:last-child{gap:2px}.play-portal b{font-size:14px;letter-spacing:-.15px}.play-portal small{font-size:9px;letter-spacing:1.05px;color:#bd4161;text-shadow:none}.play-triangle{width:39px;height:39px;border-radius:12px;background:linear-gradient(145deg,#ff6999,#d72d69);clip-path:none;display:grid;place-items:center;filter:none;box-shadow:inset 2px 2px #ffffff70,inset -3px -4px 5px #8f1b4f88,0 3px 0 #9a204f}.play-triangle:after{content:'';width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:14px solid #fff5cc;margin-left:3px;filter:drop-shadow(0 1px 0 #9b244b)}
:root{}/* Flavour-sprite backdrop for ASMR Cream. Each tile uses the supplied sprite sheet. */.world-cream{background:radial-gradient(circle at 10% 19%,#ffcb48aa 0 10%,transparent 28%),radial-gradient(circle at 83% 12%,#ec236daa 0 12%,transparent 31%),radial-gradient(circle at 93% 80%,#6c3cad80 0 9%,transparent 25%),linear-gradient(125deg,#ff9b47 0%,#f34f82 38%,#df3b8b 62%,#8458cc 100%)}.world-cream .wave-top,.world-cream .wave-bottom{background:#fff0c9}.flavour-floats{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.flavour{position:absolute;display:block;width:155px;height:155px;background-image:url('images/asmr-cream-flavours.png');background-size:500% 300%;background-repeat:no-repeat;filter:drop-shadow(0 14px 9px #5d173b70);animation:flavour-float 8s ease-in-out infinite}.flavour:after{content:'';position:absolute;inset:11% 16% 45% 22%;border-radius:50%;background:linear-gradient(130deg,#ffffff50,transparent);transform:rotate(-18deg);mix-blend-mode:screen}.mango{background-position:25% 0;left:3%;top:11%;transform:rotate(-12deg) scale(.85);animation-delay:-1.7s}.strawberry{background-position:100% 0;right:3%;top:12%;transform:rotate(12deg) scale(.82);animation-delay:-3.1s}.lemon{background-position:75% 50%;right:17%;bottom:9%;transform:rotate(-17deg) scale(.72);animation-delay:-4.8s}.vanilla{background-position:0 50%;left:12%;bottom:11%;transform:rotate(17deg) scale(.72);animation-delay:-2.4s}.raspberry{background-position:75% 0;left:37%;top:4%;transform:rotate(-7deg) scale(.63);animation-delay:-5.2s}.blueberry{background-position:75% 100%;right:40%;bottom:4%;transform:rotate(12deg) scale(.6);animation-delay:-.8s}.chocolate{background-position:0 0;left:-2%;top:42%;transform:rotate(-18deg) scale(.65);animation-delay:-6.1s}.caramel{background-position:25% 100%;right:0;top:46%;transform:rotate(13deg) scale(.63);animation-delay:-3.8s}@keyframes flavour-float{0%,100%{margin-top:0}50%{margin-top:-20px}}@media(max-width:800px){.flavour{width:116px;height:116px;opacity:.68}.mango{left:-5%;top:14%}.strawberry{right:-5%;top:18%}.raspberry,.caramel{display:none}.lemon{right:-9%;bottom:14%}.vanilla{left:-7%;bottom:13%}.blueberry{right:2%;bottom:5%}.chocolate{left:-8%;top:44%}}
:root{}/* Map each background colour directly to its nearby flavour sprite. */.world-cream{background:radial-gradient(ellipse at 4% 12%,#ffb62f 0 10%,transparent 28%),radial-gradient(ellipse at 38% 3%,#f33b7d 0 9%,transparent 25%),radial-gradient(ellipse at 94% 16%,#f63762 0 12%,transparent 29%),radial-gradient(ellipse at 0 46%,#7a351d 0 12%,transparent 28%),radial-gradient(ellipse at 13% 88%,#fff0b4 0 13%,transparent 31%),radial-gradient(ellipse at 87% 84%,#ffe15d 0 13%,transparent 31%),radial-gradient(ellipse at 96% 49%,#bd6b30 0 10%,transparent 26%),radial-gradient(ellipse at 57% 97%,#4354bc 0 11%,transparent 28%),linear-gradient(135deg,#e98236 0%,#ed4b7c 37%,#d43c88 60%,#e39855 78%,#ffe06a 100%)}.world-cream .world-description{position:relative;z-index:4;max-width:385px;padding:13px 16px;border-radius:16px;background:linear-gradient(135deg,#fff9e8e8,#ffe7d8d2);border:1px solid #fff7d9a8;color:#5b2a2e;text-shadow:none;box-shadow:inset 1px 1px #fff9,0 8px 18px #79164438;backdrop-filter:blur(8px)}
:root{} .world-cream{background:radial-gradient(ellipse at 50% 48%,#fff0af24 0 12%,transparent 40%),conic-gradient(from 225deg at 51% 50%,#6b321d 0deg,#8d451f 31deg,#fff0b2 71deg,#ffbf2f 111deg,#f44c78 153deg,#d72980 202deg,#963b91 247deg,#4256b6 290deg,#ffda48 331deg,#6b321d 360deg)}.flavour{filter:none}.flavour:after{display:none}.world-cream .world-description{padding:0;border:0;border-radius:0;background:none;color:#fff9df;text-shadow:0 2px 3px #5c183f,0 0 15px #5c183f80;box-shadow:none;backdrop-filter:none}
:root{}/* Wide, shader-like cream swirl: the centre is intentionally broad rather than a sharp point. */.world-cream{background:#d74d78}.world-cream:before{content:'';position:absolute;z-index:0;inset:-45%;background:repeating-conic-gradient(from 18deg at 50% 50%,#6f351d 0deg 20deg,#9c4921 37deg,#fff0ad 68deg,#ffd044 102deg,#f85c8b 143deg,#ce2d82 186deg,#9942a1 230deg,#5463be 273deg,#f9cb40 316deg,#6f351d 360deg);background-size:110% 110%;filter:blur(18px) saturate(1.1);transform-origin:center;animation:cream-swirl 24s cubic-bezier(.45,.05,.55,.95) infinite alternate}.world-cream:after{content:'';position:absolute;z-index:1;width:58%;aspect-ratio:1;border-radius:50%;left:21%;top:21%;background:radial-gradient(circle,#f88a79 0 10%,#f4bc62 25%,#f14f86 47%,#653d95 74%,transparent 76%);filter:blur(18px);opacity:.48;mix-blend-mode:soft-light;animation:swirl-core 10s ease-in-out infinite alternate}@keyframes cream-swirl{0%{transform:rotate(-16deg) scale(1.02);background-size:108% 108%;filter:blur(18px) saturate(1.05)}50%{transform:rotate(104deg) scale(1.13);background-size:130% 130%;filter:blur(24px) saturate(1.22)}100%{transform:rotate(202deg) scale(1.06);background-size:115% 115%;filter:blur(19px) saturate(1.1)}}@keyframes swirl-core{0%{transform:scale(.86) rotate(-18deg);opacity:.38}100%{transform:scale(1.24) rotate(21deg);opacity:.64}}@media(prefers-reduced-motion:reduce){.world-cream:before,.world-cream:after{animation:none}}
:root{} .flavour-floats{transform-origin:center;animation:flavour-orbit 24s cubic-bezier(.45,.05,.55,.95) infinite alternate;will-change:transform}@keyframes flavour-orbit{0%{transform:rotate(-16deg) scale(1.02)}50%{transform:rotate(104deg) scale(1.08)}100%{transform:rotate(202deg) scale(1.04)}}@media(prefers-reduced-motion:reduce){.flavour-floats{animation:none}}
:root{}/* Shared coordinate system: every sprite now rides inside its own matching spiral band. */.world-cream:before,.flavour-floats{inset:-5%}.world-cream:before{background:conic-gradient(from 0deg at 50% 50%,#de2d80 0deg 24deg,#f14a77 24deg 77deg,#a65b2b 77deg 112deg,#ffe253 112deg 162deg,#4a5bbc 162deg 205deg,#fff0ae 205deg 247deg,#6c321c 247deg 292deg,#ffad30 292deg 332deg,#e3297c 332deg 360deg);background-size:100% 100%;filter:blur(18px) saturate(1.08)}.flavour-floats{animation:flavour-orbit 24s cubic-bezier(.45,.05,.55,.95) infinite alternate}.mango{left:3%;top:11%}.strawberry{right:3%;top:12%}.lemon{right:17%;bottom:9%}.vanilla{left:12%;bottom:11%}.raspberry{left:37%;top:4%}.blueberry{right:40%;bottom:4%}.chocolate{left:-2%;top:42%}.caramel{right:0;top:46%}
:root{}/* Exact Kazoooooza lower contour: centre rises, sides stay lower, matching the marked red arc. */.curve-kazoooooza{display:none!important}.portfolio-intro{z-index:2!important;overflow:visible!important;clip-path:none!important;-webkit-mask-image:radial-gradient(80% 140px at 50% 100%,transparent 0 72%,#000 73%);mask-image:radial-gradient(80% 140px at 50% 100%,transparent 0 72%,#000 73%)}.world-cream{z-index:1!important;margin-top:-105px!important;padding-top:135px!important}@media(max-width:800px){.portfolio-intro{-webkit-mask-image:radial-gradient(95% 100px at 50% 100%,transparent 0 72%,#000 73%);mask-image:radial-gradient(95% 100px at 50% 100%,transparent 0 72%,#000 73%)}.world-cream{margin-top:-75px!important;padding-top:100px!important}}
:root{}/* Matched modular lower contour for ASMR Cream and the incoming Next World section. */.wave,.wave-top,.wave-bottom{display:none!important}.world-cream{overflow:visible!important;-webkit-mask-image:radial-gradient(80% 140px at 50% 100%,transparent 0 72%,#000 73%);mask-image:radial-gradient(80% 140px at 50% 100%,transparent 0 72%,#000 73%)}.world-coming{z-index:0!important;margin-top:-105px!important;padding-top:135px!important}@media(max-width:800px){.world-cream{-webkit-mask-image:radial-gradient(95% 100px at 50% 100%,transparent 0 72%,#000 73%);mask-image:radial-gradient(95% 100px at 50% 100%,transparent 0 72%,#000 73%)}.world-coming{margin-top:-75px!important;padding-top:100px!important}}
:root{}/* Align the ASMR Cream layout to the optical centre created by its curved edges. */.world-cream .world-inner{transform:translateY(-102px)}@media(max-width:800px){.world-cream .world-inner{transform:translateY(-62px)}}
:root{}/* Give the final Next World panel the same centre-raised lower contour and retain a balanced content position. */.world-coming{overflow:visible!important;-webkit-mask-image:radial-gradient(80% 140px at 50% 100%,transparent 0 72%,#000 73%);mask-image:radial-gradient(80% 140px at 50% 100%,transparent 0 72%,#000 73%)}.world-coming .world-inner{transform:translateY(-58px)}@media(max-width:800px){.world-coming{-webkit-mask-image:radial-gradient(95% 100px at 50% 100%,transparent 0 72%,#000 73%);mask-image:radial-gradient(95% 100px at 50% 100%,transparent 0 72%,#000 73%)}.world-coming .world-inner{transform:translateY(-42px)}}
:root{}/* On compact screens, centre each game introduction instead of pinning it to the left edge. */@media(max-width:800px){.world-cream .world-number,.world-cream .cream-title-icon,.world-cream .world-description{align-self:center;text-align:center}.world-coming .world-copy{text-align:center}.world-coming .world-number{margin-left:auto;margin-right:auto}}
:root{}/* Reserve clear breathing room between the mobile gameplay GIF and its store portal. */@media(max-width:800px){.world-cream .world-description{margin-top:0;margin-bottom:4px}.world-cream .play-portal{margin-top:40px}}
:root{}/* Remove only the bright lower glow from the Kazoooooza hero; retain its original dark gradient and bubbles. */.portfolio-intro:before{display:none}
:root{}/* Remove the large reddish glow in the hero's upper-right corner. */.portfolio-intro:after{display:none}
:root{}/* The contact footer is the final stop: keep it compact so no empty dark section trails after it. */footer{min-height:0;padding:34px 24px 42px}@media(max-width:800px){footer{min-height:0;padding:28px 20px 34px}}
:root{}/* Mobile: allow vertical reading and pinch zoom, but never permit horizontal panning or boundary overscroll. */@media(max-width:800px){html,body{max-width:100%;overflow-x:clip;overscroll-behavior:none;touch-action:pan-y pinch-zoom}}
:root{}/* Safari-safe compact contact footer: its height is determined only by its visible content. */footer#contact{min-height:0!important;height:fit-content;padding:18px 24px 24px!important;gap:7px}footer#contact img{width:min(180px,58vw)}footer#contact div{margin:0}
:root{}/* One document scroll surface only. `clip` prevents decorative artwork from widening the page without creating a second body scroller. */html{background:#130604;overflow-x:clip;overscroll-behavior:none}body{min-height:100%;background:#130604;overflow-x:clip;overflow-y:visible;overscroll-behavior:none}footer#contact{height:auto!important;background:#130604}.reveal{transform:none!important;transition:opacity .8s ease!important}
:root{}/* The final curve belongs to the footer itself. This replaces the transparent mask that left an invisible, fixed-height panel on wide displays. */.world-coming{overflow:hidden!important;-webkit-mask-image:none!important;mask-image:none!important}footer#contact{position:relative;z-index:2;isolation:isolate;margin-top:0!important;overflow:visible!important}footer#contact:before{content:'';position:absolute;z-index:0;left:-10%;top:-118px;width:120%;height:132px;border-radius:50% 50% 0 0/100% 100% 0 0;background:#130604;pointer-events:none}footer#contact>*{position:relative;z-index:1}
:root{}/* Keep the browser canvas fixed. Only this shell can scroll, so its bottom is always the contact footer—at every viewport width. */html,body{width:100%;height:100%;min-height:0;overflow:hidden!important}body{position:fixed;inset:0}.site-shell{position:relative;width:100%;height:100dvh;overflow-x:clip;overflow-y:auto;overscroll-behavior:none;background:#130604}
:root{}/* The animated swirl is deliberately much wider than its panel. Clip it at the panel boundary so rotated artwork cannot add width-dependent scroll height. */.portfolio-intro,.world-cream{overflow:hidden!important}
