:root { --ink:#102e2b; --lime:#d8ff49; --paper:#f6f3ea; --muted:#667773; --line:#d4d5cc; }
* { box-sizing:border-box; }
html, body { min-height:100%; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; }
.access-layout { min-height:100vh; display:grid; grid-template-columns:minmax(0, 1.08fr) minmax(390px, .92fr); }
.access-story { min-height:100vh; padding:42px clamp(28px, 6vw, 92px); display:flex; flex-direction:column; background:var(--ink); color:white; overflow:hidden; position:relative; }
.access-story:after { content:""; width:540px; height:540px; position:absolute; right:-280px; bottom:-310px; border:1px solid rgba(216,255,73,.14); border-radius:50%; box-shadow:0 0 0 90px rgba(216,255,73,.025), 0 0 0 180px rgba(216,255,73,.018); }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; font-size:18px; position:relative; z-index:1; }
.brand span { width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--lime); border-radius:50%; color:var(--lime); font-family:Georgia, serif; font-style:italic; }
.brand b { color:var(--lime); }
.story-copy { max-width:700px; margin:auto 0; padding:70px 0; position:relative; z-index:1; }
.eyebrow, .panel-label { margin:0; color:var(--lime); font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.story-copy h1 { max-width:670px; margin:22px 0; font-family:Georgia, serif; font-size:clamp(48px, 5.7vw, 82px); font-weight:400; letter-spacing:-.05em; line-height:.96; }
.story-copy > p:not(.eyebrow) { max-width:640px; margin:0; color:#adbfbb; font-size:15px; line-height:1.7; }
.story-copy dl { margin:44px 0 0; padding:25px 0 0; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; border-top:1px solid rgba(255,255,255,.14); }
.story-copy dl div { display:grid; gap:8px; }
.story-copy dt { color:var(--lime); font-size:10px; font-weight:800; letter-spacing:.1em; }
.story-copy dd { margin:0; color:#a6b8b4; font-size:10px; line-height:1.55; }
.story-foot { margin:0; color:#7f9691; font-size:9px; line-height:1.5; position:relative; z-index:1; }
.access-panel { min-height:100vh; padding:62px clamp(28px, 5vw, 82px); display:grid; align-items:center; background:var(--paper); }
.access-card { width:100%; max-width:560px; margin:0 auto; }
.panel-label { color:#71851f; }
.access-card h2 { margin:20px 0 12px; font-family:Georgia, serif; font-size:clamp(38px, 4vw, 55px); font-weight:400; letter-spacing:-.04em; line-height:1; }
.lead { margin:0 0 26px; color:var(--muted); font-size:12px; line-height:1.7; }
form { display:grid; gap:15px; margin-top:28px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
label { display:grid; gap:7px; color:#41524e; font-size:9px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
label small { color:#8a9592; font-size:8px; font-weight:400; letter-spacing:0; text-transform:none; }
input { width:100%; min-height:49px; padding:0 13px; border:1px solid #c5c9c0; border-radius:0; background:white; color:var(--ink); font:14px Arial, sans-serif; outline:none; }
input:focus { border-color:#71851f; box-shadow:0 0 0 3px rgba(176,205,52,.14); }
.check { grid-template-columns:19px 1fr; align-items:start; gap:9px; color:#596a66; font-weight:400; letter-spacing:0; line-height:1.5; text-transform:none; }
.check input { width:17px; min-height:17px; height:17px; margin:1px 0 0; accent-color:var(--ink); }
.check a { font-weight:700; }
.check.optional { padding:13px; background:#edf1de; border-left:3px solid #a6c62e; }
button, .primary-link { min-height:51px; padding:0 18px; display:grid; place-items:center; border:1px solid var(--ink); background:var(--ink); color:var(--lime); font-size:10px; font-weight:800; letter-spacing:.09em; text-align:center; text-decoration:none; text-transform:uppercase; cursor:pointer; }
button:hover, button:focus-visible, .primary-link:hover, .primary-link:focus-visible { background:#24423e; }
.notice { margin:22px 0; padding:14px 16px; border-left:3px solid #73911b; background:#e9efd4; color:#52611f; font-size:11px; line-height:1.55; }
.notice.error { border-color:#b04b3d; background:#f4e3df; color:#7e3329; }
.notice.info { border-color:#4b7a87; background:#e1edf0; color:#345b65; }
.notice ul { margin:0; padding-left:18px; }
.utility-links { margin-top:16px; display:flex; justify-content:space-between; gap:16px; color:#64736f; font-size:10px; }
.switch { margin:25px 0 0; color:#6c7976; font-size:10px; text-align:center; }
.switch a, .utility-links a { color:var(--ink); font-weight:800; text-underline-offset:3px; }
.confirmation-mark { width:54px; height:54px; margin:28px 0 22px; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:var(--lime); font-size:24px; }
.legal-copy { max-height:58vh; margin-top:26px; padding-right:12px; overflow:auto; color:#5c6c68; font-size:11px; line-height:1.7; }
.legal-copy h3 { margin:24px 0 6px; color:var(--ink); font-size:11px; letter-spacing:.06em; text-transform:uppercase; }
.legal-copy p { margin:0 0 12px; }
@media (max-width:900px) {
  .access-layout { grid-template-columns:1fr; }
  .access-story { min-height:auto; padding-bottom:54px; }
  .story-copy { padding:64px 0 46px; }
  .story-copy h1 { max-width:760px; font-size:clamp(46px, 9vw, 72px); }
  .access-panel { min-height:auto; padding-top:64px; padding-bottom:70px; }
}
@media (max-width:560px) {
  .access-story, .access-panel { padding-left:20px; padding-right:20px; }
  .story-copy { padding-top:52px; }
  .story-copy h1 { font-size:clamp(42px, 13vw, 58px); }
  .story-copy dl { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .utility-links { align-items:flex-start; flex-direction:column; }
}
