@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{color-scheme:light;--paper:#e8eee9;--surface:#f5f6f0;--surface-2:#edf1eb;--ink:#172932;--muted:#677871;--line:#c9d3cc;--deep:#1d3940;--deep-2:#294a4e;--mint:#9bd9c2;--mint-ink:#194840;--amber:#d99b52;--coral:#d7775e;--mono:'DM Mono',ui-monospace,monospace;--sans:'DM Sans',Arial,sans-serif;--serif:'Playfair Display',Georgia,serif;--shadow:0 18px 54px #183b3210}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:#9aaba2 var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5;overflow-x:hidden}button,input,select{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--coral);outline-offset:3px}.topbar{height:76px;padding:0 clamp(18px,5vw,76px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#e8eee9ee;position:relative;z-index:2}.wordmark{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:20px;font-weight:700;letter-spacing:-.06em}.wordmark small{align-self:flex-end;margin:0 0 4px 5px;color:var(--muted);font:9px var(--mono);letter-spacing:.12em}.brand-glyph{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:var(--deep);color:var(--mint);font:26px/1 var(--serif)}.top-status{display:flex;align-items:center;gap:12px;color:var(--muted);font:9px var(--mono);letter-spacing:.09em}.top-status b{color:var(--ink);font-weight:500}.status-pulse,.journal-dot{width:7px;height:7px;background:#71ad8a;border-radius:50%;box-shadow:0 0 0 4px #71ad8a22}.top-divider{height:13px;width:1px;background:var(--line)}.icon-button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--deep);font:italic 16px var(--serif);cursor:pointer}.page-grid{width:min(1330px,calc(100% - clamp(32px,10vw,152px)));margin-inline:auto}.intro{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:50px;align-items:end;padding-block:clamp(46px,7vw,94px) 62px}.eyebrow{margin:0;color:var(--muted);font:9px var(--mono);letter-spacing:.14em;text-transform:uppercase}.intro .eyebrow{display:flex;align-items:center;gap:11px}.intro .eyebrow i{width:26px;height:1px;background:#91a69b}.intro h1{margin:18px 0 20px;font-size:clamp(48px,7vw,91px);font-weight:500;letter-spacing:-.075em;line-height:.94}.intro h1 em,.method-section h2 em{font-family:var(--serif);font-weight:500;color:#397762}.intro-lede{max-width:510px;margin:0;color:#53665e;font-size:15px;line-height:1.7}.tide-note{position:relative;min-height:166px;padding:19px 20px 15px;border-left:1px solid #9db5aa;border-top:1px solid var(--line);background:#f4f6f0aa;overflow:hidden}.note-index{color:var(--muted);font:9px var(--mono);letter-spacing:.12em}.tide-note p{position:relative;z-index:1;margin:13px 0 0;font:17px/1.46 var(--serif);color:#38544a}.tide-note strong{font-weight:600}.tide-spark{position:absolute;right:10px;bottom:10px;width:130px;opacity:.45}.tide-spark svg{width:100%;overflow:visible}.tide-spark path{fill:none;stroke:#5c9b80;stroke-width:2}.workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.8fr);border:1px solid #bdc9c1;background:var(--surface);box-shadow:var(--shadow)}.map-column{min-width:0;padding:23px 24px 16px;border-right:1px solid var(--line)}.map-heading,.panel-heading,.run-top,.readout-heading,.chart-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.map-heading{margin-bottom:16px}.map-heading h2,.panel-heading h2{margin:3px 0 0;font-size:21px;font-weight:500;letter-spacing:-.045em}.map-heading h2 span{color:var(--muted);font:10px var(--mono);letter-spacing:0}.select-wrap{position:relative;display:flex;align-items:center;min-width:142px}.select-wrap select{appearance:none;width:100%;height:35px;padding:0 29px 0 10px;border:1px solid var(--line);border-radius:0;background:#f7f8f4;color:var(--ink);font-size:11px}.select-wrap>span{position:absolute;right:10px;color:var(--muted);pointer-events:none}.map-frame{position:relative;min-height:360px;aspect-ratio:1.54;background:#d5e0d9;border:1px solid #becbc2;overflow:hidden}.map-frame canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair;touch-action:manipulation}.map-coordinate,.map-scale,.north-marker,.map-loading{position:absolute;z-index:1;color:#173a38;background:#edf4efdb;font:8px var(--mono);letter-spacing:.04em;pointer-events:none}.map-coordinate{top:10px;left:10px;display:grid;gap:3px;padding:7px}.map-scale{left:12px;bottom:12px;display:flex;align-items:center;gap:6px;padding:5px}.map-scale i{width:31px;height:6px;border:1px solid #21483f;border-top:0}.north-marker{right:11px;top:11px;display:grid;place-items:center;width:25px;height:38px;padding:3px}.north-marker b{font-size:15px;line-height:1}.map-loading{right:10px;bottom:11px;padding:6px 9px;color:#53665e}.map-footer{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:12px}.layer-switch{display:flex;gap:4px;flex-wrap:wrap}.layer-button{min-height:30px;padding:0 12px;border:1px solid transparent;background:transparent;color:#62746d;font-size:10px;cursor:pointer}.layer-button:hover{border-color:var(--line)}.layer-button.is-active{background:var(--deep);color:#e7f2ec}.map-legend{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:9px;white-space:nowrap}.legend-water,.legend-safe{width:9px;height:9px;background:#5c9a9f}.legend-safe{margin-left:6px;background:#86ae8d}.map-caption{display:flex;justify-content:space-between;gap:10px;margin-top:10px;padding-top:9px;border-top:1px solid var(--line);color:#84938b;font:8px var(--mono);letter-spacing:.05em}.map-caption b{color:#4f7e6d;font-weight:500}.control-column{min-width:0;background:#f1f4ef}.conditions-panel,.defense-panel,.run-panel{padding:21px 21px 20px;border-bottom:1px solid var(--line)}.panel-heading{align-items:flex-start;margin-bottom:20px}.panel-heading h2{font-size:19px}.text-button{padding:4px 0;border:0;background:none;color:#557b6b;font-size:10px;cursor:pointer;white-space:nowrap}.text-button span{font-size:14px}.range-control{display:block;margin:19px 0 0}.range-title{display:flex;justify-content:space-between;gap:12px;align-items:center}.range-title b{font-size:11px;font-weight:600}.range-title output{color:#3d7c67;font:11px var(--mono)}input[type=range]{appearance:none;width:100%;height:3px;margin:14px 0 3px;background:linear-gradient(90deg,#64a889 0%,#64a889 var(--range-fill,30%),#ccd7d0 var(--range-fill,30%),#ccd7d0 100%);display:block;cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border:3px solid var(--surface);border-radius:50%;background:#397b65;box-shadow:0 0 0 1px #397b65}input[type=range]::-moz-range-thumb{width:9px;height:9px;border:3px solid var(--surface);border-radius:50%;background:#397b65;box-shadow:0 0 0 1px #397b65}.range-ends{display:flex;justify-content:space-between;color:#8b9992;font-size:9px}.tide-range{margin-top:24px}.scenario-readout{display:flex;align-items:center;gap:9px;margin-top:20px;padding:10px;background:#e7eee8;color:#62756c;font-size:10px}.readout-marker{width:6px;height:6px;flex:none;border-radius:50%;background:var(--amber)}.defense-panel .panel-heading{margin-bottom:13px}.count-badge{padding:4px 7px;background:#e1eae3;color:#6d8377;font:9px var(--mono)}.count-badge b{color:#2c765d;font-weight:500}.defense-options{display:grid;gap:6px}.defense-option{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:9px;align-items:center;text-align:left;min-height:48px;padding:6px 8px;border:1px solid #d4ddd6;background:#f8f9f5;cursor:pointer;transition:border-color .16s,background .16s}.defense-option:hover{border-color:#9eb6a8}.defense-option.is-selected{border-color:#5d9c7e;background:#e5f0e8}.defense-icon{display:grid;place-items:center;width:30px;height:30px;background:#e6ece6;color:#477863;font:16px var(--mono)}.garden-icon{color:#54884c}.barrier-icon{color:#a8834e}.defense-option b,.defense-option small{display:block}.defense-option b{font-size:11px;font-weight:600}.defense-option small{color:var(--muted);font-size:9px}.defense-option kbd{padding:3px 5px;color:#819188;background:#edf1ed;font:8px var(--mono)}.placement-tip{min-height:14px;margin:10px 0 0;color:#789086;font-size:9px}.run-panel{border-bottom:0}.run-top{margin-bottom:13px}.tick-readout{color:#62756c;font:9px var(--mono)}.tick-readout b{color:var(--deep);font-weight:500}.tick-readout span{color:#a0aaa4}.run-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:47px;padding:0 14px;border:0;background:var(--deep);color:#eef6ef;text-align:left;font-size:12px;font-weight:600;cursor:pointer;transition:background .18s,transform .18s}.run-button:hover{background:#2d5953}.run-button:active{transform:translateY(1px)}.run-glyph{color:var(--mint);font-size:10px}.run-arrow{margin-left:auto;color:var(--mint)}.run-progress{height:2px;background:#d8e2db}.run-progress i{display:block;width:0;height:100%;background:#56a786;transition:width .2s}.run-actions{display:flex;justify-content:space-between;margin-top:8px}.subtle-button{padding:5px 0;border:0;background:none;color:#74847d;font-size:9px;cursor:pointer}.subtle-button:hover{color:var(--deep)}.subtle-button span{color:#397b65}.readout-section{width:min(1330px,calc(100% - clamp(32px,10vw,152px)));margin:57px auto 0}.readout-heading{align-items:flex-end;margin-bottom:17px}.readout-heading h2{margin:3px 0 0;font-size:28px;font-weight:500;letter-spacing:-.05em}.readout-heading>p{margin:0;color:var(--muted);text-align:right;font-size:10px;line-height:1.5}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:#f5f6f0}.metric-card{min-width:0;min-height:120px;padding:17px 18px;border-right:1px solid var(--line)}.metric-card:last-child{border-right:0}.metric-card>span{display:block;color:#7d8b83;font:8px var(--mono);letter-spacing:.08em}.metric-card>b{display:block;margin:12px 0 0;color:#244a43;font:36px/.95 var(--serif);letter-spacing:-.04em}.metric-card>small{display:flex;align-items:center;gap:4px;margin-top:9px;color:#86938d;font-size:9px}.metric-card>small i{color:#4c826b;font-style:normal}.metric-danger>b{color:#b56752}.metric-safe>b{color:#4f8a68}.lower-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:14px}.chart-card,.event-card{min-width:0;min-height:205px;padding:17px 18px;border:1px solid var(--line);background:#f4f6f1}.chart-heading h3{margin:3px 0 0;font-size:15px;font-weight:500;letter-spacing:-.025em}.chart-unit{color:#8d9992;font:8px var(--mono)}#depth-chart{display:block;width:100%;height:108px;margin-top:7px}.chart-axis{display:flex;justify-content:space-between;color:#8c9891;font:8px var(--mono)}.journal-dot{width:6px;height:6px;box-shadow:none}.event-card ol{display:grid;gap:9px;max-height:118px;overflow:auto;margin:15px 0 0;padding:0 4px 0 0;list-style:none}.event-card li{display:grid;grid-template-columns:43px minmax(0,1fr);gap:9px;color:#6e7f76;font-size:10px}.event-card time{color:#9aa59e;font:8px var(--mono)}.method-section{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.8fr);align-items:center;gap:60px;width:min(1000px,calc(100% - 48px));margin:93px auto;padding:31px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.method-section h2{margin:10px 0 0;font-size:clamp(30px,4vw,46px);font-weight:500;line-height:1.06;letter-spacing:-.06em}.method-section>p{margin:0;color:#61746a;font-size:12px;line-height:1.8}.method-index{position:absolute;right:0;top:-18px;padding:3px 6px;background:var(--paper);color:#8e9c94;font:8px var(--mono)}.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:75px;padding:12px clamp(18px,5vw,76px);border-top:1px solid var(--line);color:#829087;font:8px var(--mono);letter-spacing:.05em}.footer .wordmark{font-size:17px}.footer .brand-glyph{width:25px;height:25px;font-size:21px}.footer>a:last-child{color:#527967;text-decoration:none;white-space:nowrap}.guide-dialog{width:min(450px,calc(100% - 28px));padding:31px;border:1px solid #aebdb3;background:#f6f8f3;color:var(--ink);box-shadow:0 30px 90px #10282244}.guide-dialog::backdrop{background:#102a28a8;backdrop-filter:blur(4px)}.dialog-close{position:absolute;top:12px;right:14px;border:0;background:none;color:#71827a;font-size:23px;cursor:pointer}.guide-dialog h2{max-width:340px;margin:9px 0 18px;font:500 30px/1.08 var(--serif);letter-spacing:-.04em}.guide-dialog ol{display:grid;gap:9px;padding-left:20px;color:#53675d;font-size:12px}.guide-footnote{margin:20px 0;color:#84948c;font-size:10px}.guide-dialog .run-button{justify-content:center}.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}@media(max-width:1060px){.workspace{grid-template-columns:minmax(0,1.45fr) minmax(300px,.9fr)}.map-column{padding:18px}.conditions-panel,.defense-panel,.run-panel{padding:18px}.map-frame{min-height:300px}.map-caption{font-size:7px}.map-heading h2 span{display:block;margin-top:3px}}@media(max-width:800px){.page-grid,.readout-section{width:calc(100% - 32px)}.intro{grid-template-columns:minmax(0,1fr) 230px;gap:24px;padding-block:48px}.intro h1{font-size:clamp(46px,8vw,70px)}.workspace{grid-template-columns:1fr}.map-column{border-right:0;border-bottom:1px solid var(--line)}.map-frame{min-height:0;aspect-ratio:1.42}.control-column{display:grid;grid-template-columns:1fr 1fr}.conditions-panel{grid-column:1/-1;border-bottom:1px solid var(--line)}.defense-panel{border-right:1px solid var(--line)}.run-panel{align-self:stretch}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card:nth-child(2){border-right:0}.metric-card:nth-child(-n+2){border-bottom:1px solid var(--line)}.method-section{grid-template-columns:1fr .8fr;gap:25px;margin-block:66px}.top-status{font-size:8px}.top-status>span:first-of-type:not(.status-pulse){display:none}}@media(max-width:560px){.topbar{height:62px;padding-inline:16px}.wordmark{font-size:18px}.wordmark small{display:none}.top-status{gap:8px;font-size:7px;letter-spacing:.04em}.top-divider{display:none}.icon-button{width:31px;height:31px}.page-grid,.readout-section{width:calc(100% - 24px)}.intro{display:block;padding:42px 0 35px}.intro .eyebrow{font-size:8px}.intro h1{margin-top:16px;font-size:clamp(46px,12.3vw,66px)}.intro-lede{max-width:400px;font-size:13px}.tide-note{display:none}.map-column{padding:14px 12px 13px}.map-heading{align-items:flex-end;gap:8px}.map-heading h2{font-size:17px}.map-heading h2 span{font-size:8px}.select-wrap{min-width:116px}.select-wrap select{height:32px;padding-left:7px;font-size:9px}.map-frame{aspect-ratio:1.08}.map-coordinate{top:6px;left:6px;font-size:7px}.map-scale{left:6px;bottom:7px;font-size:7px}.north-marker{right:6px;top:6px}.map-loading{right:6px;bottom:6px;font-size:7px}.map-footer{align-items:flex-start;flex-direction:column;gap:7px}.layer-button{padding-inline:10px;font-size:9px}.map-legend{font-size:8px}.map-caption{font-size:6px}.map-caption span:last-child{max-width:53%;text-align:right;line-height:1.4}.control-column{display:block}.conditions-panel,.defense-panel,.run-panel{padding:16px 14px}.conditions-panel .panel-heading{margin-bottom:12px}.range-control{margin-top:16px}.tide-range{margin-top:20px}.scenario-readout{margin-top:14px}.defense-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.defense-option{grid-template-columns:1fr;grid-template-rows:25px auto auto;justify-items:start;gap:3px;min-height:83px;padding:7px}.defense-icon{width:24px;height:23px;font-size:13px}.defense-option b{font-size:9px}.defense-option small{font-size:8px}.defense-option kbd{display:none}.placement-tip{margin-top:8px}.run-panel{border-top:1px solid var(--line)}.readout-section{margin-top:39px}.readout-heading h2{font-size:23px}.readout-heading>p{font-size:8px}.metric-card{min-height:99px;padding:13px 12px}.metric-card>span{font-size:7px;letter-spacing:.03em}.metric-card>b{font-size:31px}.metric-card>small{font-size:8px}.lower-grid{grid-template-columns:1fr;gap:9px}.chart-card,.event-card{min-height:180px;padding:14px}.event-card{min-height:163px}.method-section{display:block;width:calc(100% - 34px);margin:61px auto;padding-block:24px}.method-section h2{font-size:35px}.method-section>p{margin-top:18px;font-size:11px}.footer{flex-wrap:wrap;gap:8px;padding:15px 16px}.footer>span{max-width:180px;text-align:right;font-size:7px}.footer>span:nth-of-type(1){display:none}.guide-dialog{padding:25px 21px}.guide-dialog h2{font-size:26px}}@media(max-width:360px){.top-status{max-width:116px}.top-status>span:last-child{display:none}.intro h1{font-size:45px}.map-heading h2{font-size:15px}.select-wrap{min-width:104px}.select-wrap select{font-size:8px}.layer-button{padding-inline:7px}.map-caption{font-size:5.5px}.defense-option b{font-size:8px}}
.comparison-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 24px;align-items:center;margin-top:20px;padding:20px 22px;border:1px solid var(--line);background:linear-gradient(112deg,#e8eee9 0%,#f3f3ed 100%)}.comparison-copy h3{margin:3px 0 5px;font:500 clamp(19px,2vw,25px) var(--serif);letter-spacing:-.025em}.comparison-copy>p:last-child{max-width:650px;margin:0;color:var(--muted);font-size:12px}.comparison-actions{display:flex;gap:8px;flex-wrap:wrap}.comparison-actions .subtle-button{min-height:38px;padding-inline:12px;border:1px solid var(--line);background:#f4f5ef}.comparison-actions button:disabled{opacity:.45;cursor:not-allowed}.comparison-status{grid-column:1/-1;margin:0;padding-top:12px;border-top:1px solid var(--line);color:var(--deep);font-size:12px;line-height:1.65}@media(max-width:680px){.comparison-panel{grid-template-columns:1fr;padding:16px}.comparison-actions{display:grid;grid-template-columns:1fr}.comparison-status{grid-column:1}}
