:root{color-scheme:dark;--bg:#090c0d;--panel:#111617;--panel2:#141a1a;--line:rgba(204,185,137,.15);--line2:rgba(255,255,255,.08);--text:#e8e4d9;--muted:#969a92;--gold:#c8a963;--gold2:#e2c98c;--green:#82a080;--serif:"Noto Serif TC","Noto Serif CJK TC","Songti TC","PMingLiU",Georgia,serif;--sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -24%,#222722 0,#101514 42%,#090c0d 78%);color:var(--text);font-family:var(--sans);font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.shell{max-width:1600px;margin:0 auto;padding:0 36px}.site-header{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line2)}.back-link{display:flex;align-items:center;gap:9px;color:#9ca29b;text-decoration:none;font-size:12px;letter-spacing:.05em;min-width:145px;transition:color .2s}.back-link:hover,.site-footer a:hover{color:var(--gold2)}.back-link span{font-size:20px;color:var(--gold)}.brand-lockup{display:flex;align-items:center;gap:12px;margin-left:-20px}.brand-mark{display:grid;place-items:center;color:var(--gold);font-size:21px;width:38px;height:38px;border:1px solid rgba(200,169,99,.32);border-radius:50%;box-shadow:0 0 24px rgba(200,169,99,.08)}.brand-lockup h1{font:700 17px/1.1 var(--serif);letter-spacing:.12em;margin:3px 0 0}.brand-lockup h1 span{font:500 9px/1 var(--sans);letter-spacing:.24em;color:#8d9189;margin-left:8px;vertical-align:2px}.eyebrow{margin:0;color:#8f8e7f;font-size:9px;letter-spacing:.2em;font-weight:700}.header-tag{display:flex;align-items:center;gap:9px;color:#aeb1a9;font-size:11px;letter-spacing:.07em}.header-tag i{width:3px;height:3px;border-radius:50%;background:#71766f}.status-dot{width:6px;height:6px;border-radius:50%;background:#84a580;box-shadow:0 0 10px #84a580}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 318px;gap:22px;padding:23px 0 30px;align-items:start}.play-column{min-width:0}.game-frame{position:relative;width:100%;aspect-ratio:16/9;min-height:400px;max-height:740px;overflow:hidden;background:#0c1211;border:1px solid rgba(205,189,147,.22);border-radius:6px;box-shadow:0 20px 56px rgba(0,0,0,.35),0 0 0 1px rgba(0,0,0,.7)}#game{display:block;width:100%;height:100%;outline:none;cursor:crosshair;touch-action:none}.screen{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;background:rgba(5,8,8,.76);backdrop-filter:blur(2px)}.is-hidden{display:none!important}.intro-screen{justify-content:flex-start;background:linear-gradient(90deg,rgba(5,8,8,.93) 0%,rgba(6,10,10,.84) 36%,rgba(7,10,10,.42) 72%,rgba(7,10,10,.14) 100%)}.intro-backdrop{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(90deg,rgba(5,8,8,.92) 0%,rgba(6,10,10,.72) 46%,rgba(7,10,10,.18) 100%),linear-gradient(0deg,rgba(4,8,8,.58),transparent 55%),url('./cover.png');background-position:center;background-size:cover;opacity:.91}.intro-content{width:min(460px,70%);padding:44px 0 34px 7.3%;animation:rise .7s ease both}.sigil{width:39px;height:39px;border:1px solid rgba(200,169,99,.46);border-radius:50%;display:grid;place-items:center;color:var(--gold2);font-size:19px;margin-bottom:23px;position:relative}.sigil b{position:absolute;width:5px;height:5px;border-radius:50%;background:#d9c28b;box-shadow:0 0 13px 4px rgba(217,194,139,.35)}.intro-content>.eyebrow{color:#c5ad72;font-size:9px;letter-spacing:.22em}.intro-content h2{font:700 clamp(32px,4.5vw,54px)/1.2 var(--serif);letter-spacing:.2em;margin:13px 0 17px;text-shadow:0 4px 30px #000}.intro-lede{color:#c5c5bb;font:500 14px/2 var(--serif);letter-spacing:.08em;margin:0 0 20px}.intro-meta{display:flex;gap:18px;color:#8f968e;font-size:10px;letter-spacing:.11em;margin-bottom:27px}.intro-meta span+span:before{content:"";display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--gold);vertical-align:3px;margin-right:16px}.primary-button,.secondary-button{border:0;min-height:43px;padding:0 19px;cursor:pointer;letter-spacing:.07em;transition:all .18s}.primary-button{color:#19170f;background:linear-gradient(135deg,#e1ca8f,#b79b59);font:700 13px var(--serif);box-shadow:0 5px 22px rgba(154,127,62,.16)}.primary-button span{font-family:var(--sans);font-size:17px;margin-left:15px}.primary-button:hover{filter:brightness(1.13);transform:translateY(-1px);box-shadow:0 8px 26px rgba(154,127,62,.23)}.start-hint{margin:11px 0 0;color:#81857d;font-size:10px;letter-spacing:.08em}.intro-back{position:absolute;bottom:18px;left:22px;color:#999a91;text-decoration:none;font-size:10px;letter-spacing:.06em}.intro-back:hover{color:var(--gold2)}@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.pause-screen,.result-screen{flex-direction:column;text-align:center;background:rgba(7,10,10,.85)}.pause-screen h2,.result-screen h2{font:700 32px var(--serif);letter-spacing:.1em;margin:10px 0}.pause-screen>p:not(.eyebrow),.result-screen>p:not(.eyebrow){color:#a8aaa1;line-height:1.9;margin:8px 20px 21px}.pause-screen .eyebrow,.result-screen .eyebrow{color:var(--gold)}.secondary-button{background:transparent;color:#d2c39d;border:1px solid rgba(200,169,99,.55);font:600 12px var(--serif)}.secondary-button:hover{background:rgba(200,169,99,.1);border-color:var(--gold2)}.result-actions{display:flex;gap:10px;justify-content:center}.result-screen .primary-button,.result-screen .secondary-button{min-width:142px}.hud{position:absolute;inset:0;pointer-events:none;padding:17px 19px;color:#ede9dd}.hud-player{position:absolute;top:18px;left:18px;display:flex;gap:11px;align-items:center;min-width:250px}.crest{display:grid;place-items:center;width:35px;height:35px;border:1px solid rgba(201,171,107,.5);border-radius:50%;font-size:16px;color:#d7bd7d;text-shadow:0 0 12px #c8a963;background:rgba(10,14,14,.63)}.bars{width:211px;display:grid;gap:6px}.bar-row{display:grid;grid-template-columns:35px 1fr 27px;align-items:center;gap:7px;font-size:9px;color:#b9b9af}.bar-row b{font-size:9px;font-weight:600;text-align:right;color:#d1cec3}.bar-track,.boss-track{height:6px;background:rgba(8,10,9,.8);border:1px solid rgba(255,255,255,.13);overflow:hidden}.bar-track i,.boss-track i{display:block;height:100%;width:100%;transition:width .2s}.hp-fill{background:linear-gradient(90deg,#8d342e,#cc6552);box-shadow:0 0 8px #953e34}.sp-fill{background:linear-gradient(90deg,#577755,#97b483)}.hud-zone{position:absolute;left:19px;bottom:20px;display:flex;align-items:center;gap:8px;font:600 11px var(--serif);letter-spacing:.1em;text-shadow:0 2px 5px #000}.zone-rune{color:var(--gold2);font-size:17px}.hud-zone small{color:#cfbd83;font:500 10px var(--sans);margin-left:9px}.hud-boss{position:absolute;top:22px;left:50%;transform:translateX(-50%);width:min(380px,46%);text-shadow:0 2px 4px #000}.boss-title{display:flex;justify-content:space-between;margin-bottom:6px;font:600 10px var(--serif);letter-spacing:.1em}.boss-title small{color:#b6a77d;font:10px var(--sans)}.boss-track{height:8px}.boss-track i{background:linear-gradient(90deg,#722f2a,#c15345);box-shadow:0 0 10px #922c26}.toast{position:absolute;top:78px;left:50%;transform:translateX(-50%);min-width:0;max-width:75%;padding:9px 14px;background:rgba(9,12,11,.8);border:1px solid rgba(200,169,99,.24);color:#e4d6ad;font:500 11px var(--serif);letter-spacing:.07em;text-align:center;opacity:0;transition:opacity .25s;white-space:nowrap}.toast.visible{opacity:1}.interaction-hint{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);padding:8px 13px;color:#ead8a8;background:rgba(8,11,10,.83);border:1px solid rgba(214,190,129,.38);font-size:11px;letter-spacing:.06em;white-space:nowrap}.interaction-hint span{color:#ddd8c9}.mobile-controls{display:none}
.below-game{margin-top:12px}.objective-line{min-height:51px;display:flex;align-items:center;gap:11px;padding:9px 14px;border:1px solid var(--line);background:linear-gradient(90deg,rgba(200,169,99,.07),rgba(17,22,22,.54));border-radius:3px}.objective-icon{color:var(--gold2);font-size:17px}.objective-line div{display:flex;flex-direction:column;gap:3px}.objective-line b{font:600 11px var(--serif);letter-spacing:.05em;color:#d5c28c}.objective-line div span{font-size:11px;color:#b0b3aa}.objective-progress{margin-left:auto;color:#8e9388;font-size:10px;letter-spacing:.06em}.micro-tip{display:flex;align-items:center;gap:7px;margin:10px 2px;color:#777f76;font-size:10px;letter-spacing:.02em}.micro-tip span{font-size:14px;color:#b89d5e}
.side-panel{display:grid;gap:12px}.panel-card{background:linear-gradient(145deg,rgba(22,28,27,.96),rgba(15,20,20,.96));border:1px solid var(--line);border-radius:4px;padding:16px 16px 14px;box-shadow:0 8px 23px rgba(0,0,0,.1)}.panel-heading{display:flex;align-items:center;gap:10px;margin-bottom:14px}.panel-heading.compact{margin-bottom:12px}.panel-icon{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(200,169,99,.22);color:#c9ad6b;border-radius:50%;font-size:14px}.panel-heading h2{font:600 15px var(--serif);letter-spacing:.08em;margin:3px 0 0}.panel-heading .eyebrow{font-size:8px}.quest-copy{margin:0 0 14px;color:#a1a69c;font:400 11px/1.9 var(--serif);letter-spacing:.025em}.quest-list{display:grid;gap:10px}.quest-item{display:grid;grid-template-columns:17px 1fr auto;align-items:center;gap:6px;color:#bdc0b5;font-size:10px}.quest-item small{font-size:9px;color:#7e857b}.quest-check{color:#868b80;font-size:14px}.quest-item.done{color:#d9cca4}.quest-item.done .quest-check{color:#a9bc8d}.quest-item.done small{color:#a9bc8d}.quest-reward{margin-top:14px;padding:8px 9px;background:rgba(200,169,99,.06);border:1px solid rgba(200,169,99,.12);color:#aaa99d;font-size:9px;display:flex;gap:6px;align-items:center}.quest-reward span{color:var(--gold)}.quest-reward b{color:#d2bd83;font-size:9px}.inventory-row{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:8px}.flask-icon,.rune-icon{width:27px;height:27px;display:grid;place-items:center;background:rgba(185,108,72,.1);color:#c99168;border:1px solid rgba(199,139,93,.21);border-radius:50%;font-size:15px}.rune-icon{background:rgba(200,169,99,.08);border-color:rgba(200,169,99,.18);color:var(--gold2)}.inventory-row>div:nth-child(2){display:grid;gap:3px}.inventory-row b{font-size:10px;font-weight:600;color:#d1d0c6}.inventory-row small{font-size:9px;color:#81877e}.inventory-row>strong{font-size:12px;color:#d4bf83;font-weight:600}.inventory-row>strong i{font-style:normal;font-size:9px;color:#858b80}.status-rule{height:1px;background:var(--line2);margin:11px 0}.checkpoint{display:flex;align-items:center;gap:7px;margin-top:13px;padding-top:10px;border-top:1px solid var(--line2);color:#899187;font-size:9px}.checkpoint-light{width:6px;height:6px;border-radius:50%;background:#819579;box-shadow:0 0 7px #7d9b71}.controls-card{padding-bottom:11px}.control-grid{display:grid;gap:8px}.control-row{display:grid;grid-template-columns:111px 1fr;align-items:center;min-height:22px;color:#a6aaa0;font-size:10px}.keyset{display:flex;gap:4px;align-items:center}.keyset kbd,.pause-hint kbd,.pause-screen kbd{min-width:19px;height:18px;padding:1px 5px;display:grid;place-items:center;color:#c9c4b6;background:#1c2221;border:1px solid #38403b;border-bottom-color:#4b544c;border-radius:3px;font:600 9px var(--sans);box-shadow:0 1px 0 #080a0a}.pause-hint{margin:10px 0 0;padding-top:9px;border-top:1px solid var(--line2);display:flex;align-items:center;gap:7px;color:#858a81;font-size:9px}.build-note{padding:5px 3px;color:#686e67;font-size:9px;letter-spacing:.04em}.build-note span{color:#ab9359;margin-right:4px}.build-note i{font-style:normal;margin:0 4px;color:#a48e5d}.site-footer{min-height:51px;border-top:1px solid var(--line2);display:flex;align-items:center;justify-content:space-between;color:#73796f;font-size:9px;letter-spacing:.08em}.site-footer>span:first-child{font-weight:700;letter-spacing:.18em;color:#a09d8c}.site-footer a{color:#888d84;text-decoration:none;transition:color .2s}
@media(max-width:1120px){.shell{padding:0 22px}.game-layout{grid-template-columns:minmax(0,1fr) 288px;gap:15px}.panel-card{padding:14px}.game-frame{min-height:360px}.control-row{grid-template-columns:105px 1fr}}
@media(max-width:850px){.shell{padding:0 15px}.site-header{height:70px}.back-link{min-width:auto;font-size:0}.back-link span{font-size:22px}.brand-lockup{margin-left:0}.brand-lockup h1{font-size:15px}.brand-lockup h1 span{display:none}.header-tag{font-size:0;gap:0}.header-tag .status-dot{width:7px;height:7px}.header-tag i,.header-tag .status-dot~*{display:none}.game-layout{grid-template-columns:1fr;gap:14px;padding-top:14px}.game-frame{aspect-ratio:16/10;min-height:300px;max-height:none}.side-panel{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.quest-card{grid-row:span 2}.controls-card{grid-column:2}.build-note{grid-column:1/-1}.intro-content{padding-left:7%;width:77%}.hud-boss{width:44%;top:17px}.hud-player{top:13px;left:13px;transform:scale(.88);transform-origin:top left}.site-footer{min-height:45px}}
@media(max-width:540px){.shell{padding:0 10px}.site-header{height:60px}.brand-mark{width:31px;height:31px;font-size:17px}.brand-lockup{gap:8px}.brand-lockup h1{font-size:13px}.eyebrow{font-size:8px}.game-layout{padding-top:10px}.game-frame{aspect-ratio:4/3;min-height:300px;border-radius:3px}.intro-content{width:88%;padding:28px 0 25px 7%}.sigil{width:31px;height:31px;font-size:16px;margin-bottom:14px}.intro-content h2{font-size:33px;margin:9px 0 11px}.intro-lede{font-size:12px;line-height:1.8;margin-bottom:13px}.intro-meta{font-size:8px;gap:9px;margin-bottom:17px}.intro-meta span+span:before{margin-right:8px}.primary-button{min-height:39px;padding:0 12px;font-size:11px}.start-hint{font-size:9px}.intro-back{left:12px;bottom:10px;font-size:9px}.hud{padding:10px}.hud-player{top:10px;left:8px;transform:scale(.73)}.hud-boss{top:61px;width:54%}.boss-title{font-size:8px}.boss-title small{font-size:8px}.hud-zone{left:11px;bottom:10px;font-size:9px}.hud-zone small{font-size:8px}.toast{top:102px;font-size:9px;max-width:92%;padding:7px 9px}.interaction-hint{bottom:13px;padding:6px 9px;font-size:9px}.mobile-controls{position:absolute;inset:auto 10px 9px;z-index:3;display:flex;align-items:end;justify-content:space-between;pointer-events:none}.dpad{position:relative;width:112px;height:88px;pointer-events:auto}.dpad button,.touch-actions button{position:absolute;border:1px solid rgba(219,207,173,.35);background:rgba(8,12,12,.68);color:#dfd2aa;border-radius:6px;touch-action:none;user-select:none}.dpad button{width:34px;height:30px;font-size:12px}.dpad button:nth-child(1){left:39px;top:0}.dpad button:nth-child(2){left:3px;top:31px}.dpad button:nth-child(3){left:39px;top:31px}.dpad button:nth-child(4){left:75px;top:31px}.touch-actions{position:relative;width:152px;height:88px;pointer-events:none}.touch-actions button{pointer-events:auto;height:37px;padding:0 10px;font-size:10px}.touch-actions [data-action=flask]{left:0;bottom:0}.touch-actions [data-action=roll]{right:47px;bottom:0}.touch-actions [data-action=attack]{right:0;bottom:42px;width:52px;height:52px;border-radius:50%;border-color:rgba(195,93,72,.6);background:rgba(89,29,23,.7);font-family:var(--serif)}.mobile-controls button:active{background:rgba(200,169,99,.35)}.below-game{margin-top:8px}.objective-line{min-height:46px;padding:7px 9px;gap:7px}.objective-line b{font-size:9px}.objective-line div span{font-size:9px}.objective-progress{font-size:8px}.micro-tip{font-size:8px;margin-top:7px}.side-panel{grid-template-columns:1fr;gap:8px}.quest-card{grid-row:auto}.controls-card{grid-column:auto}.panel-card{padding:12px}.quest-copy{font-size:10px}.control-grid{grid-template-columns:1fr 1fr;gap:7px}.control-row{grid-template-columns:1fr;gap:4px;font-size:9px}.keyset kbd{min-width:18px}.site-footer{font-size:8px;min-height:42px}.site-footer span:nth-child(2){display:none}}
#game:focus-visible{outline:1px solid rgba(226,201,140,.7);outline-offset:-2px}
@media(pointer:coarse){.game-frame{touch-action:none}.mobile-controls{position:absolute;inset:auto 10px 9px;z-index:3;display:flex;align-items:end;justify-content:space-between;pointer-events:none}.dpad{position:relative;width:112px;height:88px;pointer-events:auto}.dpad button,.touch-actions button{position:absolute;border:1px solid rgba(219,207,173,.35);background:rgba(8,12,12,.68);color:#dfd2aa;border-radius:6px;touch-action:none;user-select:none}.dpad button{width:34px;height:30px;font-size:12px}.dpad button:nth-child(1){left:39px;top:0}.dpad button:nth-child(2){left:3px;top:31px}.dpad button:nth-child(3){left:39px;top:31px}.dpad button:nth-child(4){left:75px;top:31px}.touch-actions{position:relative;width:156px;height:88px;pointer-events:none}.touch-actions button{pointer-events:auto;height:31px;padding:0 7px;font-size:9px}.touch-actions [data-action=interact]{left:0;top:0;bottom:auto;width:45px}.touch-actions [data-action=flask]{left:0;bottom:0;width:45px}.touch-actions [data-action=roll]{right:48px;bottom:0;width:52px}.touch-actions [data-action=attack]{right:0;bottom:36px;width:52px;height:52px;border-radius:50%;border-color:rgba(195,93,72,.6);background:rgba(89,29,23,.7);font-family:var(--serif)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.weapon-row{border-top:1px solid var(--line2);padding-top:11px;margin-top:10px}.weapon-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(200,169,99,.25);border-radius:50%;color:#d6bd82;background:rgba(200,169,99,.06);font-size:18px}.weapon-row strong{color:#dbc68f;font-size:12px}.sound-toggle{width:100%;margin-top:9px;padding:8px 10px;border:1px solid rgba(200,169,99,.32);border-radius:3px;background:rgba(200,169,99,.06);color:#c9bd9c;text-align:left;font:600 10px var(--sans);letter-spacing:.04em;cursor:pointer}.sound-toggle:hover,.sound-toggle:focus-visible{border-color:rgba(220,194,132,.7);background:rgba(200,169,99,.12);outline:none}
.target-lock-status{position:absolute;top:61px;left:19px;padding:5px 9px;border:1px solid rgba(205,189,147,.19);background:rgba(8,12,11,.68);color:#a5aa9d;font-size:10px;letter-spacing:.04em;text-shadow:0 1px 4px #000}.target-lock-status.is-locked{border-color:rgba(220,190,112,.55);color:#e5cb8c}.touch-actions [data-action=lock]{right:0;top:0;width:52px}
@media(max-width:540px){.target-lock-status{top:39px;left:10px;padding:3px 6px;font-size:8px}.touch-actions [data-action=lock]{right:0;top:0}}
.touch-actions [data-action=sprint]{left:50px;top:0;width:52px}.touch-actions [data-action=sprint]:active{border-color:rgba(220,190,112,.75);background:rgba(200,169,99,.24);color:#f0d794}
#game3d{position:absolute;inset:0;z-index:0;overflow:hidden;background:#101613}#game3d canvas{display:block;width:100%;height:100%;pointer-events:none}#game{position:absolute;inset:0;z-index:1;width:100%;height:100%;background:transparent;touch-action:none}#hud{z-index:2}.mobile-controls{z-index:3}
html[data-world3d="fallback"] #game3d{display:none}
