/* Observatory — quiet surfaces, native typography, glass reserved for navigation. */
:root{color-scheme:dark;--bg:#080e19;--panel:#141e2b;--raised:#192533;--line:#cbdcf01c;--gold:#e0cda6;--text:#f1f3f5;--muted:#a7b3c4;--font:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.6 var(--font);isolation:isolate;-webkit-font-smoothing:antialiased}
body:before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#080e1928,#080e1970 36%,#080e19f5 90%),url('/assets/night-sky.png') center/cover no-repeat}
[hidden]{display:none!important}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}a{color:var(--gold);text-underline-offset:4px}button{cursor:pointer;min-height:44px;padding:11px 18px;border:1px solid transparent;border-radius:13px;background:var(--gold);color:#22221f;font-size:13px;font-weight:600;transition:background .15s,transform .15s}button:hover{background:#f0dfbd}button:active{transform:scale(.985)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.quiet{background:#e4eefa09;color:#dce4ed;border-color:var(--line)}button.quiet:hover{background:#e4eefa15}button:disabled:hover{filter:none}summary{cursor:pointer;min-height:44px;align-content:center;font-weight:500;color:var(--text)}details[open]>summary{margin-bottom:14px}
aside{width:248px;position:fixed;inset:0 auto 0 0;padding:34px 18px 24px;background:#0b1321bf;border-right:1px solid var(--line);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);display:flex;flex-direction:column}
.identity{padding:0 12px}.brand-mark{display:block;border-radius:18px;margin-bottom:20px;box-shadow:0 4px 24px #0003}.brand{font-size:20px;font-weight:600;letter-spacing:-.5px}.identity .subtle{font-size:11px;margin:2px 0;color:var(--muted)}nav{display:grid;gap:6px;margin-top:42px}nav button{background:transparent;color:var(--muted);border:0;text-align:left;padding:13px 14px;font-weight:500;font-size:13px;min-height:46px}nav button span{display:inline-block;font-size:20px;line-height:20px;width:30px;vertical-align:middle;color:#c7bdab}nav button:hover{background:#d7e7ff09;color:var(--text)}nav button.selected{background:#d7e7ff10;color:var(--text);box-shadow:inset 0 1px #ffffff08}.aside-bottom{margin-top:auto;padding:20px 14px 0;color:#bac5d2;font-size:9px;letter-spacing:1.7px}.aside-bottom p{font-size:12px;letter-spacing:0;line-height:1.8;color:var(--muted)}.dot{display:inline-block;width:5px;height:5px;background:#abbca6;border-radius:50%;margin-right:7px}
main{margin-left:248px;padding:0 clamp(28px,5vw,88px);max-width:1680px}header{min-height:84px;border-bottom:1px solid var(--line);display:flex;gap:16px;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:1px}.session-actions{display:flex;gap:16px;align-items:center}.session-actions button{min-height:34px;padding:7px 12px;font-size:11px}section.view{padding-top:56px;min-height:calc(100vh - 176px)}.eyebrow{font-size:10px;font-weight:500;letter-spacing:2px;color:var(--gold);margin-bottom:22px}h1{font-size:clamp(36px,3.8vw,54px);line-height:1.12;font-weight:600;letter-spacing:-1.8px;margin:0 0 22px}h1 em{font-style:normal;color:#ddcfb3}h2{font-size:21px;line-height:1.35;letter-spacing:-.45px;font-weight:600;margin:0 0 20px}h3{font-size:21px;line-height:1.35;font-weight:600;letter-spacing:-.45px}.intro{max-width:640px;font-size:15px;line-height:1.8;color:#b8c2d0;margin:0 0 30px}.subtle,small{font-size:12px;line-height:1.7;color:var(--muted)}.section-head{display:flex;gap:16px;align-items:baseline;justify-content:space-between;margin:36px 0 20px}.section-head h2{margin:0}.section-head>span{font-size:12px;color:var(--muted)}
#desk h1{font-size:clamp(48px,5.5vw,76px);letter-spacing:-3px;line-height:1.04}#desk .intro{max-width:450px}#desk .eyebrow{margin-bottom:24px}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:760px;margin:36px 0 40px;padding:24px 0;border-block:1px solid var(--line)}.metric+ .metric{border-left:1px solid var(--line);padding-left:24px}.metric strong{display:block;font-size:28px;line-height:1.2;font-weight:500;letter-spacing:-.8px}.metric span{display:block;font-size:11px;color:var(--muted);margin-top:9px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{display:flex;flex-direction:column;align-items:stretch;min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:25px;box-shadow:0 10px 30px #00000012}.card .number{color:var(--gold);font-size:9px;letter-spacing:1.8px;font-weight:600}.card h3{margin:22px 0 12px}.card>p{font-size:13px;line-height:1.75;color:var(--muted);margin:0 0 24px;flex:1}.card>button{width:100%;margin-top:10px}.card>small{margin-bottom:12px}.card>.tag{align-self:flex-start}.card label{font-size:12px}.mission-details{margin-top:14px;border-top:1px solid var(--line);padding-top:7px}.mission-details summary{font-size:11px;color:var(--muted)}.mission-details p{font-size:12px}.method{margin:40px 0;padding:22px 0;border-top:1px solid var(--line);max-width:850px}.method>span{font-size:9px;letter-spacing:1.8px;color:var(--gold)}.method p{font-size:14px;line-height:1.8;color:#c0c9d6;margin:10px 0}.method small{font-size:11px}.callout{padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:22px;margin:24px 0}.callout>p{font-size:14px}.callout h2{margin-top:0}.callout>summary{font-size:19px;letter-spacing:-.35px}.callout>button{margin:5px 8px 5px 0}
label{display:block;color:#b9c4d1;font-size:12px;margin:15px 0}input:not([type=checkbox]),textarea,select{display:block;width:100%;padding:12px 14px;margin-top:8px;min-height:46px;background:#0b1420;color:var(--text);border:1px solid #cbdcf02b;border-radius:12px;font-size:16px;line-height:1.5;font-family:var(--font)}input::placeholder,textarea::placeholder{color:#8190a4;opacity:1}textarea{resize:vertical}input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold);vertical-align:middle;margin:0 7px 0 0}.fields{display:flex;gap:18px;align-items:end;flex-wrap:wrap}.fields>label{flex:1;min-width:140px;margin:0}.fields>button{flex-shrink:0}.fields+label{margin-top:24px}fieldset{border:1px solid var(--line);border-radius:15px;padding:18px;margin:24px 0}legend{font-size:12px;color:var(--muted);padding:0 6px}#document-search{margin:32px 0;padding:22px;background:var(--panel);border-radius:20px;border:1px solid var(--line)}#note-form{max-width:850px}#note-form>button{margin-top:12px}
.row{padding:24px 4px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.row h3{font-size:17px;line-height:1.5;letter-spacing:-.2px;margin:12px 0}.row p{margin:9px 0;line-height:1.8}.row button{margin:10px 8px 0 0}.row a{font-size:13px}.tag{display:inline-block;border:1px solid #d7ccb326;background:#d7ccb309;color:var(--gold);padding:4px 8px;border-radius:7px;font-size:9px;font-weight:500;letter-spacing:.5px;margin-right:10px}.note-body{white-space:pre-wrap}.empty{padding:30px 24px;border-radius:18px;background:#131e2bbb;color:var(--muted);font-size:13px;border:1px solid var(--line);margin:16px 0}.years{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px;margin:32px 0}.year.quiet{padding:13px 2px;background:#141f2e;font-size:13px;min-width:0}.year small{display:block;font-size:8px;color:var(--muted);margin-top:5px}.review-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;margin-top:32px}.review-layout>div{min-width:0}.review-layout .section-head{margin-top:0}.review-layout h2{margin-top:32px}#review-inbox+.section-head{margin-top:36px}#review-decisions{margin-bottom:32px}#review-runs{max-height:900px;overflow:auto;padding-right:8px}#run-detail{scroll-margin-top:24px}.timeline{margin:28px 0 0 5px;padding-left:25px;border-left:1px solid #dbc59c60}.timeline-step{position:relative;padding:0 0 28px;overflow-wrap:anywhere}.timeline-step:before{content:'';position:absolute;left:-30px;top:8px;width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px var(--panel)}.timeline-step h3{font-size:17px;margin:7px 0}.timeline-step p{font-size:13px;margin:8px 0}.timeline-step button{display:block;margin-top:12px}.scope-status{border-left:2px solid var(--gold);padding:12px 18px;background:#e1c99508;border-radius:0 12px 12px 0;font-size:13px}.audit-details{margin:32px 0}.audit-details>summary{font-size:20px}
dialog{width:min(90%,860px);max-height:88dvh;padding:32px;background:#151f2c;color:var(--text);border:1px solid #d8e4f22b;border-radius:28px;box-shadow:0 32px 120px #0009}dialog::backdrop{background:#02060bb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}dialog>button.quiet:first-child{display:block;margin:0 0 24px auto;border-radius:22px;min-height:36px;padding:7px 16px}dialog h2{font-size:25px;letter-spacing:-.7px}dialog .review-layout{margin-top:0}dialog .review-layout h2{margin-top:0}#brief-dialog,#ai-dialog{max-width:680px}#work-dialog{max-width:1120px}#work-body{max-height:56vh;overflow:auto;padding-right:12px}pre{font:14px/1.9 ui-monospace,SFMono-Regular,monospace;white-space:pre-wrap;overflow-wrap:anywhere}#source-body{max-width:78ch}#work-links button{display:block;margin:12px 0}#brief-error,#review-error,#ai-error,.sign-in-error{color:#ffd1b6;font-size:13px}#notice{position:sticky;top:16px;z-index:20;padding:14px 20px;background:#26312e;border:1px solid #bacbaa60;border-radius:15px;font-size:13px;box-shadow:0 10px 30px #0003}#session-expired a{margin-right:12px}footer{display:flex;justify-content:space-between;gap:16px;padding:28px 0 32px;border-top:1px solid var(--line);font-size:9px;letter-spacing:1.6px;color:#8d9aaf}
.sign-in-page{padding-bottom:0}.sign-in-main{margin:0 auto;padding:clamp(40px,7vh,90px) 24px 48px;max-width:460px;text-align:center}.sign-in-mark{border-radius:28px;box-shadow:0 12px 42px #0005;margin-bottom:24px;animation:arrive .9s ease-out both}.sign-in-main h1{font-size:40px;letter-spacing:-1.7px}.sign-in-main .eyebrow{margin-bottom:18px}.sign-in-main .intro{font-size:13px}.sign-in-form{text-align:left;padding:28px;margin-top:30px}.sign-in-form h2{font-size:20px}.sign-in-form button{width:100%;margin-top:10px}.sign-in-form .subtle{text-align:center;font-size:11px;margin:20px 0 0}.mobile-nav{display:none}@keyframes arrive{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
@media(min-width:1800px){main{margin-right:auto}}
@media(max-width:1180px){aside{width:216px;padding-inline:12px}main{margin-left:216px;padding-inline:32px}.cards{grid-template-columns:1fr}.card{display:grid;grid-template-columns:minmax(0,1fr) 220px;column-gap:28px}.card>.number,.card>.tag,.card>h3,.card>p,.card>small{grid-column:1}.card>h3{margin:15px 0 10px}.card>p{margin-bottom:0}.card>button,.card>details{grid-column:2}.card>button:first-of-type{grid-row:1 / 3;align-self:center}.card>button:nth-of-type(2){grid-row:3;align-self:start}.card>details{grid-row:4 / 7}.review-layout{grid-template-columns:1fr;gap:12px}.years{grid-template-columns:repeat(8,minmax(0,1fr))}#work-body{max-height:38vh}}
@media(max-width:760px){body{padding-bottom:100px}aside{position:relative;width:auto;height:auto;background:transparent;border:0;padding:22px 24px 0;backdrop-filter:none;-webkit-backdrop-filter:none}.identity{display:flex;align-items:center;gap:12px;padding:0}.brand-mark{width:42px;height:42px;border-radius:12px;margin:0}.brand{font-size:17px}.identity .subtle{font-size:10px}aside nav,.aside-bottom{display:none}main{margin:0;padding:0 24px}header{min-height:66px;font-size:8px;gap:10px}#status{letter-spacing:0;font-size:9px}.session-actions{gap:7px}.session-actions button{font-size:10px;padding-inline:8px}section.view{padding-top:34px}.eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:18px}h1{font-size:36px;letter-spacing:-1.4px}#desk h1{font-size:57px;letter-spacing:-2.5px}.intro{font-size:14px;line-height:1.8}.metrics{padding:22px 0;gap:14px;margin:30px 0}.metric+ .metric{padding-left:14px}.metric strong{font-size:25px}.metric span{font-size:10px}.section-head{align-items:start;flex-direction:column;gap:8px;margin:30px 0 20px}.section-head h2{font-size:20px}.section-head span{font-size:11px}.card{display:flex;padding:24px;border-radius:22px}.card>h3{font-size:23px;margin:20px 0 12px}.card>p{margin-bottom:18px}.card>button{margin-top:10px}.callout{padding:22px}.fields{display:block}.fields>label{margin:16px 0}.fields>button{width:100%;margin-top:8px}.years{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.year small{font-size:7px}.review-layout{gap:20px}#review-runs{max-height:none;padding-right:0}.mobile-nav{display:flex;position:fixed;bottom:10px;left:10px;right:10px;z-index:30;margin:0;padding:5px 3px max(5px,env(safe-area-inset-bottom));gap:0;justify-content:space-around;border-radius:24px;border:1px solid #e1edff26;background:#142030dc;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);box-shadow:0 12px 48px #0007}.mobile-nav button{min-width:0;min-height:48px;padding:8px 7px;font-size:10px;text-align:center;border-radius:18px}.mobile-nav button.selected{background:#dbe6f017;color:var(--gold)}dialog{width:calc(100% - 20px);max-height:90dvh;padding:24px;border-radius:24px}dialog h2{font-size:22px}#work-body{max-height:36vh}#document-search{padding:20px}footer{font-size:8px;letter-spacing:1px}.sign-in-main{margin:0 auto;padding-top:40px}.sign-in-main h1{font-size:36px}.sign-in-page{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(prefers-reduced-transparency:reduce){aside,.mobile-nav{background:#111c2a;backdrop-filter:none;-webkit-backdrop-filter:none}dialog::backdrop{background:#02060bf5;backdrop-filter:none}}
@media(prefers-contrast:more){:root{--muted:#d3dce8;--line:#9eacbc;--gold:#f2dfba}body:before{display:none}.intro,.subtle,small{color:var(--muted)}aside,.mobile-nav{background:#101b28;backdrop-filter:none}.tag{border-color:var(--gold)}input::placeholder,textarea::placeholder{color:#b5c1d0}}
/* Long local paths, source URLs and fingerprints remain readable at narrow widths. */
#data-location,#source-meta,#work-meta,.timeline-step a{overflow-wrap:anywhere}#budget-form label{max-width:420px}
