@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Noto+Sans+KR:wght@400;500;600;700&display=swap');
:root{--ivory:#f6f2df;--gold:#d2bb86;--ink:#173239;--muted:#bac6bc;--line:rgba(232,221,185,.25);--serif:'Cormorant Garamond',Georgia,serif;--sans:'Noto Sans KR',sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#263f45;color:var(--ivory);font-family:var(--sans);font-size:13px;-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;transition:background .2s,border-color .2s,opacity .2s,transform .2s}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button,dialog{border:0}button:active{transform:translateY(1px)}button:hover{filter:brightness(1.1)}.icon-library{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}#canvas{position:absolute;inset:0;width:100%;height:100%;outline:none;display:block}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(10,26,31,.79),rgba(13,32,35,.4) 39%,rgba(15,34,34,.02) 69%),linear-gradient(0deg,rgba(10,27,31,.76),transparent 22%,transparent 82%,rgba(16,34,39,.26))}.grain{position:absolute;inset:0;pointer-events:none;opacity:.026;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.8' filter='url(%23n)'/%3E%3C/svg%3E")}.masthead{position:absolute;z-index:4;top:34px;left:48px;right:48px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.masthead>*{pointer-events:auto}.wordmark{color:var(--ivory);display:flex;align-items:center;text-decoration:none;gap:13px}.wordmark img{width:29px;height:39px}.wordmark>span{font:600 24px/.9 var(--serif);letter-spacing:2.5px}.wordmark small{display:block;margin-top:8px;font:7px var(--sans);letter-spacing:6px;padding-left:2px}.header-right{display:flex;align-items:center;gap:8px}.build-label{font-size:8px;letter-spacing:2px;margin-right:24px;color:#f0ecd9c9;text-align:right}.build-label i{display:block;font-size:6px;font-style:normal;color:var(--gold);margin-top:7px;letter-spacing:2.2px}.icon-button{position:relative;display:grid;place-items:center;width:37px;height:37px;border:1px solid transparent;border-radius:0;background:transparent}.icon-button:hover{border-color:var(--line);background:#172d333b}.icon-button .icon{width:18px;height:18px;stroke-width:1.4}.sound-slash{position:absolute;width:24px;height:1px;background:var(--ivory);transform:rotate(-45deg);box-shadow:0 1px #254349}#sound-button[aria-pressed=true] .sound-slash{display:none}#welcome{position:absolute;inset:0;pointer-events:none}#welcome .hero{pointer-events:auto}.hero{position:absolute;left:8.3%;top:49.5%;transform:translateY(-44%);width:540px;max-width:51vw}.eyebrow{display:flex;align-items:center;gap:13px;letter-spacing:2.45px;font-size:8px;font-weight:500;color:var(--gold);margin-bottom:24px}.eyebrow>span{height:1px;width:26px;background:var(--gold);opacity:.7}h1{font:400 clamp(82px,9.1vw,134px)/.77 var(--serif);letter-spacing:-3px;margin:0 0 0 -5px;text-shadow:0 2px 25px #13242a22}h1>span{font:500 15px var(--sans);letter-spacing:17px;display:block;margin-top:24px;margin-left:10px}.ornament{display:flex;width:310px;gap:11px;align-items:center;color:var(--gold);margin:27px 0 24px}.ornament .icon{width:13px;height:13px;stroke-width:1}.ornament span{height:1px;background:var(--line);flex:1}.hero h2{font-size:20px;font-weight:500;letter-spacing:.3px;margin:0 0 14px;line-height:1.5}.intro{font-size:11px;line-height:2.1;color:#e0e7e0ba;margin:0 0 31px;font-weight:400}.name-label{display:flex;align-items:center;gap:11px;font-size:9px;color:#e4e7dabf;letter-spacing:.3px;margin-bottom:9px}.name-label span{font-size:6px;letter-spacing:1.5px;color:#c9c9b176}.join-row{display:flex;gap:0;max-width:420px}#player-name{background:#172f3550;border:1px solid #dae1ce50;border-right:0;border-radius:0;width:178px;height:52px;padding:0 15px;color:var(--ivory);font-size:11px;min-width:0;backdrop-filter:blur(8px);transition:border-color .2s,background .2s}#player-name:hover,#player-name:focus{border-color:var(--gold);background:#172f3580}#player-name::placeholder{color:#d5e0d084}#play-button,.primary{display:flex;align-items:center;justify-content:space-between;background:var(--ivory);color:var(--ink);height:52px;padding:0 21px;min-width:231px;border-radius:0;font-weight:600;font-size:11px;letter-spacing:.2px}#play-button{position:relative}#play-button:after{content:'';position:absolute;inset:4px;border:1px solid #203f3e20;pointer-events:none}#play-button b{display:flex;margin-left:15px;font-weight:400}#play-button .icon{width:23px;height:23px;transition:transform .2s}#play-button:hover .icon{transform:translateX(3px)}.connection-line{display:flex;align-items:center;gap:7px;color:#d0d9cc99;font-size:8px;margin-top:14px;letter-spacing:.1px;white-space:nowrap}.status-dot{width:4px;height:4px;border-radius:50%;background:#c8b06f;display:inline-block;flex-shrink:0}.status-dot.ready{background:#b2d8b5;box-shadow:0 0 6px #a4d49e55}.status-dot.error{background:#e7a78d}.divider{margin:0 3px;opacity:.7}#load-track{height:1px;max-width:409px;margin-top:12px;background:#d8e6c818}#load-fill{height:100%;width:0;background:var(--gold);transition:width .3s}.error-message{font-size:11px;color:#f6c7ab;max-width:430px;line-height:1.7;margin:10px 0 0}.error-message:empty{display:none}.chapter-card{position:absolute;right:5.8%;bottom:17%;width:218px;padding:0 0 0 21px;border-left:1px solid #e8dfbe66;text-shadow:0 1px 12px #112c3a99}.chapter-number{display:flex;align-items:center;gap:13px;color:var(--gold)}.chapter-number>span{font:400 50px/.8 var(--serif);letter-spacing:-2px}.chapter-number>div{font-size:6px;letter-spacing:1.5px;color:#eee9d9}.chapter-number small{display:block;font-size:8px;letter-spacing:1px;margin-top:6px;color:#e9e5d3b0}.chapter-line{height:1px;background:var(--line);margin:21px 0 17px;width:32px}.chapter-card p{font-size:7px;letter-spacing:2px;color:#e2dec5a6;margin:0 0 8px}.chapter-card h3{font-size:15px;font-weight:500;letter-spacing:.4px;margin:0 0 13px}.chapter-copy{font-size:10px;line-height:2;color:#f1f3e7df}.chapter-meta{display:flex;align-items:center;gap:9px;font-size:7px;color:#e1dec29c;margin-top:21px}.chapter-meta .icon{width:19px;height:19px;stroke-width:.9}.welcome-footer{position:absolute;left:48px;right:48px;bottom:31px;display:flex;align-items:center;gap:14px}.location-mark{width:31px;height:31px;color:var(--gold);stroke-width:.8}.welcome-footer strong{display:block;font-size:10px;font-weight:500;letter-spacing:.8px}.welcome-footer div>span{display:block;font-size:6px;letter-spacing:1.9px;margin-top:6px;color:#d1d7c897}.footer-rule{width:40px;height:1px;background:var(--line);margin-left:6px}.footer-note{font-size:8px;color:#ced8c692}.footer-version{margin-left:auto;font-size:6px;letter-spacing:1.65px;color:#e2e2cba3}.footer-version i{font-style:normal;margin:0 10px;color:var(--gold)}[hidden]{display:none!important}body.playing .vignette{background:linear-gradient(#132a3559,transparent 22%,transparent 82%,#132a354f)}body.playing .grain{opacity:.012}body.playing .masthead{left:32px;right:32px;top:25px;justify-content:center}body.playing .wordmark{gap:9px;opacity:.86}body.playing .wordmark img{width:19px;height:29px}body.playing .wordmark>span{font-size:18px;letter-spacing:2px}body.playing .wordmark small{font-size:5px;letter-spacing:4px;margin-top:6px}body.playing .header-right{position:absolute;right:0;top:38px;gap:4px}body.playing .build-label{display:none}body.playing .icon-button{width:29px;height:29px;background:#112c3226}body.playing .icon-button .icon{width:15px;height:15px}body.playing .sound-slash{width:20px}#hud{position:absolute;inset:0;pointer-events:none}#hud button,#hud input,#hud form{pointer-events:auto}.vitals{position:absolute;top:26px;left:33px;width:184px}.hearts{color:#e69887;letter-spacing:2px;font-size:20px;text-shadow:0 2px 7px #17303866;line-height:1.2}.stamina-track{width:141px;height:4px;background:#12303b6b;margin:9px 0 6px;padding:1px;border-radius:0}#stamina-fill{background:#d4ddb1;height:100%;width:100%;transition:width .1s}.stamina-caption{letter-spacing:2px;font-size:5px;color:#eef0d4a3}.quest-card{position:absolute;left:34px;top:112px;padding:0 0 0 15px;border-left:1px solid #f3e5b358;max-width:300px;text-shadow:0 1px 8px #0b2330b3}.tiny-label{font-size:7px;letter-spacing:2px;color:var(--gold);font-weight:500}.quest-card .tiny-label{display:flex;align-items:center;gap:7px;font-size:6px;letter-spacing:1.6px}.tiny-label i{display:inline-block;width:4px;height:4px;border:1px solid var(--gold);transform:rotate(45deg)}.quest-card h2{font-size:14px;font-weight:500;letter-spacing:.2px;margin:11px 0 7px}.quest-card p{font-size:9px;line-height:1.9;max-width:260px;color:#eaf0dfdf;margin:0}.quest-progress{display:flex;gap:18px;margin-top:15px;color:#f0e7c7;font-size:9px}.quest-progress>span{display:flex;align-items:center;gap:5px}.quest-progress .icon{width:14px;height:14px;stroke-width:1}.quest-progress b{font-size:13px;font-weight:500;margin:0 1px}.quest-progress em{font-style:normal;font-size:8px;color:#e3e2ccb3}.online-pill{position:absolute;right:34px;top:28px;display:flex;gap:7px;align-items:center;padding:7px 0;font-size:9px;text-shadow:0 1px 7px #0f313a}#latency{font-size:7px;opacity:.5;margin-left:4px}.minimap{position:absolute;right:33px;bottom:43px;background:#18343b9c;border:1px solid #d7c8a080;border-radius:50%;width:141px;height:141px;padding:3px;box-shadow:0 0 0 4px #19363d1a,0 0 0 5px #d1d8b52e;backdrop-filter:blur(5px)}.minimap:before,.minimap:after{content:'';position:absolute;top:calc(50% - .5px);width:7px;height:1px;background:var(--gold);opacity:.75}.minimap:before{left:-4px}.minimap:after{right:-4px}.minimap svg{width:100%;height:100%;opacity:.92}.map-n{position:absolute;top:-12px;left:calc(50% - 10px);width:20px;background:#294747;font:13px var(--serif);color:var(--gold);z-index:1}.map-caption{position:absolute;bottom:-25px;font-size:7px;left:0;right:0;color:#e7e7d3a3;letter-spacing:.5px}.map-caption kbd{font-size:7px;margin-left:5px}.region{position:absolute;right:34px;bottom:206px;text-align:right}.region>span{font-size:13px;letter-spacing:1.5px;text-shadow:0 2px 9px #1b3129}.region small{display:block;font-size:7px;margin-top:7px;color:#dee2c89c;letter-spacing:2px}.interaction{position:absolute;left:50%;bottom:24%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:11px 19px;background:#153039db;border:1px solid #e6dda136;border-radius:0;font-size:11px;backdrop-filter:blur(12px);max-width:calc(100% - 36px);text-align:center;box-shadow:0 3px 18px #112a301c}.interaction:before,.interaction:after{content:'';position:absolute;top:-1px;width:12px;height:1px;background:var(--gold)}.interaction:before{left:-1px}.interaction:after{right:-1px}kbd{font-family:inherit;background:#dce7ca0d;border:1px solid #e1e6c82b;border-radius:2px;padding:3px 6px;font-size:8px;color:var(--ivory);white-space:nowrap}.interaction kbd{font-size:12px;color:var(--ink);background:var(--ivory);padding:4px 8px;border-radius:0}.bottom-controls{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);display:flex;gap:17px;white-space:nowrap;font-size:7px;color:#f0eedb92}.bottom-controls span{display:flex;align-items:center;gap:6px}.bottom-controls kbd{font-size:6px;color:#f0eedbbf}#chat-panel{position:absolute;bottom:58px;left:32px;width:252px}#chat-messages{font-size:10px;line-height:1.9;text-shadow:0 1px 4px #142d24;max-height:126px;overflow-y:auto;pointer-events:auto;word-break:break-word;scrollbar-width:thin;scrollbar-color:#ddd2ab44 transparent}#chat-messages p{margin:2px 0}#chat-messages b{color:var(--gold);font-weight:500;margin-right:7px}#chat-form{display:flex;opacity:.64;margin-top:8px;transition:opacity .2s}#chat-form:focus-within,#chat-form:hover{opacity:1}#chat-input{border:0;border-bottom:1px solid #e5e9d543;background:#173a421f;width:220px;height:32px;border-radius:0;color:var(--ivory);padding:0 9px;font-size:9px}#chat-input::placeholder{color:#e1e7d2}#chat-form button{display:grid;place-items:center;background:#173a421f;border-bottom:1px solid #e5e9d543;width:32px;padding:0}#chat-form button .icon{width:17px;height:17px}.small-button{display:flex;align-items:center;gap:5px;background:transparent;font-size:7px;padding:5px 0;color:#eee6caa1;letter-spacing:.4px}.small-button .icon{width:13px;height:13px;stroke-width:1.2}#respawn-button{position:absolute;left:32px;bottom:22px}.toast{position:absolute;left:50%;top:17%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);background:#17313bea;border:1px solid #e2d9ac3f;padding:15px 27px;color:#eee4c2;font-size:11px;text-align:center;border-radius:0;box-shadow:0 10px 60px #10293430;z-index:15;word-break:keep-all;line-height:1.8;backdrop-filter:blur(10px)}.toast:before{content:'';position:absolute;top:-1px;left:calc(50% - 20px);width:40px;height:1px;background:var(--gold)}dialog{background:#eeedde;color:#243b3b;border:1px solid #d0d1b3;box-shadow:0 30px 100px #071a1266;border-radius:0;width:570px;max-width:calc(100% - 32px);max-height:calc(100% - 48px);padding:42px;overflow:auto}dialog::backdrop{background:#10232dcc;backdrop-filter:blur(12px)}dialog .tiny-label{color:#879076;font-size:7px}dialog h2{font-size:24px;font-weight:500;letter-spacing:-.6px;margin:16px 0 19px}dialog p{font-size:11px;line-height:2;color:#63716b}.close-dialog{position:absolute;right:14px;top:14px;display:grid;place-items:center;width:28px;height:28px;color:#576b62;background:transparent}.close-dialog .icon{width:20px;height:20px;stroke-width:1.2}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:19px 10px;padding:24px 0;margin:21px 0;border-block:1px solid #b8c0a866;font-size:9px;color:#566b61}.help-grid span{display:flex;align-items:center;gap:7px}.help-grid kbd{display:inline-block;color:#536b62;background:#dfe3d4;border-color:#bdc9b459;font-size:7px;min-width:24px;text-align:center}dialog .dialog-note{font-size:9px;color:#819084;margin-bottom:0}.primary{background:#23444b;color:var(--ivory);margin-top:26px;min-width:100%;font-size:11px;justify-content:space-between}.primary .icon{width:21px;height:21px}.world-map{position:relative;border:1px solid #a9b195;padding:5px;background:#dedfc8}.world-map svg{width:100%;display:block}.world-map text{font:10px var(--sans);fill:#56705f}.world-north{position:absolute;top:15px;right:16px;color:#60795f;font:13px var(--serif);display:flex;align-items:center;flex-direction:column;gap:4px}.world-north .icon{width:27px;height:27px;stroke-width:1}.map-legend{font-size:9px;display:flex;justify-content:center;gap:25px;margin-top:19px;color:#6a775f}#map-dialog{width:540px;padding:30px}#map-dialog h2{margin:12px 0 20px}#touch-controls{display:none}
@media(min-width:1700px){.hero{left:10%}.chapter-card{right:8%}}@media(max-height:760px) and (min-width:851px){.hero{top:49%;transform:translateY(-43%)}h1{font-size:105px}.eyebrow{margin-bottom:19px}.ornament{margin:21px 0 18px}.intro{margin-bottom:23px}.chapter-card{bottom:18%}.masthead{top:25px}.welcome-footer{bottom:23px}}
@media(max-width:1000px){.hero{left:7%;max-width:62vw}.chapter-card{right:5%;width:180px;padding-left:16px}.chapter-copy{font-size:9px}.chapter-meta{font-size:6px}.chapter-number>div{font-size:5px;letter-spacing:1.2px}.bottom-controls{gap:11px}.bottom-controls span:last-child{display:none}}
@media(max-width:850px){.masthead{left:26px;right:24px;top:26px}.build-label{display:none}.hero{left:8%;max-width:79vw;width:490px;top:47.5%}h1{font-size:108px}.chapter-card{display:none}.welcome-footer{left:27px;right:27px;bottom:26px}.footer-note,.footer-rule{display:none}.vignette{background:linear-gradient(90deg,#122d36b8,#14313e26),linear-gradient(0deg,#132e389e,transparent 65%)}.bottom-controls{display:none}.quest-card{top:99px;max-width:220px}.quest-card p{max-width:190px}.minimap{width:113px;height:113px;bottom:40px;right:24px}.region{bottom:173px;right:24px}.region>span{font-size:11px}#chat-panel{width:210px}#chat-input{width:178px}body.playing .masthead{left:24px;right:24px}body.playing .wordmark{display:none}body.playing .header-right{top:36px}}
@media(max-width:500px){.masthead{left:25px;right:20px;top:26px}.hero{left:27px;max-width:calc(100% - 54px);top:47%;transform:translateY(-39%)}h1{font-size:clamp(72px,21.3vw,103px);letter-spacing:-2.5px;margin-left:-3px}h1>span{font-size:11px;letter-spacing:12px;margin-top:20px;margin-left:6px}.eyebrow{font-size:6px;letter-spacing:1.6px;margin-bottom:25px;gap:9px}.eyebrow>span{width:19px}.ornament{width:227px;margin:25px 0 22px}.hero h2{font-size:17px;letter-spacing:-.3px;margin-bottom:13px}.intro{font-size:10px;margin-bottom:26px;line-height:2.2}.name-label{font-size:8px;margin-bottom:8px}.name-label span{font-size:5px}.join-row{flex-direction:column;gap:9px;max-width:none}#player-name{height:45px;width:100%;border:1px solid #dae1ce50;font-size:11px}#play-button{width:100%;height:51px;padding:0 20px;min-width:0}.connection-line{font-size:6.5px;gap:5px;letter-spacing:0;white-space:normal;flex-wrap:wrap}.connection-line .divider{margin:0 1px}.footer-version{font-size:5px;letter-spacing:1px;max-width:118px;line-height:2;text-align:right}.footer-version i{margin:0 4px}.welcome-footer{bottom:24px;gap:11px}.welcome-footer strong{font-size:9px}.welcome-footer div>span{font-size:5px;letter-spacing:1.3px}.location-mark{width:26px;height:26px}.wordmark>span{font-size:21px;letter-spacing:2px}.wordmark small{font-size:5px;letter-spacing:5px}.wordmark img{width:24px;height:34px}.header-right{gap:3px}.icon-button{width:29px;height:31px}.icon-button .icon{width:16px;height:16px}.sound-slash{width:22px}.vitals{left:20px;top:23px;width:158px}.hearts{font-size:19px;letter-spacing:1px}.stamina-track{width:133px;margin-top:7px}.stamina-caption{font-size:4.5px}.quest-card{left:21px;top:98px;padding-left:11px;max-width:211px}.online-pill{right:21px;top:25px;font-size:8px;gap:5px}.online-pill #latency{font-size:6px;margin-left:2px}body.playing .masthead{left:20px;right:17px;top:24px}body.playing .header-right{top:35px}body.playing .icon-button{width:27px;height:27px}.quest-card h2{font-size:12px;margin-top:10px}.quest-card p{font-size:8px}.quest-card .tiny-label{font-size:5px;letter-spacing:1.3px}.quest-progress{font-size:8px;gap:15px;margin-top:11px}.quest-progress b{font-size:12px}.quest-progress em{font-size:7px}.quest-progress .icon{width:12px;height:12px}#chat-panel{left:18px;bottom:210px;width:184px}#chat-input{width:156px;font-size:8px;height:29px}#chat-form button{width:28px}#chat-messages{max-height:77px;font-size:9px}.minimap{bottom:41px;width:100px;height:100px;right:24px;padding:2px}.region{bottom:162px;right:24px}.region>span{font-size:10px;letter-spacing:1px}.region small{font-size:6px;margin-top:5px}.map-caption{font-size:6px;bottom:-24px}.map-caption kbd{font-size:6px}.interaction{bottom:38%;font-size:10px;white-space:normal;padding:11px 15px;line-height:1.8;width:max-content;max-width:calc(100% - 44px)}#respawn-button{left:21px;bottom:24px;font-size:6px}.toast{top:27%;font-size:10px;padding:12px 18px;max-width:calc(100% - 42px)}.help-grid{grid-template-columns:1fr;gap:12px;padding:18px 0;margin:16px 0}dialog{padding:30px;max-height:90vh}dialog h2{font-size:20px;margin-top:13px}dialog p{font-size:10px}.help-grid span{font-size:9px}.help-grid kbd{font-size:7px}dialog .dialog-note{font-size:8px}.map-legend{font-size:7px;gap:14px}#map-dialog{padding:25px}.world-map text{font-size:10px}}
@media(pointer:coarse){body.playing #touch-controls{display:block}.dpad{position:absolute;left:23px;bottom:56px;width:128px;height:119px}.dpad button,.touch-actions button{position:absolute;display:flex;align-items:center;justify-content:center;border:1px solid #e3e1bd66;background:#1e3c489e;width:44px;height:44px;border-radius:50%;touch-action:none;user-select:none;-webkit-user-select:none;backdrop-filter:blur(8px);padding:0;box-shadow:inset 0 0 0 3px #1737401c;color:#f5eed8}.dpad button:active,.touch-actions button:active{background:#d2c59bbd;color:#193840}.dpad .icon{width:24px;height:24px;stroke-width:1.1}.dpad button:nth-child(1){left:42px;top:0}.dpad button:nth-child(2){left:0;top:41px}.dpad button:nth-child(3){left:42px;top:75px}.dpad button:nth-child(4){left:84px;top:41px}.dpad button:nth-child(2) .icon{transform:rotate(-90deg)}.dpad button:nth-child(3) .icon{transform:rotate(180deg)}.dpad button:nth-child(4) .icon{transform:rotate(90deg)}.dpad>span{position:absolute;width:3px;height:3px;background:#f4e3b580;border-radius:50%;top:60px;left:62px;pointer-events:none}.touch-actions{position:absolute;right:23px;bottom:215px;display:flex;gap:10px}.touch-actions button{position:relative;width:45px;height:45px}.touch-actions .icon{width:21px;height:21px;stroke-width:1.25}.touch-actions button span{position:absolute;top:50px;color:#f5eed8b3;font-size:6px;white-space:nowrap;letter-spacing:.7px;text-shadow:0 1px 4px #203a40}.bottom-controls{display:none}}
@media(max-height:650px) and (max-width:850px){.hero{top:50%;transform:translateY(-40%)}.eyebrow{margin-bottom:15px}h1{font-size:65px}h1>span{margin-top:15px;font-size:9px}.ornament{margin:17px 0}.hero h2{font-size:15px}.intro{font-size:9px;margin-bottom:18px}.welcome-footer{display:none}.join-row{flex-direction:row;gap:0}#player-name{width:45%;height:45px;border-right:0}#play-button{width:55%;height:45px;padding:0 13px;font-size:10px}.connection-line{margin-top:10px}.chapter-card{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Functional text stays readable over the luminous real-time landscape. */
.quest-card p{font-size:11px;line-height:1.85;color:#f2f3e8}
.quest-progress{font-size:10px}.online-pill{font-size:10px}
.bottom-controls{font-size:10px;color:#f4eedc;text-shadow:0 1px 5px #122e3a}
.bottom-controls kbd{font-size:9px;color:#fff7e4;background:#17354070}
#chat-input{font-size:11px;background:#173a423f}#chat-form{opacity:.84}
.chapter-card{text-shadow:0 1px 6px #18313d,0 0 18px #18313d88}
@media(max-width:500px){.quest-card p{font-size:10px;max-width:190px}.quest-progress{font-size:9px}.online-pill{font-size:9px}#chat-input{font-size:10px}.interaction{font-size:11px}}

/* A brief, event-driven motion language; the landscape keeps the focus. */
:root{--motion-out:cubic-bezier(.16,1,.3,1)}
@keyframes arrival{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
@keyframes quiet-fade{from{opacity:0}to{opacity:1}}
@keyframes draw-rule{from{opacity:0;scale:.7 1}to{opacity:1;scale:1 1}}
.hero>.eyebrow{animation:arrival .65s var(--motion-out) .08s backwards}
.hero>h1{animation:arrival .85s var(--motion-out) .16s backwards}
.hero>.ornament{animation:draw-rule .85s var(--motion-out) .28s backwards;transform-origin:left center}
.hero>h2{animation:arrival .7s var(--motion-out) .31s backwards}
.hero>.intro{animation:arrival .7s var(--motion-out) .37s backwards}
.hero>#join-form{animation:arrival .7s var(--motion-out) .43s backwards}
.hero>.connection-line,.hero>#load-track{animation:quiet-fade .65s ease .55s backwards}
.chapter-card{animation:arrival .85s var(--motion-out) .48s backwards}
.welcome-footer{animation:quiet-fade .9s ease .55s backwards}
.vignette,.grain{transition:opacity .8s ease}
button{transition:background .18s,border-color .18s,opacity .18s,transform .18s,scale .15s var(--motion-out)}
button.is-pressed{scale:.955}
#play-button:not(:disabled):hover{background:#fffbe9}
#play-button .icon{transition:transform .35s var(--motion-out)}
.quest-progress>span{position:relative}
.quest-progress b{display:inline-block;transform-origin:center 70%;font-variant-numeric:tabular-nums}
.resource-delta{position:absolute;right:0;top:-15px;font-size:10px;font-weight:500;color:#fff0bc;text-shadow:0 1px 8px #172f35;pointer-events:none;white-space:nowrap}
.hearts{transform-origin:left center}
.stamina-track{overflow:hidden}
#stamina-fill{transition:width .13s linear,background-color .35s ease}
.stamina-track.is-low #stamina-fill{background:#ebbd91}
dialog[open]::backdrop{animation:quiet-fade .22s ease both}
.dpad button.is-pressed,.touch-actions button.is-pressed{background:#d2c59bbd;color:#193840;border-color:#fff0bb;box-shadow:inset 0 0 0 3px #f4e4b42e}
#touch-controls{position:absolute;inset:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button.is-pressed{scale:1}}
