:root { --ink:#102b39; --navy:#102f40; --teal:#167b78; --gold:#e8ab52; --paper:#f5f7f4; --muted:#5b7079; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body.public-body { margin:0; color:var(--ink); background:var(--paper); font:1rem/1.85 sansarif,Tahoma,sans-serif; }
button,input { font:inherit; }
a { text-decoration:none; }
a:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.public-container { width:min(1180px, calc(100% - 3rem)); margin-inline:auto; }
.public-brand { display:inline-flex; align-items:center; gap:.7rem; color:inherit; font-weight:700; line-height:1.35; }
.brand-mark { width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(232,171,82,.55); border-radius:13px; color:var(--gold); font:700 1.45rem/1 sans-serif; }
.public-brand small { display:block; margin-top:.1rem; color:#a9bdc4; font:600 .65rem/1.4 'Segoe UI',sans-serif; letter-spacing:.16em; }
.public-button { display:inline-flex; align-items:center; justify-content:center; gap:.65rem; min-height:50px; padding:.7rem 1.35rem; border:1px solid transparent; border-radius:12px; color:#102b39; background:var(--gold); font-weight:700; transition:transform .2s,background .2s,box-shadow .2s; }
.public-button:hover { color:#102b39; background:#f4bc68; transform:translateY(-2px); box-shadow:0 10px 25px rgba(9,35,49,.16); }
.public-button-outline { color:#fff; border-color:rgba(255,255,255,.3); background:rgba(255,255,255,.06); }
.public-button-outline:hover { color:#fff; background:rgba(255,255,255,.15); }
.landing-hero { position:relative; overflow:hidden; min-height:680px; color:#fff; background:radial-gradient(circle at 15% 20%,rgba(37,120,129,.36),transparent 35%),linear-gradient(125deg,#092433,#123a49 55%,#0a2835); }
.landing-hero::after { content:''; position:absolute; inset:0; pointer-events:none; opacity:.23; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:64px 64px; }
.landing-nav { position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:1.6rem; border-bottom:1px solid rgba(255,255,255,.13); }
.landing-nav .public-button { min-height:43px; font-size:.85rem; }
.hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:clamp(2rem,5vw,5rem); padding-block:clamp(4rem,9vw,7rem); }
.eyebrow { display:inline-flex; align-items:center; gap:.6rem; color:#edbb75; font:700 .75rem/1.5 'Segoe UI',sans-serif; letter-spacing:.18em; }
.eyebrow::before { content:''; width:24px; height:2px; background:currentColor; }
.hero-copy h1 { max-width:640px; margin:1.2rem 0 1.3rem; font-size:clamp(2.2rem,4.3vw,4rem); font-weight:800; line-height:1.5; letter-spacing:-.035em; }
.hero-copy h1 em,.auth-aside h2 em { color:var(--gold); font-style:normal; }
.hero-lead { max-width:550px; color:#c1d3d8; font-size:1.08rem; line-height:2; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem; }
.hero-footnote { display:flex; flex-wrap:wrap; gap:.6rem 1.6rem; margin-top:2.4rem; color:#b7cbd0; font-size:.79rem; }
.hero-footnote span::before { content:'◆'; margin-left:.5rem; color:var(--gold); font-size:.55rem; }
.rig-card { position:relative; padding:1.25rem; border:1px solid rgba(200,231,229,.25); border-radius:23px; background:rgba(255,255,255,.07); box-shadow:0 30px 80px rgba(0,0,0,.22); backdrop-filter:blur(14px); }
.rig-card-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; color:#cbdde0; font-size:.8rem; }
.rig-card-top strong { color:#fff; font-size:.91rem; }
.rig-status { display:inline-flex; align-items:center; gap:.45rem; font:700 .66rem 'Segoe UI',sans-serif; letter-spacing:.1em; }
.rig-status::before { content:''; width:7px; height:7px; border-radius:50%; background:#78d0ad; box-shadow:0 0 0 4px rgba(120,208,173,.14); }
.rig-visual { position:relative; height:320px; overflow:hidden; margin-top:1.2rem; border:1px solid rgba(255,255,255,.08); border-radius:15px; background:radial-gradient(circle at 50% 35%,rgba(38,115,122,.32),transparent 55%),linear-gradient(180deg,#173d4c,#0b2837); }
.rig-visual::before { content:''; position:absolute; inset:0; opacity:.16; background:repeating-linear-gradient(0deg,transparent 0 38px,#fff 39px 40px); }
.rig-ground { position:absolute; inset:auto 0 42px; height:2px; background:#dfaf67; box-shadow:0 6px 25px #db9d49; }
.rig-tower { position:absolute; bottom:44px; left:50%; width:154px; height:240px; transform:translateX(-50%); clip-path:polygon(44% 0,56% 0,94% 100%,6% 100%); background:repeating-linear-gradient(0deg,#e9b971 0 3px,transparent 3px 30px),linear-gradient(77deg,transparent 40%,#d7e4df 41% 43%,transparent 44% 56%,#d7e4df 57% 59%,transparent 60%); border-bottom:5px solid #e9b971; }
.rig-tower::after { content:''; position:absolute; inset:0; background:repeating-linear-gradient(25deg,transparent 0 43px,rgba(238,235,210,.6) 44px 46px,transparent 47px 72px); }
.rig-pipe { position:absolute; left:50%; bottom:0; width:8px; height:267px; transform:translateX(-50%); background:#edb967; box-shadow:0 0 19px rgba(232,171,82,.45); }
.rig-platform { position:absolute; bottom:42px; left:50%; width:215px; height:14px; transform:translateX(-50%); background:#b8d0cf; box-shadow:0 9px 0 #678f99; }
.rig-depth { position:absolute; bottom:9px; left:16px; color:#89acb5; font:600 .65rem 'Segoe UI',sans-serif; letter-spacing:.12em; }
.rig-data { display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; margin-top:.75rem; }
.rig-data div { padding:.7rem .55rem; border:1px solid rgba(255,255,255,.09); border-radius:10px; background:rgba(255,255,255,.06); }
.rig-data strong { display:block; color:#fff; font-size:.79rem; }
.rig-data small { color:#a9bdc4; font-size:.69rem; }
.section-wrap { padding-block:clamp(4rem,7vw,6rem); }
.section-head { max-width:680px; margin-bottom:2rem; }
.section-head .eyebrow { color:var(--teal); }
.section-head h2 { margin:.8rem 0; font-size:clamp(1.7rem,3vw,2.6rem); font-weight:800; }
.section-head p { color:var(--muted); }
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; }
.feature-card { min-height:230px; padding:1.65rem; border:1px solid #e0e9e5; border-radius:17px; background:#fff; box-shadow:0 12px 35px rgba(12,48,58,.04); }
.feature-icon { display:grid; place-items:center; width:52px; height:52px; margin-bottom:1.3rem; border-radius:14px; color:#126a68; background:#e8f4ef; font:800 1.15rem 'Segoe UI',sans-serif; }
.feature-card:nth-child(2) .feature-icon { color:#9b631e; background:#fff2dc; }
.feature-card:nth-child(3) .feature-icon { color:#365a85; background:#ebf1fa; }
.feature-card h3 { font-size:1.1rem; font-weight:700; }
.feature-card p { margin:0; color:var(--muted); font-size:.9rem; }
.audience-band { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-bottom:4rem; padding:2rem 2.4rem; border-radius:18px; color:#fff; background:linear-gradient(110deg,#123b48,#16736f); }
.audience-band h2 { margin:0 0 .4rem; font-size:1.4rem; }
.audience-band p { margin:0; color:#cde6e3; font-size:.9rem; }
.site-footer { padding:1.4rem 0; border-top:1px solid #dce5e1; color:var(--muted); font-size:.8rem; }
.site-footer .public-container { display:flex; justify-content:space-between; gap:1rem; }
.auth-body { min-height:100vh; background:#edf2ef; }
.auth-layout { display:grid; grid-template-columns:1fr 1fr; min-height:100vh; }
.auth-aside { position:relative; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; padding:clamp(2rem,5vw,5rem); color:#fff; background:radial-gradient(circle at 20% 70%,rgba(39,148,134,.35),transparent 43%),linear-gradient(140deg,#092433,#144557); }
.auth-aside::after { content:''; position:absolute; width:370px; height:370px; bottom:-145px; left:-100px; border:1px solid rgba(232,171,82,.22); border-radius:50%; box-shadow:0 0 0 55px rgba(232,171,82,.04),0 0 0 110px rgba(232,171,82,.03); pointer-events:none; }
.auth-aside-content { position:relative; z-index:1; max-width:520px; margin-block:4rem; }
.auth-aside h2 { margin:1rem 0; font-size:clamp(2rem,3.2vw,3.4rem); font-weight:800; line-height:1.5; }
.auth-aside p { max-width:430px; color:#bfd5d9; }
.auth-aside-list { display:grid; gap:.85rem; margin-top:2rem; padding:0; list-style:none; }
.auth-aside-list li::before { content:'✓'; display:inline-grid; place-items:center; width:25px; height:25px; margin-left:.7rem; border-radius:50%; color:var(--gold); background:rgba(255,255,255,.1); }
.auth-aside-footer { position:relative; z-index:1; color:#8fb2bb; font:.72rem 'Segoe UI',sans-serif; letter-spacing:.12em; }
.auth-main { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:2rem 1.5rem; }
.auth-main-inner { width:min(440px,100%); }
.back-link { display:inline-flex; align-items:center; gap:.55rem; margin-bottom:2rem; color:#527078; font-size:.85rem; }
.back-link:hover { color:var(--teal); }
.auth-card { padding:clamp(1.6rem,3vw,2.7rem); border:1px solid #e0e9e5; border-radius:20px; background:#fff; box-shadow:0 24px 65px rgba(17,54,59,.09); }
.auth-card-icon { display:grid; place-items:center; width:55px; height:55px; margin-bottom:1.4rem; border-radius:15px; color:#116a67; background:#e4f3ee; font-size:1.4rem; }
.auth-card h1 { margin:0 0 .4rem; font-size:1.65rem; font-weight:800; }
.auth-card-intro { margin:0 0 1.8rem; color:var(--muted); font-size:.88rem; }
.auth-card .form-label { display:block; margin-bottom:.5rem; color:var(--ink); font-size:.88rem; font-weight:700; }
.auth-card .form-control { display:block; width:100%; min-height:54px; padding:.7rem 1rem; border:1px solid #cbdcd7; border-radius:11px; outline:none; background:#fafcfb; color:var(--ink); font-size:1rem; }
.auth-card .form-control:focus { border-color:var(--teal); box-shadow:0 0 0 4px rgba(22,123,120,.12); }
.auth-card .form-control::placeholder { color:#9aacad; }
.auth-card .form-hint { margin:.55rem 0 1.4rem; color:#70848a; font-size:.77rem; }
.auth-card .auth-submit { width:100%; min-height:52px; border:0; border-radius:11px; color:#fff; background:var(--navy); font-weight:700; cursor:pointer; transition:background .2s,transform .2s; }
.auth-card .auth-submit:hover { background:#155a64; transform:translateY(-1px); }
.auth-card .auth-submit:disabled { opacity:.6; cursor:wait; transform:none; }
.auth-card .auth-secondary { display:block; width:100%; margin-top:.9rem; border:0; color:var(--teal); background:transparent; cursor:pointer; }
.auth-card .auth-secondary:hover { text-decoration:underline; }
.auth-card .alert { padding:.75rem 1rem; margin-bottom:1.2rem; border-radius:10px; font-size:.83rem; }
.auth-card .alert-danger { color:#8b3131; background:#fff0ef; }
.auth-card .alert-success { color:#18634a; background:#e8f7ee; }
.auth-card .alert-info { color:#285b75; background:#eaf4f9; }
.auth-dev-note { margin:1.2rem 0 0; padding:.75rem; border-radius:9px; color:#725626; background:#fff6e6; font-size:.76rem; }
.auth-trust { margin-top:1.5rem; color:#71878b; text-align:center; font-size:.76rem; }
.d-none { display:none !important; }
@media (max-width:900px) {
    .hero-grid { grid-template-columns:1fr; }
    .rig-card { max-width:550px; width:100%; margin-inline:auto; }
    .auth-layout { grid-template-columns:1fr; }
    .auth-aside { min-height:250px; padding:2rem; }
    .auth-aside-content { margin:1.5rem 0 0; }
    .auth-aside h2 { font-size:1.8rem; }
    .auth-aside-list,.auth-aside-footer { display:none; }
    .auth-main { padding-block:2.5rem; }
}
@media (max-width:650px) {
    .public-container { width:min(100% - 2rem,1180px); }
    .landing-nav .public-button { padding-inline:.75rem; font-size:.75rem; }
    .hero-grid { padding-block:3rem; }
    .hero-copy h1 { font-size:2.2rem; }
    .hero-actions .public-button { flex:1 1 100%; }
    .rig-visual { height:270px; }
    .feature-grid { grid-template-columns:1fr; }
    .feature-card { min-height:auto; }
    .audience-band { flex-direction:column; align-items:stretch; padding:1.5rem; }
    .site-footer .public-container { flex-direction:column; }
    .auth-aside { min-height:210px; }
    .auth-aside h2 { font-size:1.5rem; }
    .auth-aside p { margin:0; font-size:.85rem; }
    .auth-main { padding:1.6rem 1rem 3rem; }
    .back-link { margin-bottom:1rem; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; } }
