@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Gowun+Batang:wght@400;700&display=swap');
:root{--ink:#183a32;--rust:#b86f4a;--paper:#fffaf0;font-family:'DM Sans','Gowun Batang',serif;color:var(--ink);background:#f2eedc}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 15% 8%,#fff9de,transparent 34%),radial-gradient(circle at 96% 42%,#e5e9d6,transparent 27%),#f2eedc}a{color:inherit}a:focus-visible{outline:3px solid var(--rust);outline-offset:4px}.hub-shell{width:min(1160px,calc(100% - 72px));margin:auto}.hub-header{height:94px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #cbd1bb}.hub-brand{text-decoration:none;display:flex;gap:11px;align-items:center;font:700 21px/1.05 'Gowun Batang',serif}.hub-brand small{display:block;font:700 8px/1.2 'DM Sans',sans-serif;letter-spacing:.27em;margin-top:7px}.brand-spark{width:42px;height:42px;border:1.5px solid #315a47;border-radius:50%;display:grid;place-items:center;color:#bd7750;font-size:23px}.header-note{color:#768a77;font:13px 'Gowun Batang',serif}.hub-hero{min-height:390px;display:grid;grid-template-columns:1fr 430px;align-items:center;position:relative}.hero-text{position:relative;z-index:2;padding:49px 0 56px}.eyebrow,.section-kicker{font:700 11px 'DM Sans',sans-serif;letter-spacing:.25em;color:#ad714d}.hero-text h1{font:700 clamp(41px,4.6vw,63px)/1.22 'Gowun Batang',serif;letter-spacing:-.055em;margin:15px 0 19px}.hero-text h1 em{font-style:normal;color:var(--rust)}.hero-description{font:16px/1.8 'Gowun Batang',serif;color:#627663;margin:0 0 24px}.hero-cta{display:inline-flex;align-items:center;gap:23px;background:#b8744f;color:#fffaf0;border:1px solid #925639;border-radius:7px;box-shadow:4px 5px 0 #dfc79b;text-decoration:none;padding:14px 18px;font-size:13px;font-weight:700;transition:transform .2s,box-shadow .2s}.hero-cta span{font-size:19px;line-height:1}.hero-cta:hover{transform:translate(2px,2px);box-shadow:2px 3px 0 #dfc79b}.hero-art{height:340px;position:relative;overflow:hidden}.art-moon{position:absolute;width:206px;height:206px;top:25px;left:116px;border-radius:50%;background:#efd79e;box-shadow:0 0 0 19px #efd79e35,0 0 0 43px #efd79e18}.art-star{position:absolute;color:#c78d55}.art-star.a{left:56px;top:45px;font-size:30px}.art-star.b{right:30px;top:105px;font-size:27px}.art-hill{position:absolute;width:530px;height:170px;border-radius:50% 50% 0 0;left:-55px;bottom:-96px}.art-hill.rear{background:#a4bc98;transform:rotate(-9deg);bottom:-83px}.art-hill.front{background:#426b53;transform:rotate(9deg);bottom:-105px;z-index:3}.art-castle{position:absolute;left:161px;bottom:64px;width:115px;height:150px;background:#e5b579;border:6px solid #315847;border-bottom:0;border-radius:7px 7px 0 0;z-index:2;box-shadow:inset -14px 0 #c99869}.castle-top{position:absolute;left:-24px;right:-24px;top:-55px;height:56px;background:#b36d4e;clip-path:polygon(50% 0,100% 100%,0 100%)}.castle-gate{position:absolute;bottom:0;left:30px;width:46px;height:64px;background:#355b45;border:5px solid #f3dea9;border-bottom:0;border-radius:28px 28px 0 0}.art-tree{position:absolute;bottom:4px;color:#345d48;font-size:100px;z-index:4;line-height:1}.art-tree.left{left:9px}.art-tree.right{right:0;font-size:85px}.catalog{padding:16px 0 10px}.section-heading{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid #cbd1bb;padding-bottom:17px;margin-bottom:24px}.section-kicker{margin:0 0 5px;color:#8d9275}.section-heading h2{font:700 31px 'Gowun Batang',serif;letter-spacing:-.04em;margin:0}.shelf-count{font-size:11px;letter-spacing:.14em;color:#966d4f;font-weight:700;padding-bottom:5px}.shelf-count span{color:#9ca996}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.game-tile{display:block;min-width:0;border:1px solid #c8d0be;border-radius:15px;background:var(--paper);box-shadow:0 8px 0 #d8dfcb;text-decoration:none;overflow:hidden;transition:transform .22s,box-shadow .22s}.game-tile.playable:hover{transform:translateY(-5px);box-shadow:0 13px 0 #d8dfcb}.game-tile.upcoming{background:#f8f7ec}.card-art{height:205px;position:relative;overflow:hidden;border-bottom:1px solid #d4d8c8}.dungeon-art{background:linear-gradient(180deg,#e9d9a7,#d8d5ac)}.tile-sun{position:absolute;width:113px;height:113px;border-radius:50%;background:#f6e8b9;left:50%;top:15px;transform:translateX(-50%);box-shadow:0 0 0 14px #f6e8b943}.dungeon-hill{position:absolute;bottom:-52px;left:-20px;width:calc(100% + 40px);height:110px;border-radius:50% 50% 0 0;background:#6d926c}.dungeon-tower{position:absolute;width:102px;height:101px;background:#dea676;border:5px solid #3d654e;border-bottom:0;left:50%;bottom:32px;transform:translateX(-50%);border-radius:7px 7px 0 0;box-shadow:inset -10px 0 #ca8e67}.dungeon-tower:before{content:'';position:absolute;left:-22px;right:-22px;top:-44px;height:45px;background:#a96a4d;clip-path:polygon(50% 0,100% 100%,0 100%)}.dungeon-tower b{position:absolute;width:39px;height:53px;bottom:0;left:27px;background:#345c46;border:4px solid #efddab;border-bottom:0;border-radius:20px 20px 0 0}.floating-key{position:absolute;right:52px;top:51px;color:#b97e38;font-size:39px;transform:rotate(-30deg)}.tiny-spark{position:absolute;top:31px;left:49px;color:#b78450;font-size:20px}.garden-art{background:linear-gradient(180deg,#d7dec9,#b4c8af)}.garden-moon{position:absolute;width:95px;height:95px;border-radius:50%;background:#efe7c4;top:23px;right:54px}.garden-art:after{content:'';position:absolute;bottom:-35px;left:-20px;width:calc(100% + 40px);height:100px;border-radius:50%;background:#6d9479}.flower{position:absolute;font-size:55px;color:#dba478;z-index:1;text-shadow:0 5px #60836b}.flower.one{left:49px;bottom:24px}.flower.two{left:142px;bottom:48px;font-size:42px;color:#e5c38e}.flower.three{right:47px;bottom:13px;font-size:61px;color:#d49691}.cloud-art{background:linear-gradient(180deg,#d8e1d9,#e6dec9)}.cloud{position:absolute;width:140px;height:45px;background:#f9f3df;border-radius:50px;opacity:.8}.cloud:before{content:'';position:absolute;width:70px;height:70px;background:inherit;border-radius:50%;top:-35px;left:35px}.cloud.c1{left:13px;top:47px}.cloud.c2{right:10px;top:73px;transform:scale(.8)}.cloud-book{position:absolute;width:110px;height:85px;bottom:24px;left:50%;transform:translateX(-50%) rotate(-6deg);background:#bc7e61;border:6px solid #875d4d;border-radius:4px 16px 16px 4px;box-shadow:8px 8px #d6bd91;display:grid;place-items:center;color:#f4dfad;font-size:35px}.card-content{padding:20px 22px 23px}.card-meta{display:flex;justify-content:space-between;align-items:center;gap:5px}.genre{font-size:11px;color:#7d947c}.available,.not-ready{flex:none;font-size:10px;font-weight:700;padding:5px 7px;border-radius:20px}.available{background:#dfe9d8;color:#426744}.not-ready{background:#e9e9dc;color:#83917e}.card-content h3{font:700 24px 'Gowun Batang',serif;letter-spacing:-.05em;margin:14px 0 8px}.card-content p{min-height:48px;font:13px/1.65 'Gowun Batang',serif;color:#6e806d;margin:0 0 18px}.card-action{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:700;color:#ae6947;padding-top:15px;border-top:1px solid #dfdfcc}.card-action span{font-size:19px}.card-action.muted{color:#9da999}footer{text-align:center;padding:49px 0 30px;font:13px 'Gowun Batang',serif;color:#8a9a86}@media(max-width:900px){.hub-hero{grid-template-columns:1fr 310px}.hero-art{transform:scale(.8);transform-origin:center right}.card-grid{gap:12px}.card-content{padding:17px}.card-content h3{font-size:21px}.card-art{height:170px}}@media(max-width:700px){.hub-shell{width:calc(100% - 32px)}.hub-header{height:74px}.hub-brand{font-size:17px}.brand-spark{width:35px;height:35px}.header-note{font-size:11px}.hub-hero{min-height:370px;display:block;overflow:hidden}.hero-text{padding:47px 0 42px}.hero-text h1{font-size:clamp(38px,8vw,53px)}.hero-art{position:absolute;right:-75px;top:20px;width:340px;opacity:.35;transform:scale(.8);pointer-events:none}.hero-description{font-size:14px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card-grid .playable{grid-column:1/-1;display:grid;grid-template-columns:42% 58%}.card-grid .playable .card-art{height:auto;min-height:205px;border-bottom:0;border-right:1px solid #d4d8c8}.card-grid .playable .card-content{display:flex;flex-direction:column;justify-content:center}.card-grid .playable .card-content p{min-height:0}.card-art{height:145px}}@media(max-width:480px){.header-note{display:none}.hub-hero{min-height:350px}.hero-art{right:-135px;opacity:.24}.hero-text h1{font-size:39px}.section-heading h2{font-size:27px}.shelf-count{font-size:9px}.card-grid{grid-template-columns:1fr}.card-grid .playable{display:block}.card-grid .playable .card-art{height:195px;border-right:0;border-bottom:1px solid #d4d8c8}.card-content p{min-height:0}.card-art{height:180px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* A tiny night-time story for the courier card. */
.courier-art{background:radial-gradient(circle at 50% 30%,#6a7ba0 0,#344868 43%,#172d48 100%)}
.courier-moon{position:absolute;top:20px;right:48px;width:88px;height:88px;border-radius:50%;background:#f8dfac;box-shadow:0 0 0 12px #f8dfac1f,0 0 38px #f8dfac77}
.courier-star{position:absolute;color:#ffe8ad;text-shadow:0 0 14px #fff1bd;line-height:1}.star-one{top:39px;left:52px;font-size:31px}.star-two{top:82px;left:31%;font-size:23px}.star-three{top:31px;right:24%;font-size:17px}
.courier-hill{position:absolute;left:-10%;bottom:-68px;width:120%;height:128px;border-radius:50% 50% 0 0;background:#274d56;transform:rotate(-7deg)}
.courier-trail{position:absolute;left:9%;bottom:38px;width:48%;height:4px;border-radius:50%;background:#ffd99e;box-shadow:0 0 14px #ffdb8d;transform:rotate(-13deg)}
.courier-figure{position:absolute;right:25%;bottom:38px;width:51px;height:50px;border-radius:45% 45% 30% 30%;background:#f0b77c;border:4px solid #273d4d;box-shadow:0 5px 0 #1a3440;transform:rotate(10deg)}
.courier-figure:before{content:'';position:absolute;left:9px;top:-16px;width:19px;height:20px;border-radius:50% 50% 35% 35%;background:#ffdba6;border:4px solid #273d4d}
.courier-figure:after{content:'';position:absolute;left:-11px;top:22px;width:22px;height:19px;border-radius:8px;background:#ab6657;border:3px solid #273d4d}
.courier-figure span{position:absolute;right:-15px;top:19px;width:20px;height:7px;border-radius:8px;background:#ffdba6;transform:rotate(-35deg)}
.courier-bag{position:absolute;right:12%;bottom:28px;z-index:1;width:36px;height:42px;border:3px solid #273d4d;border-radius:8px 8px 13px 13px;background:#c9835d;color:#ffe0a1;display:grid;place-items:center;font-size:18px;transform:rotate(-12deg)}

/* Storybook knight against a warm twilight sky. */
.knight-art{background:linear-gradient(180deg,#f3dbad 0%,#edbd8f 55%,#c99275 100%)}
.knight-sun{position:absolute;left:21%;top:19px;width:112px;height:112px;border-radius:50%;background:#ffe9b7;box-shadow:0 0 0 13px #ffefc455}
.knight-ridge{position:absolute;left:-10%;bottom:-82px;width:120%;height:142px;border-radius:50% 50% 0 0;background:#57775c;transform:rotate(8deg)}
.knight-spark{position:absolute;color:#fff1c8;text-shadow:0 0 10px #fff6df}.knight-spark.k1{right:17%;top:27px;font-size:28px}.knight-spark.k2{left:17%;top:95px;font-size:21px}
.knight-shadow{position:absolute;left:50%;bottom:20px;width:108px;height:13px;border-radius:50%;background:#32534688;transform:translateX(-50%)}
.knight-helmet{position:absolute;left:50%;bottom:45px;width:74px;height:77px;border:5px solid #344d4a;border-radius:45% 45% 29% 29%;background:#d8e4ce;box-shadow:inset -12px -4px #aebfae;transform:translateX(-50%);z-index:2}
.knight-helmet:before{content:'';position:absolute;left:15px;top:-16px;width:27px;height:22px;border-radius:50% 50% 0 0;background:#b66f58;border:4px solid #344d4a;border-bottom:0}
.knight-helmet:after{content:'';position:absolute;left:16px;top:31px;width:35px;height:10px;border-radius:8px;background:#3b534a}
.knight-helmet span{position:absolute;left:27px;bottom:-15px;width:16px;height:17px;background:#344d4a;border-radius:0 0 4px 4px}
.knight-shield{position:absolute;left:calc(50% - 60px);bottom:46px;width:44px;height:53px;background:#be795d;border:4px solid #344d4a;border-radius:7px 7px 19px 19px;z-index:3;color:#ffe6ab;display:grid;place-items:center;font-size:20px;transform:rotate(-13deg)}
.knight-sword{position:absolute;left:calc(50% + 43px);bottom:57px;width:8px;height:90px;background:#e8f1de;border:2px solid #344d4a;border-radius:7px 7px 2px 2px;z-index:3;transform:rotate(28deg)}
.knight-sword:after{content:'';position:absolute;left:-13px;bottom:10px;width:30px;height:7px;border-radius:5px;background:#a96d51;border:2px solid #344d4a}

.card-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center}

/* The storybook panorama replaces the decorative castle drawing. */
.hub-hero{grid-template-columns:minmax(0,1fr) minmax(360px,48%);gap:28px}
.hero-art{width:100%;height:324px;border-radius:20px;box-shadow:0 12px 28px #24453229;transform:none}
.hero-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:70% center}
@media(max-width:900px){.hub-hero{grid-template-columns:minmax(0,1fr) minmax(275px,44%);gap:12px}.hero-art{height:285px;transform:none}}
@media(max-width:700px){.hub-hero{min-height:410px}.hero-text{max-width:66%}.hero-art{position:absolute;right:-6%;top:38px;width:63%;height:320px;transform:none;opacity:1;mask-image:linear-gradient(to right,transparent 0%,#000 18%);pointer-events:none}}
@media(max-width:480px){.hub-hero{min-height:386px}.hero-text{max-width:74%}.hero-art{right:-26%;top:55px;width:79%;height:275px;opacity:.72;mask-image:linear-gradient(to right,transparent 0%,#000 40%)}.hero-text h1{position:relative;text-shadow:0 1px #f2eedc,0 -1px #f2eedc}}
@media(max-width:700px){.hub-hero{min-height:0;display:flex;flex-direction:column;overflow:visible}.hero-text{max-width:none;width:100%;padding:35px 0 22px}.hero-art{position:relative;right:auto;top:auto;width:100%;height:220px;margin:0 0 18px;opacity:1;mask-image:none;pointer-events:auto}.hero-art img{object-position:center}}
@media(max-width:480px){.hub-hero{min-height:0}.hero-text{max-width:none}.hero-art{right:auto;top:auto;width:100%;height:190px;opacity:1;mask-image:none}.hero-text h1{text-shadow:none}}

/* Four playable stories stay balanced on wide and medium screens. */
@media(min-width:901px){.card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.card-content{padding:18px}.card-content h3{font-size:22px}.card-art{height:188px}}
@media(min-width:701px) and (max-width:900px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.card-art{height:195px}}
