:root{color:#3a3022;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#c4ab7c;font-family:system-ui,-apple-system,PingFang SC,Hiragino Sans GB,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%}body{overscroll-behavior:none;margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,canvas:focus-visible{outline-offset:5px;outline:2px solid #fff9e8}.surface{touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:fixed;inset:0}.masthead{left:calc(42px + env(safe-area-inset-left));top:calc(30px + env(safe-area-inset-top));pointer-events:none;-webkit-user-select:none;user-select:none;z-index:2;position:fixed}.brand{letter-spacing:2px;color:#3f3324;text-shadow:0 1px #fff2d655;align-items:baseline;gap:11px;margin:0;font-size:23px;font-weight:600;line-height:1;display:inline-flex}.brand .cn{letter-spacing:5px;font-weight:620}.brand .latin{letter-spacing:3.4px;color:#6b5a41;text-transform:uppercase;font-size:10px;font-weight:600;transform:translateY(-1px)}.hint{letter-spacing:.6px;color:#6b5a41;text-shadow:0 1px #fff2d644;margin:9px 0 0;font-size:11.5px}.modes{pointer-events:auto;background:#f7ecd7b8;border:1px solid #fff7df5e;border-radius:18px;gap:3px;margin-top:12px;padding:3px;display:inline-flex;box-shadow:0 3px 14px #44301d12,inset 0 1px #fffaf0b0}.mode{letter-spacing:1px;color:#5c4e39;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:15px;min-height:30px;padding:5px 14px;font-size:12px;transition:background-color .22s,color .22s}.mode:hover{background:#ffffff5c}.mode.active{color:#fdf3df;background:#6d5b41;box-shadow:inset 0 1px #fff6e34d}.toolbar{bottom:max(28px, env(safe-area-inset-bottom));max-width:calc(100vw - max(24px, env(safe-area-inset-left)) - max(24px, env(safe-area-inset-right)));-webkit-backdrop-filter:blur(18px);white-space:nowrap;z-index:2;background:#f7ecd7c4;border:1px solid #fff7df5e;border-radius:26px;align-items:center;gap:16px;padding:9px 14px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 5px 28px #44301d10,inset 0 1px #fffaf0b0}.tool-group{align-items:center;gap:4px;display:flex}.tool{letter-spacing:.8px;color:#5c4e39;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:19px;align-items:center;gap:6px;min-height:36px;padding:6px 12px 6px 9px;font-size:12px;transition:background-color .22s,color .22s,opacity .2s;display:inline-flex}.tool svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.78;width:19px;height:19px}.tool:hover{background:#ffffff5c}.tool.active{color:#fdf3df;background:#6d5b41;box-shadow:inset 0 1px #fff6e34d}.tool.active svg{opacity:1}.toolbar label.size{color:#6b5a41;align-items:center;gap:9px;font-size:11px;display:flex}.toolbar input[type=range]{accent-color:#6b614b;cursor:pointer;touch-action:manipulation;width:82px}.toolbar button.ghost{letter-spacing:.8px;color:#5c4e39;cursor:pointer;touch-action:manipulation;background:#ffffff52;border:0;border-radius:19px;align-items:center;gap:6px;min-height:36px;padding:6px 13px;font-size:11.5px;transition:opacity .2s,background-color .2s,color .2s;display:inline-flex}.toolbar button.ghost svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.72;width:17px;height:17px}.toolbar button.ghost:hover{opacity:.78}.toolbar button.ghost:disabled{opacity:.4;cursor:default}.toolbar button.ghost.running{color:#fdf3df;background:#6d5b41}.toolbar button.ghost.running svg{opacity:1}.tide-panel{align-items:center;gap:9px;display:inline-flex}.tide-meter{background:#2f4a6633;border-radius:6px;width:96px;height:8px;overflow:hidden;box-shadow:inset 0 0 0 1px #2f4a661f}.tide-fill{background:linear-gradient(90deg,#63b3dd,#1d5c9e);width:0%;height:100%;transition:width .16s linear}.tide-phase{letter-spacing:.8px;color:#4b5f76;min-width:42px;font-size:11.5px}.toolbar button.ghost.tide{color:#2f5375;background:#cfe2f055}.toolbar button.ghost.tide:disabled{color:#5c4e39;background:#ffffff52}.divider{background:#52473022;flex:0 0 1px;width:1px;height:20px}.overlay{z-index:5;background:#e2d3b9;place-items:center;padding:28px;transition:opacity .65s;display:grid;position:fixed;inset:0}.overlay.ready{opacity:0;pointer-events:none}.boot-panel{width:100%;max-width:620px}.boot-panel h2{letter-spacing:4px;margin:0 0 16px;font-size:30px;font-weight:600}.boot-panel p{margin:0;font-size:13px;line-height:1.8}.boot-line{background:#9c8f773d;width:100%;height:1px;margin:26px 0;overflow:hidden}.boot-line:after{content:"";background:#756349;width:35%;height:1px;animation:1.6s ease-in-out infinite alternate loading;display:block}.failed .boot-line{display:none}.diagnostics{white-space:pre-wrap;overflow-wrap:anywhere;max-height:45vh;font:11px/1.7 ui-monospace,monospace;overflow:auto}.boot-panel button{cursor:pointer;background:0 0;border:1px solid #71614660;border-radius:30px;padding:9px 19px}[hidden]{display:none!important}@keyframes loading{to{transform:translate(190%)}}@media (width<=760px){.masthead{left:calc(18px + env(safe-area-inset-left));top:calc(16px + env(safe-area-inset-top))}.brand{letter-spacing:1px;gap:9px;font-size:20px}.brand .cn{letter-spacing:4px}.hint{margin-top:7px;font-size:11px}.toolbar{left:calc(10px + env(safe-area-inset-left));right:calc(10px + env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom));border-radius:22px;flex-wrap:wrap;justify-content:center;gap:10px;width:auto;padding:8px 12px;transform:none}.tool{padding:6px 10px 6px 8px}.tool span{display:none}.toolbar input[type=range]{width:min(26vw,96px);min-width:58px;min-height:30px}.toolbar button.ghost{min-height:36px;padding:6px 10px}.toolbar button.ghost span{display:none}.tide-meter{width:72px}.tide-phase{min-width:38px;font-size:10.5px}#demo{font-size:11.5px}}@media (width<=420px){.toolbar label.size{gap:6px;font-size:10px}.toolbar label.size:before{content:"尺寸"}.toolbar label.size{font-size:0}.toolbar label.size:before{font-size:10px}}@media (height<=500px) and (orientation:landscape){.masthead{top:calc(10px + env(safe-area-inset-top))}.hint{display:none}.toolbar{bottom:calc(6px + env(safe-area-inset-bottom));padding-block:6px}.toolbar input[type=range],.toolbar button{min-height:34px}}@media (prefers-reduced-motion:reduce){*,:after{transition:none!important;animation:none!important}}.tuning{right:max(28px, env(safe-area-inset-right));top:max(26px, env(safe-area-inset-top));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:2;color:#5c4e39;background:#f7ecd7c9;border:1px solid #fff7df70;border-radius:19px;width:232px;padding:16px 17px 12px;position:fixed;box-shadow:0 4px 24px #44301d10}.tuning-slider{grid-template-columns:1fr auto;align-items:center;gap:3px 10px;margin-bottom:10px;font-size:12px;display:grid}.tuning-slider output{font-variant-numeric:tabular-nums;color:#75674f;font-size:11px}.tuning-slider input{accent-color:#6d5b41;cursor:pointer;grid-column:1/-1;width:100%;min-height:24px;margin:0}.view-picker{background:#ffffff52;border-radius:15px;grid-template-columns:repeat(3,1fr);gap:3px;padding:3px;display:grid}.view-choice{min-height:32px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;flex:1;font-size:11px}.view-choice.active{color:#fdf3df;background:#6d5b41}.view-choice:disabled,.tuning input:disabled{opacity:.4;cursor:default}.tuning-note{color:#82735d;margin:8px 0 0;font-size:9px;line-height:1.5}@media (width<=760px){.tuning{width:198px;padding:11px 13px 9px;top:144px;right:14px}.tuning-slider{margin-bottom:6px;font-size:11px}.tuning-slider input{min-height:28px}}@media (height<=500px) and (orientation:landscape){.tuning{width:214px;padding:9px 13px;top:14px;right:14px}.tuning-note{display:none}.tuning-slider{margin-bottom:3px}}.camera-actions{grid-template-columns:1fr 32px 32px;gap:5px;margin-top:7px;display:grid}.surface[style*=grab]{cursor:grab}.tuning [hidden]{display:none!important}#wave-control{margin-top:12px}.mold-preview{pointer-events:none;z-index:1;width:100%;height:100%;position:fixed;inset:0;overflow:visible}#mold-footprint{stroke:#fff7cf;stroke-width:2px;fill:#f7de8c24;stroke-dasharray:5 4;filter:drop-shadow(0 1px 2px #4a371d)}.mold-tray{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:2;color:#5c4e39;background:#f7ecd7e8;border:1px solid #fff7df90;border-radius:20px;width:354px;max-width:calc(100vw - 28px);padding:12px;position:fixed;bottom:102px;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #44301d16}.mold-heading{justify-content:space-between;align-items:center;padding:0 4px 9px;font-size:11px;display:flex}.mold-heading span:last-child{color:#82735d;font-size:9px}.mold-options{grid-template-columns:repeat(3,1fr) 40px;gap:5px;display:grid}.mold-choice,.mold-turn{color:inherit;cursor:pointer;background:#fff6;border:0;border-radius:12px;padding:7px 4px;font-size:10px}.mold-choice svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linejoin:round;width:38px;height:30px;margin:0 auto 5px;display:block}.mold-choice.active{color:#fff7e5;background:#6d5b41}.mold-turn{font-size:24px}.mold-turn output{font-size:10px;display:block}#surge-control{margin-top:8px}@media (width<=760px){.mold-tray{width:354px;bottom:124px;left:14px;transform:none}.tuning{max-height:calc(100vh - 280px);overflow-y:auto}}@media (width<=420px){.mold-tray{width:calc(100vw - 28px);bottom:128px}}.tuning-toggle{color:#82735d;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:0 0 10px;font-size:10px;display:flex}.tuning-toggle span{font-size:14px}.tuning.collapsed{width:112px;padding:10px 14px}.tuning.collapsed .tuning-toggle{padding:0}.tool-menu{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#5c4e39;z-index:3;background:#f7ecd7ed;border:1px solid #fff7df90;border-radius:20px;width:354px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 170px);padding:14px 16px 16px;position:fixed;bottom:92px;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 6px 28px #44301d18}.menu-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.menu-heading strong{letter-spacing:1px;font-size:12px;font-weight:500}#menu-close{color:inherit;cursor:pointer;background:#ffffff70;border:0;border-radius:50%;width:28px;height:28px;font-size:20px;line-height:1}.menu-note{color:#82735d;margin:10px 0 0;font-size:11px;line-height:1.8}.tool-menu .camera-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tool-menu .camera-actions button,.tool-menu .tide-panel button{color:inherit;cursor:pointer;background:#ffffff80;border:0;border-radius:12px;padding:9px 12px;font-size:12px}.tool-menu .tide-panel{justify-content:space-between;gap:6px;width:100%;margin-top:10px}.tool-menu .tide-panel button:disabled{opacity:.4;cursor:default}#orbit svg{width:21px;height:21px}#tide-settings[aria-expanded=true]{color:#376879;background:#d1e5e9}@media (width<=760px){.toolbar{flex-wrap:nowrap;gap:8px;width:max-content;max-width:calc(100vw - 20px);padding:8px 10px}.tool-group{gap:2px}.tool{padding:7px 9px}.tool-menu{bottom:78px}}@media (width<=420px){.toolbar{gap:5px;padding:7px 8px}.tool{padding:6px 7px}.toolbar button.ghost{padding:6px 8px}.tool-menu{bottom:76px}}@media (width<=760px){.toolbar{left:50%;right:auto;transform:translate(-50%)}}.source-credit{color:#4c5f56;opacity:.65;z-index:1;font-size:10px;text-decoration:none;position:fixed;bottom:14px;right:16px}.source-credit:hover{opacity:1;text-decoration:underline}@media (width<=760px){.source-credit{bottom:76px;right:18px}}#minimax-floating-ball{top:22px!important;bottom:auto!important}@media (width<=760px){#minimax-floating-ball{top:128px!important}}.tool-menu #tide-tsunami{color:#f9f3df;background:#356f7b}.tool-menu .tide-panel{flex-wrap:wrap}.tool-menu .tide-meter{width:52px}.tool-menu .tide-panel button{padding:9px 10px}.build-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.build-options button{color:#685a43;cursor:pointer;background:#fff8;border:0;border-radius:12px;padding:11px}.build-options button.active{color:#fff7e5;background:#6d5b41}.tool-feedback{color:#62543d;pointer-events:none;z-index:2;background:#f7ecd7dc;border:1px solid #fff7df70;border-radius:16px;width:max-content;max-width:calc(100vw - 32px);margin:0;padding:8px 15px;font-size:11px;line-height:1.6;position:fixed;bottom:102px;left:50%;transform:translate(-50%);box-shadow:0 3px 18px #44301d12}#mold-footprint{stroke-linejoin:round}@media (width<=760px){.tool-feedback{font-size:10px;bottom:86px}}.masthead>.tide-panel{gap:8px;margin-top:12px}.masthead>.tide-panel .tide-meter{width:56px;height:3px}.masthead>.tide-panel .tide-phase{opacity:.75;font-size:10px}.tool.tsunami-action{color:#386778;background:#d6e6e7a8}.tool.tsunami-action:disabled{opacity:.55;cursor:default}@media (width<=600px){#demo{display:none}#tide-settings{padding-inline:7px;font-size:11px}.masthead>.tide-panel{margin-top:8px}}.sound-toggle{z-index:4;color:#62543d;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f2ecddbb;border:1px solid #fff9;border-radius:22px;align-items:center;gap:8px;padding:9px 13px;font:11px system-ui;display:flex;position:fixed;top:26px;right:270px}.sound-toggle svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.sound-toggle .sound-slash,.sound-toggle[aria-pressed=false] .sound-waves{display:none}.sound-toggle[aria-pressed=false] .sound-slash{display:block}.sound-toggle:focus-visible{outline-offset:3px;outline:2px solid #416c74}@media (width<=760px){.sound-toggle{padding:8px;top:24px;right:18px}.sound-toggle span{display:none}}
