body { color: #f7f7f3; background: #111b2c; }
.fixed-bg { position: fixed; inset: 0; z-index: -1; pointer-events: none; }
.op-intro { padding: 3.5rem 0 2.25rem; }
.op-intro h1 { max-width: 18ch; font-size: clamp(2.5rem, 5vw, 4.5rem); font-weight: 800; color: #f7f5ee; }
.op-intro > p:last-child { max-width: 45rem; margin-top: 1rem; }
.op-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(17rem, 1fr); align-items: start; gap: 1.2rem; padding-bottom: 3rem; }
.op-main { display: grid; gap: 1.2rem; min-width: 0; }
.op-panel { min-width: 0; padding: clamp(1.15rem, 2.5vw, 2rem); border: 1px solid #526d80; border-radius: 1rem; background: #17283a; box-shadow: 0 12px 30px rgba(0,0,0,.1); }
.op-step { margin-bottom: .5rem; color: #99d9ea; font-size: .73rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.op-panel h2 { margin-bottom: 1.5rem; font-size: 1.5rem; color: #f7f4ed; }
.op-panel h2::after { margin-left: 0; }
.op-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.op-field { display: grid; align-content: start; gap: .35rem; min-width: 0; font-size: .9rem; font-weight: 700; }
.op-field[hidden] { display: none; }
.op-wide { grid-column: 1 / -1; }
.op-field input, .op-field select, .op-field textarea { width: 100%; min-width: 0; min-height: 2.85rem; padding: .65rem .8rem; border: 1px solid #7790a2; border-radius: .55rem; background: #0e1c2b; color: white; font-weight: 500; }
.op-field :is(input, select, textarea):focus-visible,
.op-checks input:focus-visible,
.op-consent input:focus-visible,
.op-submit:focus-visible,
.op-panel a:focus-visible { outline: 3px solid #78dcf6; outline-offset: 3px; }
.op-field textarea { resize: vertical; }
.op-field input[type=file] { height: auto; max-width: 100%; overflow: hidden; font-size: .8rem; }
.op-field small { color: #c1d0dd; font-size: .75rem; font-weight: 500; }
.op-fixed-value { min-height: 2.85rem; padding: .65rem .8rem; border: 1px solid #7790a2; border-radius: .55rem; background: #0e1c2b; color: white; font-weight: 600; }
.op-hint { margin-top: 1.15rem; color: #c1d0dd; font-size: .83rem; }
.journal-gallery { display: grid; gap: 1rem; margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #526d80; }
.journal-gallery[hidden] { display: none; }
.journal-gallery__title { margin: 0; color: #f7f4ed; font-size: 1.05rem; font-weight: 700; line-height: 1.35; }
.journal-gallery__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.6rem, 2vw, 1rem); }
.journal-gallery__item { min-width: 0; margin: 0; }
.journal-gallery__image { display: block; overflow: hidden; border: 1px solid #8296a2; border-radius: .7rem; background: #f5f6f3; }
.journal-gallery__image:hover { border-color: #95e0f3; }
.journal-gallery__image:focus-visible { outline: 3px solid #78dcf6; outline-offset: 3px; }
.journal-gallery__image img { display: block; width: 100%; height: auto; aspect-ratio: 1122 / 1402; object-fit: contain; }
.journal-gallery__item figcaption { margin-top: .6rem; color: #e5edf2; font-size: .83rem; line-height: 1.4; }
.journal-gallery__note { margin: 0; color: #c1d0dd; font-size: .75rem; line-height: 1.5; }
.op-checks { display: grid; gap: .55rem; }
.op-checks label { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .6rem; padding: .75rem; border: 1px solid #526d80; border-radius: .65rem; cursor: pointer; }
.op-checks label[hidden] { display: none; }
.op-checks input, .op-consent input { flex: none; width: 1.1rem; height: 1.1rem; accent-color: #39badd; }
.op-checks label span { margin-left: auto; color: #bbd0da; font-size: .8rem; }
.op-consent { display: flex; align-items: flex-start; gap: .65rem; margin: 1.2rem 0; font-size: .85rem; }
.op-consent a, #order .muted a { color: #95e0f3; text-decoration: underline; }
.op-required { color: #e9ad9e; }
.op-optional { color: #aebdca; font-size: .8rem; font-weight: 500; }
.op-submit { padding: .8rem 1.2rem; border-radius: .6rem; }
.op-submit:disabled { opacity: .6; cursor: wait; }
.op-status { min-height: 1.5rem; margin-top: .75rem; font-size: .9rem; }
.op-status.is-error { color: #ffd0c4; }
.op-status.is-success { color: #b6f1c1; }
.op-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.op-result { position: sticky; top: 6rem; }
.op-result h2 { margin-bottom: 1rem; }
.op-price { margin: 1rem 0; font-size: clamp(2.2rem, 4vw, 3.3rem); font-weight: 800; line-height: 1.1; color: #e8f5e9; }
.op-price small { display: block; margin-bottom: .25rem; color: #c1d0dd; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.op-breakdown { display: grid; gap: .6rem; margin: 1rem 0; padding: 1rem 0; border-top: 1px solid #526d80; border-bottom: 1px solid #526d80; }
.op-breakdown div { display: flex; justify-content: space-between; gap: .5rem; font-size: .85rem; }
.op-breakdown dt { color: #c1d0dd; }
.op-breakdown dd { flex: none; text-align: right; font-weight: 700; }
.op-rule { margin-top: .8rem; color: #c1d0dd; font-size: .77rem; }
.op-quote { padding: .8rem; border: 1px solid #6c8996; border-radius: .6rem; color: #ecf8f9; font-size: .86rem; }
@media (max-width: 850px) { .op-layout { grid-template-columns: 1fr; } .op-result { position: static; grid-row: 1; } }
@media (max-width: 480px) { .op-intro { padding-top: 2rem; } .op-grid { grid-template-columns: 1fr; } .op-wide { grid-column: auto; } .op-checks label span { width: 100%; margin-left: 1.7rem; } .op-submit { width: 100%; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
