:root{--card-gap:24px;--card-cols:3;--card-w:calc((var(--pg-col) - (var(--card-cols) - 1) * var(--card-gap)) / var(--card-cols))}.game-card{border-radius:var(--radius);border:1px solid var(--line);text-align:center;background:var(--surface);box-shadow:var(--shadow);flex-direction:column;align-items:center;padding:16px 16px 18px;transition:transform .2s,box-shadow .2s;display:flex;position:relative}.game-card:hover{transform:translateY(-5px)}.game-play-link{width:100%;display:block;position:relative}.game-illus{aspect-ratio:4/3;background:var(--bg);border-radius:16px;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.game-illus img{object-fit:cover;width:calc(100% + 2px);height:calc(100% + 2px);margin:-1px;transition:transform .35s;display:block}.game-play-link:hover .game-illus img{transform:scale(1.05)}.game-play-hint{opacity:0;background:#24404f00;border-radius:16px;justify-content:center;align-items:center;transition:opacity .2s,background .2s;display:flex;position:absolute;inset:0}.game-play-link:hover .game-play-hint{opacity:1;background:#24404f52}.game-play-hint span{color:var(--blue-dp);font-size:var(--fs-1);letter-spacing:.02em;background:#fff;border-radius:20px;padding:7px 18px;font-weight:700}.ext-badge{width:24px;height:24px;font-size:var(--fs-1);color:var(--ink);z-index:1;background:#ffffffe6;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;top:10px;right:10px}.game-title-link{color:inherit;margin-top:14px;text-decoration:none;display:inline-block;position:relative}.game-title-link:after{content:"";position:absolute;inset:-4px 0 -12px}.game-title{font-size:var(--fs-2);letter-spacing:.01em;align-items:center;gap:6px;font-weight:700;display:inline-flex}.game-title .i-guide{width:18px;height:13px;color:var(--ink);opacity:.55;flex:none;position:relative;top:1.5px}.game-title.is-plain{margin-top:14px}.game-title-link:hover .game-title{text-underline-offset:3px;text-decoration:underline}.game-title-link:hover .i-guide{opacity:.85}.game-title-link:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}.page-content .game-card{width:min(100%, var(--card-w))}@media (width<=639px){.page-content .game-card{width:100%}}.page-content .game-play-link{color:inherit;text-decoration:none}.page-content .game-card .game-title{font-size:var(--fs-2);color:var(--ink);letter-spacing:.01em;border:none;margin:14px 0 0;padding:0;display:inline-flex}.page-content .devlog .cta-lead{font-size:var(--fs-3);color:var(--blue-dp);letter-spacing:.01em;margin:64px 0 22px;font-weight:800;line-height:1.4}.page-content .devlog .cta-lead .cta-arrow{margin-left:.3em;font-weight:700}:root{--bg:#efeae0;--surface:#fff;--ink:#2a2721;--muted:#6b5a3c;--blue:#3e6883;--blue-dp:#24404f;--blue-hi:#6fa0be;--tan:#c67f3e;--tan-dp:#8f5424;--tan-hi:#e8ad64;--line:#ddd3bc;--shadow:0 1px 2px #2820100d, 0 22px 36px -20px #2820104d;--radius:22px;--pg-col:960px;--fs-1:13px;--fs-2:17px;--fs-3:23px;--fs-4:30px;--fs-5:40px}@media (width>=768px){:root{--pg-col:1200px}}@media (width<=560px){:root{--fs-1:12.5px;--fs-2:16px;--fs-3:20px;--fs-4:25px;--fs-5:30px}}html{scrollbar-gutter:stable}*{box-sizing:border-box;margin:0;padding:0}svg{display:block}.icon-defs{width:0;height:0;position:absolute;overflow:hidden}body{background:var(--bg);color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;align-items:center;min-height:100vh;font-family:Huninn,PingFang TC,Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif;display:flex}input,textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}img,svg{-webkit-user-drag:none}header{background:var(--blue);width:100%;padding:44px 0 40px;position:relative}.hero-inner{width:min(92%, var(--pg-col));margin:0 auto}header h1{font-size:var(--fs-4);letter-spacing:-.3px;color:#fff;font-weight:700;line-height:1.25}header h1 a{color:inherit;text-decoration:none}header p{font-size:var(--fs-2);color:#d9e4ea;max-width:400px;margin-top:8px;line-height:1.5}.lang-switch{font-size:var(--fs-1);color:#fff;border:1px solid #fff6;border-radius:20px;padding:4px 10px;text-decoration:none;transition:background .15s;position:absolute;top:16px;right:20px}.lang-switch:hover{background:#ffffff26}header.island-hero{background:linear-gradient(#bfe4f2 0%,#d8ecec 72%,#eef4ea 100%);overflow:hidden}header.island-hero h1{color:#2e3f4a;font-weight:800;font-size:var(--fs-5)}header.island-hero p{color:#3c5266;max-width:32em;font-size:var(--fs-2)}html[lang=en] header.island-hero h1{margin-left:-1.5px}header.island-hero .lang-switch{z-index:3;color:#2e3f4a;right:max(4%, calc(50% - var(--pg-col) / 2));background:#ffffff9e;border-color:#2e3f4a4d}header.island-hero .lang-switch:hover{background:#ffffffd9}.island-hero .sky,.island-hero .scene{top:0;right:max(4%, calc(50% - var(--pg-col) / 2));pointer-events:none;height:100%;position:absolute}.island-hero .sky{z-index:0}.island-hero .scene{z-index:1;-webkit-mask-image:linear-gradient(90deg,#0000 0 38%,#000 52% 100%);mask-image:linear-gradient(90deg,#0000 0 38%,#000 52% 100%)}.island-hero .sky svg,.island-hero .scene svg{width:auto;height:100%;display:block}.island-hero .hero-inner{z-index:2;position:relative}@media (width<=600px){.island-hero .sky,.island-hero .scene{display:none}}footer{text-align:center;width:100%;font-size:var(--fs-1);color:var(--muted);padding:16px}footer a{color:var(--muted);margin:0 8px;text-decoration:none}footer a:hover{text-decoration:underline}.page-content{width:min(92%, var(--pg-col));flex:1;padding:48px 0 72px}.page-content h2{font-size:var(--fs-4);color:var(--blue-dp);margin:36px 0 12px;font-weight:700}.page-content h2:first-of-type{margin-top:0}.page-content h3{font-size:var(--fs-3);color:var(--blue-dp);margin:32px 0 10px;font-weight:700}.page-content h4{font-size:var(--fs-2);margin:20px 0 6px;font-weight:700}.page-content p{font-size:var(--fs-2);margin-bottom:12px;line-height:1.85}.page-content ul{margin:0 0 16px 20px}.page-content li{font-size:var(--fs-2);margin-bottom:6px;line-height:1.85}.page-content a{color:var(--blue);text-underline-offset:2px;text-decoration:underline}.page-content a:hover{color:var(--muted)}.page-content strong{font-weight:700}.last-updated{font-size:var(--fs-1);color:var(--muted);margin-bottom:28px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px 26px}.play-btn{background:var(--tan);color:#fff;font-size:var(--fs-1);white-space:nowrap;border-radius:22px;align-items:center;gap:6px;padding:10px 22px;font-weight:700;text-decoration:none;transition:transform .15s,background .15s;display:inline-flex;box-shadow:0 5px 12px #14100833}.play-btn:hover{background:var(--tan-dp);color:#fff;transform:translateY(-2px)}.page-content .play-btn{color:#fff;text-decoration:none}@media (width<=480px){header{padding:36px 0 32px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.content{width:min(92%, var(--pg-col));gap:var(--card-gap);flex:1;grid-template-columns:repeat(2,1fr);align-content:start;padding:40px 0 60px;display:grid}@media (width<=560px){.content{gap:14px}.content .game-card{border-radius:16px;padding:10px 10px 12px}.content .game-illus{border-radius:12px}.content .game-title-link,.content .game-title.is-plain{margin-top:8px}.content .game-title{text-wrap:balance}}@media (width>=960px){.content{grid-template-columns:repeat(var(--card-cols), 1fr)}}
