:root{--ink:#363b32;--gold:#d6b77b;--red:#9e3528;--paper:#eeeade;--serif:"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC","SimSun",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;color:var(--ink);background:#efede6;font:14px/1.7 "PingFang SC","Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}img{display:block;max-width:100%}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,p{margin:0}button:focus-visible,a:focus-visible{outline:3px solid #c9832d;outline-offset:4px}[hidden]{display:none!important}.wrap{width:min(1180px,calc(100% - 64px));margin-inline:auto}.skip{position:fixed;left:10px;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}.topbar{height:78px;background:#252a25f5;border-bottom:2px solid #ac9160;color:#e6dcc5;position:sticky;top:0;z-index:30;box-shadow:0 3px 12px #18241b30}.nav-inner{max-width:1300px;padding:0 32px;margin:auto;height:100%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;white-space:nowrap;font-family:var(--serif);font-weight:bold;font-size:24px;letter-spacing:1px}.brand img{width:39px;height:39px}.brand small{font:9px/1.2 sans-serif;letter-spacing:5px;color:#c9b993;display:block;margin-top:3px}nav{display:flex;height:100%;align-items:stretch}nav>a{padding:0 29px;display:flex;align-items:center;font-size:15px;letter-spacing:2px;position:relative}nav>a:hover,nav>a.current{color:#f1d79d;background:#ffffff06}nav>a.current:after{position:absolute;content:"";height:3px;bottom:0;left:29px;right:29px;background:#d8b678}.nav-play{background:linear-gradient(#ac4c36,#823023);color:#fae4b5;border:1px solid #b3784f;margin:16px 0 16px 24px;letter-spacing:1px!important;padding:0 24px!important}.menu-toggle{display:none}.keyvisual{height:700px;position:relative;overflow:hidden;background:#dfdcc0}.scene{position:absolute;inset:0;background:linear-gradient(90deg,#ebe5cae8 0%,#e2dfbc66 40%,#b6c4a570),url('/client/res/image/com/main/imgZhucheng.jpg') center 45%/cover;filter:saturate(.62)}.keyvisual:after{position:absolute;content:"";inset:auto 0 0;height:130px;background:linear-gradient(transparent,#efede6);pointer-events:none}.keyvisual-inner{position:relative;height:100%;max-width:1440px;margin:auto}.kv-art{position:absolute;width:900px;height:770px;right:-20px;top:-15px;background:url('/client/assets/image/xzf7.jpg') center 43%/900px auto no-repeat;mask-image:linear-gradient(90deg,transparent 1%,#000 24%,#000 91%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent 1%,#000 24%,#000 91%,transparent)}.kv-copy{position:absolute;z-index:2;top:45px;left:max(40px,calc((100% - 1180px)/2 + 35px));width:445px;text-align:center}.ribbon{font-size:13px;letter-spacing:7px;color:#505640;display:flex;align-items:center;gap:15px;justify-content:center}.ribbon:before,.ribbon:after{content:"";width:35px;height:1px;background:#867c59}h1{font-family:var(--serif);font-weight:900;line-height:1.05;letter-spacing:7px;transform:rotate(-5deg);margin:22px 0 20px;filter:drop-shadow(2px 5px 0 #44351b40);color:#fff2b6;-webkit-text-stroke:1.5px #65502d;text-shadow:3px 3px 0 #6b4b2f,-2px -1px 0 #fff5da,5px 6px 0 #6b4b2f}h1 span{display:block;font-size:101px;margin-left:-62px}h1 strong{display:block;font-size:119px;color:#8e3022;-webkit-text-stroke:1px #f3d49a;text-shadow:3px 3px 0 #452e21,5px 6px 0 #d3b371;margin-top:-3px}.slogan{font:700 29px var(--serif);color:#36442d;letter-spacing:5px;margin-top:23px;text-shadow:0 1px 0 #fff}.slogan span{padding:0 8px}.kv-description{font-size:14px;letter-spacing:5px;margin:14px 0 24px;color:#666446}.start-button{width:255px;min-height:93px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:auto;background:linear-gradient(130deg,#bb5738,#8d2b21 65%,#a9482e);color:#ffe7b3;border:2px solid #e8c387;outline:1px solid #775134;outline-offset:4px;box-shadow:0 8px 18px #69432740;clip-path:polygon(4% 0,96% 0,100% 14%,100% 86%,96% 100%,4% 100%,0 86%,0 14%);transition:filter .2s,transform .2s}.start-button:hover{filter:brightness(1.1);transform:translateY(-3px)}.start-button>span{font:900 36px/1.3 var(--serif);letter-spacing:9px;margin-left:9px;text-shadow:1px 2px #592718}.start-button small{font-size:10px;letter-spacing:2px;color:#efc99e;margin-top:4px}.platforms{font-size:11px;letter-spacing:2px;color:#6e715c;margin-top:15px}.vertical-seal{position:absolute;right:35px;top:45px;writing-mode:vertical-rl;font:19px/1.7 var(--serif);letter-spacing:7px;color:#586342;border-right:1px solid #8f92684a;padding-right:10px}.portal{position:relative;z-index:3;display:grid;grid-template-columns:220px 350px 1fr;min-height:318px;margin-top:-55px;box-shadow:0 12px 25px #4f4a2817;border:1px solid #c4b595;background:#fffdf7}.server-panel{background:linear-gradient(145deg,#323e32,#202c24);color:#d6cead;padding:23px 22px;text-align:center;border-top:4px solid #a5905c}.server-panel h2{font:700 18px var(--serif);letter-spacing:4px;margin-bottom:16px}.server-play{background:linear-gradient(#dac18e,#bea16a);border:1px solid #e6d09d;display:flex;justify-content:space-between;align-items:center;padding:9px 18px;color:#382f22;font:700 25px var(--serif)}.server-play:hover{filter:brightness(1.12)}.server-play span{font:24px Georgia}.server-line{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:18px;font-size:12px;color:#d4dbba}.status-dot{height:6px;width:6px;border-radius:50%;background:#a4a28c}.status-dot.online{background:#a7d67d;box-shadow:0 0 6px #a7d67d77}.status-dot.offline{background:#e1a665}#server-name{font-size:11px;margin-top:4px;color:#a5b099}.server-links{display:flex;justify-content:center;gap:0;margin:18px 0 12px;font-size:12px}.server-links a{padding:0 13px}.server-links a+a{border-left:1px solid #747c5b}.server-links a:hover{color:white}.server-note{font-size:10px;line-height:1.7;color:#8e9c87}.feature-banner{position:relative;overflow:hidden;background:#544e6c;min-height:300px}.feature-banner>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center 32%;opacity:.86}.feature-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#282b458c,transparent 90%),linear-gradient(0deg,#252437d9,transparent 50%)}.banner-copy{position:relative;z-index:1;color:#fff1c9;padding:22px 25px;height:100%;display:flex;align-items:flex-start;flex-direction:column}.banner-copy>span{font-size:10px;letter-spacing:3px;border:1px solid #f4dc9e80;padding:2px 7px;margin-bottom:12px}.banner-copy h2{font:700 32px/1.3 var(--serif);letter-spacing:3px;text-shadow:2px 2px 0 #24273a}.banner-copy button{margin-top:auto;background:none;border:0;border-bottom:1px solid #cdbb9180;padding:8px 0;color:#eddbb4;font-size:11px;letter-spacing:1px}.banner-copy b{margin-left:20px}.news-panel{padding:23px 28px 18px;min-width:0}.news-heading{display:flex;justify-content:space-between;align-items:center}.news-heading h2{font:700 24px var(--serif);letter-spacing:2px}.news-heading>span{font-size:10px;color:#a7a395}.news-tabs{border-bottom:1px solid #ddd7c8;display:flex;gap:26px;margin-top:11px}.news-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:7px 0 8px;font-size:13px}.news-tabs button[aria-pressed=true]{color:#9d3726;border-bottom-color:#9d3726}.news-list{margin-top:8px}.news-list>button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 0;border:0;border-bottom:1px dashed #e4e0d6;background:none;text-align:left;font-size:12px}.news-list>button:last-child{border:0}.news-list>button:hover .news-title{color:#aa3e28}.news-type{font-size:10px;flex-shrink:0;color:#9b8a6e}.news-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.news-list time{margin-left:auto;color:#a19e91;font-size:10px;flex-shrink:0}.hero-section{margin-top:55px;padding:30px 0 10px;overflow:hidden;background:linear-gradient(0deg,#e5e4d8,transparent 80%)}.section-title{text-align:center;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:16px}.section-title h2{font:700 36px var(--serif);letter-spacing:7px}.section-title>span{color:#a68c57;font-size:10px}.section-title>p{flex-basis:100%;font-size:11px;color:#979585;letter-spacing:3px;margin-top:-3px}.hero-showcase{display:grid;grid-template-columns:55% 45%;min-height:535px}.hero-artwork{position:relative;min-height:530px}.hero-backdrop{position:absolute;top:0;left:80px;font:900 400px/1.15 var(--serif);color:#d3d3bc70}.hero-artwork>img{position:absolute;max-width:none;width:705px;height:auto;right:35px;top:-83px;filter:drop-shadow(6px 10px 6px #3b412324)}.hero-selector{position:absolute;display:flex;gap:22px;justify-content:center;bottom:24px;left:100px;right:15px}.hero-selector button{border:0;background:none;font-size:11px;padding:0;color:#7b7d66}.hero-selector img{width:64px;height:64px;padding:3px;background:#dedcca;border:1px solid #b8ae8c;clip-path:polygon(15% 0,85% 0,100% 15%,100% 85%,85% 100%,15% 100%,0 85%,0 15%);margin-bottom:5px;filter:grayscale(.4)}.hero-selector button[aria-pressed=true]{color:#943825;font-weight:bold}.hero-selector button[aria-pressed=true] img{background:#b99762;border:2px solid #943825;filter:none}.hero-selector button:hover img{filter:brightness(1.08)}.hero-info{padding:44px 40px 38px 0;max-width:460px}.hero-epithet{font:17px var(--serif);letter-spacing:4px;color:#9b7949}.hero-info h3{font:700 64px/1.2 var(--serif);letter-spacing:7px;margin:8px 0 15px;color:#3d4638}.hero-tags{display:flex;gap:8px;margin-bottom:22px}.hero-tags span{font-size:10px;letter-spacing:1px;color:#878365;border:1px solid #c3bda3;padding:2px 9px}.skill-title{display:flex;gap:12px;align-items:center;border-top:1px solid #cac6b5;padding-top:18px}.skill-title>span{font-size:10px;background:#4e5b44;color:#efead2;padding:3px 7px}.skill-title h4{font:700 20px var(--serif);color:#424a38}#skill-description{font-size:13px;line-height:1.95;margin-top:11px;color:#747866}.tactic{margin-top:15px;display:flex;gap:13px;font-size:12px;line-height:1.85}.tactic strong{flex-shrink:0;font-weight:500;color:#9c7c4f}.tactic p{color:#747866}.skill-note{font-size:10px;color:#979b88;margin-top:13px}.outline-button{display:inline-flex;align-items:center;gap:30px;border:1px solid #9e906d;color:#756343;padding:8px 18px;font-size:11px;margin-top:19px}.outline-button:hover{background:#dad2bb}.guides{padding-top:42px;padding-bottom:48px}.guide-heading{display:flex;align-items:center;gap:20px;margin-bottom:22px}.guide-heading h2{font:700 27px var(--serif);letter-spacing:3px}.guide-heading p{font-size:11px;color:#929183}.guide-links{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #cec8b7;background:#f7f4eb}.guide-links>button{display:flex;gap:13px;align-items:center;border:0;background:none;padding:23px 18px;text-align:left}.guide-links>button+button{border-left:1px solid #d6d0c0}.guide-number{width:44px;height:48px;display:grid;place-items:center;flex-shrink:0;font:27px var(--serif);color:#9f8559;border:1px solid #c3b48f;clip-path:polygon(0 0,100% 0,100% 85%,50% 100%,0 85%);background:#ece6d6}.guide-links strong{display:block;font-size:14px;font-weight:500}.guide-links small{display:block;font-size:10px;color:#9a998c;margin-top:4px}.guide-links b{font:20px Georgia;margin-left:auto;color:#b2a786}.guide-links>button:hover{background:#eee8d8}footer{background:#282d28;color:#9b9e8c;border-top:3px solid #b49b6e;padding:34px 0}.footer-inner{display:flex;gap:40px;align-items:center}.footer-logo{font:700 26px var(--serif);color:#c9b68c;letter-spacing:3px;flex-shrink:0}.footer-inner p{display:flex;gap:24px;font-size:11px}.footer-inner small{font-size:10px;color:#757d6f;display:block;margin-top:10px}.footer-tag{margin-left:auto;border-left:1px solid #5a6049;padding-left:20px;font-size:10px;line-height:1.9;color:#8e9780}dialog{width:min(720px,calc(100% - 32px));max-height:85vh;border:1px solid #a98d5e;background:#faf7ef;color:#394133;padding:42px 48px;box-shadow:0 15px 70px #0005}dialog::backdrop{background:#17231ed9;backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:14px;top:10px;background:none;border:0;font-size:27px;color:#8c846d;padding:0 8px}.article-meta{font-size:11px;color:#a4895d;letter-spacing:2px;margin-bottom:12px}dialog h2{font:700 27px/1.5 var(--serif);padding-bottom:20px;border-bottom:1px solid #d7cfbc;margin-bottom:22px}#article-body{font-size:14px;line-height:2;color:#686e5d}#article-body h3{font-size:16px;color:#46503e;margin:22px 0 8px}#article-body p{margin-bottom:13px}#article-body ul{padding-left:22px}.article-bottom{border-top:1px solid #d7cfbc;padding-top:20px;margin-top:25px;display:flex;justify-content:space-between;align-items:center;font-size:12px}.article-back{border:0;background:none;color:#8b8a78}.article-bottom a{padding:8px 18px;background:#8f392b;color:#f6e7c7}
@media(min-width:1500px){.kv-art{right:-20px;width:980px;background-size:980px auto}.kv-copy{left:110px}}
@media(max-width:1100px){nav>a{padding:0 18px}.nav-inner{padding:0 24px}.brand{font-size:21px}.kv-copy{left:15px;width:395px}.kv-art{right:-135px}.portal{grid-template-columns:190px 290px 1fr}.news-panel{padding:21px 19px}.server-panel{padding:23px 16px}.hero-artwork>img{width:660px;right:8px;top:-52px}.hero-info{padding-right:0}.guide-links>button{gap:9px;padding:20px 12px}.guide-number{width:34px;font-size:23px}.guide-links small{font-size:9px}.footer-inner{gap:25px}}
@media(max-width:850px){.topbar{height:68px}.nav-inner{padding:0 20px}.brand{font-size:21px}.brand img{width:34px;height:34px}.menu-toggle{display:block;background:none;border:1px solid #77785d;color:#dfd0ac;padding:6px 12px;font-size:12px}nav{display:none;position:absolute;top:66px;left:0;right:0;background:#292f29;height:auto;box-shadow:0 8px 12px #0002;padding:8px 20px 17px}nav.is-open{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}nav>a{padding:12px 18px;font-size:13px;justify-content:center}.nav-play{margin:4px 0 0;grid-column:span 2;padding:12px!important}nav>a.current:after{display:none}.keyvisual{height:630px}.kv-art{width:720px;background-size:720px auto;right:-145px;top:0;height:630px}.kv-copy{left:10px;width:350px;top:55px}h1 span{font-size:80px}h1 strong{font-size:100px}.slogan{font-size:24px;letter-spacing:3px}.ribbon{font-size:11px;letter-spacing:4px}.kv-description{font-size:12px;letter-spacing:3px}.start-button{width:225px;min-height:82px}.start-button>span{font-size:32px}.vertical-seal{display:none}.portal{grid-template-columns:200px 1fr;margin-top:-25px}.feature-banner{display:none}.news-panel{padding:22px 25px}.hero-info h3{font-size:51px}.hero-artwork>img{width:610px;right:-28px;top:-13px}.hero-selector{left:15px;right:0;gap:15px}.hero-backdrop{font-size:300px;left:15px;top:70px}.hero-info{padding-top:45px}.hero-info #skill-description{font-size:12px}.hero-showcase{grid-template-columns:52% 48%}.guide-links{grid-template-columns:repeat(2,1fr)}.guide-links>button{padding:20px}.guide-links>button:nth-child(3){border-left:0}.guide-links>button:nth-child(n+3){border-top:1px solid #d6d0c0}.guide-links small{font-size:10px}.footer-tag{display:none}}
@media(max-width:767px){html{scroll-padding-top:78px}.wrap{width:calc(100% - 32px)}.topbar{height:64px}.brand{font-size:20px}.brand small{font-size:8px}.nav-inner{padding:0 16px}nav{top:62px}.keyvisual{height:780px}.scene{background:linear-gradient(#e2e0c4b8,#dbddc4c9),url('/client/res/image/com/main/imgZhucheng.jpg') center/cover}.kv-art{width:100%;right:0;top:0;height:780px;background-size:500px auto;background-position:center 20%;mask-image:linear-gradient(#000 0%,#000 42%,transparent 74%);-webkit-mask-image:linear-gradient(#000 0%,#000 42%,transparent 74%)}.kv-copy{top:358px;left:0;width:100%;padding:0 16px}.ribbon{font-size:10px;letter-spacing:4px;color:#4f583b}.ribbon:before,.ribbon:after{width:23px}h1{margin:12px 0 9px;line-height:1.03;transform:rotate(-4deg);display:flex;flex-direction:column;align-items:center}h1 span{font-size:54px;margin-left:-102px;letter-spacing:3px}h1 strong{font-size:78px;margin-top:-12px;margin-left:43px;letter-spacing:2px}.slogan{font-size:23px;margin-top:15px;letter-spacing:2px}.slogan span{padding:0 4px}.kv-description{display:none}.start-button{margin-top:17px;width:235px;min-height:76px}.start-button>span{font-size:31px;letter-spacing:7px}.start-button small{font-size:9px}.platforms{font-size:9px;margin-top:11px}.keyvisual:after{height:55px}.portal{grid-template-columns:1fr;margin-top:-12px}.server-panel{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0 15px;padding:17px 20px;text-align:left}.server-panel h2{font-size:16px;letter-spacing:2px;margin:0 0 3px;grid-column:1}.server-play{grid-column:2;grid-row:1 / span 3;padding:11px 14px;font-size:24px;justify-content:center;gap:16px}.server-line{grid-column:1;justify-content:flex-start;font-size:10px;margin-top:6px}#server-name{grid-column:1;font-size:10px}.server-links,.server-note{display:none}.news-panel{padding:22px 20px}.news-heading h2{font-size:24px}.news-tabs{gap:30px}.news-list>button{padding:12px 0;font-size:11px;gap:7px}.news-list time{font-size:9px}.news-type{font-size:9px}.hero-section{margin-top:24px;padding-top:25px;padding-bottom:28px}.section-title{gap:13px}.section-title h2{font-size:30px;letter-spacing:5px}.section-title>p{font-size:10px;letter-spacing:2px}.hero-showcase{display:flex;flex-direction:column;min-height:0}.hero-artwork{min-height:385px}.hero-artwork>img{width:540px;right:calc(50% - 175px);top:-69px}.hero-backdrop{font-size:300px;top:-5px;left:calc(50% - 135px)}.hero-selector{bottom:0;left:0;right:0;gap:24px}.hero-selector img{width:57px;height:57px}.hero-selector button{font-size:10px}.hero-info{padding:27px 10px 0;max-width:none}.hero-epithet{font-size:14px;letter-spacing:3px}.hero-info h3{font-size:47px;letter-spacing:4px;margin:5px 0 10px}.hero-tags{margin-bottom:17px}.hero-tags span{font-size:9px}.skill-title{padding-top:16px}.skill-title h4{font-size:19px}.skill-title>span{font-size:9px}.hero-info #skill-description{font-size:12px}.tactic{font-size:11px;gap:10px}.skill-note{font-size:9px}.outline-button{margin-top:15px}.guides{padding-top:29px;padding-bottom:32px}.guide-heading{display:block;margin-bottom:17px}.guide-heading h2{font-size:26px}.guide-heading p{font-size:10px;margin-top:4px}.guide-links>button{padding:16px 11px;gap:8px}.guide-number{width:30px;height:39px;font-size:22px}.guide-links strong{font-size:12px}.guide-links small{font-size:8px;margin-top:3px}.guide-links b{display:none}.footer-inner{display:block;text-align:center}.footer-logo{font-size:25px}.footer-inner p{justify-content:center;gap:18px;margin-top:18px;font-size:10px}.footer-inner small{font-size:8px;margin-top:13px}footer{padding:27px 0}dialog{padding:38px 23px 25px}dialog h2{font-size:23px}.article-meta{font-size:9px}#article-body{font-size:13px}#article-body h3{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(max-width:767px){.kv-art{background-position:center 50%;mask-image:linear-gradient(#000 0%,#000 35%,transparent 72%);-webkit-mask-image:linear-gradient(#000 0%,#000 35%,transparent 72%)}}

/* Touch layout: readable content, reachable controls and phone safe areas. */
.mobile-actions { display: none; }
.dialog-toolbar { display: contents; }
.dialog-toolbar > span { display: none; }
@media (max-width: 850px) {
  .menu-toggle { min-width: 64px; min-height: 44px; }
  #navigation a { min-height: 48px; }
  #navigation { max-height: calc(100vh - 78px); overflow-y: auto; overscroll-behavior: contain; }
}
@media (max-width: 767px) {
  html { scroll-padding-top: calc(80px + env(safe-area-inset-top, 0px)); scroll-padding-bottom: 88px; }
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); -webkit-text-size-adjust: 100%; }
  .topbar { height: calc(64px + env(safe-area-inset-top, 0px)); }
  .nav-inner { padding-top: env(safe-area-inset-top, 0px); padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
  #navigation { top: calc(62px + env(safe-area-inset-top, 0px)); }
  .wrap { width: calc(100% - 32px); min-width: 0; }
  .keyvisual { height: 640px; }
  .kv-art { height: 640px; background-size: clamp(440px, 125vw, 660px) auto; background-position: center 42%; mask-image: linear-gradient(#000 0%, #000 28%, transparent 65%); -webkit-mask-image: linear-gradient(#000 0%, #000 28%, transparent 65%); }
  .kv-copy { top: 235px; }
  h1 { margin-top: 10px; }
  h1 span { font-size: clamp(44px, 12vw, 56px); }
  h1 strong { font-size: clamp(62px, 18vw, 80px); margin-left: 24px; white-space: nowrap; }
  .ribbon { font-size: 11px; letter-spacing: 3px; }
  .slogan { font-size: clamp(21px, 5.5vw, 26px); letter-spacing: 1px; }
  .start-button { min-height: 78px; width: min(260px, 88%); }
  .start-button small { font-size: 11px; letter-spacing: 1px; }
  .platforms { font-size: 12px; letter-spacing: 1px; }
  .server-panel { padding: 20px 16px; grid-template-columns: minmax(0, 1fr) minmax(118px, 1fr); gap: 0 10px; }
  .server-play { min-height: 52px; font-size: 23px; padding: 10px; gap: 9px; }
  .server-line, #server-name { font-size: 12px; }
  .server-panel h2 { font-size: 18px; }
  .news-panel { padding: 22px 16px; }
  .news-tabs { gap: 12px; }
  .news-tabs button { min-height: 48px; min-width: 64px; font-size: 15px; }
  .news-list > button { min-height: 56px; gap: 8px; font-size: 14px; line-height: 1.6; padding: 12px 0; }
  .news-type { font-size: 11px; }
  .news-title { white-space: normal; overflow-wrap: anywhere; }
  .news-list time { font-size: 11px; }
  .hero-artwork { min-height: 385px; }
  .hero-selector { gap: 24px; }
  .hero-selector button { min-width: 64px; font-size: 13px; }
  .hero-selector img { margin-inline: auto; }
  .hero-info { padding-inline: 0; }
  .hero-info #skill-description, .tactic { font-size: 14px; line-height: 1.9; }
  .hero-tags span, .skill-note, .section-title > p, .guide-heading p { font-size: 12px; }
  .skill-title > span { font-size: 11px; }
  .outline-button { min-height: 46px; font-size: 13px; }
  .guide-links > button { min-height: 94px; padding: 16px 12px; }
  .guide-links strong { font-size: 15px; }
  .guide-links small { font-size: 12px; }
  .guide-number { display: none; }
  .footer-inner p { flex-wrap: wrap; gap: 0 16px; }
  .footer-inner p a { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; }
  .footer-inner small { font-size: 11px; line-height: 1.9; }
  .mobile-actions { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; position: fixed; z-index: 35; inset: auto 0 0; background: #f7f3e9f5; border-top: 1px solid #c7b995; box-shadow: 0 -4px 16px #2b37251a; padding: 10px max(16px, env(safe-area-inset-right, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); }
  .mobile-actions a { min-height: 46px; display: flex; align-items: center; justify-content: center; font-size: 15px; border: 1px solid #b6a27b; color: #75613e; }
  .mobile-actions .mobile-enter { background: #993c2c; color: #fff0cb; border-color: #993c2c; gap: 16px; }
  dialog { width: calc(100% - 24px); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); padding: 20px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .dialog-toolbar { display: flex; justify-content: space-between; align-items: center; position: sticky; z-index: 2; top: -20px; margin: -20px -20px 18px; padding: 5px 8px 5px 20px; background: #faf7ef; border-bottom: 1px solid #ded4bf; }
  .dialog-toolbar > span { display: block; font-size: 13px; color: #8b774f; }
  .dialog-close { position: static; min-width: 44px; min-height: 44px; padding: 0; }
  .article-meta { font-size: 12px; letter-spacing: 0; }
  #article-body { font-size: 15px; line-height: 1.9; overflow-wrap: anywhere; }
  #article-body h3 { font-size: 17px; }
  .article-bottom button, .article-bottom a { min-height: 46px; display: inline-flex; align-items: center; font-size: 14px; }
}
@media (max-width: 360px) {
  .kv-copy { top: 170px; }
  .keyvisual { height: 590px; }
  .kv-art { height: 590px; }
  .brand { font-size: 18px; gap: 8px; }
  .brand img { width: 31px; height: 31px; }
  .server-panel { padding-inline: 12px; }
  .server-play { font-size: 20px; }
}
@media (max-width: 850px) and (orientation: landscape) and (max-height: 500px) {
  .topbar { position: relative; }
  dialog { max-height: calc(100dvh - 20px); }
}
@media (max-width: 767px) {
  .server-play { white-space: nowrap; }
  .server-play > span { display: none; }
}
@media (max-width: 850px) {
  .wrap { max-width: calc(100% - max(16px, env(safe-area-inset-left, 0px)) - max(16px, env(safe-area-inset-right, 0px))); }
  .nav-inner { padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
}

.company-info { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin-top: 10px; color: #b2b6a6; font-size: 12px; line-height: 1.8; }
.company-info a { text-decoration: underline; text-underline-offset: 3px; }
.company-info a:hover { color: #ecd4a4; }
@media (max-width: 767px) {
  .company-info { flex-direction: column; gap: 0; margin-top: 14px; }
  .company-info a { display: inline-flex; align-items: center; min-height: 44px; }
}


/* Typography: crisp Song-style display titles and consistent interface text. */
body { font-family: var(--sans); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
button, input, select, textarea { font-family: var(--sans); }
.brand { font-family: var(--serif); font-weight: 700; line-height: 1.3; letter-spacing: .06em; }
.brand small { font: 400 10px/1.5 var(--sans); letter-spacing: .28em; margin-top: 3px; }
nav > a, .menu-toggle { font-family: var(--sans); font-weight: 500; letter-spacing: .04em; }
h1 { font-family: var(--serif); font-weight: 700; line-height: 1.08; letter-spacing: .06em; transform: none; filter: none; margin: 24px 0 18px; color: #793b27; -webkit-text-stroke: 0; text-shadow: 0 1px 1px #fff6da; }
h1 span { font-size: 80px; margin: 0; letter-spacing: .12em; padding-left: .12em; }
h1 strong { font-size: 110px; font-weight: 700; color: #793b27; margin: 4px 0 0; letter-spacing: .06em; padding-left: .06em; -webkit-text-stroke: 0; text-shadow: inherit; }
.slogan { font-family: var(--serif); font-weight: 600; font-size: 27px; line-height: 1.5; letter-spacing: .06em; text-shadow: none; margin-top: 16px; }
.ribbon { font-weight: 500; letter-spacing: .2em; }
.kv-description { letter-spacing: .14em; }
.start-button > span { font: 700 30px/1.4 var(--sans); letter-spacing: .14em; padding-left: .14em; margin-left: 0; text-shadow: none; }
.start-button small { font: 400 12px/1.6 var(--sans); letter-spacing: .05em; }
.platforms { letter-spacing: .04em; }
.server-play { font-family: var(--sans); font-weight: 600; font-size: 22px; line-height: 1.5; letter-spacing: .06em; }
.server-panel h2 { font-family: var(--sans); font-weight: 600; letter-spacing: .08em; }
.news-heading h2, .section-title h2, .guide-heading h2, .skill-title h4, dialog h2 { font-family: var(--serif); font-weight: 700; line-height: 1.4; letter-spacing: .06em; }
.hero-info h3 { font-weight: 700; letter-spacing: .06em; }
.hero-epithet { letter-spacing: .1em; }
.banner-copy h2 { font-weight: 700; letter-spacing: .06em; text-shadow: 0 2px 3px #24273a80; }
.mobile-actions a { font-weight: 600; letter-spacing: .02em; }
.news-title, #article-body { letter-spacing: .01em; }
@media (max-width: 850px) {
  h1 span { font-size: 64px; }
  h1 strong { font-size: 90px; }
  .slogan { font-size: 24px; }
  .start-button > span { font-size: 28px; }
}
@media (max-width: 767px) {
  h1 { margin: 10px 0 8px; line-height: 1.05; }
  h1 span { font-size: clamp(40px, 11vw, 50px); margin-left: 0; }
  h1 strong { font-size: clamp(58px, 17vw, 76px); margin: 3px 0 0; }
  .brand { font-size: 20px; }
  .brand small { font-size: 9px; }
  .slogan { font-size: clamp(20px, 5.3vw, 24px); line-height: 1.5; letter-spacing: .035em; margin-top: 12px; }
  .start-button > span { font-size: 27px; }
  .start-button small { font-size: 11px; }
  .server-play { font-size: 20px; }
  .server-panel h2 { font-size: 16px; }
  .news-heading h2 { font-size: 23px; }
  .section-title h2 { font-size: 28px; }
  .guide-heading h2 { font-size: 25px; }
  dialog h2 { font-size: 22px; letter-spacing: .02em; }
}
@media (max-width: 360px) {
  .brand { font-size: 18px; }
  .start-button > span { font-size: 25px; }
  .server-play { font-size: 18px; }
}
