:root { --ink:#17283d; --paper:#faf7ef; --gold:#c29b53; }
* { box-sizing:border-box; }
body { margin:0; background:linear-gradient(120deg,#f5f0e4,var(--paper) 45%,#edece3); color:var(--ink); font:15px/1.65 'Instrument Sans',sans-serif; }
a { color:inherit; text-underline-offset:4px; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.5; }
[hidden] { display:none !important; }
:focus-visible { outline:2px solid #a2752c; outline-offset:4px; }
.ao-header { display:flex; align-items:center; justify-content:space-between; padding:18px max(22px,calc((100% - 1160px)/2)); border-bottom:1px solid #17283d1a; gap:20px; }
.ao-brand { display:flex; align-items:center; gap:12px; font:600 30px 'Cormorant Garamond',serif; text-decoration:none; }
.ao-brand img { border-radius:50%; }
.ao-header>a:last-child { display:inline-flex; align-items:center; min-height:44px; font-size:12px; }
.ao-shell { max-width:1160px; margin:46px auto 70px; padding:0 24px; }
.ao-intro h1 { font:600 clamp(44px,5vw,67px)/.98 'Cormorant Garamond',serif; margin:14px 0 20px; letter-spacing:-.02em; }
.ao-intro h1 em { color:#906d34; font-weight:500; }
.ao-intro p { color:#596875; }
.ao-trust { display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:20px; color:#765d35; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.ao-trust span::before { content:'✓'; margin-right:7px; color:#b48639; }
.ao-eyebrow { font-size:10px; text-transform:uppercase; letter-spacing:.16em; color:#8e6a31; font-weight:600; }
.ao-local { border-top:1px solid #b5945740; border-bottom:1px solid #b5945740; padding:12px 0; margin:30px 0; color:#756447; font-size:12px; }
.ao-journey-note { display:grid; grid-template-columns:auto 1fr; column-gap:14px; max-width:760px; margin:28px 0 36px; padding:16px 20px; border:1px solid #c29b5345; background:rgba(255,252,244,.72); box-shadow:0 18px 55px #17283d0a; }
.ao-journey-note>span { grid-row:1 / 3; align-self:center; padding:6px 9px; background:var(--ink); color:#fff; font-size:9px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.ao-journey-note strong,.ao-journey-note small { display:block; }
.ao-journey-note strong { font:600 21px 'Cormorant Garamond',serif; }
.ao-journey-note small { color:#64707b; }
.ao-layout { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
fieldset { border:0; padding:0; margin:0 0 30px; min-width:0; }
legend { font:600 25px 'Cormorant Garamond',serif; margin-bottom:16px; }
.ao-products { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.ao-products label:has(input:disabled:not(:checked)) { display:none; }
.ao-products:has(label input:disabled) { grid-template-columns:1fr; }
.ao-products label { position:relative; cursor:pointer; }
.ao-products input { position:absolute; top:15px; right:12px; accent-color:#9e7939; }
.ao-products label>span { display:block; border:1px solid #17283d30; padding:18px; border-radius:6px; background:#fff8; }
.ao-products label:has(input:checked)>span { border-color:#a27e3e; background:#fffaf0; box-shadow:0 0 0 1px #a27e3e; }
.ao-products strong { display:block; font:600 31px 'Cormorant Garamond',serif; margin-top:9px; }
.ao-products small { font-size:11px; color:#64707b; }
.ao-current-product .ao-products { grid-template-columns:1fr; }
.ao-current-product .ao-products label>span { display:grid; grid-template-columns:1fr auto; align-items:center; gap:2px 18px; }
.ao-current-product .ao-products strong { grid-column:2; grid-row:1 / 3; margin:0; color:#8b672e; font-size:24px; }
.ao-current-product .ao-products small { grid-column:1; }
.ao-field { display:block; margin:0 0 18px; font-weight:500; }
.ao-field input,.ao-field select { display:block; width:100%; margin-top:7px; padding:12px; border:1px solid #17283d33; border-radius:5px; background:#fffc; font-size:16px; }
.ao-field small { display:block; margin-top:7px; color:#596875; font-size:12px; font-weight:400; }
.ao-cast { margin:0 0 24px; padding:18px; border:1px solid #c29b5345; background:#fffaf2; }
.ao-cast legend { margin:0 0 3px; font-size:21px; }
.ao-cast>.ao-help { margin:0 0 12px; }
.ao-character-choices { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.ao-character-choices label { display:flex; align-items:center; gap:10px; padding:11px; border:1px solid #17283d20; background:#fff; cursor:pointer; }
.ao-character-choices label:has(input:checked) { border-color:#a9803e; box-shadow:inset 3px 0 #a9803e; }
.ao-character-choices input { accent-color:#9e7939; }
.ao-character-choices strong,.ao-character-choices small { display:block; }
.ao-character-choices small { color:#737d86; font-size:10px; }
.ao-help { font-size:12px; color:#66727b; line-height:1.7; }
.ao-primary { display:block; width:100%; min-height:50px; padding:12px 17px; border:0; border-radius:5px; background:var(--ink); color:#fffaf0; font-weight:600; }
.ao-generate { display:block; width:100%; min-height:50px; margin-top:10px; padding:12px 17px; border:1px solid #a9803e; border-radius:5px; background:#fff9eb; color:#765522; font-weight:600; }
.ao-order { margin-top:32px; padding-top:22px; border-top:1px solid #17283d25; }
.ao-included { display:grid; grid-template-columns:38px 1fr; gap:0 12px; align-items:center; padding:16px; background:#f4f7ef; border:1px solid #78926f35; }
.ao-included>span { grid-row:1 / 3; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#587157; color:#fff; }
.ao-included strong,.ao-included small { display:block; }
.ao-included small { color:#637064; }
.ao-internal-only { display:none !important; }
h2 { font:600 29px 'Cormorant Garamond',serif; }
.ao-total { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ao-total strong { font:600 34px 'Cormorant Garamond',serif; white-space:nowrap; }
.ao-consent { display:flex; gap:12px; align-items:flex-start; font-size:13px; margin:22px 0; padding:12px 0; cursor:pointer; }
.ao-consent input { width:20px; height:20px; flex:none; margin:3px 0 0; accent-color:var(--ink); }
#accessoryStatus { font-size:13px; }
#accessoryStatus.is-confirmed { margin-top:18px; padding:16px 18px; border-left:3px solid #587157; background:#f4f7ef; color:#304a36; font-weight:600; }
.ao-preview { position:sticky; top:24px; min-width:0; }
.ao-preview>.ao-eyebrow { display:block; margin-bottom:12px; }
.ao-preview .bl-product-stage { border-radius:5px; height:560px; }
.ao-fallback { max-width:50%; max-height:65%; object-fit:contain; }
.has-webgl .ao-fallback { visibility:hidden; }
.ao-preview-note { font-size:12px; margin-top:16px; }
.ao-download { display:block; margin-top:12px; padding:15px; background:#e7eddc; border-radius:5px; text-align:center; font-weight:600; text-decoration:none; }
.ao-footer { text-align:center; padding:30px 20px; border-top:1px solid #17283d20; font-size:12px; }
.ao-footer p { margin:0 0 10px; }
.ao-footer nav { display:flex; flex-wrap:wrap; justify-content:center; gap:2px 22px; }
.ao-footer nav a { display:inline-flex; align-items:center; min-height:44px; }
.ao-consent { display:flex; align-items:flex-start; gap:12px; padding:12px 0; cursor:pointer; }

.ao-status { padding:14px 16px; background:#fffaf0; border:1px solid #b3945c66; border-left:3px solid #9a7739; border-radius:4px; color:var(--ink); overflow-wrap:anywhere; }
.ao-status:empty { display:none; }
.ao-support { margin-top:24px; }
.ao-support a { font-weight:600; }
.ao-primary:hover:not(:disabled) { background:#263f5c; }
.ao-generate:hover:not(:disabled) { background:#eee3ca; }
.ao-access-error { max-width:680px; margin:64px auto 80px; text-align:center; }
.ao-error-mark { display:grid; place-items:center; width:64px; height:64px; margin:24px auto; border:1px solid #b3945c; border-radius:50%; color:#96702e; font:600 29px 'Cormorant Garamond',serif; }
.ao-access-error h1 { margin:0 0 24px; font:600 clamp(42px,6vw,66px)/1.03 'Cormorant Garamond',serif; letter-spacing:-.025em; }
.ao-access-error h1 em { color:#906d34; font-weight:500; }
.ao-access-error>p:not(.ao-eyebrow) { max-width:490px; margin:0 auto; color:#596875; }
.ao-error-actions { display:flex; justify-content:center; gap:12px; margin-top:30px; }
.ao-error-actions a { display:flex; align-items:center; justify-content:center; width:auto; margin:0; text-decoration:none; font-size:14px; }
@media(max-width:480px) { .ao-error-actions { flex-direction:column; }.ao-access-error { margin-top:40px; margin-bottom:50px; } }
.ao-order-shell { max-width:1040px; }
.ao-order-title { margin:14px 0 18px; font:600 clamp(46px,7vw,78px)/.92 'Cormorant Garamond',serif; letter-spacing:-.035em; }
.ao-order-title em { color:#906d34; font-weight:500; }
.ao-order-lead { max-width:680px; color:#596875; font-size:17px; }
.ao-gate { max-width:720px; margin-top:42px; padding:34px; background:#fffaf2; border:1px solid #c29b5345; box-shadow:0 24px 70px #17283d12; }
.ao-gate h2 { margin:0 0 8px; }
.ao-gate-controls { display:flex; align-items:end; gap:16px; margin-top:26px; }
.ao-quantity { width:245px; color:#596875; font-size:12px; }
.ao-quantity>span,.ao-quantity>small { display:block; }
.ao-quantity>div { display:grid; grid-template-columns:48px 1fr 48px; margin:7px 0; border:1px solid #17283d35; background:white; }
.ao-quantity button { border:0; background:#f2ebdc; color:#17283d; font-size:22px; }
.ao-quantity input { width:100%; min-height:48px; border:0; border-left:1px solid #17283d20; border-right:1px solid #17283d20; text-align:center; font-weight:600; appearance:textfield; }
.ao-quantity input::-webkit-inner-spin-button { appearance:none; }
.ao-quantity small { min-height:34px; color:#806a47; line-height:1.4; }
.ao-gate-controls .ao-primary { flex:1; }
.ao-order-summary { display:flex; justify-content:space-between; align-items:end; gap:24px; margin:44px 0 22px; border-bottom:1px solid #17283d20; padding-bottom:20px; }
.ao-order-summary h2 { margin:6px 0 0; }
.ao-order-summary>p { margin:0; display:flex; align-items:baseline; gap:8px; white-space:nowrap; }
.ao-order-summary>p strong { font:600 34px 'Cormorant Garamond',serif; }
.ao-order-summary>p span { color:#65717d; font-size:12px; }
.ao-unit-grid { display:grid; gap:12px; }
.ao-unit { display:grid; grid-template-columns:58px 1fr auto; align-items:center; gap:20px; padding:20px 22px; background:#fff; border:1px solid #17283d18; box-shadow:0 12px 35px #17283d0a; }
.ao-unit-number { color:#b08a48; font:600 24px 'Cormorant Garamond',serif; }
.ao-unit p,.ao-unit h3 { margin:0; }
.ao-unit p { color:#687480; font-size:11px; text-transform:uppercase; letter-spacing:.09em; }
.ao-unit h3 { font:600 25px 'Cormorant Garamond',serif; }
.ao-unit small { color:#7a6a4f; }
.ao-unit a { padding:11px 16px; border:1px solid #17283d; text-decoration:none; font-weight:600; font-size:12px; }
.ao-unit.is-complete { border-color:#6d8b7045; background:#f8fbf5; }
.ao-security-note { margin-top:30px; padding:22px 24px; border-left:3px solid #c29b53; background:#17283d08; }
.ao-security-note p { margin:5px 0 0; color:#596875; }
@media(max-width:800px) { .ao-shell { margin-top:30px; } .ao-layout { grid-template-columns:1fr; gap:30px; } .ao-preview { position:static; grid-row:1; } .ao-preview .bl-product-stage { height:410px; } .ao-header { padding:15px 20px; } .ao-header>a:last-child { max-width:100px; text-align:right; } }
@media(max-width:650px) { .ao-order-title { font-size:48px; } .ao-gate { padding:24px 20px; } .ao-gate-controls { align-items:stretch; flex-direction:column; } .ao-quantity { width:100%; } .ao-character-choices { grid-template-columns:1fr; } .ao-order-summary { display:block; } .ao-order-summary>p { margin-top:12px; } .ao-unit { grid-template-columns:38px 1fr; padding:18px 16px; gap:12px; } .ao-unit a { grid-column:1 / -1; text-align:center; } }

/* Atelier: actual request state and persistent paid-unit proposals. */
.ao-work{position:sticky;top:12px;z-index:10;display:flex;gap:18px;align-items:center;padding:22px 26px;margin:24px 0;background:#193e35;color:#fffdf6;border:1px solid #c7ad71;border-radius:18px;box-shadow:0 12px 40px #173b3520}.ao-work[hidden]{display:none}.ao-work p{margin:5px 0 0;color:#e0e9df;font-size:14px}.ao-spinner{width:28px;height:28px;flex:none;border:3px solid #ffffff40;border-top-color:#e2c681;border-radius:50%;animation:ao-spin 1s linear infinite}@keyframes ao-spin{to{transform:rotate(360deg)}}
.ao-type-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ao-proposals,.ao-mosaic{margin-top:28px;padding:24px;background:#f6f2e8;border:1px solid #ded7c9;border-radius:16px}.ao-proposals h2,.ao-mosaic h2{font:32px/1.1 'Cormorant Garamond',Georgia,serif;margin:6px 0 12px}.ao-proposals p,.ao-mosaic p{font-size:14px;line-height:1.65;color:#55635e}.ao-proposal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ao-proposal{display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid #cfc6b8;border-radius:12px;background:#fffdf8;color:#243f39;text-align:left;font:inherit;cursor:pointer;min-width:0}.ao-proposal[aria-pressed=true]{border:2px solid #276051;box-shadow:0 0 0 3px #27605116}.ao-proposal img{width:100%;height:125px;object-fit:contain;background:#eee9df;border-radius:6px}.ao-proposal span{font-size:12px;line-height:1.4}.ao-proposal strong{font-size:13px}.ao-mosaic select{display:block;width:100%;padding:12px;border:1px solid #ccc2b4;border-radius:8px;margin:8px 0 14px;background:#fffdf9;color:#243f39}.ao-layout[aria-busy=true] .ao-design{opacity:.72}.ao-layout button:disabled{cursor:wait}.ao-proposal:focus-visible,#refreshProposals:focus-visible{outline:3px solid #bd9450;outline-offset:3px}@media(max-width:600px){.ao-work{top:8px;padding:18px;gap:12px}.ao-type-controls{grid-template-columns:1fr}.ao-proposals,.ao-mosaic{padding:18px}.ao-proposal-grid{gap:8px}.ao-proposal img{height:100px}}@media(prefers-reduced-motion:reduce){.ao-spinner{animation:none;border-top-color:#e2c681}}
