/* udico game — landing page. Brand palette mirrors the game (cream "pop & matte"). */
/* Subset Noto Sans CJK (only the glyphs this page shows) so CJK text renders on ANY device,
   not just ones with a system CJK font. Latin uses the system stack; CJK falls through to this. */
@font-face{ font-family:"SiteCJK"; font-style:normal; font-weight:400; font-display:swap;
  src:url("assets/fonts/site.woff2") format("woff2"); }
@font-face{ font-family:"SiteCJK"; font-style:normal; font-weight:700; font-display:swap;
  src:url("assets/fonts/site-bold.woff2") format("woff2"); }
:root{
  --bg:#efe6d0; --panel:#fffdf6; --ink:#3a322b; --muted:#7d7058;
  --accent:#17b3a0; --accent-d:#0e6b60; --accent2:#ef8a3c; --danger:#e2536b;
  --radius:20px; --shadow:0 6px 20px rgba(58,50,43,.14);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; color:var(--ink); background:var(--bg) url("assets/background.png") repeat;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"SiteCJK","Hiragino Sans","Noto Sans CJK JP","Noto Sans",sans-serif;
  line-height:1.6;
}
img{max-width:100%}
a{color:var(--accent-d)}

/* header */
header.site{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;
  max-width:1040px; margin:0 auto; padding:18px 22px;
}
.brand a{font-weight:800; font-size:1.7rem; text-decoration:none; color:var(--accent-d); letter-spacing:.5px}
.brand a b{color:var(--accent2); font-weight:800}
.brand-sub{display:block; font-size:.82rem; color:var(--muted); margin-top:2px}
.langs{display:flex; gap:6px; flex-wrap:wrap}
.langs button{
  font:inherit; font-size:.85rem; cursor:pointer; border:1.5px solid rgba(23,179,160,.35);
  background:var(--panel); color:var(--ink); padding:5px 11px; border-radius:999px; transition:.15s;
}
.langs button:hover{border-color:var(--accent)}
.langs button[aria-current="true"]{background:var(--accent); border-color:var(--accent); color:#fff}

main{max-width:1040px; margin:0 auto; padding:8px 22px 40px}

/* hero */
.hero{
  display:flex; gap:34px; align-items:center; flex-wrap:wrap;
  background:var(--panel); border:3px solid var(--accent); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:30px 32px; margin-top:8px;
}
.hero-text{flex:1 1 320px; min-width:280px}
.game-title{height:auto; width:min(420px,80%); display:block}
.tagline{font-size:1.12rem; color:var(--muted); margin:14px 0 22px}
.platforms{display:flex; flex-wrap:wrap; gap:10px}
.plat{
  display:flex; flex-direction:column; gap:1px; text-decoration:none; min-width:118px;
  padding:10px 16px; border-radius:14px; border:2px solid transparent;
}
.plat-name{font-weight:700; font-size:1rem}
.plat-act{font-size:.82rem}
.plat.play{background:var(--accent); color:#fff; box-shadow:var(--shadow)}
.plat.play .plat-act{color:#eafffb}
.plat.play:hover{background:var(--accent-d)}
.plat.soon{background:#f3ecdc; color:var(--muted); border-color:rgba(125,112,88,.25); cursor:default}
.hero-shot{flex:0 0 auto; margin:0 auto}
.hero-shot img{
  width:clamp(220px,42vw,300px); height:auto; border-radius:22px;
  box-shadow:var(--shadow); border:1px solid rgba(58,50,43,.08);
}

/* cards */
.card{
  background:var(--panel); border:3px solid var(--accent); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:26px 30px; margin-top:24px;
}
.card h2{margin:0 0 6px; color:var(--accent-d); font-size:1.45rem}
.card .lead{margin:0 0 18px; color:var(--muted)}
.card .rps{font-weight:700; color:var(--accent-d); margin:18px 0 6px}
.card .fine{color:var(--muted); font-size:.95rem; margin:4px 0 0}

/* rules: three moves */
.moves{display:flex; gap:14px; flex-wrap:wrap}
.move{
  flex:1 1 150px; min-width:150px; background:var(--bg); border-radius:16px; padding:16px;
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px;
}
.move .glyph{font-size:2rem; line-height:1; font-weight:800; width:52px; height:52px;
  display:flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; margin-bottom:4px}
.move .glyph.up{background:var(--accent)}
.move .glyph.hold{background:var(--muted); font-size:1.1rem}
.move .glyph.down{background:var(--accent2)}
.move b{font-size:1.05rem}
.move span{font-size:.9rem; color:var(--muted)}

/* items */
.itemlist{display:flex; gap:14px; flex-wrap:wrap}
.item{
  flex:1 1 180px; min-width:180px; background:var(--bg); border-radius:16px; padding:16px;
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px;
}
.item img{width:56px; height:56px; image-rendering:auto}
.item b{font-size:1.05rem}
.item span{font-size:.9rem; color:var(--muted)}

footer.site-foot{text-align:center; color:var(--muted); padding:26px; font-size:.9rem}

@media (max-width:680px){
  .hero{padding:24px 20px; gap:22px}
  .card{padding:22px 18px}
  .hero-shot{order:-1}
  .hero-shot img{width:min(240px,70%)}
}
