:root{--ink:#f8ecd2;--gold:#dbb278;--muted:#c9c7b9;--panel:rgba(14,25,29,.91);--border:rgba(219,178,120,.43);--red:#ae5c47;font-family:system-ui,-apple-system,'Noto Sans TC','PingFang TC','Microsoft JhengHei',sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#13232b}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}.hidden{display:none!important}#stage,#scene,#shade{position:fixed;inset:0;width:100%;height:100%}#scene{display:block;touch-action:none}#stage{background:radial-gradient(circle at 58% 31%,#788c87 0%,#364f52 38%,#101d27 85%)}#shade{pointer-events:none;background:linear-gradient(180deg,rgba(6,12,16,.18),transparent 32%,transparent 75%,rgba(2,8,12,.34)),radial-gradient(ellipse at center,transparent 35%,#06131b55 100%)}.intro{position:fixed;inset:0;z-index:12;display:grid;grid-template-columns:minmax(0,1fr) 315px;background:linear-gradient(90deg,rgba(7,16,20,.95),rgba(8,20,23,.83) 66%,rgba(9,18,18,.95)),linear-gradient(150deg,#152e31,#5b5b42);overflow-y:auto}.introArt{padding:clamp(24px,5vh,58px) clamp(24px,5.5vw,88px);max-width:1050px}.brandSeal,.seal{display:inline-grid;place-items:center;border:2px solid #c3a279;color:#edc899;font:700 33px serif;width:62px;height:62px;box-shadow:inset 0 0 0 4px #181d19,0 0 0 1px #c8a57068}.eyebrow{display:block;letter-spacing:.18em;text-transform:uppercase;font:600 11px system-ui;margin-top:25px;color:var(--gold)}h1,h2,h3{font-family:Georgia,'Songti TC','Noto Serif TC','STSong',serif}h1{font-size:clamp(47px,6.4vw,102px);line-height:1;margin:15px 0 3px;letter-spacing:.1em;font-weight:700;text-shadow:0 4px 12px #010a0d}h1 em{font:500 28px Georgia;color:var(--gold);vertical-align:top}.intro h2{margin:5px 0 24px;color:#e1c394;font-size:clamp(18px,2.3vw,32px);letter-spacing:.13em}.introArt>p:not(.fineprint){color:#e1ddd0;font-size:15px;max-width:690px;line-height:2}.pillrow{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 20px}.pillrow span{font-size:11px;color:#e6d0ae;border:1px solid #a5906b70;padding:7px 11px;background:#2638359c}.label{font-size:12px;color:#d4b58c;letter-spacing:.15em;margin:0 0 9px}.roleRow{display:flex;gap:9px;flex-wrap:wrap}.role{border:1px solid #6d726c;background:#182a2c;color:#d7d4c8;min-width:105px;display:grid;gap:3px;justify-items:center;padding:12px 16px;border-radius:4px}.role b{font:26px Georgia}.role span{font-size:12px}.role.active{background:linear-gradient(120deg,#85613c,#3f392c);border-color:#e0b880;color:#fff4df;box-shadow:0 0 22px #d2a5692b}.inputs{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}.inputs label{font-size:11px;color:#d0ba9d;display:grid;gap:6px}.inputs input,.inputs select{padding:12px;border:1px solid #7d836f;background:#142327;color:#f3e5d2;border-radius:3px;min-height:43px;width:160px}.inputs select{width:190px}.primary{border:0;background:linear-gradient(120deg,#c49058,#a75c43);color:#fff3d7;font-weight:700;box-shadow:0 5px 24px #030f13aa}.startButton{width:min(550px,100%);padding:17px 23px;display:flex;justify-content:space-between;align-items:center;font-size:18px;letter-spacing:.14em}.fineprint{color:#b9b7ae!important;max-width:790px;font-size:11px!important;line-height:1.75!important;margin-top:14px}.introAside{border-left:1px solid #b9a07755;padding:12vh 27px 30px;background:#1523227a}.chapterIndex{font:700 23px serif;border-bottom:1px solid #c3a17666;padding-bottom:20px}.chapterIndex span{display:block;font:11px sans-serif;color:#d4b889;margin-top:7px}.introAside>div:not(.chapterIndex){border-bottom:1px solid #e6c18a33;padding:17px 0;color:#c7a87c;font:15px Georgia}.introAside b{display:block;font:700 23px serif;color:#f1dfc0;margin:5px 0}.introAside small{font:12px system-ui;color:#b0b8b4}.introAside a{display:block;margin-top:40px;color:#e1ba88;font-size:13px}.loading{position:fixed;z-index:18;inset:0;background:#101d20;display:grid;place-content:center;text-align:center;gap:12px}.loading .seal{margin:auto}.loading h2{font-size:35px;margin:18px}.loading p{font-size:13px;color:#cbb69c}.progress{height:4px;background:#36443f;max-width:370px;width:70vw;margin:auto}.progress i{display:block;height:100%;background:#deb779;width:4%;transition:width .3s}.hud{z-index:7;position:fixed}#header{top:0;left:0;right:0;min-height:70px;background:linear-gradient(180deg,#111c20f5,#14272cba);display:flex;align-items:center;gap:22px;border-bottom:1px solid var(--border);padding:7px 25px}.logo{display:flex;align-items:center;gap:12px}.logo>span{display:grid;place-items:center;border:2px solid #d6ad77;font:700 27px Georgia;width:41px;height:41px;color:#e6c389}.logo div{display:grid;gap:4px;min-width:150px}.logo b{letter-spacing:.1em;font-size:18px}.logo small{font-size:9px;letter-spacing:.12em;color:#c6bba8}.location{font:700 22px Georgia,'Noto Serif TC',serif;flex:1;text-align:center;color:#ecd4a8}.headRight{display:flex;align-items:center;gap:20px;white-space:nowrap;font-size:12px}.headRight b{font-size:17px;color:#e9c18d;margin-left:5px}.headRight button,#toolbar button,#mapPane button{border:1px solid #c7a77977;background:#1c3033dd;color:#ead6b6;padding:10px 13px;border-radius:3px;font-size:13px}.headRight button:hover,#toolbar button:hover{background:#455144}kbd{font:10px system-ui;color:#dac5a2;padding-left:6px}#questPane{position:fixed;top:89px;left:20px;width:296px;padding:16px 17px;background:var(--panel);border:1px solid var(--border);border-left:3px solid #b98e58;backdrop-filter:blur(12px);box-shadow:0 12px 35px #0005}.questtitle{font-size:12px;letter-spacing:.12em;color:#ddb483;display:flex;justify-content:space-between}.questtitle span{color:#aebdb1}#questPane h2{font-size:24px;margin:9px 0 3px}#questPane p{font-size:12px;color:#cfcec4;line-height:1.75;margin:9px 0}#questSteps{display:grid;gap:9px;margin:12px 0}#questSteps div{font-size:12px;color:#e0d9c8;display:flex;gap:8px;line-height:1.45}#questSteps .done{color:#80c7a0}#questToggle{background:transparent;color:#d5b78d;border:0;font-size:11px;padding:6px 0}#questPane.collapsed>h2,#questPane.collapsed>p,#questPane.collapsed>#questSteps{display:none}#mapPane{position:fixed;top:88px;right:19px;background:#112326d8;border:1px solid #b0aa8666;padding:8px 8px 3px;box-shadow:0 10px 30px #0004}#minimap{display:block;width:170px;height:170px;border:1px solid #bac09855}#mapPane>div{padding:5px 2px;color:#b8c0b6;font-size:10px;display:flex;justify-content:space-between}#interaction{position:fixed;bottom:91px;left:50%;transform:translateX(-50%);background:#152328eb;border:1px solid #c7a46c;padding:12px;display:flex;gap:22px;align-items:center;box-shadow:0 8px 24px #0008}#interaction b{display:block;font-size:17px}#interaction small{font-size:11px;color:#d2bc9d}#interaction button{padding:11px 20px;background:#a77349;border:0;color:#fff2da;font-weight:700}#toolbar{bottom:0;left:0;right:0;padding:14px 24px 20px;display:flex;align-items:center;gap:8px;background:linear-gradient(0deg,#101d20ee,#142124bd 75%,transparent)}#toolbar button{background:#1b2d2de8;padding:13px 19px;white-space:nowrap}#toolbar button.attack{background:#8b4a38}#controlText{margin-left:auto;font-size:11px;color:#c2c2b7}#battleHUD{position:fixed;right:19px;top:295px;width:211px;padding:14px;background:#172428ed;border:1px solid #b18b5e;color:#efdfc0;font-size:12px;display:grid;gap:10px}#battleHUD>b{font-size:15px}#battleHUD>div>span{float:right}.gauge{height:7px;background:#493f38;margin-top:7px;border:1px solid #9f816159}.gauge i{display:block;width:100%;height:100%;background:#c67e57}.smallStats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.smallStats b{color:#e9bc80}#ipadControls{position:fixed;inset:auto 0 10px;pointer-events:none;display:none;align-items:flex-end;justify-content:space-between;padding:0 35px}#joystick{pointer-events:auto;touch-action:none;text-align:center;color:#d3c5a4}#joyRing{width:116px;height:116px;border:3px solid #d5c09d99;background:#1c282768;border-radius:100%;display:grid;place-items:center}#joyKnob{width:55px;height:55px;background:#dbbb84aa;border:2px solid #f6d49b;border-radius:100%}#joystick small{display:block;font-size:10px;margin-top:5px}#lookSurface{position:absolute;top:-55vh;right:0;bottom:0;width:55vw;pointer-events:auto;touch-action:none;z-index:-1}.iBtns{display:grid;grid-template-columns:repeat(2,62px);gap:9px;pointer-events:auto}.iBtns button{height:63px;border:1px solid #d4bd8f96;background:#1c2d31e6;color:#ffead0;border-radius:9px;font-size:24px;touch-action:manipulation}.iBtns button:first-child{background:#924a36de}.iBtns small{display:block;font-size:10px}.toast{position:fixed;z-index:24;bottom:100px;left:50%;transform:translateX(-50%);background:#1b322eea;border:1px solid #b99d6d;color:#f3ebd8;padding:14px 23px;text-align:center;max-width:min(620px,88vw);font-size:14px;line-height:1.65;box-shadow:0 15px 45px #0008}.modal{position:fixed;z-index:25;inset:0;background:#071317b6;display:grid;place-items:center;padding:24px;backdrop-filter:blur(5px)}.sheet{background:linear-gradient(148deg,#f6ebd6,#ddc8a6);border:8px solid #654b38;color:#392d26;box-shadow:0 25px 85px #000b;width:min(680px,100%);max-height:92vh;overflow:auto;padding:30px;position:relative}.sheet h2{font-size:30px;line-height:1.45;margin:8px 0 12px}.sheet p,.sheet li{line-height:1.8;font-size:15px}.sheet .source{color:#87664b;font-size:11px;letter-spacing:.14em}.sheet .close{position:absolute;right:13px;top:11px;color:#513a2d;border:0;background:transparent;font-size:22px}.sheet .choices{display:grid;gap:10px;margin:18px 0}.sheet .choices button,.sheet .choice{background:#fff8eb;border:1px solid #b7a286;color:#443427;padding:14px;text-align:left;font-size:15px}.sheet .choices button:hover{border-color:#a05f38;background:#f4e1c7}.sheet .accent{background:#ead4b0;border-left:4px solid #9b633a;padding:12px 14px;font-size:13px;line-height:1.7}.sheet .row{display:flex;gap:12px;flex-wrap:wrap}.sheet .action{border:0;background:#995e40;color:#fff7e9;padding:13px 18px;font-weight:bold;margin-top:14px}.sheet .muted{font-size:13px;color:#766858}.sheet textarea{width:100%;min-height:125px;background:#fffaf0;color:#312b26;border:1px solid #b1a387;padding:12px;resize:vertical}.sheet .cardRow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sheet .cardRow button{background:#fff7e7;border:1px solid #a9987e;padding:15px;text-align:left;color:#423326}.sheet .cardRow b{display:block;font-size:19px;margin-bottom:5px}.sheet .cardRow small{color:#74634c}.mapFull{width:100%;max-height:42vh;aspect-ratio:1.8;border:1px solid #a79173;background:#a8aa91}.mapSites{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.mapSites button{background:#e8d7bd;border:1px solid #ad987d;padding:13px;text-align:left;color:#45342a}.mapSites button b{display:block}.mapSites small{display:block;color:#725d48;margin-top:5px}.loadingErr{color:#ffd2aa;background:#351d1b;padding:10px}
@media(max-width:1150px){#controlText{display:none}.location{font-size:18px}#mapPane{top:83px}#questPane{width:270px}#header{gap:10px}.headRight{gap:9px}}@media(pointer:coarse){#ipadControls:not(.hidden){display:flex}#toolbar{bottom:8px;left:50%;transform:translateX(-50%);width:auto;padding:9px;border-radius:7px;background:#102323de}#toolbar button{padding:9px 12px;font-size:11px}#toolbar #horseBtn,#toolbar .attack{display:none}#interaction{bottom:152px}#questPane{top:81px;left:12px;width:255px;padding:13px}#mapPane{top:80px;right:10px}#minimap{width:135px;height:135px}#battleHUD{top:248px;right:10px;width:190px}.headRight{font-size:11px}.location{font-size:17px}.sheet{max-width:650px}}@media(max-height:680px){#questPane{top:75px}#mapPane{top:74px}#minimap{width:130px;height:130px}#battleHUD{top:238px}.introArt{padding:20px 35px}.intro h1{font-size:52px}.intro p{margin:12px 0}.introAside{padding-top:50px}}@media(max-width:760px){body::after{content:'請使用 iPad 橫向或電腦遊玩';position:fixed;z-index:99;inset:0;background:#14252a;color:#f0d8ad;display:grid;place-items:center;font-size:25px;text-align:center;padding:40px}.intro{display:none}#header,#hud,#toolbar,#ipadControls{display:none!important}}
/* iPad 視角拖曳直接由 3D 畫布處理，避免透明觸控層遮住史學介面。 */
#lookSurface{pointer-events:none!important}
.aim{pointer-events:none;position:fixed;left:50%;top:50%;width:38px;height:38px;transform:translate(-50%,-50%);z-index:6;border:1px solid #e9d3a67d;border-radius:50%;box-shadow:0 0 24px #d7b68535}.aim::before,.aim::after{content:'';position:absolute;background:#f6d9a5}.aim::before{width:14px;height:2px;left:11px;top:18px}.aim::after{width:2px;height:14px;left:18px;top:11px}

/* Final desktop + iPad art direction */
.intro{background-image:linear-gradient(90deg,rgba(6,14,19,.97) 0%,rgba(7,19,22,.90) 48%,rgba(6,16,19,.94) 100%),url('assets/world-atlas.jpg');background-repeat:no-repeat;background-position:center;background-size:cover}
.introArt{position:relative;z-index:2}.intro h1{background:linear-gradient(180deg,#fff2d0 14%,#ddbd86 57%,#947152);color:transparent;background-clip:text;-webkit-background-clip:text;filter:drop-shadow(0 8px 14px rgba(0,0,0,.45))}
.startButton{border:1px solid #e5bd7f;background:linear-gradient(145deg,#ba8751,#8b4b32);box-shadow:0 10px 40px #000a,0 0 25px #c1a16e25;transition:transform .15s,filter .15s}.startButton:hover{transform:translateY(-2px);filter:brightness(1.12)}
.eyebrow{text-shadow:0 2px 8px #000}.introAside{backdrop-filter:blur(8px);background:#0c1e1fde}
#header,.introAside,#questPane,#battleHUD{backdrop-filter:blur(10px)}.performanceInfo{font-size:10px;color:#97b6a5}.performanceInfo b{color:#bfd6b2!important}
#questPane{border-radius:3px}#battleHUD{border-radius:4px}.iBtns button{backdrop-filter:blur(7px)}
@media(pointer:coarse){.performanceInfo{display:none}#intro{font-size:14px}}
