@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap";:root{color:#e6e8df;font-synthesis:none;--ink:#e6e8df;--muted:#8a9fa2;--gold:#d4b475;--line:#bed3cf26;--glass:#091519e0;--serif:"Noto Serif SC", "Songti SC", STSong, serif;background:#081317;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft Yahei,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit;cursor:pointer}button,a,select{color:inherit}button{background:0 0;border:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{opacity:.45;cursor:wait}a{text-decoration:none}button:hover,a:hover{color:#fff4d7}#world{position:fixed;inset:0}#world canvas{touch-action:none;width:100%;height:100%;display:block}#app{pointer-events:none;background:linear-gradient(#030c10b8,#0000 17%),linear-gradient(#0000 67%,#030c10de);position:fixed;inset:0}#app>*{pointer-events:none}button,a,input,select,.control-panel,.formation-dock,.scene-toolbar{pointer-events:auto}#app.hidden{display:none}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:26px;height:75px;margin:0 30px;display:flex}.brand{font-family:var(--serif);letter-spacing:2px;white-space:nowrap;align-items:center;gap:11px;font-size:18px;line-height:1.1;display:flex}.brand-seal{width:30px;height:37px;color:var(--gold);border:1px solid #b7a278;place-items:center;font-size:22px;display:grid;position:relative}.brand-seal:after{content:"";border:1px solid #b7a27840;position:absolute;inset:3px}.brand b{font-size:15px;font-weight:500}.brand small{letter-spacing:2.6px;color:#91a3a3;margin-top:7px;font:6px/1.5 Arial,sans-serif;display:block}.brand-divider{color:#788d8e;margin:0 10px;font:17px Georgia}.topnav{align-items:center;gap:25px;height:100%;display:flex}.nav-button{letter-spacing:1px;color:#a2b2b1;white-space:nowrap;align-items:center;height:100%;padding:0;font-size:11px;display:flex;position:relative}.nav-button.active{color:#e9dfc3}.nav-button.active:after{content:"";background:var(--gold);width:20px;height:1px;position:absolute;bottom:-1px;left:calc(50% - 10px)}.nav-button span{color:#6f8688;padding-left:5px}.live-mark{color:#94a7a8;letter-spacing:.5px;white-space:nowrap;align-items:center;gap:10px;font-size:9px;display:flex}.live-divider{color:#496267}#fps{color:#a5b5b6;min-width:42px;font:9px ui-monospace,monospace}.intro{text-shadow:0 2px 18px #021017;max-width:370px;position:absolute;bottom:164px;left:34px}.eyebrow{letter-spacing:2.5px;color:#91a9a9;align-items:center;gap:9px;font-size:8px;display:flex}.eyebrow>span{background:#bca16b;width:20px;height:1px}.intro h1{font-family:var(--serif);letter-spacing:3px;color:#e7e8dd;margin:14px 0 10px;font-size:clamp(22px,2.1vw,31px);font-weight:500;line-height:1.5}.chapter-label{color:#a2b3b1;letter-spacing:1.5px;align-items:center;gap:10px;font-size:9px;display:flex}.chapter-label i{background:#b99a64;border-radius:50%;width:2px;height:2px}.demo-caption{color:#c5b288;letter-spacing:1px;align-items:center;gap:9px;margin:15px 0 0;font-size:9px;display:flex}.status-line{background:#d1b375;width:13px;height:1px;display:block}#demo-time{color:#789295;letter-spacing:.2px;padding-left:8px;font:8px ui-monospace,monospace}#mobile-controls{z-index:4;color:#cbd5ce;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);letter-spacing:2px;background:#09171cc2;border:1px solid #b8c3aa35;padding:10px 15px;font-size:10px;transition:color .2s,border-color .2s;display:block;position:absolute;top:94px;right:30px}#mobile-controls:hover,.controls-open #mobile-controls{color:#dfc58d;border-color:#c3a96e99}.control-panel{z-index:3;scrollbar-width:thin;scrollbar-color:#597072 transparent;background:var(--glass);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);visibility:hidden;opacity:0;pointer-events:none;border:1px solid #b8c3aa29;width:278px;max-height:570px;padding:22px;transition:opacity .22s,transform .22s,visibility .22s;position:absolute;top:142px;bottom:152px;right:30px;overflow:auto;transform:translate(12px);box-shadow:0 18px 60px #0005}.control-panel button,.control-panel input,.control-panel select{pointer-events:none}.controls-open .control-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translate(0)}.controls-open .control-panel button,.controls-open .control-panel input,.controls-open .control-panel select{pointer-events:auto}.panel-heading{color:#879d9f;justify-content:space-between;align-items:center;display:flex}.tiny-heading{letter-spacing:3px;font-size:8px}.panel-symbol{color:#baab84;font-size:17px}.array-heading{align-items:center;gap:11px;margin-top:14px;display:flex}.array-heading h2{font-family:var(--serif);letter-spacing:2px;margin:0;font-size:22px;font-weight:500}.pill{color:#c0a975;letter-spacing:1px;white-space:nowrap;border:1px solid #a88f574d;padding:3px 5px;font-size:8px}.panel-description{color:#8fa4a3;letter-spacing:.4px;min-height:38px;margin:10px 0 0;font-size:10px;line-height:1.9}.rule{background:var(--line);height:1px;margin:20px 0}.field-label{letter-spacing:1px;color:#c1ceca;justify-content:space-between;margin-bottom:11px;font-size:10px;display:flex}.field-label span{color:#8eaaa7;letter-spacing:0;font:10px ui-monospace,monospace}.segmented{border:1px solid #b5c7c029;gap:3px;margin-bottom:22px;padding:3px;display:flex}.segmented button{color:#8ca4a3;letter-spacing:1px;flex:1;height:29px;font-size:10px}.segmented button.selected{color:#dfc690;background:#c4aa7321;border:1px solid #aa95503d}input[type=range]{appearance:none;background:linear-gradient(to right, #ad9565 var(--range,33%), #294044 var(--range,33%));cursor:pointer;width:100%;height:2px;margin:17px 0 24px;display:block}input[type=range]::-webkit-slider-thumb{appearance:none;background:#b69a62;border:2px solid #e8d7b0;border-radius:1px;width:9px;height:9px;transform:rotate(45deg)}input[type=range]::-moz-range-thumb{background:#b69a62;border:2px solid #e8d7b0;width:7px;height:7px}.toggle-row{cursor:pointer;justify-content:space-between;align-items:center;margin:17px 0;display:flex;position:relative}.toggle-row b{letter-spacing:1px;color:#c2cfcb;font-size:10px;font-weight:400;display:block}.toggle-row small{color:#738d8e;letter-spacing:.6px;margin-top:6px;font-size:8px;display:block}.toggle-row input{opacity:0;cursor:pointer;z-index:2;width:32px;height:24px;position:absolute;right:0}.switch{background:#33494c;border-radius:12px;flex-shrink:0;width:29px;height:16px;transition:background .2s;position:relative}.switch:after{content:"";background:#dfe6d9;border-radius:50%;width:10px;height:10px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle-row input:checked+.switch{background:#8e7b4d}.toggle-row input:checked+.switch:after{transform:translate(13px)}.toggle-row input:focus-visible+.switch{outline:2px solid var(--gold);outline-offset:4px}.thunder-toggle b{color:#d0b97e}.thunder-tuning{color:#bcae85;border-left:1px solid #a790524f;margin:10px 0 17px;padding-left:9px;font-size:9px}.thunder-tuning summary{cursor:pointer;pointer-events:auto;justify-content:space-between;align-items:center;gap:8px;list-style:none;display:flex}.thunder-tuning summary:before{content:"＋";margin-right:1px;font-size:10px}.thunder-tuning[open] summary:before{content:"−"}.thunder-tuning summary span{margin-left:auto;font:9px ui-monospace,monospace}.thunder-tuning summary::-webkit-details-marker{display:none}.thunder-tuning input[type=range]{margin:19px 0 15px}#quality{color:#b6c6c2;letter-spacing:1px;background:#112429;border:1px solid #b5c7c029;border-radius:0;width:100%;padding:10px 9px;font-size:10px}.panel-footnote{color:#658084;letter-spacing:.5px;text-align:center;margin-top:17px;font-size:8px}.world-tag{display:none}.scene-toolbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#071a20b3;border:1px solid #b9c9bf24;align-items:center;gap:2px;height:37px;padding:0 5px;display:flex;position:absolute;bottom:143px;right:31px}.scene-toolbar button{color:#96adad;white-space:nowrap;min-width:30px;height:27px;padding:0 9px;font-size:9px}.scene-toolbar button:hover{color:#e5d4af}.scene-toolbar button.selected{color:#dacfaa;background:#89988722}.toolbar-divider{background:var(--line);width:1px;height:12px;margin:0 3px}.scene-toolbar #thunder-burst{color:#d1b46e;background:#99824412;border:1px solid #a68b4e42;margin-left:3px}.scene-toolbar #thunder-burst.releasing{color:#fff1c9;background:#a7884a55;border-color:#e0bd70}.demo-timeline{height:2px;position:absolute;bottom:111px;left:30px;right:30px}#demo-progress{appearance:none;color:#d2b475;background:#97b6ae18;border:0;width:100%;height:2px;display:block}#demo-progress::-webkit-progress-bar{background:#97b6ae18}#demo-progress::-webkit-progress-value{background:#d2b475;box-shadow:0 0 10px #ddae4766}#demo-progress::-moz-progress-bar{background:#d2b475}.formation-dock{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0b1c21bd;border-bottom:1px solid #bdcabc24;align-items:stretch;height:76px;display:flex;position:absolute;bottom:35px;left:30px;right:30px}.dock-label{flex-shrink:0;align-self:center;width:112px;padding-left:18px}.dock-label>span{font-family:var(--serif);letter-spacing:2px;color:#b5c3bb;font-size:12px}.dock-label small{letter-spacing:2px;color:#597b7f;margin-top:8px;font-size:7px;display:block}.formation-card{color:#739799;text-align:left;border-left:1px solid #a6beb51c;flex:1;justify-content:center;align-items:center;gap:10px;min-width:0;padding:10px 8px;transition:background .25s,color .25s;display:flex;position:relative}.formation-card:hover{color:#bdc9be;background:#a8bcb315}.formation-card.active{color:#d6bd84;background:linear-gradient(110deg,#aa976026,#628f8310)}.formation-card.active:after{content:"";background:#d3b06a;height:1px;position:absolute;bottom:0;left:14px;right:14px}.formation-card small{color:#638386;letter-spacing:1.5px;white-space:nowrap;margin-bottom:7px;font-size:7px;display:block}.formation-card.active small{color:#aa9d78}.formation-card b{font-family:var(--serif);letter-spacing:1px;white-space:nowrap;font-size:13px;font-weight:500}.formation-card i{border:1px solid #758e7738;width:3px;height:3px;position:absolute;top:9px;right:9px;transform:rotate(45deg)}.formation-card.active i{background:#bca16a;border-color:#bca16a}.formation-icon{flex-shrink:0;width:31px;height:40px;display:block}.formation-icon svg{width:100%;height:100%;overflow:visible}.dock-actions{border-left:1px solid #a6beb51c;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:176px;padding:10px 13px 6px;display:flex}.primary-button{color:#e0c894;letter-spacing:1px;background:#b3935150;border:1px solid #bda16455;justify-content:center;align-items:center;gap:9px;width:100%;height:37px;font-size:10px;transition:background .2s;display:flex}.primary-button:hover{background:#bb9a5266}.primary-button>span:first-child{font-size:13px}.primary-button .button-arrow{margin-left:2px;font-size:13px}#demo-replay{color:#859e9e;letter-spacing:1px;padding:3px 8px;font-size:8px}#demo-replay:hover{color:#d7c395}footer{color:#59777b;letter-spacing:.5px;justify-content:space-between;align-items:center;height:35px;font-size:8px;display:flex;position:absolute;bottom:0;left:30px;right:30px}.footer-sep{color:#415e63;margin:0 8px}footer b{letter-spacing:2px;color:#59777b;margin-left:16px;font-size:7px;font-weight:400}.mouse-icon{vertical-align:-2px;border:1px solid #789494;border-radius:4px;width:7px;height:10px;margin-right:8px;display:inline-block}.mouse-icon:before{content:"";background:#789494;width:1px;height:3px;margin:1px auto;display:block}#loading{z-index:9;pointer-events:none;background:#08161b;flex-direction:column;justify-content:center;align-items:center;transition:opacity .8s;display:flex;position:fixed;inset:0}#loading.loaded{opacity:0}.loading-seal{font:50px var(--serif);color:#d0b783;border:1px solid #ad956166;padding:10px 16px}.loading-seal~p{color:#c5d1ca;font-family:var(--serif);letter-spacing:6px;margin-top:28px;font-size:18px}#loading small{letter-spacing:2px;color:#638286;font-size:10px}#restore-ui{color:#c0cabe;letter-spacing:2px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#081e25cc;border:1px solid #b8c3aa35;padding:11px 20px;font-size:10px;position:absolute;bottom:25px;left:50%;transform:translate(-50%)}#restore-ui[hidden],:is(#sword-info,#wings-info)[hidden]{display:none}:is(#sword-info,#wings-info){text-shadow:0 2px 16px #021017;max-width:280px;position:absolute;bottom:150px;left:34px}:is(#sword-info,#wings-info) h1{font:32px var(--serif);letter-spacing:4px;margin:20px 0 14px;line-height:1.5}:is(#sword-info,#wings-info) p{letter-spacing:1px;color:#8fa9a7;font-size:11px;line-height:2}:is(#sword-info,#wings-info)>small{color:#6c8b8e;letter-spacing:1px;margin-top:12px;font-size:8px;display:block}:is(#sword-info,#wings-info) .primary-button{margin-top:13px}.thunder-study-toggle{letter-spacing:1px;color:#cab47f;background:#806b2e28;border:1px solid #bda16455;width:100%;margin-top:13px;padding:11px 13px;font-size:10px}.thunder-study-toggle[aria-pressed=false]{color:#83a2a1;background:#183137aa;border-color:#6c8f8944}body:is(.sword-view,.wings-view) .intro,body:is(.sword-view,.wings-view) .control-panel,body:is(.sword-view,.wings-view) .formation-dock,body:is(.sword-view,.wings-view) .world-tag,body:is(.sword-view,.wings-view) #mobile-controls,body:is(.sword-view,.wings-view) .demo-timeline{display:none}body:is(.sword-view,.wings-view) .scene-toolbar{bottom:60px}dialog{color:#d8e1d7;scrollbar-width:thin;scrollbar-color:#486a6c transparent;background:#0c2025;border:1px solid #b5c7c034;width:calc(100% - 40px);max-width:620px;max-height:86dvh;padding:38px;overflow:auto;box-shadow:0 30px 100px #0008}dialog::backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#031016a3}dialog h2{font:27px var(--serif);letter-spacing:3px;margin-top:26px}.dialog-intro{color:#91aaa6;font-size:11px;line-height:1.9}.close-dialog{color:#91aaa5;padding:4px 8px;font-size:25px;position:absolute;top:14px;right:17px}.reference-images{grid-template-columns:1fr 1fr;gap:13px;margin-top:23px;display:grid}.reference-images a{display:block}.reference-images img{object-fit:cover;border:1px solid #79958a44;width:100%;height:136px;display:block}.reference-images a:nth-child(2) img{object-position:center 48%}.reference-images small{letter-spacing:1px;color:#86a299;margin-top:8px;font-size:8px;display:block}.reference-list{border-top:1px solid var(--line);margin:27px 0}.reference-list a{border-bottom:1px solid var(--line);align-items:center;gap:18px;padding:19px 0;display:flex}.reference-list a>span{color:#b09d6d;font:11px ui-monospace,monospace}.reference-list a>span:last-child{margin-left:auto}.reference-list b{font-size:11px;font-weight:500}.reference-list p{color:#84a299;margin:8px 0 0;font-size:9px;line-height:1.7}.reference-note{background:#a9c1aa0c;border-left:1px solid #bca26a80;padding:16px}.reference-note b{color:#c1b78f;letter-spacing:2px;font-size:10px;font-weight:500}.reference-note p{color:#88a39a;margin-bottom:0;font-size:10px;line-height:2}.text-link{color:#c0b283;border-bottom:1px solid #a6b09155;margin-top:22px;padding-bottom:5px;font-size:10px;display:inline-block}#toast{color:#ddd4b3;letter-spacing:1px;opacity:0;pointer-events:none;z-index:20;text-align:center;background:#0a222bea;border:1px solid #bda16455;max-width:calc(100% - 40px);padding:12px 20px;font-size:10px;transition:all .3s;position:fixed;top:91px;left:50%;transform:translate(-50%,-10px)}#toast.show{opacity:1;transform:translate(-50%)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=1600px){.topbar,footer{margin-left:0;margin-right:0;left:42px;right:42px}.topbar{margin:0 42px}.intro{bottom:182px;left:46px}.formation-dock,.demo-timeline{left:42px;right:42px}.formation-dock{height:84px}.demo-timeline{bottom:119px}.scene-toolbar{bottom:153px;right:42px}#mobile-controls,.control-panel{right:42px}}@media (width<=1190px){.live-mark,.dock-label{display:none}.topnav{gap:23px}.formation-card{gap:7px}.dock-actions{width:160px}}@media (width<=920px){.topbar{gap:16px;height:68px;margin:0 22px}.topnav{gap:18px}.nav-button{letter-spacing:.4px;font-size:10px}.brand{gap:9px;font-size:16px}.brand b{font-size:14px}.brand small{letter-spacing:2.2px;font-size:5px}.intro{bottom:157px;left:26px}.intro h1{letter-spacing:2px;font-size:24px}#mobile-controls{top:85px;right:22px}.control-panel{top:133px;bottom:150px;right:22px}.formation-dock,.demo-timeline{left:22px;right:22px}.formation-card{gap:5px;padding:10px 4px}.formation-card b{letter-spacing:.5px;font-size:11px}.formation-card small{letter-spacing:.7px;font-size:6px}.formation-icon{width:23px;height:34px}.dock-actions{width:145px;padding:10px 10px 6px}.primary-button{letter-spacing:.5px;font-size:9px}.scene-toolbar{bottom:137px;right:22px}.scene-toolbar button{min-width:27px;padding:0 7px}footer{font-size:7px;left:22px;right:22px}footer>span:last-child{display:none}}@media (width<=680px){.topbar{align-items:flex-start;height:96px;margin:0 17px;padding-top:16px}.brand-seal{width:26px;height:31px;font-size:20px}.brand small{margin-top:5px}.topnav{gap:23px;height:34px;position:absolute;top:62px;left:18px;right:18px}.nav-button{font-size:9px}#mobile-controls{padding:9px 11px;font-size:9px;top:17px;right:17px}.control-panel{width:267px;max-width:calc(100vw - 34px);padding:20px;top:108px;bottom:191px;right:17px}.intro{max-width:calc(100% - 40px);transition:opacity .2s;bottom:204px;left:21px}.intro h1{letter-spacing:2px;margin:11px 0 8px;font-size:22px}.eyebrow{letter-spacing:2px;font-size:7px}.chapter-label{letter-spacing:.8px;font-size:8px}.demo-caption{margin-top:13px;font-size:8px}#demo-time{font-size:7px}.controls-open .intro{opacity:.12}.formation-dock{grid-template-columns:repeat(5,minmax(0,1fr));height:112px;padding-bottom:48px;display:grid;bottom:27px;left:14px;right:14px}.formation-card{border-left:1px solid #a6beb51c;gap:0;padding:9px 3px}.formation-card:first-of-type{border-left:0}.formation-icon{display:none}.formation-card b{letter-spacing:1px;font-size:11px}.formation-card small{letter-spacing:1px;margin-bottom:7px;font-size:6px}.formation-card i{width:2px;height:2px;top:7px;right:6px}.formation-card.active:after{left:7px;right:7px}.dock-actions{border-top:1px solid #a6beb51c;border-left:0;flex-direction:row;gap:10px;width:auto;height:47px;padding:7px 10px;position:absolute;bottom:0;left:0;right:0}#auto-play{letter-spacing:1px;width:min(69%,270px);height:32px;font-size:10px}#demo-replay{padding:8px 16px;font-size:9px}.demo-timeline{bottom:139px;left:14px;right:14px}.scene-toolbar{gap:0;max-width:calc(100% - 28px);height:34px;padding:0 4px;bottom:156px;left:50%;right:auto;transform:translate(-50%)}.scene-toolbar button{min-width:24px;height:25px;padding:0 7px;font-size:8px}.scene-toolbar .toolbar-divider{margin:0 2px}.scene-toolbar #thunder-burst{padding:0 6px}footer{letter-spacing:.2px;justify-content:center;height:27px;font-size:6px;left:18px;right:18px}.footer-sep{margin:0 5px}.mouse-icon{width:6px;height:8px;margin-right:5px}:is(#sword-info,#wings-info){max-width:230px;bottom:136px;left:24px}:is(#sword-info,#wings-info) h1{font-size:28px}:is(#sword-info,#wings-info) p{font-size:10px}body:is(.sword-view,.wings-view) .scene-toolbar{bottom:54px}dialog{padding:30px 24px}dialog h2{font-size:23px}.reference-images img{height:95px}.reference-list a{gap:10px}.reference-list b{font-size:10px}#toast{width:max-content;padding:11px 15px;font-size:9px;top:109px}}@media (height<=690px) and (width>=681px){.topbar{height:60px}#mobile-controls{top:76px}.control-panel{padding:18px;top:121px;bottom:127px}.intro{bottom:139px}.intro h1{margin:10px 0 8px;font-size:24px}.demo-caption{margin-top:11px}.formation-dock{height:67px;bottom:29px}.demo-timeline{bottom:96px}.scene-toolbar{bottom:118px}footer{height:29px}}@media (height<=620px) and (width<=680px){.intro{bottom:199px}.intro .eyebrow,.chapter-label{display:none}.intro h1{margin:0 0 5px;font-size:18px}.demo-caption{margin-top:6px}.control-panel{top:106px;bottom:154px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}#wings-info{bottom:102px}#wings-info .text-link{margin-top:15px;padding:0 0 5px;font-size:9px}#wings-info h1{margin-bottom:8px}#wings-info p{margin:0 0 7px}.user-references img{object-position:center 18%}@media (width<=680px){.topnav{gap:18px}#wings-info{bottom:108px;left:24px}#wings-info h1{margin:12px 0 8px;font-size:25px}#wings-info p{font-size:9px}#wings-info>small{font-size:7px}}
