:root{--bg:#f3f4f5;--ink:#28313b;--muted:#7a8795;--blue:#376c97}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);font-size:16px;line-height:1.75}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}a:focus-visible{outline:3px solid #3c84ba;outline-offset:5px}img{display:block;width:100%;height:auto}.gallery{max-width:1600px;margin:auto;padding:34px 28px 70px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:stretch;perspective:1400px}.game-card{--rx:0deg;--ry:0deg;--lift:0px;--scale:1;--px:50%;--py:30%;position:relative;min-width:0;background:#fff;display:flex;flex-direction:column;transform:perspective(1000px) translateY(var(--lift)) rotateX(var(--rx)) rotateY(var(--ry)) scale(var(--scale));transform-style:preserve-3d;transition:transform .48s cubic-bezier(.2,1.65,.4,1),box-shadow .35s ease;box-shadow:0 3px 12px #25384c05;animation:card-in .55s cubic-bezier(.2,1.2,.3,1) both;animation-delay:calc(var(--order)*85ms);isolation:isolate}.game-card:hover,.game-card:focus-within{--lift:-8px;box-shadow:0 22px 40px -18px #2c465f45,0 5px 12px #2438510a}.game-card.is-pressed{--scale:.965;--lift:-1px;transition:transform .12s cubic-bezier(.2,.8,.3,1)}.card-main{display:flex;flex:1;flex-direction:column}.cover{position:relative;overflow:hidden;aspect-ratio:16/9;background:#dce2e9}.cover img{height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,1,.3,1)}.game-card:hover .cover img,.game-card:focus-within .cover img{transform:scale(1.045)}.game-card.is-pressed .cover img{transform:scale(1.02)}.badge{position:absolute;left:14px;top:14px;background:#fff;padding:4px 10px;font-size:12px;font-weight:650;line-height:1.6;box-shadow:0 2px 8px #0000000c}.card-copy{padding:22px 22px 0}.tags{margin:0 0 12px;color:var(--blue);font-size:12px;font-weight:600;line-height:1.6}.tags span{color:#b9c2cb;margin:0 7px}.title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.title-row h1{font-size:25px;font-weight:700;letter-spacing:-.6px;line-height:1.35;margin:0}.number{font-size:24px;font-weight:300;color:#cfd7e0}.subtitle{font-size:13px;color:var(--muted);letter-spacing:.3px;line-height:1.6;margin:5px 0 15px}.description{font-size:14px;line-height:1.9;color:#768492;margin:0;padding-bottom:22px}.card-footer{display:flex;align-items:center;gap:16px;padding:0 22px 25px;flex-wrap:wrap;min-height:67px}.steam-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 13px;background:var(--ink);color:#fff;font-size:12px;font-weight:650;transition:transform .2s,background .2s;position:relative;z-index:2}.steam-button:hover{background:#3a5d79;transform:translateY(-2px)}.steam-button:active{transform:scale(.94)}.read-link{font-size:12px;color:#7e8c99;border-bottom:1px solid #c8d0d7;line-height:2;position:relative;z-index:2}.read-link:hover{color:var(--blue)}.unavailable{font-size:12px;color:#87929c}.card-shine{position:absolute;inset:0;pointer-events:none;z-index:3;opacity:0;transition:opacity .4s;background:radial-gradient(circle at var(--px) var(--py),#ffffff38,transparent 60%)}.game-card:hover .card-shine{opacity:1}.article-page{max-width:960px;margin:0 auto;padding:32px 24px 60px}.back-link{display:inline-block;color:#677c90;font-size:14px;margin-bottom:24px;border-bottom:1px solid #c1cbd4}.article-sheet{background:#fff;min-height:65vh;padding:48px 54px}.article-sheet h1{font-size:32px;line-height:1.5;margin:0;padding-bottom:24px;border-bottom:1px solid #e9edf0}.article-body{min-height:300px;margin-top:30px}@keyframes card-in{from{opacity:0;translate:0 15px}to{opacity:1;translate:0 0}}@media(min-width:1600px){.gallery{padding-top:44px}}@media(max-width:900px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));padding:24px;gap:22px}}@media(max-width:520px){.gallery{grid-template-columns:1fr;padding:18px;gap:23px}.card-copy{padding:22px 24px 0}.card-footer{padding:0 24px 25px}.title-row h1{font-size:27px}.description{font-size:15px}.steam-button,.read-link,.unavailable{font-size:14px}.article-page{padding:23px 18px}.article-sheet{padding:28px 24px}.article-sheet h1{font-size:27px}}@media(hover:none){.game-card:hover{--lift:0px;box-shadow:0 3px 12px #25384c05}.game-card:hover .cover img{transform:none}.game-card:hover .card-shine{opacity:0}.game-card.is-pressed{--scale:.975}.game-card.is-pressed .cover img{transform:scale(1.025)}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.game-card{transform:none!important}.cover img{transform:none!important}}
/* Journey header and switchable sections */
[hidden]{display:none!important}.journey-banner{background:#293744;color:#fff;min-height:210px;display:flex;align-items:center;border-bottom:1px solid #202d39}.banner-inner{max-width:1600px;width:100%;padding:40px 40px;margin:auto}.journey-banner h1{margin:0;font-size:clamp(30px,3.7vw,50px);font-weight:750;letter-spacing:1px;line-height:1.4}.section-nav-wrap{background:#fff;border-bottom:1px solid #dfe4e9}.section-nav{max-width:1600px;margin:auto;display:flex;gap:36px;padding:0 40px}.section-nav button{position:relative;font:inherit;font-size:16px;cursor:pointer;background:none;border:0;color:#7a8795;padding:22px 2px 20px;transition:color .2s}.section-nav button::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:#344f67;transform:scaleX(0);transition:transform .3s cubic-bezier(.2,1,.3,1)}.section-nav button[aria-selected="true"]{color:#263c50;font-weight:650}.section-nav button[aria-selected="true"]::after{transform:scaleX(1)}.section-nav button:hover{color:#263c50}.section-nav button:focus-visible{outline:3px solid #528cb8;outline-offset:-5px}.title-row h2{font-size:25px;font-weight:700;letter-spacing:-.6px;line-height:1.35;margin:0}.note-cover{background:#dfe6eb;display:flex;align-items:center;justify-content:center;color:#8294a4}.note-cover>span:first-child{font-family:Georgia,serif;font-size:62px;line-height:1;opacity:.65}.about-container{max-width:1000px;margin:0 auto;padding:34px 28px 100px}.article-sheet h2{font-size:32px;line-height:1.5;margin:0;padding-bottom:24px;border-bottom:1px solid #e9edf0}.gallery{padding-bottom:150px}.pet-zone{position:fixed;left:0;top:0;width:108px;height:116px;z-index:20;user-select:none;will-change:transform}.pet-ball{display:block;width:108px;height:108px;padding:0;border:0;background:transparent;cursor:grab;touch-action:none;user-select:none;position:relative;z-index:1;transition:filter .2s;transform-origin:50% 85%;filter:drop-shadow(0 5px 3px #25384c18)}.pet-ball img{width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}.pet-ball:hover{filter:drop-shadow(0 7px 5px #25384c28)}.pet-ball:active{cursor:grabbing}.pet-ball:focus-visible{outline:2px dashed #6894b6;outline-offset:4px;border-radius:50%}.pet-ball.squish{animation:pet-squish .35s cubic-bezier(.2,1.5,.4,1)}.pet-shadow{position:absolute;bottom:0;left:24%;width:52%;height:9px;background:#263c5020;border-radius:50%;filter:blur(3px)}@keyframes pet-squish{0%{transform:scale(1.14,.85)}55%{transform:scale(.94,1.08)}100%{transform:scale(1)}}@media(max-width:680px){.journey-banner{min-height:150px}.banner-inner{padding:30px 22px}.journey-banner h1{font-size:29px;letter-spacing:0}.section-nav{padding:0 22px;gap:25px}.section-nav button{font-size:14px;padding-top:18px;padding-bottom:16px}.about-container{padding:24px 18px 120px}.pet-zone{width:88px;height:96px}.pet-ball{width:88px;height:88px}}@media(prefers-reduced-motion:reduce){.pet-ball.squish{animation:none}}

/* Gray printed halftone banner; original-photo pet crop. */
.journey-banner{position:relative;overflow:hidden;isolation:isolate;background:#dedede;color:#282828;border-bottom:1px solid #c9c9c9;background-image:radial-gradient(circle,#747474 1px,transparent 1.15px);background-size:6px 6px}
.journey-banner::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,#efefeff0 0%,#e4e4e4cb 40%,#aaa0 72%),radial-gradient(ellipse at 98% 105%,#4447 0%,#aaa1 57%,transparent 74%);pointer-events:none}
.journey-banner::after{content:"";position:absolute;width:58%;height:230%;right:-7%;top:-74%;border-radius:50%;z-index:-1;background-image:radial-gradient(circle,#494949 1.8px,transparent 2px);background-size:7px 7px;transform:rotate(-16deg);opacity:.48;mask-image:linear-gradient(90deg,transparent,#000 45%);pointer-events:none}
.journey-banner h1{text-shadow:0 1px 0 #ffffff70}.pet-ball{overflow:hidden;border-radius:50%;background:#f7d9d6;box-shadow:inset 0 0 0 1px #ffffff70}.pet-ball img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:scale(1.38);transform-origin:59% 32%;border-radius:50%}.pet-ball::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;box-shadow:inset -7px -9px 13px #35131324,inset 3px 3px 8px #ffffff4d}

/* Collaged original-photo pig pile inside the halftone banner. */
.journey-banner{min-height:280px}.banner-inner{position:relative;z-index:3;pointer-events:none}.journey-banner h1{max-width:59%;text-wrap:balance}.pig-pile{position:absolute;width:43%;height:100%;right:0;bottom:0;z-index:2;pointer-events:none}.pile-pig{position:absolute;left:var(--x);bottom:var(--bottom);width:var(--size);height:var(--size);border-radius:50%;overflow:hidden;transform:translateX(-50%) rotate(var(--angle));box-shadow:0 4px 12px #29292938,inset 0 0 0 1px #fff8;background:#f0d4d0;z-index:var(--layer)}.pile-pig img{width:100%;height:100%;object-fit:cover;transform:scale(1.38);transform-origin:59% 32%;user-select:none}.pile-pig::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset -7px -9px 13px #35131324,inset 3px 3px 8px #ffffff4d}.journey-banner::after{opacity:.25}@media(max-width:900px){.journey-banner{min-height:250px}.journey-banner h1{max-width:54%;font-size:34px}.pig-pile{width:46%;transform:scale(.85);transform-origin:right bottom}}@media(max-width:600px){.journey-banner{min-height:290px;align-items:flex-start}.banner-inner{padding-top:25px}.journey-banner h1{max-width:none;font-size:27px}.pig-pile{width:100%;height:215px;transform:scale(.68);transform-origin:right bottom}.journey-banner::before{background:linear-gradient(180deg,#efefeff0 0%,#e4e4e499 48%,#aaa0 85%)}}

/* Flat, solid gray halftone dots without overlays or pig collage. */
.journey-banner{min-height:210px;background-color:#e9e9e9;background-image:radial-gradient(circle at center,#999999 0 1.5px,transparent 1.5px);background-size:9px 9px;color:#282828;border-bottom:1px solid #d0d0d0}
.journey-banner::before,.journey-banner::after{display:none}.journey-banner h1{max-width:none;text-shadow:none}.banner-inner{padding:40px}.pig-pile{display:none}@media(max-width:900px){.journey-banner{min-height:210px}.journey-banner h1{max-width:none;font-size:34px}}@media(max-width:600px){.journey-banner{min-height:150px;align-items:center}.banner-inner{padding:30px 22px}.journey-banner h1{font-size:29px}}

/* Density and circle size increase from left to right; every dot stays solid gray. */
.journey-banner{background-image:none;background-color:#e9e9e9}.halftone-field{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.banner-inner{z-index:1}
