:root { --od-navy:#001233; --od-orange:#fe5000; --od-green:#0d7164; --od-beige:#efe0ca; --od-soft:#f9f3ea; }
.skip-link { position:fixed; z-index:999; top:8px; left:8px; padding:12px 18px; color:white; background:var(--od-navy); transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.page-shell { min-height:100vh; padding-top:80px; color:var(--od-navy); background:var(--od-soft); }
.page-hero { position:relative; overflow:hidden; padding:clamp(90px,12vw,170px) 0 clamp(70px,9vw,120px); color:var(--od-beige); background:var(--od-navy); }
.page-hero::after { content:""; position:absolute; width:520px; aspect-ratio:1; right:-180px; top:-210px; border:1px solid rgba(239,224,202,.15); border-radius:50%; box-shadow:0 0 0 70px rgba(13,113,100,.07),0 0 0 140px rgba(254,80,0,.035); }
.page-container { position:relative; z-index:1; width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.page-eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 22px; color:var(--od-orange); font-size:.72rem; font-weight:800; letter-spacing:.3em; text-transform:uppercase; }
.page-eyebrow::before { content:""; width:34px; height:2px; background:currentColor; }
.page-hero h1 { max-width:900px; margin:0; font:700 clamp(3.5rem,8vw,7.6rem)/.88 "Cormorant Garamond",serif; letter-spacing:-.045em; }
.page-hero__lead { max-width:660px; margin:35px 0 0 auto; color:rgba(239,224,202,.72); font-size:clamp(1rem,2vw,1.22rem); line-height:1.8; }
.page-section { padding:clamp(70px,10vw,130px) 0; }
.page-section--white { background:white; }
.page-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.65fr); gap:50px; align-items:end; margin-bottom:55px; }
.page-heading h2 { margin:0; font:700 clamp(2.7rem,5vw,5rem)/.95 "Cormorant Garamond",serif; }
.page-heading p { margin:0; color:rgba(0,18,51,.65); line-height:1.8; }
.case-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1px; background:rgba(0,18,51,.13); }
.case-card { grid-column:span 6; min-height:420px; padding:clamp(28px,5vw,58px); display:flex; flex-direction:column; color:var(--od-navy); background:white; text-decoration:none; transition:background .25s,color .25s,transform .25s; }
.case-card:nth-child(3n+2) { background:var(--od-green); color:white; }
.case-card:nth-child(3n) { background:var(--od-orange); color:white; }
.case-card:hover { transform:translateY(-5px); background:var(--od-navy); color:var(--od-beige); }
.case-card__index { font-size:.68rem; letter-spacing:.25em; text-transform:uppercase; opacity:.68; }
.case-card h2 { margin:auto 0 18px; font:700 clamp(2.2rem,4vw,4rem)/.95 "Cormorant Garamond",serif; }
.case-card p { max-width:520px; margin:0; line-height:1.75; opacity:.75; }
.case-card__meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; }
.case-card__meta span,.tag-list span { padding:7px 10px; border:1px solid currentColor; font-size:.65rem; letter-spacing:.13em; text-transform:uppercase; opacity:.72; }
.case-empty { grid-column:1/-1; padding:65px; text-align:center; background:white; }
.case-study__facts { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:-1px; background:rgba(239,224,202,.16); }
.case-study__facts div { padding:28px; background:rgba(255,255,255,.04); }
.case-study__facts dt { color:var(--od-orange); font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; }
.case-study__facts dd { margin:8px 0 0; font:600 1.4rem "Cormorant Garamond",serif; }
.case-story { display:grid; grid-template-columns:210px minmax(0,720px); gap:clamp(35px,8vw,110px); padding:48px 0; border-top:1px solid rgba(0,18,51,.14); }
.case-story h2 { margin:0; color:var(--od-orange); font-size:.72rem; letter-spacing:.25em; text-transform:uppercase; }
.case-story p { margin:0; white-space:pre-line; font-size:1.1rem; line-height:1.9; }
.tag-list { display:flex; flex-wrap:wrap; gap:8px; }
.primary-link { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 24px; color:white; background:var(--od-orange); font-size:.72rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; }
.primary-link:hover { background:#d94400; }
.collab-layout { display:grid; grid-template-columns:minmax(0,.75fr) minmax(360px,1fr); gap:clamp(45px,8vw,110px); }
.collab-promises { display:grid; gap:1px; margin-top:40px; background:rgba(0,18,51,.13); }
.collab-promises article { padding:24px; background:white; }
.collab-promises strong { display:block; margin-bottom:7px; font-family:"Cormorant Garamond",serif; font-size:1.45rem; }
.collab-form { padding:clamp(28px,5vw,55px); color:var(--od-beige); background:var(--od-navy); }
.collab-form__grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.collab-form label { display:grid; gap:8px; margin-bottom:18px; color:rgba(239,224,202,.72); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; }
.collab-form input,.collab-form select,.collab-form textarea { width:100%; padding:14px; border:1px solid rgba(239,224,202,.2); border-radius:0; color:var(--od-beige); background:rgba(255,255,255,.06); outline:none; text-transform:none; }
.collab-form input:focus,.collab-form select:focus,.collab-form textarea:focus { border-color:var(--od-orange); box-shadow:0 0 0 3px rgba(254,80,0,.2); }
.collab-form option { color:var(--od-navy); background:white; }
.form-errors { margin:0 0 20px; padding:14px; color:#7f1d1d; background:#fee2e2; }
.form-success { margin-bottom:25px; padding:18px; color:#064e3b; background:#d1fae5; }
.lab-grid { display:grid; grid-template-columns:260px minmax(0,1fr); gap:1px; background:rgba(0,18,51,.14); }
.lab-nav { padding:20px; background:var(--od-navy); }
.lab-nav button { width:100%; padding:16px; border:0; text-align:left; color:rgba(239,224,202,.65); background:transparent; cursor:pointer; }
.lab-nav button[aria-selected=true] { color:white; background:var(--od-orange); }
.lab-panel { min-width:0; min-height:540px; padding:clamp(25px,5vw,55px); background:white; }
.lab-panel[hidden] { display:none; }
.lab-controls { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:25px 0; }
.lab-controls label { display:grid; gap:6px; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.lab-controls input,.lab-controls textarea { width:100%; padding:11px; border:1px solid rgba(0,18,51,.2); }
.lab-canvas { position:relative; height:360px; padding:16px; background:var(--od-soft); }
.lab-result { min-height:80px; margin-top:20px; padding:20px; color:var(--od-beige); background:var(--od-navy); line-height:1.7; }
.timeline { position:relative; max-width:900px; margin:auto; }
.timeline::before { content:""; position:absolute; left:109px; top:0; bottom:0; width:1px; background:rgba(0,18,51,.18); }
.timeline-item { display:grid; grid-template-columns:90px 1fr; gap:55px; padding:0 0 70px; }
.timeline-item time { position:relative; left:-32px; width:120px; justify-self:end; color:var(--od-orange); font-weight:800; text-align:right; white-space:nowrap; }
.timeline-item article { position:relative; }
.timeline-item article::before { content:""; position:absolute; left:-42px; top:5px; width:13px; aspect-ratio:1; border:3px solid var(--od-soft); border-radius:50%; background:var(--od-green); box-shadow:0 0 0 1px var(--od-green); }
.timeline-item h2 { margin:0 0 12px; font:700 clamp(2rem,4vw,3.3rem)/1 "Cormorant Garamond",serif; }
.timeline-item p { margin:0; color:rgba(0,18,51,.65); line-height:1.8; }
.english-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:35px; }
:focus-visible { outline:3px solid var(--od-orange); outline-offset:4px; }
@media(max-width:760px) {
 .page-heading,.collab-layout,.lab-grid { grid-template-columns:1fr; }
 .case-card { grid-column:1/-1; min-height:340px; }
 .case-study__facts { grid-template-columns:1fr; }
 .case-story { grid-template-columns:1fr; gap:14px; }
 .collab-form__grid,.lab-controls { grid-template-columns:1fr; }
 .lab-nav { display:flex; padding:8px; overflow-x:auto; }
 .lab-nav button { min-width:170px; }
 .timeline::before { left:9px; }
 .timeline-item { grid-template-columns:1fr; gap:12px; padding-left:35px; }
 .timeline-item time { left:0; width:auto; justify-self:start; padding-right:0; text-align:left; }
 .timeline-item article::before { left:-32px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
@media print { header,footer,.no-print,.cookie-banner { display:none!important; } .page-shell{padding:0;background:white}.page-hero{padding:30px;color:#001233;background:white}.page-section{padding:30px 0} }


/* Web and editorial portfolio collection */
.editorial-work {
    position: relative;
    overflow: hidden;
    background: #f9f3ea;
}
.editorial-work::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .22;
    background-image: radial-gradient(rgba(0,18,51,.2) 1px, transparent 1px);
    background-size: 28px 28px;
}
.editorial-work .page-container { position: relative; }
.editorial-work__heading { max-width: 760px; }
.editorial-work__grid { align-items: stretch; }
.editorial-card {
    position: relative;
    min-height: 390px;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-top: 4px solid #fe5000;
    transition: transform .35s ease, box-shadow .35s ease, background-color .35s ease;
}
.editorial-card:nth-child(3n + 2) { border-top-color: #0d7164; }
.editorial-card:nth-child(3n) { border-top-color: #001233; }
.editorial-card:hover,
.editorial-card:focus-visible {
    transform: translateY(-6px);
    box-shadow: 0 24px 60px rgba(0,18,51,.13);
}
.editorial-card .case-card__footer { margin-top: auto; padding-top: 2rem; }
.editorial-card__action {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    margin-top: 1.5rem;
    color: #fe5000;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.editorial-card__action > span { transition: transform .3s ease; }
.editorial-card:hover .editorial-card__action > span { transform: rotate(45deg); }
@media (max-width: 767px) {
    .editorial-card { min-height: 330px; }
}


/* Balanced two-line title for the web/editorial collection. */
.editorial-work__heading h2 {
    max-width: 720px;
    font-size: clamp(2.65rem, 5.2vw, 4.75rem);
    line-height: .95;
}
@media (max-width: 560px) {
    .editorial-work__heading h2 {
        font-size: clamp(2.4rem, 12vw, 3.35rem);
    }
}


/* Give the editorial heading its full desktop width. */
@media (min-width: 901px) {
    .editorial-work__heading {
        width: 100%;
        max-width: none;
        grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr);
    }
    .editorial-work__heading h2 {
        max-width: none;
        font-size: clamp(2.8rem, 4.4vw, 4.25rem);
    }
    .editorial-work__heading h2 span {
        white-space: nowrap;
    }
}
@media (max-width: 900px) {
    .editorial-work__heading h2 span {
        white-space: normal;
    }
}


/* Keep the two-line heading inside its 1180px page container. */
@media (min-width: 901px) {
    .editorial-work__heading {
        box-sizing: border-box;
        grid-template-columns: minmax(0, 1.55fr) minmax(240px, .45fr);
        gap: 40px;
    }
    .editorial-work__heading h2 {
        min-width: 0;
        max-width: 100%;
        font-size: clamp(2.7rem, 3.8vw, 3.75rem);
        overflow-wrap: normal;
    }
    .editorial-work__heading h2 span {
        display: inline;
        white-space: normal;
    }
}


/* Rich statistical visualizations in the interactive laboratory. */
.lab-statistics-controls {
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(210px, .35fr);
    gap: 16px;
    margin: 25px 0;
}
.lab-statistics-controls label {
    display: grid;
    align-content: start;
    gap: 7px;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.lab-statistics-controls textarea,
.lab-statistics-controls select {
    width: 100%;
    min-height: 46px;
    padding: 12px;
    border: 1px solid rgba(0,18,51,.2);
    color: var(--od-navy);
    background: #fff;
    font: 500 .92rem/1.5 sans-serif;
    letter-spacing: normal;
    text-transform: none;
}
.lab-statistics-controls textarea {
    resize: vertical;
}
.lab-canvas--statistics {
    margin-top: 22px;
    height: clamp(320px, 42vw, 480px);
}
@media (max-width: 767px) {
    .lab-statistics-controls {
        grid-template-columns: 1fr;
    }
    .lab-canvas--statistics {
        height: 340px;
    }
}


.lab-axis-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: -6px 0 24px;
    padding: 18px;
    background: rgba(13,113,100,.08);
}
.lab-axis-fields:not([hidden]) {
    display: grid;
}
.lab-axis-fields label {
    display: grid;
    gap: 7px;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.lab-axis-fields select {
    width: 100%;
    padding: 11px;
    border: 1px solid rgba(0,18,51,.2);
    color: var(--od-navy);
    background: #fff;
    font-size: .9rem;
    letter-spacing: normal;
    text-transform: none;
}
@media (max-width: 560px) {
    .lab-axis-fields {
        grid-template-columns: 1fr;
    }
}


/* Full mathematical function study workspace. */
.lab-function-list,
.lab-function-options label {
    display: grid;
    gap: 7px;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.lab-function-list textarea,
.lab-function-options input,
.lab-function-options textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid rgba(0,18,51,.2);
    color: var(--od-navy);
    background: #fff;
    font: 500 .92rem/1.55 ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: normal;
    text-transform: none;
}
.lab-formula-preview {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    min-height: 48px;
    margin: 12px 0 22px;
    padding: 12px 16px;
    color: var(--od-navy);
    background: rgba(239,224,202,.55);
}
.lab-formula-preview > div {
    min-width: max-content;
}
.lab-controls--ranges {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.lab-function-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 20px 0;
}
.lab-function-options label:last-child {
    grid-column: 1 / -1;
}
.lab-function-options small {
    color: rgba(0,18,51,.58);
    font-size: .7rem;
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
}
.lab-check {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 0 22px;
    font-size: .82rem;
    font-weight: 650;
}
.lab-check input {
    width: 18px;
    height: 18px;
    accent-color: var(--od-orange);
}
.lab-canvas--function {
    width: min(100%, 760px);
    aspect-ratio: 1;
    height: auto;
    margin: 28px auto 0;
}
.lab-canvas--function canvas {
    width: 100% !important;
    height: 100% !important;
}
@media (max-width: 767px) {
    .lab-controls--ranges,
    .lab-function-options {
        grid-template-columns: 1fr;
    }
    .lab-function-options label:last-child {
        grid-column: auto;
    }
}


/* Animated projectile travelling from A to B. */
.projectile-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 20px;
}
.projectile-play {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 0 20px;
    color: #fff;
    background: var(--od-green);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
#projectileResult {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 24px;
    min-height: 0;
}
#projectileResult strong,
#projectileResult span {
    display: block;
}
.projectile-time {
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr);
    align-items: center;
    gap: 8px 18px;
    margin: 20px 0 8px;
    padding: 18px;
    background: rgba(239,224,202,.58);
}
.projectile-time label {
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.projectile-time input {
    width: 100%;
    accent-color: var(--od-orange);
}
.projectile-time output {
    grid-column: 1 / -1;
    color: rgba(0,18,51,.72);
    font-size: .82rem;
}
.lab-canvas--projectile {
    height: clamp(330px, 45vw, 500px);
    margin-top: 20px;
}
@media (max-width: 600px) {
    #projectileResult {
        grid-template-columns: 1fr;
    }
    .projectile-time {
        grid-template-columns: 1fr;
    }
    .projectile-time output {
        grid-column: auto;
    }
}


/* Commercial and financial mathematics laboratory. */
.finance-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin-top: 34px;
    background: rgba(0,18,51,.13);
}
.finance-tool {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    padding: clamp(22px, 3vw, 34px);
    background: #f9f3ea;
}
.finance-tool:nth-child(3n + 2) { background: #efe0ca; }
.finance-tool:nth-child(3n) { color: #fff; background: #0d7164; }
.finance-tool--wide {
    grid-column: 1 / -1;
    color: #efe0ca;
    background: #001233;
}
.finance-tool > span {
    color: #fe5000;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.finance-tool h3 {
    margin: 0 0 6px;
    font: 650 clamp(1.75rem, 3vw, 2.35rem)/1 "Cormorant Garamond", serif;
}
.finance-tool label {
    display: grid;
    gap: 5px;
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.finance-tool input {
    min-width: 0;
    width: 100%;
    padding: 10px 11px;
    border: 1px solid rgba(0,18,51,.18);
    color: #001233;
    background: #fff;
    font-size: .9rem;
    letter-spacing: normal;
    text-transform: none;
}
.finance-tool__columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.finance-tool button {
    align-self: flex-start;
    margin-top: 4px;
    padding: 11px 16px;
    color: #fff;
    background: #fe5000;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.finance-result {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid currentColor;
    border-color: color-mix(in srgb, currentColor 16%, transparent);
    line-height: 1.55;
}
.finance-result strong {
    display: block;
    margin-bottom: 8px;
    color: #fe5000;
}
.finance-result p {
    margin: 3px 0;
    font-size: .82rem;
    opacity: .72;
}
.finance-result__formula {
    margin-top: 12px;
    overflow-x: auto;
    font-size: .82rem;
}
.finance-result--error {
    color: #9f2d20;
}
@media (max-width: 767px) {
    .finance-grid {
        grid-template-columns: 1fr;
    }
    .finance-tool--wide {
        grid-column: auto;
    }
    .finance-tool__columns {
        grid-template-columns: 1fr;
    }
}


/* Advanced finance tools and printable report. */
.finance-advanced {
    margin-top: 28px;
    border: 1px solid rgba(0,18,51,.16);
}
.finance-advanced > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 26px;
    color: #efe0ca;
    background: #001233;
    cursor: pointer;
}
.finance-advanced > summary span {
    color: #fe5000;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.finance-advanced > summary strong {
    font-family: "Cormorant Garamond", serif;
    font-size: 1.4rem;
}
.finance-grid--advanced {
    margin-top: 0;
}
.finance-tool select {
    width: 100%;
    padding: 10px 11px;
    border: 1px solid rgba(0,18,51,.18);
    color: #001233;
    background: #fff;
}
.finance-compare {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.finance-compare fieldset {
    display: grid;
    gap: 10px;
    min-width: 0;
    padding: 16px;
    border: 1px solid currentColor;
    border-color: color-mix(in srgb, currentColor 18%, transparent);
}
.finance-compare legend {
    padding: 0 8px;
    color: #fe5000;
    font-weight: 800;
}
.amortization-table {
    max-height: 420px;
    margin-top: 18px;
    overflow: auto;
    background: #fff;
}
.amortization-table table {
    width: 100%;
    min-width: 680px;
    border-collapse: collapse;
    color: #001233;
    font-size: .76rem;
}
.amortization-table th,
.amortization-table td {
    padding: 9px 11px;
    border-bottom: 1px solid rgba(0,18,51,.1);
    text-align: right;
    white-space: nowrap;
}
.amortization-table th:first-child,
.amortization-table td:first-child {
    text-align: left;
}
.amortization-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    color: #fff;
    background: #0d7164;
}
.finance-export {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 28px;
    padding: 24px 28px;
    color: #efe0ca;
    background: #001233;
}
.finance-export strong {
    display: block;
    margin-bottom: 4px;
    font: 650 1.6rem/1 "Cormorant Garamond", serif;
}
.finance-export p {
    margin: 0;
    color: rgba(239,224,202,.68);
    font-size: .82rem;
}
.finance-export button {
    flex: 0 0 auto;
    padding: 13px 18px;
    color: #fff;
    background: #fe5000;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
@media (max-width: 767px) {
    .finance-advanced > summary,
    .finance-export {
        align-items: flex-start;
        flex-direction: column;
    }
    .finance-compare {
        grid-template-columns: 1fr;
    }
}
@media print {
    body.finance-print-mode > :not(main) {
        display: none !important;
    }
    body.finance-print-mode main > * {
        display: none !important;
    }
    body.finance-print-mode main,
    body.finance-print-mode .page-shell,
    body.finance-print-mode .page-section,
    body.finance-print-mode .page-container,
    body.finance-print-mode .lab-grid,
    body.finance-print-mode #panel-finance {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #000 !important;
        background: #fff !important;
    }
    body.finance-print-mode .page-hero,
    body.finance-print-mode .lab-nav,
    body.finance-print-mode .lab-panel:not(#panel-finance),
    body.finance-print-mode .finance-export,
    body.finance-print-mode .finance-tool button,
    body.finance-print-mode .finance-advanced > summary {
        display: none !important;
    }
    body.finance-print-mode .finance-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
        background: transparent !important;
    }
    body.finance-print-mode .finance-tool {
        break-inside: avoid;
        min-height: 0;
        padding: 14px;
        border: 1px solid #bbb;
        color: #000 !important;
        background: #fff !important;
    }
    body.finance-print-mode .finance-result__formula,
    body.finance-print-mode .amortization-table {
        max-height: none;
        overflow: visible;
    }
}


/* Fast, inviting navigation through financial calculators. */
.finance-filter {
    position: sticky;
    top: 92px;
    z-index: 12;
    margin: 28px 0 20px;
    padding: 14px;
    border: 1px solid rgba(0,18,51,.12);
    background: rgba(255,255,255,.9);
    box-shadow: 0 16px 45px rgba(0,18,51,.09);
    backdrop-filter: blur(16px);
}
.finance-filter__search {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    padding: 0 15px;
    background: #f9f3ea;
}
.finance-filter__search > span[aria-hidden] {
    color: #fe5000;
    font: 500 1.7rem/1 "Cormorant Garamond", serif;
}
.finance-filter__search input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    color: #001233;
    background: transparent;
    font-size: .94rem;
}
.finance-filter__chips {
    display: flex;
    gap: 7px;
    margin-top: 10px;
    overflow-x: auto;
    scrollbar-width: thin;
}
.finance-filter__chips button {
    flex: 0 0 auto;
    padding: 9px 13px;
    border: 1px solid rgba(0,18,51,.13);
    color: rgba(0,18,51,.7);
    background: #fff;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    transition: color .25s ease, background-color .25s ease, border-color .25s ease;
}
.finance-filter__chips button:hover,
.finance-filter__chips button.is-active {
    border-color: #001233;
    color: #efe0ca;
    background: #001233;
}
.finance-filter__status {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-top: 10px;
    color: rgba(0,18,51,.58);
    font-size: .7rem;
}
.finance-filter__status button {
    color: #fe5000;
    font-weight: 800;
    text-transform: uppercase;
}
.finance-filter__empty {
    margin: 20px 0;
    padding: 30px;
    color: #001233;
    background: #efe0ca;
    text-align: center;
}
.finance-tool[hidden],
.finance-grid[hidden] {
    display: none !important;
}
@media (max-width: 767px) {
    .finance-filter {
        position: relative;
        top: auto;
        margin-inline: -10px;
    }
}
@media print {
    .finance-filter,
    .finance-filter__empty {
        display: none !important;
    }
    .finance-tool[hidden],
    .finance-grid[hidden] {
        display: flex !important;
    }
    .finance-grid[hidden] {
        display: grid !important;
    }
}


/* Data-driven science and geometry laboratory. */
.science-filter {
    position: sticky;
    top: 92px;
    z-index: 12;
    margin: 28px 0 24px;
    padding: 14px;
    border: 1px solid rgba(0,18,51,.12);
    background: rgba(255,255,255,.92);
    box-shadow: 0 16px 45px rgba(0,18,51,.09);
    backdrop-filter: blur(16px);
}
.science-filter > label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 50px;
    padding: 0 15px;
    background: #f9f3ea;
}
.science-filter > label > span { color: #fe5000; font: 500 1.7rem/1 serif; }
.science-filter input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
}
.science-filter__chips,
.science-filter__levels {
    display: flex;
    gap: 7px;
    margin-top: 10px;
    overflow-x: auto;
}
.science-filter button {
    flex: 0 0 auto;
    padding: 9px 13px;
    border: 1px solid rgba(0,18,51,.13);
    color: rgba(0,18,51,.7);
    background: #fff;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.science-filter button:hover,
.science-filter button.is-active {
    border-color: #001233;
    color: #efe0ca;
    background: #001233;
}
.science-filter > p {
    display: flex;
    justify-content: space-between;
    margin: 10px 0 0;
    color: rgba(0,18,51,.58);
    font-size: .7rem;
}
.science-filter > p button {
    padding: 0;
    border: 0;
    color: #fe5000;
    background: transparent;
}
.science-calculator-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 1px;
    background: rgba(0,18,51,.14);
}
.science-calculator {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    padding: clamp(22px,3vw,34px);
    color: #001233;
    background: #fff;
}
.science-calculator:nth-child(4n+2) { background: #efe0ca; }
.science-calculator:nth-child(4n+3) { color: #fff; background: #0d7164; }
.science-calculator:nth-child(4n) { color: #efe0ca; background: #001233; }
.science-calculator > span {
    color: #fe5000;
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .17em;
    text-transform: uppercase;
}
.science-calculator h3 {
    margin: 0;
    font: 650 clamp(1.8rem,3vw,2.5rem)/1 "Cormorant Garamond",serif;
}
.science-calculator > p {
    min-height: 2.5em;
    margin: 0;
    opacity: .66;
    line-height: 1.55;
}
.science-calculator__fields {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
}
.science-calculator__fields label {
    display: grid;
    gap: 5px;
    font-size: .66rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.science-input {
    display: flex;
    align-items: center;
    min-width: 0;
    color: #001233;
    background: #fff;
    border: 1px solid rgba(0,18,51,.16);
}
.science-input input {
    min-width: 0;
    width: 100%;
    padding: 10px;
    border: 0;
    outline: 0;
    color: #001233;
    background: transparent;
}
.science-input i {
    flex: 0 0 auto;
    padding-right: 10px;
    color: rgba(0,18,51,.55);
    font-size: .7rem;
    font-style: normal;
    text-transform: none;
}
.science-calculator__target {
    grid-column: 1 / -1;
}
.science-calculator__target select {
    width: 100%;
    padding: 11px 38px 11px 12px;
    border: 1px solid rgba(0,18,51,.2);
    border-radius: 0;
    color: #001233;
    background: #fff;
    font: inherit;
    letter-spacing: .05em;
}
.science-calculator__fields label.is-unknown .science-input {
    color: #001233;
    border-color: #fe5000;
    background: #fff;
    box-shadow: inset 3px 0 0 #fe5000;
}
.science-calculator__fields input[readonly] {
    cursor: default;
    font-weight: 800;
}
.science-calculator > button {
    align-self: flex-start;
    padding: 11px 16px;
    color: #fff;
    background: #fe5000;
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.science-calculator__result {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid currentColor;
    border-color: color-mix(in srgb,currentColor 16%,transparent);
}
.science-calculator__result strong {
    display: block;
    color: #fe5000;
}
.science-calculator__result p {
    margin: 5px 0;
    font-size: .8rem;
    opacity: .72;
}
.science-calculator__formula {
    margin-top: 12px;
    overflow-x: auto;
    font-size: .82rem;
}
.science-calculator__result.is-error { color: #9f2d20; }
.science-calculator[hidden] { display: none; }
@media (max-width:767px) {
    .science-filter { position:relative; top:auto; margin-inline:-10px; }
    .science-calculator-grid { grid-template-columns:1fr; }
}
@media (max-width:480px) {
    .science-calculator__fields { grid-template-columns:1fr; }
}


/* Mobile containment for commercial and financial calculators. */
.finance-grid, .finance-tool, .finance-tool > *, .finance-advanced,
.finance-advanced > summary, .finance-compare, .finance-compare fieldset,
.finance-result { min-width:0; max-width:100%; }
.amortization-table { width:100%; max-width:100%; overflow-x:auto; overflow-y:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }
@media (max-width:767px) {
  #panel-finance { overflow:clip; padding-inline:clamp(16px,5vw,25px); }
  #panel-finance .finance-tool { padding-inline:clamp(16px,5vw,22px); }
  #panel-finance .finance-advanced > summary { align-items:flex-start; flex-direction:column; padding-inline:clamp(16px,5vw,22px); }
  #panel-finance .finance-filter { max-width:calc(100% + 20px); }
}
