@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
:root{font-family:'DM Sans',system-ui,sans-serif;color:#244b3c;background:#f1f3ed;font-size:13px;line-height:1.45;font-synthesis:none;color-scheme:light;--foreground:#244b3c;--background:#fbfcf8;--border:#dfe6dc;--muted:#738276;--real:#2b8068;--ghost:#b28439;--penner:#78949c;--uncertain:#ad7292}
*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input,select{font:inherit;color:inherit}button,input,a,summary,select{-webkit-tap-highlight-color:transparent}button,a,summary,select{touch-action:manipulation}button,summary,select{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #9bbd97;outline-offset:3px}[hidden]{display:none!important}.site-header{max-width:1200px;margin:auto;height:66px;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.brand{font-size:25px;font-weight:700;letter-spacing:-1px;text-decoration:none;display:flex;align-items:center}.brand>span:last-child{font-weight:400}.brand-mark{font-size:27px;margin-right:8px;font-weight:400}.lab-layout{max-width:1200px;margin:auto;padding:0 24px 24px;display:grid;grid-template-columns:minmax(0,1fr) 332px;gap:16px;align-items:start}.simulation-card,.settings-card{min-width:0;background:var(--background);border:1px solid var(--border);border-radius:18px;overflow:hidden}.simulation-card{padding:14px 16px 0}.plot-toolbar,.section-heading,.playback-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}h1,h2{font-size:14px;line-height:1.4;font-weight:600;margin:0}select{min-width:0;max-width:100%;height:36px;border:1px solid var(--border);border-radius:8px;background:#f4f6f0;padding:5px 26px 5px 10px;font-size:12px}.plot-toolbar{margin-bottom:4px}.graphics{position:relative}.chart{width:100%;display:block;touch-action:pan-y}.chart text{font-family:inherit;font-size:12px;fill:var(--muted);font-weight:400}.chart .plot-heading{font-size:12px;fill:var(--foreground);font-weight:500}.chart .marker-label{font-size:12px;fill:var(--foreground)}.map-chart{cursor:crosshair}.loupe-chart{border-top:1px solid var(--border);margin-top:2px;padding-top:3px}.legend{display:flex;align-items:center;flex-wrap:wrap;gap:7px 15px;padding:8px 0 11px;font-size:12px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px;white-space:nowrap}.key{display:inline-block;width:15px;flex-shrink:0}.key-area{height:8px;background:#2b806848;border:1px solid #2b806866;border-radius:2px}.key-real{height:9px;width:9px;background:var(--real);border-radius:50%}.key-ghost{height:9px;width:9px;border:1.5px dashed var(--ghost);border-radius:50%}.key-penner{height:0;border-top:1.5px dashed var(--penner)}.key-scatter{width:5px;height:5px;border-radius:50%;background:#9b977b}.key-open{height:8px;background:var(--uncertain)}.playback{border-top:1px solid var(--border);padding:12px 0}.playback-toolbar{justify-content:flex-start;gap:8px}.button{min-height:36px;border:1px solid var(--border);border-radius:8px;padding:6px 11px;background:#f4f6f0;font-size:12px;font-weight:500;white-space:nowrap}.button-primary{min-width:94px;background:#24573f;border-color:#24573f;color:#fff}.button-quiet{background:transparent}.preset-buttons{margin-left:auto;display:flex;gap:6px}.timeline-label{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);margin-top:10px}.timeline-label output{font-variant-numeric:tabular-nums;white-space:nowrap}.outcome-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 15px;font-size:12px;padding-top:4px;min-height:23px}.outcome-row strong{font-size:13px;font-weight:500}.outcome-row>span{color:var(--muted)}.settings-card{padding:0 17px}.settings-card>section{padding:17px 0 13px}.settings-card .target-section{border-top:1px solid var(--border)}.section-heading{margin-bottom:12px}.model-badge{font-size:12px;color:#607e69;white-space:nowrap}.control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.span-2{grid-column:1/-1}.range-group{min-width:0}.range-group label{font-size:12px;color:var(--muted);display:flex;align-items:baseline;justify-content:space-between;gap:6px;flex-wrap:wrap}.range-group output{font-size:13px;color:var(--foreground);font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.muted,.hint{font-size:12px;color:var(--muted)}.hint{line-height:1.5;margin:9px 0 0}.text-button{border:0;background:transparent;color:#4f7856;font-size:12px;padding:4px 0 4px 6px;min-height:28px;white-space:nowrap}.text-button:disabled{opacity:1;color:var(--muted)}input[type=range]{display:block;width:100%;appearance:none;-webkit-appearance:none;height:30px;background:transparent;margin:2px 0 0;cursor:pointer;touch-action:pan-y}input[type=range]::-webkit-slider-runnable-track{height:3px;background:linear-gradient(to right,#718f70 0%,#718f70 var(--range-pct,0%),#e0e7dc var(--range-pct,0%),#e0e7dc 100%);border-radius:3px}input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:17px;height:17px;margin-top:-7px;border-radius:50%;background:#3f6a4c;border:3px solid var(--background);box-shadow:0 0 0 1px #acbea6}input[type=range]::-moz-range-track{height:3px;background:#e0e7dc}input[type=range]::-moz-range-progress{height:3px;background:#718f70}input[type=range]::-moz-range-thumb{width:11px;height:11px;background:#3f6a4c;border:3px solid var(--background);border-radius:50%}details{border-top:1px solid var(--border)}summary{display:flex;align-items:center;justify-content:space-between;list-style:none;font-size:13px;font-weight:500;min-height:47px;gap:8px}summary::-webkit-details-marker{display:none}summary::after{content:'＋';font-size:15px;font-weight:400;color:var(--muted)}details[open]>summary::after{content:'−'}.detail-body{padding:0 0 15px}.check-label{display:flex;align-items:center;gap:7px;min-height:34px;font-size:12px;color:var(--muted);cursor:pointer}.check-label input{accent-color:#3c7252;margin:0;width:14px;height:14px}.recommendation{display:grid;grid-template-columns:1fr auto;gap:14px;background:#eef3e9;border-radius:9px;padding:11px;margin-top:7px}.recommendation>div{display:flex;flex-direction:column;gap:5px}.recommendation span{font-size:12px;color:#6d816c}.recommendation small{font-size:inherit;opacity:.8}.recommendation strong{font-size:13px;font-weight:500}.recommendation[aria-busy=true]{opacity:.55}#contact-material{margin-top:10px}.model-note{margin-top:0}.scene-state{position:absolute;inset:0;display:grid;place-content:center;background:#fbfcf8eb;padding:24px;text-align:center;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.toast{position:fixed;z-index:10;bottom:20px;left:50%;transform:translate(-50%,15px);background:#244b3c;color:#fff;padding:11px 17px;border-radius:10px;opacity:0;pointer-events:none;transition:.2s;font-size:13px}.toast.visible{opacity:1;transform:translate(-50%,0)}
.simulation-card{--foreground:#e4efd9;--background:#164536;--border:#a6c59630;--muted:#bdd0b0;--real:#a0dba9;--ghost:#f1d591;--penner:#94c6d2;--uncertain:#df9ac3;--hole:#0b2d23;--scatter:#e6d9b6;color:var(--foreground);background:radial-gradient(ellipse at 40% 25%,#24563e,#164536 75%);border-color:#25553e}.simulation-card select,.simulation-card .button{color:var(--foreground);background:#284e3b;border-color:#a6c59640}.simulation-card .button-primary{color:#234330;background:#d8e9ba;border-color:#d8e9ba}.simulation-card .button-quiet{background:transparent}.simulation-card .key-area{background:#a0dba958;border-color:#a0dba980}.simulation-card .key-real{background:#f8fae9}.simulation-card .key-scatter{background:var(--scatter)}.simulation-card #rp-map-real,.simulation-card #rp-top-real,.simulation-card #rp-side-real{fill:#f8fae9;stroke:#dae8cd}.simulation-card .scene-state{background:#164536ed}.simulation-card input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right,#9cbd8a 0%,#9cbd8a var(--range-pct,0%),#73936b55 var(--range-pct,0%),#73936b55 100%)}.simulation-card input[type=range]::-webkit-slider-thumb{background:#d8e9ba;box-shadow:0 0 0 1px #a5bd8f}.simulation-card input[type=range]::-moz-range-track{background:#73936b55}.simulation-card input[type=range]::-moz-range-progress{background:#9cbd8a}.simulation-card input[type=range]::-moz-range-thumb{background:#d8e9ba}
@media(max-width:900px){.lab-layout{max-width:780px;grid-template-columns:minmax(0,1fr);gap:12px;padding:0 16px 20px}.site-header{max-width:780px;padding:0 18px;height:58px}.settings-card{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.settings-card>section{padding:15px 0}.settings-card .target-section{border-top:0}.settings-card>details{grid-column:1/-1}.detail-body>.control-grid{max-width:100%}.recommendation{max-width:none}}
@media(max-width:480px){.site-header{padding:0 14px;height:52px}.brand{font-size:23px}.brand-mark{font-size:25px}.lab-layout{padding:0 10px 16px;gap:10px}.simulation-card,.settings-card{border-radius:14px}.simulation-card{padding:10px 10px 0}.plot-toolbar{gap:6px}.plot-toolbar select{max-width:190px}.chart text{font-size:12px}.legend{gap:5px 12px;padding:6px 0 9px}.playback{padding:10px 0}.playback-toolbar{gap:6px}.button{padding:6px 9px}.button-primary{min-width:82px}.playback-toolbar select{width:104px;padding-left:7px;padding-right:12px}.preset-buttons{gap:2px}.preset-buttons .button{border:0;padding:6px}.timeline-label{margin-top:8px}.settings-card{padding:0 13px;grid-template-columns:1fr;gap:0}.settings-card>section{padding:13px 0 10px}.settings-card .target-section{border-top:1px solid var(--border)}.section-heading{margin-bottom:8px}.control-grid{gap:7px 20px}.hint{margin-top:5px}.outcome-row{gap:2px 9px}.outcome-row>span{font-size:12px}.recommendation{padding:9px}.model-badge{font-size:12px}}
@media(max-width:359px){.plot-toolbar select{max-width:170px}.preset-buttons{gap:0}.preset-buttons .button{padding:6px 4px}.playback-toolbar{gap:4px}.playback-toolbar select{width:97px}.button-primary{min-width:75px}.legend{gap:5px 9px}}
@media(pointer:coarse){input[type=range]{height:34px}.button,select{min-height:40px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}

@media(max-width:600px){
  .site-header{height:48px;padding:0 max(12px,env(safe-area-inset-left))}.brand{font-size:21px}.brand-mark{font-size:23px;margin-right:6px}
  .lab-layout{padding:0 0 max(16px,env(safe-area-inset-bottom));gap:10px}
  .simulation-card{height:calc(100svh - 48px);display:grid;grid-template-rows:44px minmax(0,1fr) 24px 132px;overflow:hidden;padding:6px max(8px,env(safe-area-inset-right)) 0;border-radius:0;border-inline:0}
  .plot-toolbar{margin:0;min-height:44px}.plot-toolbar h1{font-size:14px}.plot-toolbar select{max-width:205px}
  .graphics{min-height:0;margin-inline:calc(-1 * max(8px,env(safe-area-inset-right)))}
  .loupe-chart{border:0;margin:0;padding:0}.chart text{paint-order:stroke fill;stroke:var(--background);stroke-width:3px;stroke-linejoin:round}
  .legend{padding:3px 2px 4px;gap:5px 12px;flex-wrap:nowrap;font-size:11px;overflow:hidden}.legend #scatter-key{display:none}
  .button,select,.text-button{min-height:44px;font-size:14px}.button{padding:8px 12px;border-radius:10px}.site-header .button{min-width:76px}
  .playback{padding:8px 2px 4px;min-width:0}.playback-toolbar{display:grid;grid-template-columns:1.05fr .85fr 1fr .9fr;gap:6px}
  .preset-buttons{display:contents}.playback-toolbar .button,.preset-buttons .button{min-width:0;min-height:48px;font-size:14px;padding:8px 4px;border:1px solid var(--border)}
  .playback-toolbar select{width:100%;height:48px;padding-left:8px;padding-right:12px;min-width:0}
  .timeline-label{display:none}.outcome-row{font-size:13px;min-height:24px}.outcome-row strong{font-size:14px}.outcome-row #rp-end{display:none}
  .settings-card{margin:0 8px;padding:0 14px;grid-template-columns:1fr;gap:0;border-radius:14px}
  .settings-card>section{padding:12px 0 6px}.settings-card .target-section{border-top:1px solid var(--border)}.section-heading{margin-bottom:5px}
  .settings-card h2{font-size:14px}.model-badge,.target-section>.hint{display:none}
  .control-grid{gap:5px 20px}.range-group label{font-size:13px}.range-group output{font-size:14px}.range-group .muted{display:none}
  input[type=range]{height:44px;margin:0}input[type=range]::-webkit-slider-thumb{width:23px;height:23px;margin-top:-10px}input[type=range]::-moz-range-thumb{width:17px;height:17px}
  summary{min-height:50px;font-size:14px}.check-label{min-height:44px;font-size:13px}.check-label input{width:18px;height:18px}
  .detail-body{padding-bottom:12px}.recommendation{padding:10px}.recommendation strong{font-size:14px}
}
