/* Shared visual language with morio-23.net: cream, mint, peach, lavender. */
:root{
  color-scheme:light;
  --paper:#fffaf3;--ink:#2e3b35;--soft:#627269;--faint:#839087;--line:#d9dfd6;
  --accent:#cf765b;--dark:#334c3d;--white:#fffefd;--mint:#e4f1df;--peach:#ffe5d6;
  --purple:#eae5f7;--lemon:#ffefc8;--content:1140px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font:15px/1.9 "Hiragino Maru Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{color:#3f7656}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #c78267;outline-offset:3px}
button,a{-webkit-tap-highlight-color:transparent}
.shell{width:min(var(--content),calc(100% - 64px));margin-inline:auto}
.skip-link{position:absolute;top:-80px;left:20px;z-index:99;padding:12px 18px;border-radius:10px;background:#334c3d;color:white}
.skip-link:focus{top:12px}
.topbar{position:sticky;top:0;z-index:20;background:#fffaf3f2;border-bottom:1px solid #e2e4db;backdrop-filter:blur(12px)}
.topbar-inner{min-height:73px;display:flex;align-items:center;gap:26px}
.site-logo,.footer-logo{font-size:24px;font-weight:900;letter-spacing:-.045em;white-space:nowrap;line-height:1.1}
.logo-period{color:var(--accent)}
.main-nav{display:flex;align-items:center;gap:24px;margin-left:auto;white-space:nowrap}
.main-nav a{display:block;font-size:12px;font-weight:750;padding:25px 0 22px;border-bottom:2px solid transparent}
.main-nav a:hover,.main-nav a[aria-current="page"]{border-bottom-color:var(--accent);color:var(--ink)}
.header-external{white-space:nowrap;font-size:11px;font-weight:800;padding:6px 14px;border:1px solid #b7c9b8;border-radius:20px}
.hero{position:relative;overflow:hidden;padding:64px 0 70px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:52px;min-width:0}
.hero-copy{min-width:0}
.welcome-kicker{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:750;color:#617867;margin:0 0 22px}
.kicker-flower{font-size:26px;color:#e6a574;line-height:1}
.section-label-soft{color:#738a78;letter-spacing:.045em;font-size:11px;font-weight:850}
.hero h1{font-size:clamp(49px,5.4vw,76px);line-height:1.34;letter-spacing:-.08em;font-weight:900;margin:12px 0 22px;text-wrap:balance}
.name-brush{color:#4b8361;position:relative;isolation:isolate;white-space:nowrap}
.name-brush:before{content:"";position:absolute;z-index:-1;left:0;right:0;bottom:9px;height:15px;background:#d9edcf;border-radius:50%;transform:rotate(-3deg)}
.hero-lead{max-width:530px;font-size:15px;line-height:1.95;font-weight:650;margin:0;color:#536558}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:13px;margin:29px 0 0}
.pill-link{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:47px;border-radius:99px;padding:10px 20px;font-size:13px;font-weight:850;transition:transform .2s,background .2s}
.pill-primary{background:#3d6650;color:white;box-shadow:0 4px 0 #bbd6bf}
.pill-primary:hover{color:white;background:#355743;transform:translateY(-2px)}
.pill-secondary{background:#fffdf9;color:#45624e;border:1px solid #b5c8b7}
.pill-secondary:hover{background:#e7f2e5;transform:translateY(-2px)}
.ticker{font-size:12px;font-weight:750;color:#6d7b6e;margin-top:26px}
.ticker strong{font-size:19px;color:#3d6650}
.hero-art{position:relative;min-height:420px;isolation:isolate}
.art-halo{position:absolute;inset:35px 18px 18px;background:var(--purple);border-radius:43% 57% 61% 39%/44% 35% 65% 56%;transform:rotate(-7deg);box-shadow:22px 16px 0 #e3efdf}
.art-tile{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:154px;height:140px;border:2px solid #657a6d;border-radius:18px;background:var(--white);box-shadow:8px 9px 0 #4568512a}
.art-tile>span{font-size:57px;line-height:1;filter:drop-shadow(3px 5px 0 #0001)}
.art-tile small{color:#617867;font-size:11px;font-weight:850}
.tile-puchi{top:4%;left:13%;background:#e0f0e2;transform:rotate(-10deg)}
.tile-press{top:10%;right:7%;background:#ffe1d1;transform:rotate(9deg)}
.tile-dolphin{bottom:12%;left:7%;background:#fff8db;transform:rotate(8deg)}
.tile-notification{bottom:8%;right:11%;background:#eee6f8;transform:rotate(-8deg)}
.art-note{position:absolute;right:0;bottom:0;z-index:1;padding:8px 12px;background:#fff1ba;color:#736543;font:800 11px/1.5 ui-monospace,Consolas,monospace;transform:rotate(8deg);box-shadow:4px 5px 0 #d3cba168}
.collection{background:#f5f7ed;padding:72px 0 90px}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:30px}
.section-heading h2{font-size:clamp(29px,3.3vw,40px);line-height:1.5;letter-spacing:-.055em;font-weight:900;margin:7px 0 0}
.section-heading p{font-size:13px;color:var(--soft);margin:0 0 4px}
.emphasis-underline{position:relative;isolation:isolate;white-space:nowrap}
.emphasis-underline:after{content:"";position:absolute;left:0;right:0;bottom:4px;height:10px;border-radius:45%;background:#f8dfc1;transform:rotate(-2deg);z-index:-1}
.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.game-card{min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #e0e3dc;background:#fffefd;border-radius:19px;transition:transform .2s,box-shadow .2s}
.game-card:hover{color:var(--ink);transform:translateY(-4px);box-shadow:0 12px 26px #304a3412}
.art{height:175px;display:grid;place-items:center;background:linear-gradient(145deg,color-mix(in srgb,var(--accent,#98bb99) 24%,white),#f5f8ef);overflow:hidden}
.game-card:nth-child(4n+2) .art{background-color:#ffe5d6}
.game-card:nth-child(4n+3) .art{background-color:#eae5f7}
.game-card:nth-child(4n+4) .art{background-color:#ffefc8}
.art .cover{display:block;width:100%;height:100%;object-fit:cover}
.art .emoji{font-size:72px;transform:rotate(-9deg);filter:drop-shadow(4px 5px 0 #0002)}
.card-body{padding:20px 22px 23px;display:flex;flex-direction:column;flex:1;gap:8px;min-width:0}
.card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}
.category-tag{display:inline-flex;align-items:center;padding:5px 10px;border-radius:99px;background:#e7f1e5;color:#4c755c;font-size:11px;font-weight:800}
.card-state{font-size:11px;color:#748775;font-weight:800}
.game-card h3{margin:5px 0 0;font-size:21px;line-height:1.5;letter-spacing:-.035em;overflow-wrap:anywhere}
.game-card p{flex:1;margin:0;color:var(--soft);font-size:13px;line-height:1.8}
.play-line{display:flex;justify-content:space-between;align-items:center;width:100%;border-top:1px dashed #d7e1d5;margin-top:13px;padding-top:12px;color:#3d6650;font-size:13px;font-weight:850}
.play-line .arrow{font-size:20px;line-height:1}
.tools{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:25px}
[hidden]{display:none!important}
.search-label{display:flex;flex-direction:column;gap:7px;color:#5d7261;font-size:12px;font-weight:800}
.search-label input{display:block;width:min(80vw,330px);min-height:44px;background:white;color:var(--ink);border:1px solid #bfcebf;border-radius:12px;padding:10px 13px;font:inherit;font-size:14px}
.categories{display:flex;flex-wrap:wrap;gap:9px}
.filter{cursor:pointer;border-radius:99px;background:#fffefd;color:#4a6852;border:1px solid #c6d5c6;padding:9px 15px;font-family:inherit;font-weight:800;font-size:12px;line-height:1.4}
.filter.active{background:#3d6650;border-color:#3d6650;color:white}
.filter:hover:not(.active){background:#e5efdf}
.loading{grid-column:1/-1;color:#627269;font-size:14px}
.collection-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:32px;font-size:12px;color:var(--soft)}
.collection-bottom a{color:#3d6650;font-weight:850;border-bottom:1px solid #aac1ac}
.site-footer{background:#e7f1e5;padding:55px 0 65px}
.footer-inner{display:grid;grid-template-columns:1.1fr 1fr auto;gap:45px;align-items:start}
.footer-inner p{font-size:13px;color:#6d7b6e;margin:13px 0 0;line-height:1.9}
.footer-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;font-size:12px;font-weight:700}
.footer-inner small{white-space:nowrap;font-size:10px;color:var(--soft)}
@media(max-width:1060px){.topbar-inner{gap:16px}.main-nav{gap:15px}.hero-grid{gap:20px}.hero-art{min-height:390px}.art-tile{width:140px;height:130px}}
@media(max-width:850px){.topbar-inner{flex-wrap:wrap;gap:0 14px;padding-top:12px}.header-external{margin-left:auto}.main-nav{order:3;display:flex;width:100%;margin:2px 0 0;gap:21px;overflow-x:auto;scrollbar-width:none}.main-nav::-webkit-scrollbar{display:none}.main-nav a{padding:11px 0 10px}.hero-grid{grid-template-columns:1fr .8fr}.art-tile{width:116px;height:112px}.art-tile span{font-size:45px}.hero-art{min-height:350px}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-inner{grid-template-columns:1fr 1fr}}
@media(max-width:630px){.shell{width:calc(100% - 34px)}.topbar-inner{min-height:60px}.site-logo{font-size:22px}.hero{padding:42px 0 56px}.hero-grid{grid-template-columns:1fr;gap:7px}.hero h1{font-size:clamp(43px,11vw,58px)}.hero-lead{font-size:13px}.hero-actions{margin-top:22px}.pill-link{min-height:44px;padding:8px 15px;font-size:12px}.hero-art{min-height:245px;width:min(100%,370px);margin:0 auto}.art-halo{inset:10px 42px 10px;box-shadow:12px 10px 0 #e3efdf}.art-tile{width:107px;height:97px;gap:4px;border-radius:13px}.art-tile>span{font-size:43px}.art-tile small{font-size:9px}.tile-puchi{top:2%;left:11%}.tile-press{top:5%;right:9%}.tile-dolphin{bottom:8%;left:7%}.tile-notification{bottom:6%;right:12%}.art-note{font-size:9px;right:4%}.collection{padding:53px 0 67px}.section-heading{align-items:flex-start;flex-direction:column;gap:3px}.section-heading p{margin:0}.game-grid{grid-template-columns:1fr;gap:14px}.art{height:170px}.card-body{padding:17px 19px 19px}.collection-bottom{flex-direction:column;gap:10px}.search-label input{width:100%}.tools{align-items:stretch}.footer-inner{grid-template-columns:1fr;gap:24px}.footer-links{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Helpful guides live outside the tap-intensive games. */
.game-guide-section{padding:68px 0 82px;background:#fffaf3}
.guide-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.guide-links a{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fffefd;border:1px solid #dbe5d9;border-radius:14px;padding:17px 18px;color:#385d46;font-size:13px;font-weight:800;line-height:1.65}
.guide-links a:hover{background:#e9f2e6}
.guide-links a:nth-child(3n+2){background:#fff7f0}
.guide-links a:nth-child(3n+3){background:#faf6ff}
.guide-links a:nth-child(3n+2):hover,.guide-links a:nth-child(3n+3):hover{background:#e9f2e6}
.guide-links a span{font-size:16px;flex-shrink:0}
.footer-legal{display:flex;flex-direction:column;gap:8px;align-items:flex-start;font-size:12px}
.footer-legal a{text-decoration:underline;text-decoration-color:#a3b7a4;text-underline-offset:3px}
@media(max-width:850px){.guide-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:630px){.game-guide-section{padding:50px 0 70px}.guide-links{grid-template-columns:1fr}.guide-links a{padding:14px 17px}}
