.conditions{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0;border-top:1px solid var(--hair-soft)}.cond-group{display:flex;flex-direction:column;gap:.2rem;padding:.85rem .9rem;border-right:1px solid var(--hair-soft)}.cond-group:last-child{border-right:none}.cond-temp{font-family:var(--mono);font-size:1.6rem;font-weight:400;line-height:1;font-variant-numeric:tabular-nums;color:var(--paper)}.cond-text{font-size:.8rem;color:var(--paper);text-transform:none}.cond-sub{font-family:var(--mono);font-size:.72rem;letter-spacing:.02em;color:var(--muted);font-variant-numeric:tabular-nums}.cond-sub.dim{color:var(--dim)}.tide-state{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.tide-rising{color:var(--flood)}.tide-falling{color:var(--ebb)}.tide-unknown{color:var(--muted)}.conditions.compact{border-top:none;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.conditions.compact .cond-group{padding:.4rem .7rem;border-right:none}.conditions.compact .cond-temp{font-size:1.05rem}.conditions.compact .cond-text{font-size:.72rem}.conditions.compact .cond-sub{font-size:.65rem}.conditions.compact .tide-state{font-size:.62rem}.status-banner{display:flex;flex-wrap:wrap;gap:.4rem .6rem;align-items:baseline;padding:.7rem .9rem;margin:0 0 1rem;border-left:2px solid var(--muted);background:var(--ink-800);font-size:.82rem;line-height:1.45;color:var(--muted)}.status-banner strong{font-family:var(--sans);font-weight:600;color:var(--paper)}.status-banner.offline{border-left-color:var(--alert)}.status-banner.camera-off{border-left-color:var(--warn)}.status-banner.stale{border-left-color:var(--muted)}.snapbtn-wrap{display:flex;flex-direction:column;gap:.5rem}.snapbtn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem 1.1rem;font-family:var(--sans);font-size:.85rem;font-weight:600;letter-spacing:.02em;color:var(--amber);background:transparent;border:1px solid var(--amber);border-radius:3px;cursor:pointer;min-height:44px;transition:background .15s ease,border-color .15s ease}.snapbtn:hover:not(:disabled){background:#d3924a1f;border-color:#e2a461;color:#e2a461}.snapbtn:disabled{background:transparent;color:var(--dim);border-color:var(--hair-soft);cursor:default}.snapbtn:focus-visible{outline:2px solid var(--amber);outline-offset:3px}.snap-progress{height:3px;background:var(--ink-750);border-radius:2px;overflow:hidden}.snap-progress-bar{height:100%;background:var(--amber);transition:width .5s ease}.snap-progress-bar.working{background-image:linear-gradient(90deg,#fff0,#ffffff59,#fff0);background-size:200% 100%;background-color:var(--amber);animation:snapsheen 1.4s linear infinite}@keyframes snapsheen{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.snap-progress-bar.working{animation:none}}.snap-steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.15rem .9rem;font-family:var(--mono);font-size:.66rem;color:var(--dim)}.snap-steps li.done{color:var(--muted)}.snap-steps li.now{color:var(--amber)}.snap-steps li.done:before{content:"✓ "}.snapbtn-meta{display:flex;flex-direction:column;gap:.35rem;font-family:var(--sans);font-size:.72rem;color:var(--dim);font-variant-numeric:tabular-nums}.snapbtn-note{font-family:var(--sans);font-size:.74rem;line-height:1.45;color:var(--muted)}.snapbtn-msg{color:var(--muted);font-family:var(--sans);font-size:.75rem}.daylight{padding:.9rem .9rem 1.5rem;border-top:1px solid var(--hair-soft)}.daylight-track{position:relative;height:6px;background:var(--ink-750);border-radius:1px}.daylight-civil{position:absolute;top:0;height:100%;background:#23424a}.daylight-sun{position:absolute;top:0;height:100%;background:linear-gradient(to right,#3c6570,#8fa98a,#d3924a)}.daylight-now{position:absolute;top:-4px;width:1px;height:14px;background:var(--paper)}.daylight-now:after{content:"";position:absolute;top:-3px;left:-2px;width:5px;height:5px;border-radius:50%;background:var(--paper)}.daylight-marks{position:relative;height:1.9rem;margin-top:.4rem}.daylight-marks span{position:absolute;transform:translate(-50%);font-family:var(--mono);font-size:.68rem;color:var(--muted);text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}.daylight-marks em{display:block;font-style:normal;font-family:var(--sans);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--dim)}.seq{margin-top:1.5rem;border:1px solid var(--hair-soft);border-radius:2px;background:var(--ink-850)}.seq-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.85rem .9rem;border-bottom:1px solid var(--hair-soft)}.seq-head h2{margin:0;font-family:var(--serif);font-weight:400;font-size:1.15rem}.seq-tabs{display:flex;gap:.35rem}.seq-tab{font-family:var(--sans);font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);background:transparent;border:1px solid transparent;border-radius:2px;padding:.28rem .6rem;cursor:pointer}.seq-tab.on{color:var(--amber);border-color:var(--hair)}.seq-tab:disabled{opacity:.35;cursor:default}.seq-tab:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.seq-stage{background:#000;line-height:0}.seq-stage img{width:100%;height:auto;display:block}.seq-controls{display:flex;align-items:center;gap:.8rem;padding:.7rem .9rem .2rem}.seq-play{font-family:var(--sans);font-size:.78rem;font-weight:600;color:var(--paper);background:transparent;border:1px solid var(--hair);border-radius:3px;padding:.35rem .85rem;cursor:pointer;min-width:4.5rem}.seq-play:hover{border-color:var(--amber)}.seq-play:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.seq-scrub{flex:1;accent-color:var(--amber);cursor:pointer}.seq-count{font-family:var(--mono);font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums;min-width:3.2rem;text-align:right}.seq-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:baseline;justify-content:space-between;font-family:var(--mono);font-size:.7rem;color:var(--dim);padding:0 .9rem .85rem;font-variant-numeric:tabular-nums}.seq-video{font-family:var(--sans);font-size:.75rem;font-weight:600;color:var(--amber);text-decoration:none;border:1px solid var(--hair);border-radius:3px;padding:.3rem .7rem}.seq-video:hover{border-color:var(--amber)}.seq-note{margin:0;padding:.9rem;font-size:.82rem;color:var(--muted);max-width:60ch}button.seq-video{background:none;cursor:pointer;min-height:44px}button.seq-video:disabled{cursor:default;opacity:.7}a.seq-video{display:inline-flex;align-items:center;min-height:44px}.seq-sharemsg{color:var(--muted);font-size:.75rem}.coastline{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 42%,#000 100%);mask-image:linear-gradient(to right,transparent 0%,#000 42%,#000 100%)}.coastline svg{display:block;width:100%;height:100%;color:var(--muted);opacity:.16}.coastline-dot{fill:var(--amber);stroke:none;opacity:.85}@media (max-width: 700px){.coastline{display:none}}@media (prefers-contrast: more){.coastline{display:none}}.fullscreen-mode{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#000;display:flex;align-items:center;justify-content:center;height:100vh;height:100dvh;padding:0}.fullscreen-mode>div{width:100%;height:100%}.card.fullscreen{width:100%;height:100%;margin:0;padding:0;border:none;border-radius:0;background:#000;box-shadow:none;display:flex;align-items:center;justify-content:center}.card.fullscreen .image-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#000}.card.fullscreen .webcam-image,.card.fullscreen .image-container img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;border-radius:0;display:block}.card.fullscreen .crop-frame{max-width:100%;max-height:100%}.fullscreen-overlay{position:absolute;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem;padding:1rem 1.1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom));background:linear-gradient(to top,#040a0beb,#040a0b00);opacity:0;transition:opacity .25s ease;pointer-events:none}.fullscreen-timestamp{font-family:var(--mono);font-size:.8rem;color:var(--paper);font-variant-numeric:tabular-nums}.fullscreen-exit{font-family:var(--sans);font-size:.8rem;color:var(--muted);background:#0000008c;border:1px solid var(--hair);border-radius:3px;padding:.45rem .85rem;cursor:pointer;min-height:44px}@media (prefers-reduced-motion: reduce){.fullscreen-overlay{transition:none}}.crop-frame{position:relative;display:block;width:100%;overflow:hidden}.gallery-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;padding:14px 16px;background:var(--ink-850);border-radius:10px}.summary-stats{display:flex;gap:22px;align-items:baseline}.summary-stats .stat{font-size:13px;color:var(--muted)}.summary-stats .stat strong{font-size:20px;color:var(--paper);margin-right:5px;font-variant-numeric:tabular-nums}.button.toggle{font-size:13px;opacity:.75}.button.toggle.on{opacity:1;background:var(--amber);color:#fff}.day-jump{display:flex;gap:8px;overflow-x:auto;padding:0 2px 12px;margin-bottom:6px;scrollbar-width:thin}.day-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:7px 12px;border:1px solid var(--hair);border-radius:999px;background:var(--ink-800);color:var(--muted);font-size:12.5px;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}.day-chip:hover{background:var(--ink-750);border-color:var(--amber)}.chip-count{font-size:11px;color:var(--dim);background:var(--ink-900);padding:1px 6px;border-radius:999px;font-variant-numeric:tabular-nums}.day-section{margin-bottom:30px;scroll-margin-top:12px}.day-header{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:8px 2px 12px;border-bottom:1px solid var(--hair-soft);margin-bottom:14px;position:sticky;top:0;background:var(--ink-900);z-index:2}.day-header h2{margin:0;font-size:17px;color:var(--paper);letter-spacing:.2px}.day-meta{font-size:12.5px;color:var(--dim);font-variant-numeric:tabular-nums}.motion-count{color:var(--amber)}.day-empty{color:var(--dim);font-size:13px;padding:6px 2px 2px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.grid .card{position:relative;background:var(--ink-850);padding:5px;border-radius:8px;text-decoration:none;color:inherit;cursor:pointer;border:1px solid transparent;transition:transform .15s,box-shadow .15s,border-color .15s}.grid .card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000073;border-color:var(--amber)}.grid .card.has-motion{border-color:#f0a04b59}.grid .card img,.grid .card .crop-frame{width:100%;border-radius:5px;display:block;background:var(--ink-900)}.grid .card img{aspect-ratio:4 / 3;object-fit:cover}.grid .card .crop-frame img{aspect-ratio:auto;object-fit:fill;border-radius:0}.meta{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11.5px;color:var(--muted);margin-top:5px;text-align:center;font-variant-numeric:tabular-nums}.motion-dot-sm{width:6px;height:6px;border-radius:50%;background:var(--amber);flex:0 0 auto}.load-more{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px;margin:6px 0 30px;font-size:14px}.remaining{font-size:12px;color:var(--dim);font-variant-numeric:tabular-nums}.loading,.empty{text-align:center;padding:40px;color:var(--muted, var(--dim))}@media (max-width: 560px){.grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}.summary-stats{gap:16px}}.image-detail-container{background:var(--card);border-radius:12px;padding:20px;box-shadow:0 6px 18px #02061799}.image-wrapper{width:100%;display:flex;justify-content:center;align-items:center;margin-bottom:16px;min-height:400px}.detail-image{max-width:100%;max-height:70vh;width:auto;height:auto;object-fit:contain;border-radius:8px;box-shadow:0 4px 12px #0000004d}.image-info{text-align:center;margin-bottom:20px}.filename{color:var(--muted);font-size:.9rem;margin:0;word-break:break-all}.navigation-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px}.nav-button{flex:1;max-width:150px}.position{color:var(--muted);font-size:.9rem;white-space:nowrap}.loading{text-align:center;padding:40px;color:var(--muted)}@media (max-width: 600px){.navigation-controls{flex-direction:column}.nav-button{max-width:100%;width:100%}}.frame{--frame-strip: 2.9rem;position:fixed;top:0;right:0;bottom:0;left:0;background:#000;cursor:none;overflow:hidden}.frame.ui{cursor:default}.frame-image{position:absolute;top:0;left:0;right:0;bottom:calc(var(--frame-strip) + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;background:#000}.frame-image img,.frame-image .cropped-image,.frame-image .cropped-image img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}.frame-empty{color:var(--dim);font-family:var(--serif);font-size:1.3rem}.frame-bar{position:absolute;left:0;right:0;bottom:0;height:calc(var(--frame-strip) + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:0 1.6rem;padding-bottom:env(safe-area-inset-bottom);background:#000;border-top:1px solid rgba(255,255,255,.07);pointer-events:none}.frame-when{font-family:var(--mono);font-size:.95rem;color:#e8efeceb;font-variant-numeric:tabular-nums;white-space:nowrap}.frame-ago{color:#e8efec8c}.frame-flag{margin-left:.6rem;padding:.1rem .5rem;border:1px solid var(--warn);color:var(--warn);border-radius:2px;font-family:var(--sans);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.frame-bar .conditions{display:flex;flex-wrap:nowrap;align-items:baseline;gap:1.9rem;border:none;padding:0}.frame-bar .cond-group{flex-direction:row;align-items:baseline;gap:.55rem;padding:0;border:none;white-space:nowrap}.frame-bar .cond-temp{font-size:1.75rem;color:#fff;line-height:1}.frame-bar .cond-text{font-size:.95rem;color:#e8efeceb}.frame-bar .cond-sub{font-size:.85rem;color:#e8efec9e}.frame-bar .tide-state{font-size:.8rem}.frame-controls{position:absolute;top:1rem;right:1rem;opacity:0;transition:opacity .2s ease;pointer-events:none}.frame.ui .frame-controls{opacity:1;pointer-events:auto}.frame-exit{color:var(--paper);background:#0009;border:1px solid var(--hair);padding:.5rem .9rem;border-radius:3px;text-decoration:none;font-size:.82rem}.frame-exit:hover{border-color:var(--amber)}@media (max-width: 700px){.frame{--frame-strip: 6rem}.frame-bar{flex-direction:column;align-items:flex-start;justify-content:center;gap:.2rem;padding:0 1rem;padding-bottom:env(safe-area-inset-bottom)}.frame-bar .conditions{flex-wrap:wrap;gap:.5rem 1.1rem}.frame-bar .cond-temp{font-size:1.35rem}}@media (prefers-reduced-motion: reduce){.frame-controls{transition:none}}.frame-wake{position:absolute;top:1rem;left:50%;transform:translate(-50%);padding:.4rem .9rem;border-radius:999px;background:#0009;color:#e8efecd9;font-family:var(--sans);font-size:.78rem;pointer-events:none}@media (min-width: 1000px){.frame{--frame-strip: 4.6rem}.frame-when{font-size:1.35rem}.frame-flag{font-size:1rem}.frame-bar .conditions.compact{gap:2.4rem}.frame-bar .conditions.compact .cond-temp{font-size:2.6rem}.frame-bar .conditions.compact .cond-text{font-size:1.15rem}.frame-bar .conditions.compact .cond-sub{font-size:1.05rem}.frame-bar .conditions.compact .tide-state{font-size:.95rem;letter-spacing:.1em}.frame-bar .cond-humidity,.frame-bar .cond-tide-after{display:none}}.act-summary{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;padding:.85rem .9rem;border:1px solid var(--hair-soft);background:var(--ink-850);border-radius:2px;margin-bottom:1rem}.act-count{font-size:.8rem;color:var(--muted)}.act-count strong{font-family:var(--mono);font-size:1.05rem;color:var(--paper);margin-right:.25rem;font-variant-numeric:tabular-nums}.act-filters{display:flex;gap:.4rem;margin-bottom:1rem}.act-filters .button{text-transform:capitalize}.act-filters .button.on{color:var(--amber);border-color:var(--amber)}.act-list{list-style:none;margin:0;padding:0}.act-row{display:grid;grid-template-columns:11.5rem 8rem 1fr;gap:.75rem;align-items:baseline;padding:.5rem .9rem;border-bottom:1px solid var(--hair-soft);border-left:2px solid transparent;font-size:.8rem}.act-row:hover{background:var(--ink-850)}.act-time{font-family:var(--mono);font-size:.72rem;color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap}.act-kind{font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.act-detail{font-family:var(--mono);font-size:.72rem;color:var(--muted);overflow-wrap:anywhere}.act-ok{border-left-color:var(--flood)}.act-skipped{border-left-color:var(--warn)}.act-failed{border-left-color:var(--alert)}.act-greyscale{border-left-color:var(--dim)}.act-empty,.act-note{padding:.9rem;color:var(--dim);font-size:.78rem;max-width:62ch}@media (max-width: 680px){.act-row{grid-template-columns:1fr;gap:.15rem;padding:.65rem .9rem}}.adm-login{max-width:24rem;margin:3rem auto;padding:1.4rem;background:var(--ink-850);border:1px solid var(--hair-soft);border-radius:2px}.adm-login h2{margin:0 0 .6rem;font-family:var(--serif);font-weight:400;font-size:1.4rem}.adm-login p{color:var(--muted);font-size:.82rem;margin:0 0 1rem}.adm-field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem}.adm-field label{font-size:.7rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.adm-field input,.adm-field select{min-height:44px;padding:.5rem .7rem;font:inherit;font-family:var(--mono);font-size:.85rem;color:var(--paper);background:var(--ink-900);border:1px solid var(--hair);border-radius:3px}.adm-field input:focus-visible{outline:2px solid var(--amber);outline-offset:1px}.adm-field .adm-help{font-size:.74rem;color:var(--dim);line-height:1.4}.adm-field.check{flex-direction:row;align-items:center;gap:.7rem}.adm-field.check input{width:1.2rem;height:1.2rem;min-height:0;accent-color:var(--amber)}.adm-field.check label{text-transform:none;letter-spacing:0;font-size:.85rem;font-weight:500;color:var(--paper)}.button.primary{color:var(--ink-900);background:var(--amber);border-color:var(--amber);font-weight:600}.button.primary:hover{color:var(--ink-900);filter:brightness(1.08)}.button.danger{color:var(--alert);border-color:var(--alert)}.button.danger:hover{color:var(--paper);background:var(--alert)}.button.small{min-height:34px;padding:.25rem .6rem;font-size:.76rem}.button:disabled{opacity:.45;cursor:not-allowed}.adm-msg{font-size:.8rem;color:var(--muted);padding:.4rem 0}.adm-msg.err{color:var(--alert)}.adm-msg.ok{color:var(--flood)}.adm-tabs{display:flex;gap:.3rem;flex-wrap:wrap;margin:0 0 1.2rem;border-bottom:1px solid var(--hair);padding-bottom:.6rem}.adm-tabs .button.on{color:var(--amber);border-color:var(--amber)}.adm-section h2{margin:1.4rem 0 .7rem;font-family:var(--serif);font-weight:400;font-size:1.15rem}.adm-section h2:first-child{margin-top:0}.adm-note{color:var(--dim);font-size:.78rem;max-width:70ch;line-height:1.45;margin:.3rem 0 1rem}.adm-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;margin-bottom:1rem}.adm-tile{padding:.7rem .8rem;background:var(--ink-850);border:1px solid var(--hair-soft);border-radius:2px;border-left:2px solid var(--hair)}.adm-tile .k{font-size:.66rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.adm-tile .v{font-family:var(--mono);font-size:1.15rem;color:var(--paper);font-variant-numeric:tabular-nums;margin-top:.15rem;line-height:1.2}.adm-tile .s{font-size:.72rem;color:var(--dim);margin-top:.15rem}.adm-tile.good{border-left-color:var(--flood)}.adm-tile.warn{border-left-color:var(--warn)}.adm-tile.bad{border-left-color:var(--alert)}.adm-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.adm-log{margin:0;padding:.7rem .9rem;max-height:22rem;overflow:auto;background:var(--ink-900);border:1px solid var(--hair-soft);border-radius:2px;font-family:var(--mono);font-size:.7rem;line-height:1.5;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.adm-log .bad{color:var(--alert)}.adm-log .good{color:var(--flood)}.adm-kv{display:grid;grid-template-columns:max-content 1fr;gap:.25rem 1rem;font-size:.8rem;margin:0 0 1rem}.adm-kv dt{color:var(--muted)}.adm-kv dd{margin:0;font-family:var(--mono);font-size:.76rem;color:var(--paper);overflow-wrap:anywhere}.adm-table{width:100%;border-collapse:collapse;font-size:.78rem;margin-bottom:1rem}.adm-table th,.adm-table td{text-align:left;padding:.35rem .6rem;border-bottom:1px solid var(--hair-soft)}.adm-table th{font-size:.66rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.adm-table td{font-family:var(--mono);font-size:.74rem;font-variant-numeric:tabular-nums}.adm-table td.num,.adm-table th.num{text-align:right}.adm-chart{background:var(--ink-850);border:1px solid var(--hair-soft);border-radius:2px;padding:.8rem .9rem .6rem;margin-bottom:.8rem;position:relative}.adm-chart h3{margin:0 0 .5rem;font-size:.72rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;gap:1rem}.adm-chart h3 span{font-weight:400;text-transform:none;letter-spacing:0;color:var(--dim)}.adm-chart svg{width:100%;height:auto;display:block;overflow:visible}.adm-chart .grid{stroke:var(--hair-soft);stroke-width:1}.adm-chart .axis{fill:var(--dim);font-family:var(--mono);font-size:9px}.adm-chart .bar{fill:var(--flood)}.adm-chart .bar.b2{fill:var(--alert)}.adm-chart .bar.hover{fill:var(--amber)}.adm-chart .line{fill:none;stroke:var(--amber);stroke-width:2;stroke-linejoin:round}.adm-chart .dot{fill:var(--ink-850);stroke:var(--amber);stroke-width:2}.adm-chart .hit{fill:transparent}.adm-tip{position:absolute;pointer-events:none;z-index:3;padding:.3rem .5rem;background:var(--ink-900);border:1px solid var(--hair);border-radius:3px;font-family:var(--mono);font-size:.7rem;color:var(--paper);white-space:nowrap}.adm-legend{display:flex;gap:1rem;font-size:.72rem;color:var(--muted);margin-top:.4rem}.adm-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.35rem;vertical-align:-1px}.adm-two{display:grid;grid-template-columns:1fr;gap:.8rem}@media (min-width: 900px){.adm-two{grid-template-columns:1fr 1fr}}.adm-photo-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.8rem;position:sticky;top:0;background:var(--ink-900);padding:.5rem 0;z-index:2}.adm-photo-bar .sel{font-size:.8rem;color:var(--muted);margin-right:auto}.adm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;margin-bottom:1rem}.adm-ph{position:relative;display:block;background:var(--ink-850);border:1px solid var(--hair-soft);border-radius:2px;overflow:hidden;cursor:pointer}.adm-ph img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.adm-ph .m{font-family:var(--mono);font-size:.66rem;color:var(--muted);padding:.3rem .45rem;display:flex;justify-content:space-between;gap:.4rem}.adm-ph.on{outline:2px solid var(--amber);outline-offset:-2px}.adm-ph input{position:absolute;top:6px;left:6px;width:1.2rem;height:1.2rem;accent-color:var(--amber)}.adm-ph .lt{position:absolute;top:6px;right:6px;font-size:.6rem;font-weight:600;letter-spacing:.07em;padding:.1rem .35rem;background:var(--amber);color:var(--ink-900);border-radius:2px}.adm-day{display:flex;align-items:baseline;gap:.7rem;margin:1rem 0 .5rem;padding-bottom:.3rem;border-bottom:1px solid var(--hair-soft)}.adm-day h3{margin:0;font-family:var(--serif);font-weight:400;font-size:1rem}.adm-day span{font-size:.74rem;color:var(--dim)}.adm-day .button{margin-left:auto}.adm-form{display:grid;grid-template-columns:1fr;gap:.2rem 1.5rem;max-width:62rem}@media (min-width: 900px){.adm-form{grid-template-columns:1fr 1fr}}.adm-form .span{grid-column:1 / -1}.adm-console{margin:0 0 1rem;padding:.75rem .9rem;background:var(--ink-850);border:1px solid var(--hair-soft);border-left:2px solid var(--amber);border-radius:2px}.adm-console.good{border-left-color:var(--flood)}.adm-console.bad{border-left-color:var(--alert)}.adm-console-head{display:flex;align-items:center;gap:.6rem}.adm-console-head strong{font-family:var(--sans);font-weight:600;font-size:.85rem;color:var(--paper)}.adm-console-head .button{margin-left:auto}.adm-console-time{font-family:var(--mono);font-size:.72rem;color:var(--dim);font-variant-numeric:tabular-nums}.adm-console-text{margin-top:.4rem;font-size:.8rem;color:var(--muted);line-height:1.45}.adm-console.bad .adm-console-text{color:var(--alert)}.adm-spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--hair);border-top-color:var(--amber);animation:adm-spin .9s linear infinite;flex:0 0 auto}@keyframes adm-spin{to{transform:rotate(360deg)}}.adm-dot{width:10px;height:10px;border-radius:50%;background:var(--muted);flex:0 0 auto}.adm-dot.good{background:var(--flood)}.adm-dot.bad{background:var(--alert)}.adm-steps{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;margin:.5rem 0 0;padding:0;font-size:.72rem;color:var(--dim)}.adm-steps li:before{content:"○ "}.adm-steps li.done{color:var(--muted)}.adm-steps li.done:before{content:"● ";color:var(--flood)}.adm-steps li.now{color:var(--paper)}.adm-steps li.now:before{content:"● ";color:var(--amber)}@media (prefers-reduced-motion: reduce){.adm-spin{animation:none;border-top-color:var(--hair)}}:root{--ink-900: #0C1416;--ink-850: #0F1B1E;--ink-800: #121D20;--ink-750: #16262A;--hair: #22383B;--hair-soft: #1A2C2F;--paper: #E8EFEC;--muted: #8CA3A1;--dim: #728789;--amber: #D3924A;--flood: #6BB8C4;--ebb: #C4855E;--warn: #E0B15C;--alert: #D2705E;--serif: "Newsreader", Georgia, "Times New Roman", serif;--sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--measure: 1140px;--step: .35rem}*{box-sizing:border-box}body{margin:0;background:var(--ink-900);color:var(--paper);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}#root{min-height:100vh;display:flex;flex-direction:column}.app{width:100%;max-width:var(--measure);margin:0 auto;padding:0 1.25rem 3rem;flex:1}@media (display-mode: standalone){body{overflow-x:hidden}.app{padding-top:env(safe-area-inset-top);padding-bottom:calc(3rem + env(safe-area-inset-bottom))}}header{position:relative;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;padding:1.6rem 0 .9rem;border-bottom:1px solid var(--hair);margin-bottom:1.5rem}header h1{position:relative;margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,3.5vw,2rem);letter-spacing:.01em;line-height:1.1}header h1:after{content:"43°44′N  69°47′W";display:block;margin-top:.35rem;font-family:var(--mono);font-size:.68rem;font-weight:400;letter-spacing:.08em;color:var(--dim)}nav.controls{position:relative;display:flex;gap:.4rem;align-items:center}.button{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.45rem .9rem;font-family:var(--sans);font-size:.82rem;font-weight:500;letter-spacing:.01em;color:var(--muted);background:transparent;border:1px solid var(--hair);border-radius:3px;text-decoration:none;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.button:hover{color:var(--paper);border-color:var(--amber)}.button:focus-visible{outline:2px solid var(--amber);outline-offset:2px}main{display:block}.card{background:var(--ink-850);border:1px solid var(--hair-soft);border-radius:2px;overflow:hidden}.image-container{position:relative;display:block;line-height:0;background:#000;aspect-ratio:16 / 9}.webcam-image,.image-container img{width:100%;height:100%;object-fit:contain;display:block}.timestamp{font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;color:var(--muted);padding:.7rem .9rem 0}.status-wrap{padding:0}.snap-row{display:flex;justify-content:flex-start;padding:.9rem;border-top:1px solid var(--hair-soft);margin-top:.75rem}.toolbar{display:flex;justify-content:flex-end;gap:.5rem;padding:0 .9rem .9rem}.fullscreen-mode{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:50}.card.fullscreen{height:100%;border:none;border-radius:0;background:#000;display:flex;align-items:center;justify-content:center}.card.fullscreen .image-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.card.fullscreen img{max-width:100%;max-height:100vh;width:auto;height:auto;object-fit:contain}.fullscreen-overlay{position:absolute;inset:auto 0 0 0;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:1rem 1.25rem calc(1rem + env(safe-area-inset-bottom));background:linear-gradient(to top,#040a0be6,#040a0b00);opacity:0;transition:opacity .25s ease;pointer-events:none}.fullscreen-overlay.visible{opacity:1;pointer-events:auto}.fullscreen-timestamp{font-family:var(--mono);font-size:.8rem;color:var(--paper)}.fullscreen-exit{font-family:var(--sans);font-size:.8rem;color:var(--muted);background:#00000080;border:1px solid var(--hair);border-radius:3px;padding:.4rem .8rem;cursor:pointer}.fullscreen-exit:hover{color:var(--paper);border-color:var(--amber)}@media (prefers-reduced-motion: reduce){.fullscreen-overlay,.button{transition:none}}.layout{display:grid;gap:1.1rem;grid-template-columns:1fr;align-items:start}@media (min-width: 920px){.layout{grid-template-columns:minmax(0,1fr) 310px}}.panel{display:flex;flex-direction:column;background:var(--ink-850);border:1px solid var(--hair-soft);border-radius:2px}.panel-when{display:flex;flex-direction:column;gap:.1rem;padding:.75rem .9rem;border-bottom:1px solid var(--hair-soft)}.panel-ago{font-family:var(--sans);font-size:.95rem;color:var(--paper);letter-spacing:.01em}.panel-abs{font-family:var(--mono);font-size:.7rem;letter-spacing:.03em;color:var(--dim);font-variant-numeric:tabular-nums}.panel-cadence{margin:0;padding:0 .9rem .9rem;font-size:.76rem;line-height:1.45;color:var(--muted)}.panel .conditions{grid-template-columns:1fr;border-top:none}.panel .cond-group{border-right:none;border-bottom:1px solid var(--hair-soft)}.panel .cond-group:last-child{border-bottom:none}.panel .snap-row{margin-top:0;border-top:1px solid var(--hair-soft);padding:.9rem}.panel .toolbar{padding:0 .9rem .9rem;justify-content:flex-start}.card .image-container{max-height:72vh}.card.fullscreen .image-container{aspect-ratio:auto;max-height:none}.card.fullscreen .image-container img{max-height:100vh}
