:root{--d-bg: #0d0d0d;--d-bg2: #141414;--d-text: #e8e4de;--d-muted: #6b6b6b;--d-border: #2a2a2a;--green: #008364;--green-bright: #00a87e;--bg: #ffffff;--panel: #f7f9f7;--mint: #e8f5ee;--green2: #1a7a45;--ink: #111111;--muted: #555555;--field-border: #d0ddd4;--line: #e0e0e0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--d-bg);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.front{background:var(--d-bg);color:var(--d-text);font-family:Cormorant Garamond,Georgia,serif;font-size:18px;line-height:1.7;min-height:100vh}.front .nav{display:flex;justify-content:space-between;align-items:center;padding:28px 48px;border-bottom:1px solid var(--d-border)}.mono{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--d-text)}.front .nav a.mono:hover{color:var(--green-bright)}.o2logo{width:300px;max-width:80vw;height:auto;display:block}.o2logo.lg{width:520px}.front .hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:72px 48px 64px;border-bottom:1px solid var(--d-border)}.front .logo-wrap{margin-bottom:36px}.front .hero-sub{font-size:21px;font-style:italic;font-weight:300;max-width:540px;line-height:1.55;text-align:left}.front .hero-sub strong{font-weight:600}.front .hero-sub+.hero-sub{margin-top:1.3em}.front .oxygen-block{text-align:center;padding:80px 24px 72px;border-bottom:1px solid var(--d-border)}.front .oxygen-number{font-size:clamp(80px,16vw,140px);font-weight:300;color:var(--green);line-height:1;letter-spacing:-3px}.front .oxygen-label{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-top:14px}.front .oxygen-desc{margin-top:28px;font-size:20px;font-style:italic;max-width:460px;margin-inline:auto}.front .cta{padding:80px 24px;text-align:center;background:var(--d-bg2);border-bottom:1px solid var(--d-border)}.front .cta h2{font-size:clamp(26px,5vw,44px);font-weight:300;line-height:1.3;margin-bottom:14px}.front .cta .sub{font-style:italic;color:var(--d-text);margin-bottom:36px;font-size:18px}.front .cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.btn-green{display:inline-block;padding:15px 30px;background:var(--green);color:#fff;border:1px solid var(--green);font-family:DM Mono,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .2s;white-space:nowrap}.btn-green:hover{background:var(--green-bright);border-color:var(--green-bright)}.btn-ghost{display:inline-block;padding:15px 30px;background:transparent;color:var(--d-text);border:1px solid var(--d-border);font-family:DM Mono,monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:border-color .2s}.btn-ghost:hover{border-color:var(--green);color:var(--green-bright)}.front .pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.front .pillar{padding:52px 44px;border-right:1px solid var(--d-border);border-bottom:1px solid var(--d-border)}.front .pillar:last-child{border-right:none}.front .pillar-title{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-bottom:16px}.front .pillar p{font-size:17px;font-style:italic;line-height:1.6}.front .lb{padding:80px 48px;max-width:680px;margin:0 auto;border-bottom:1px solid var(--d-border)}.front .lb h2{font-size:clamp(26px,4vw,40px);font-weight:300;line-height:1.25;margin-bottom:10px}.front .lb .sub{font-style:italic;margin-bottom:44px;font-size:17px;line-height:1.6}.front .lb-row{display:flex;align-items:center;gap:20px;padding:18px 0;border-bottom:1px solid var(--d-border)}.front .lb-rank{font-family:DM Mono,monospace;font-size:12px;width:18px}.front .lb-handle{flex:1;font-size:17px}.front .lb-handle.you{color:var(--green);font-style:italic;font-weight:600}.front .lb-gain{font-family:DM Mono,monospace;font-size:12px;color:var(--green)}.front .lb-note{margin-top:28px;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--d-muted)}.front footer{padding:32px 48px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.front .foot-left{font-family:DM Mono,monospace;font-size:11px;letter-spacing:.06em}.front .foot-right{font-style:italic;font-size:15px}.front.auth{display:flex;flex-direction:column;min-height:100vh}.front .auth-box{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px}.front .auth-card{width:100%;max-width:400px}.front .auth-card .logo-wrap{display:flex;justify-content:center;margin-bottom:28px}.front .auth-card h1{font-size:40px;font-weight:300;font-style:italic;text-align:center;margin-bottom:8px}.front .auth-card .lead{text-align:center;font-style:italic;color:var(--d-muted);margin-bottom:32px;font-size:16px}.front .field{margin-bottom:18px}.front .field label{display:block;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--d-muted);margin-bottom:7px}.front .field label .opt{text-transform:none;letter-spacing:0}.front .field input{width:100%;padding:13px 16px;background:var(--d-bg2);border:1px solid var(--d-border);color:var(--d-text);font-family:Cormorant Garamond,serif;font-size:17px;outline:none;transition:border-color .2s}.front .field input::placeholder{color:var(--d-muted)}.front .field input:focus{border-color:var(--green)}.front .auth-card .btn-green{width:100%;text-align:center;padding:15px;margin-top:6px}.front .auth-alt{text-align:center;margin-top:24px;font-style:italic;color:var(--d-muted)}.front .auth-alt a{color:var(--green-bright)}.front .err{font-family:DM Mono,monospace;font-size:11px;color:#e07a5f;letter-spacing:.04em;margin-bottom:14px}@media (max-width: 600px){.front .nav{padding:20px 24px}.front .pillar{border-right:none}.front .lb{padding:60px 24px}.front footer{padding:24px;flex-direction:column;align-items:flex-start}.front .cta-row .btn-green,.front .cta-row .btn-ghost{width:100%}}.app-shell{background:var(--panel);color:var(--ink);font-family:DM Mono,monospace;min-height:100vh}.app-wrap{max-width:720px;margin:0 auto;padding:0 0 48px}.app-shell .topbar{display:flex;align-items:center;justify-content:space-between;max-width:720px;margin:0 auto;padding:20px}.app-shell .brand{display:flex;align-items:center;gap:8px}.app-shell .brand .o2-mark{font-family:Fraunces,serif;font-size:17px;font-weight:700;letter-spacing:.04em;color:var(--green2)}.app-shell .app-nav{display:flex;align-items:center;gap:16px}.app-shell .app-nav a{font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:lowercase;color:var(--muted)}.app-shell .app-nav a.active{color:var(--green2);font-weight:700}.app-shell .linkbtn{background:none;border:none;cursor:pointer;font-family:DM Mono,monospace;font-size:12px;font-weight:500;color:var(--muted)}.app-shell .linkbtn:hover{color:var(--ink)}.panel{background:var(--bg);border:2px solid var(--ink);border-radius:10px;padding:24px;margin:16px 20px}.panel.mint{background:var(--mint);border-color:var(--green2)}.panel-label{font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.o2hero{padding:32px 20px 28px}.o2hero .score-label{font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.o2hero .score-number{font-family:Fraunces,serif;font-size:72px;font-weight:700;line-height:1;color:var(--ink);letter-spacing:-2px}.o2hero .score-unit{font-size:14px;font-weight:700;color:var(--green2);letter-spacing:.03em;margin-top:6px}.o2hero .score-hint{font-size:12px;font-weight:500;color:var(--muted);margin-top:8px;line-height:1.6}.oxbar-wrap{margin-top:18px}.oxbar-row{display:flex;justify-content:space-between;font-size:11px;font-weight:700;color:var(--muted);margin-bottom:6px}.oxbar{height:6px;background:#d4e8dc;border-radius:3px;overflow:hidden}.oxbar-fill{height:100%;background:var(--green2);border-radius:3px;transition:width 1.4s cubic-bezier(.16,1,.3,1)}.gain-pill{display:inline-block;margin-top:14px;font-size:12px;font-weight:700;color:var(--green2);background:var(--mint);border:1px solid #c8e6d4;border-radius:20px;padding:4px 12px}.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tier{background:var(--panel);border:2px solid var(--field-border);border-radius:8px;padding:16px 12px;text-align:center}.tier .t-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.tier .t-value{font-family:Fraunces,serif;font-size:24px;font-weight:700;color:var(--ink);margin-top:6px;letter-spacing:-.5px}.tier.selected{border-color:var(--green2);background:var(--mint)}.tier.selected .t-label{color:var(--green2)}.tier .t-badge{margin-top:8px;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green2)}button.tier-choice{font:inherit;cursor:pointer;width:100%;color:var(--ink);display:block}button.tier-choice:hover:not(:disabled){border-color:var(--green2)}button.tier-choice .t-choose{margin-top:10px;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--green2)}button.tier-choice:disabled{opacity:.6;cursor:default}.fields{display:flex;flex-direction:column;gap:14px}.field-l{display:flex;flex-direction:column;gap:5px}.field-l label{font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.field-l input{font-family:DM Mono,monospace;font-size:14px;font-weight:500;color:var(--ink);background:var(--panel);border:2px solid var(--field-border);border-radius:6px;padding:10px 14px;outline:none;transition:border-color .15s;width:100%}.field-l input:focus{border-color:var(--green2);background:var(--bg)}.field-l input::placeholder{color:#bbb}.field-hint{font-size:11px;font-weight:500;color:#888;line-height:1.5}.btn-app{font-family:DM Mono,monospace;font-size:12px;font-weight:700;letter-spacing:.08em;padding:12px 24px;border-radius:6px;border:none;background:var(--green2);color:#fff;cursor:pointer;transition:opacity .15s;width:100%}.btn-app:hover:not(:disabled){opacity:.85}.btn-app:disabled{opacity:.5;cursor:default}.btn-app.secondary{background:var(--bg);color:var(--green2);border:2px solid var(--field-border)}.tier-switch{display:flex;gap:8px}.tier-switch button{flex:1;font-family:DM Mono,monospace;font-size:13px;font-weight:700;padding:10px;border-radius:6px;border:2px solid var(--field-border);background:var(--bg);color:var(--ink);cursor:pointer}.tier-switch button.active{background:var(--green2);color:#fff;border-color:var(--green2)}.save-ok{font-size:12px;font-weight:700;color:var(--green2);margin-top:10px}.save-err{font-size:12px;font-weight:700;color:#b00020;margin-top:10px}.board-head,.board-row{display:grid;grid-template-columns:40px 1fr 100px 84px;align-items:center;column-gap:14px}.board-head{border-bottom:2px solid var(--ink);padding-bottom:10px}.board-head span{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.board-head .c{text-align:center}.board-head .r{text-align:right}.board-row{border-bottom:1px solid var(--line);padding:14px 0}.board-row:last-child{border-bottom:none}.board-row.you-row{background:#f0faf4;box-shadow:inset 3px 0 0 var(--green2)}.rank-badge{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;margin:0 auto}.rank-1{background:#fef3c7;color:#92400e;border:2px solid #d97706}.rank-2{background:#f1f5f9;color:#334155;border:2px solid #94a3b8}.rank-3{background:#fdf2e9;color:#7c2d12;border:2px solid #c2692a}.rank-n{background:#f5f5f5;color:#888;border:2px solid #cccccc}.rank-you{background:var(--mint);color:var(--green2);border:2px solid var(--green2)}.lb-handle2{font-size:14px;font-weight:700;color:var(--ink)}.lb-delta{font-size:11px;font-weight:500;color:var(--muted);margin-top:3px}.lb-handle2.you,.lb-delta.you{color:var(--green2)}.lb-delta.you{font-weight:700}.mo-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--green2) var(--p, 0%),var(--line) var(--p, 0%))}.cell-r{text-align:right;white-space:nowrap}.score-val{font-family:Fraunces,serif;font-size:20px;font-weight:700;color:var(--ink)}.score-val.you{color:var(--green2);font-size:22px}.score-mo{font-size:11px;font-weight:700;color:#777}.cta-banner{background:var(--mint);border:2px solid #c8e6d4;border-radius:8px;padding:14px 16px;margin:16px 20px;font-size:13px;font-weight:500;color:var(--ink)}.cta-banner a{color:var(--green2);font-weight:700}.app-h1{font-family:Fraunces,serif;font-size:30px;font-weight:700;letter-spacing:-.5px;padding:28px 20px 0}.app-sub{font-size:13px;font-weight:500;color:var(--muted);padding:6px 20px 0;line-height:1.6}.app-shell .muted{color:var(--muted);font-size:13px}.center{display:flex;min-height:60vh;align-items:center;justify-content:center}.admin .admin-wrap{max-width:920px;margin:0 auto;padding:40px 24px 80px}.admin h1{font-size:40px;font-weight:300;font-style:italic;margin-bottom:24px}.admin .err{margin-bottom:16px}.admin .admin-section{margin-top:48px}.admin .admin-section h2{font-family:DM Mono,monospace;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--green-bright);margin-bottom:6px}.admin .admin-section>.muted{color:var(--d-muted);font-size:15px;margin-bottom:18px}.admin .admin-create{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}.admin .admin-create input{flex:1 1 200px;padding:11px 14px;background:var(--d-bg2);border:1px solid var(--d-border);color:var(--d-text);font-family:DM Mono,monospace;font-size:13px}.admin .admin-create .btn-green{flex:0 0 auto;padding:11px 22px}.admin .admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin .admin-table th{text-align:left;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--d-muted);padding:8px 12px;border-bottom:1px solid var(--d-border)}.admin .admin-table td{padding:12px;border-bottom:1px solid var(--d-border);vertical-align:middle}.admin .admin-table .mono{font-size:13px;text-transform:none;letter-spacing:0;color:var(--d-text)}.admin .admin-table .muted{color:var(--d-muted)}.admin .admin-table tr.admin-dim td{opacity:.5}.admin .admin-actions{display:flex;gap:14px;justify-content:flex-end}.admin .linkbtn{background:none;border:none;cursor:pointer;padding:0;font-family:DM Mono,monospace;font-size:12px;color:var(--green-bright)}.admin .linkbtn:hover{text-decoration:underline}.admin .linkbtn.admin-danger{color:#c2563f}
