/* OpenCorp editorial layer; shares the site's light and dark theme tokens. */
.hero{isolation:isolate;overflow:hidden;}
.hero h1{font-size:clamp(3rem,6.5vw,6.2rem);letter-spacing:-.065em;max-width:15ch;}
.hero .terminal{border-radius:28px;transform:rotate(-2deg);box-shadow:0 28px 80px var(--shadow);position:relative;}
.hero .terminal-body{padding:2rem;}
.hero .terminal-body p{padding:0 0 1rem;border-bottom:1px solid var(--border);}
.hero .terminal-body p:last-child{border:0;padding-bottom:0;}
.section-head h2{letter-spacing:-.045em;}
.problem-card,.service-card,.plan-public{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;}
@media(hover:hover){.problem-card:hover,.service-card:hover,.plan-public:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 15px 40px var(--shadow);}}
.oc-about{padding-block:clamp(4rem,8vw,8rem);position:relative;background:radial-gradient(ellipse at 85% 5%,var(--accent-soft),transparent 60%),var(--bg-alt);}
.oc-about-heading{display:grid;grid-template-columns:1.5fr 1fr;gap:3rem;align-items:end;margin-bottom:3rem;}
.oc-about-heading h2{font-size:clamp(2.5rem,5vw,4.7rem);line-height:1.08;max-width:19ch;margin-top:1rem;letter-spacing:-.05em;}
.oc-about-heading p{color:var(--ink-dim);font-size:1.12rem;max-width:45ch;}
.oc-about-heading strong{color:var(--ink);}
.oc-story{display:grid;grid-template-columns:1.1fr 1fr;gap:1.5rem;margin-bottom:3rem;}
.oc-photo{margin:0;position:relative;min-height:320px;border-radius:24px;overflow:hidden;background:var(--surface);}
.oc-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.oc-photo figcaption{position:absolute;inset:auto 1rem 1rem;background:var(--surface-glass-strong);backdrop-filter:blur(12px);padding:1rem;border:1px solid var(--border);border-radius:14px;color:var(--ink);}
.oc-principles{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.oc-principles article{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:1.5rem;}
.oc-number{font:500 .75rem 'Plex Mono',monospace;color:var(--accent);display:block;margin-bottom:1rem;}
.oc-principles h3{font-size:1.2rem;line-height:1.25;}
.oc-principles p,.oc-panel p,.oc-process p{color:var(--ink-dim);}
.oc-explorer{border:1px solid var(--border-strong);background:var(--surface);border-radius:24px;padding:clamp(1.25rem,3vw,2.5rem);}
.oc-explorer h3{font-size:clamp(1.6rem,3vw,2.2rem);margin:.6rem 0 1.5rem;}
.oc-picker{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:1.5rem;}
.oc-picker button{font:inherit;font-weight:600;border:1px solid var(--border-strong);background:var(--bg);color:var(--ink);border-radius:100px;padding:.8rem 1.15rem;cursor:pointer;}
.oc-picker button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}
.oc-panel{display:grid;grid-template-columns:1.1fr 1fr;gap:2rem;align-items:center;padding:1.5rem;background:var(--bg-alt);border-radius:18px;margin-top:1rem;}
.oc-panel[hidden]{display:none;}
.oc-panel h4{font-size:1.6rem;line-height:1.2;letter-spacing:-.03em;margin:0;}
.oc-flow{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;padding:1.25rem;border:1px solid var(--border);background:var(--surface);border-radius:16px;}
.oc-flow span{padding:.6rem .9rem;background:var(--accent-soft);color:var(--ink);border-radius:8px;}
.oc-flow b{color:var(--accent);}
.oc-process{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:3rem;list-style:none;padding:0;counter-reset:steps;}
.oc-process li{border-top:2px solid var(--border-strong);padding-top:1.2rem;}
.oc-process h3{font-size:1.1rem;line-height:1.3;}
.oc-about-cta{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border);}
.oc-about-cta p{font-size:1.3rem;font-weight:600;margin:0;}
@media(max-width:760px){.oc-about-heading,.oc-story,.oc-panel{grid-template-columns:1fr;gap:1.25rem;}.oc-about-heading h2{max-width:100%;}.oc-process{grid-template-columns:1fr 1fr;}.oc-about-cta{align-items:flex-start;flex-direction:column;}.hero .terminal{transform:none;}.oc-panel{padding:1.1rem;}}
@media(max-width:380px){.oc-principles,.oc-process{grid-template-columns:1fr;}}
@media(prefers-reduced-motion:reduce){.problem-card,.service-card,.plan-public{transition:none;}.problem-card:hover,.service-card:hover,.plan-public:hover{transform:none;}}
