:root{--bg:#f7f7f7;--card:#fff;--text:#202124;--muted:#777;--accent:#6ac27f;--dark:#408d55;--line:#e5e5e5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}button,a{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit}:focus-visible{outline:3px solid rgba(106,194,127,.42);outline-offset:3px}
.site-header{position:relative;z-index:20;background:rgba(247,247,247,.9);border-bottom:1px solid var(--line)}.header-inner{height:70px;max-width:1080px;margin:auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between}.logo,.footer-logo{font-size:17px;font-weight:800;letter-spacing:.105em;line-height:1}.logo span,.footer-logo span{color:var(--dark)}.account{position:relative}.account-button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--card);cursor:pointer;transition:.2s}.account-button:hover{border-color:var(--accent);transform:translateY(-1px)}.account-button svg{width:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.account-menu{position:absolute;top:53px;right:0;width:174px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 14px 40px rgba(25,38,29,.12)}.account-menu::before{content:"";position:absolute;top:-5px;right:17px;width:8px;height:8px;background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}.account-menu strong,.account-menu span{display:block}.account-menu strong{font-size:14px}.account-menu span{margin-top:3px;color:var(--muted);font-size:12px}
.hero{position:relative;min-height:350px;overflow:hidden;isolation:isolate;border-bottom:1px solid var(--line);background:linear-gradient(145deg,#f3faf5,#f8faf8 54%,#f7f7f7)}.hero-content{position:relative;z-index:2;max-width:1080px;margin:auto;padding:66px 20px 62px}.eyebrow{margin:0 0 15px;color:var(--dark);font-size:10px;font-weight:800;letter-spacing:.2em}.hero h1{margin:0;font-size:clamp(38px,11vw,68px);line-height:1.16;letter-spacing:-.045em}.hero h1 em{color:var(--dark);font-style:normal}.hero-copy{margin:20px 0 26px;color:var(--muted);font-size:14px}.hero-link{min-height:44px;display:inline-flex;gap:11px;align-items:center;font-size:13px;font-weight:700}.hero-link span{width:29px;height:29px;display:grid;place-items:center;color:#fff;background:var(--accent);border-radius:50%;transition:.2s}.hero-link:hover span{transform:translateY(3px)}.hero-decoration,.shape{position:absolute;pointer-events:none}.hero-decoration{z-index:1;inset:0;max-width:1080px;margin:auto}.shape-circle{width:170px;height:170px;right:-55px;top:28px;border:32px solid rgba(106,194,127,.15);border-radius:50%;animation:float-y 8s ease-in-out infinite}.shape-square{width:74px;height:74px;right:29%;bottom:35px;border:2px solid rgba(106,194,127,.28);transform:rotate(18deg);animation:rotate-soft 16s linear infinite}.shape-dots{width:64px;height:64px;right:15%;top:46%;opacity:.36;background-image:radial-gradient(var(--accent) 2px,transparent 2px);background-size:14px 14px;animation:drift 10s ease-in-out infinite}.shape-line{width:90px;height:2px;right:43%;top:30%;background:rgba(106,194,127,.35);transform:rotate(-32deg)}.shape-blur{width:120px;height:120px;right:8%;bottom:-40px;background:rgba(106,194,127,.22);border-radius:50%;filter:blur(25px);animation:pulse 7s ease-in-out infinite}
.games-section{max-width:1080px;margin:auto;padding:64px 16px 82px;scroll-margin-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:end;padding:0 4px}.section-heading .eyebrow{margin-bottom:7px}.section-heading h2{margin:0;font-size:30px;letter-spacing:-.02em}.game-count{margin:0 0 5px;color:#999;font-size:10px;font-weight:700;letter-spacing:.14em}.categories{margin:20px 0 25px;padding-bottom:12px;overflow-x:auto;border-bottom:1px solid var(--line)}.category{min-height:38px;padding:7px 20px;border:0;border-radius:999px;background:transparent;font-size:13px;cursor:pointer}.category.is-active{color:#fff;background:var(--accent);font-weight:700;box-shadow:0 5px 15px rgba(106,194,127,.22)}.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.game-card{min-width:0;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 22px rgba(32,33,36,.035);transition:.25s}.game-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(32,33,36,.075)}.game-thumbnail{position:relative;aspect-ratio:4/3;display:grid;place-items:center;overflow:hidden;color:#929793;background:#eff1ef}.game-thumbnail::before,.game-thumbnail::after{content:"";position:absolute;border:1px solid rgba(112,126,116,.12);border-radius:50%}.game-thumbnail::before{width:62%;aspect-ratio:1;top:-28%;right:-20%}.game-thumbnail::after{width:38%;aspect-ratio:1;bottom:-20%;left:-8%}.thumbnail-2,.thumbnail-5{background:#f1f1ef}.thumbnail-3,.thumbnail-6{background:#edf1f0}.game-thumbnail span{position:relative;z-index:1;font-size:clamp(8px,2.4vw,11px);font-weight:800;letter-spacing:.16em}.game-info{padding:15px 14px 14px}.game-info h3{margin:0;font-size:15px;letter-spacing:.04em}.game-info p{min-height:3.3em;margin:7px 0 10px;color:var(--muted);font-size:11px;line-height:1.65}.play-button{min-width:70px;min-height:40px;padding:6px 0;border:0;background:transparent;color:var(--dark);font-size:11px;font-weight:800;letter-spacing:.1em;text-align:left;cursor:pointer}.play-button span{display:inline-block;margin-left:5px;transition:.2s}.play-button:hover span{transform:translateX(4px)}
.site-footer{color:#d5d9d6;background:#202421}.footer-inner{max-width:1080px;margin:auto;padding:48px 20px 38px}.footer-logo{display:inline-block;margin-bottom:35px;color:#fff}.footer-logo span{color:#8dd79e}.footer-links{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}.footer-links div{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.footer-links p{margin:0 0 3px;color:#858d87;font-size:9px;font-weight:800;letter-spacing:.18em}.footer-links a{min-height:30px;font-size:12px;transition:.2s}.footer-links a:hover{color:#8dd79e}.copyright{max-width:1080px;margin:auto;padding:20px;border-top:1px solid rgba(255,255,255,.08);color:#858d87;font-size:10px;letter-spacing:.08em}
.game-dialog{width:min(88vw,380px);padding:34px 28px 28px;text-align:center;border:0;border-radius:20px;box-shadow:0 22px 70px rgba(20,31,23,.23)}.game-dialog::backdrop{background:rgba(20,25,21,.45);backdrop-filter:blur(3px)}.game-dialog .eyebrow{margin:15px 0 7px}.game-dialog h2{margin:0 0 10px;font-size:21px}.game-dialog>p:last-of-type{margin:0;color:var(--muted);font-size:13px}.dialog-icon{width:45px;height:45px;margin:auto;display:grid;place-items:center;color:#fff;background:var(--accent);border-radius:50%;font-size:19px}.dialog-close{position:absolute;top:10px;right:12px;width:40px;height:40px;border:0;background:transparent;color:#888;font-size:24px;cursor:pointer}.dialog-ok{width:100%;min-height:44px;margin-top:24px;border:0;border-radius:10px;color:#fff;background:var(--accent);font-weight:700;cursor:pointer}
@keyframes float-y{50%{transform:translateY(14px)}}@keyframes drift{50%{transform:translate(-13px,8px)}}@keyframes rotate-soft{to{transform:rotate(378deg)}}@keyframes pulse{50%{transform:scale(1.12);opacity:.72}}
@media(min-width:700px){.header-inner{height:78px;padding-inline:28px}.hero{min-height:430px}.hero-content{padding:83px 28px 78px}.shape-circle{width:280px;height:280px;right:2%;top:10px;border-width:50px}.shape-dots{right:29%}.games-section{padding:80px 28px 100px}.game-grid{gap:24px}.game-card{border-radius:20px}.game-info{padding:22px}.game-info h3{font-size:19px}.game-info p{min-height:auto;font-size:13px}.play-button{margin-top:7px;font-size:12px}.footer-inner{display:flex;justify-content:space-between;padding:62px 28px 48px}.footer-links{width:47%}.copyright{padding-inline:28px}}
@media(max-width:359px){.header-inner{padding-inline:14px}.logo{font-size:15px}.games-section{padding-inline:10px}.game-grid{gap:9px}.game-info{padding:12px 10px}.game-info h3{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Hero copy and decorative motion refinements */
.eyebrow{font-size:13px}.hero h1{font-size:clamp(30px,8vw,68px)}.hero-copy{color:var(--accent);font-weight:400}.game-count{font-size:13px}.game-thumbnail span{font-size:clamp(11px,3.2vw,14px)}
.shape-line{animation:line-drift 11s ease-in-out infinite}.shape-square{animation:square-float 14s ease-in-out infinite}
@keyframes float-y{0%,100%{transform:translateY(-12px)}50%{transform:translateY(34px)}}
@keyframes drift{0%,100%{transform:translate(-18px,-10px)}50%{transform:translate(28px,20px)}}
@keyframes square-float{0%,100%{transform:translateY(-14px) rotate(8deg)}50%{transform:translateY(25px) rotate(48deg)}}
@keyframes line-drift{0%,100%{transform:translate(-14px,-10px) rotate(-38deg)}50%{transform:translate(25px,20px) rotate(-24deg)}}
@keyframes pulse{0%,100%{transform:scale(.82);opacity:.5}50%{transform:scale(1.32);opacity:.9}}

/* Portal visual polish */
body{font-family:system-ui,-apple-system,"Segoe UI","Hiragino Sans","Yu Gothic UI","Yu Gothic",sans-serif;letter-spacing:.01em}
.logo,.footer-logo{letter-spacing:.13em}.hero h1{font-weight:800;line-height:1.1;letter-spacing:-.055em}.hero h1 em{color:var(--accent)}
.eyebrow{color:var(--accent);font-weight:750;letter-spacing:.24em;line-height:1.4}.hero-copy{position:relative;margin-top:24px;padding-left:18px;color:#69716c;font-weight:400;letter-spacing:.035em}.hero-copy::before{content:"";position:absolute;left:0;top:50%;width:9px;height:2px;background:var(--accent);border-radius:2px}
.games-section{padding-top:70px}.section-heading{position:relative;padding:0 4px 18px}.section-heading::after{content:"";position:absolute;left:4px;right:4px;bottom:0;height:1px;background:linear-gradient(90deg,var(--accent) 0 44px,var(--line) 44px)}.section-heading h2{font-weight:800;letter-spacing:-.035em;line-height:1}.game-count{margin-bottom:1px;color:#737975;font-weight:700;letter-spacing:.18em}.categories{margin-top:16px;border-bottom:0;padding-bottom:0}.category{letter-spacing:.04em}.category.is-active{box-shadow:0 6px 18px rgba(106,194,127,.2)}
.game-grid{gap:16px}.game-card{border-color:#e7eae8;border-radius:18px;box-shadow:0 5px 18px rgba(32,45,36,.035);will-change:transform}.game-thumbnail{background-color:#f0f2f0;background-image:linear-gradient(135deg,rgba(106,194,127,.07),transparent 48%),linear-gradient(90deg,transparent 49.6%,rgba(111,126,116,.07) 49.6%,rgba(111,126,116,.07) 50.4%,transparent 50.4%);border-bottom:1px solid rgba(32,45,36,.045)}.thumbnail-2,.thumbnail-5{background-color:#f3f3f1}.thumbnail-3,.thumbnail-6{background-color:#eef2f0}.game-thumbnail::before{width:50%;top:-24%;right:-13%;border-color:rgba(106,194,127,.17);box-shadow:0 0 0 10px rgba(106,194,127,.025)}.game-thumbnail::after{content:attr(data-number);width:auto;height:auto;left:auto;top:auto;right:10px;bottom:3px;border:0;color:rgba(42,58,47,.09);font-size:clamp(34px,11vw,72px);font-weight:800;line-height:1;letter-spacing:-.07em}.game-thumbnail span{position:relative;padding:7px 9px 6px;color:#78807a;border:1px solid rgba(86,104,91,.13);background:rgba(255,255,255,.4);border-radius:999px;font-weight:750;letter-spacing:.2em;line-height:1}.game-thumbnail span::before{content:"";display:inline-block;width:5px;height:5px;margin:0 7px 1px 0;background:var(--accent);border-radius:50%}
.game-info{position:relative;padding:17px 14px 15px}.game-info::before{content:"";position:absolute;top:0;left:14px;width:25px;height:2px;background:var(--accent);border-radius:2px}.game-info h3{font-size:16px;font-weight:780;line-height:1.3;letter-spacing:.045em}.game-info p{color:var(--accent);font-weight:400;line-height:1.65}.play-button{color:var(--dark);letter-spacing:.13em}.play-button span{margin-left:7px}
.game-card:active{transform:translateY(-1px)}.play-button:active span{transform:translateX(3px)}
@media(hover:hover) and (pointer:fine){.game-card:hover{transform:translateY(-4px);box-shadow:0 13px 32px rgba(32,45,36,.085);border-color:rgba(106,194,127,.32)}.game-card:hover .game-thumbnail::before{transform:translate(-5px,5px)}.game-thumbnail::before{transition:transform .35s ease}.game-card:hover .play-button span,.play-button:hover span{transform:translateX(5px)}}
@media(min-width:700px){.games-section{padding-top:86px}.game-grid{gap:26px}.game-info{padding:24px 22px 21px}.game-info::before{left:22px;width:32px}.game-info h3{font-size:20px}.game-thumbnail span{padding:8px 12px 7px}}
