/* Costume registration uses the public carnival site's typography and palette.
   Loaded after the shared module stylesheet; administration stays independent. */
body.romo-public {
    --pink:#ec0b50; --pink-dark:#b9003b; --ink:#171315; --paper:#fffdf9; --gold:#f7b91d;
    --soft:#f7f1ef; --line:rgba(23,19,21,.16);
    margin:0; padding-bottom:0; background:var(--paper)!important; color:var(--ink)!important;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif!important;
    font-size:16px; line-height:1.55;
}
body.romo-public h1, body.romo-public h2 {
    font-family:'Arial Black',Impact,sans-serif; text-transform:uppercase; letter-spacing:0!important;
}
body.romo-public .site-header { border-bottom:1px solid var(--line); }
body.romo-public .site-header .brand { color:var(--ink); }
body.romo-public .site-header .brand img { width:52px; height:60px; object-fit:contain; border-radius:0; }
body.romo-public .site-header .brand small { display:block; font-size:11px; }
body.romo-public .costume-site-footer img { object-fit:contain; height:74px; }
body.romo-public .site-header .brand, body.romo-public .site-header .brand span { min-width:0; }
body.romo-public .costume-home { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; gap:8px; min-height:42px; padding:10px 15px; border:1px solid var(--line); border-radius:999px; color:var(--ink); background:var(--paper); font-size:13px; font-weight:700; line-height:1.2; text-decoration:none; white-space:nowrap; transition:background-color .18s ease,border-color .18s ease,color .18s ease; }
body.romo-public .costume-home svg { flex:none; }
body.romo-public .costume-home:hover { color:var(--pink-dark); background:#fff0f4; border-color:var(--pink); }
body.romo-public .kicker { color:var(--pink); font-size:12px; font-weight:850; text-transform:uppercase; letter-spacing:0; }
body.romo-public .romo-intro {
    max-width:var(--content); margin:0 auto; padding:48px 24px 28px;
    display:grid; grid-template-columns:1.05fr .85fr; gap:64px; align-items:center;
}
.romo-intro-copy h1 { margin:0 0 12px; color:var(--pink-dark); font-size:clamp(36px,4.5vw,60px); line-height:1.04; }
.romo-intro-copy>p { max-width:580px; }
body.romo-public .romo-intro-subtitle { font-size:23px; font-weight:750; margin:0 0 20px; }
body.romo-public .romo-motto {
    padding:0 0 0 16px; margin:24px 0; background:transparent; border:0; border-left:3px solid var(--gold);
    text-align:left; font-size:15px; font-weight:600; line-height:1.6;
}
body.romo-public .romo-intro .button { color:var(--ink); background:var(--gold); border-radius:4px; }
body.romo-public .romo-set-notes { margin-top:24px; font-size:14px; color:#665d61; }
.romo-set-notes p { margin:6px 0; }
.romo-costume-photo { margin:0; }
.romo-costume-photo img { display:block; width:100%; height:auto; max-height:590px; object-fit:contain; }
.romo-costume-photo figcaption { margin-top:8px; font-size:12px; color:#665d61; }
body.romo-public .romo-photo-details { border:0; padding:10px 0 0; }
body.romo-public .romo-photo-details>summary { padding:10px 0; font-size:14px; }
body.romo-public .romo-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:12px; }
body.romo-public .romo-gallery figure { min-width:0; margin:0; }
body.romo-public .romo-gallery img { width:100%; height:auto; aspect-ratio:1; object-fit:contain; border-radius:0; border:1px solid var(--line); }
body.romo-public .romo-gallery figcaption { padding:8px 0; font-size:12px; font-weight:500; }
body.romo-public .romo-prices { max-width:var(--content); margin:auto; padding:24px 24px 36px; }
body.romo-public .romo-prices h2 { margin:0 0 18px; font-size:26px; }
.romo-price-table { width:100%; border-collapse:collapse; text-align:left; font-size:15px; }
.romo-price-table th,.romo-price-table td { padding:14px 12px; border-bottom:1px solid var(--line); }
.romo-price-table thead th { font-size:13px; background:var(--soft); font-weight:750; }
.romo-price-table tbody th { font-weight:550; }
.romo-price-table th:first-child { padding-left:0; }
.romo-price-table thead th:first-child { padding-left:12px; }
.romo-price-table td,.romo-price-table thead th:not(:first-child) { text-align:right; white-space:nowrap; }
body.romo-public .muted { color:#665d61; font-size:13px; line-height:1.6; }
body.romo-public .romo-prices>.muted { margin:14px 0 0; }
body.romo-public .costume-main { max-width:var(--content); margin:0 auto; padding:32px 24px 48px; border:0; border-radius:0; background:transparent; }
body.romo-public .romo-form-heading { border:0; padding:0 0 24px; }
body.romo-public .romo-form-heading h2 { margin:0 0 12px!important; font-size:32px!important; }
body.romo-public .romo-form-heading p { margin:0; color:#665d61; font-size:15px; }
body.romo-public #costumeOrderForm { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:48px; align-items:start; scroll-margin-top:100px; }
body.romo-public details.romo-contact { padding:0 0 24px; margin:0 0 24px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
body.romo-public .romo-contact>summary { padding:0; min-height:44px; }
body.romo-public .romo-contact>summary strong { font-size:19px; letter-spacing:0!important; }
body.romo-public .romo-contact>summary small { font-size:13px; margin-top:5px; color:#665d61; }
body.romo-public .romo-contact-edit { color:var(--pink); font-size:13px; }
body.romo-public .romo-contact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
body.romo-public .romo-contact-grid label,body.romo-public .costume-item>.costume-grid label { font-size:14px; }
body.romo-public input:not([type=checkbox]):not([type=radio]),body.romo-public select,body.romo-public textarea {
    min-height:48px; font-family:inherit; font-size:16px; border:1px solid #b9b0b4; border-radius:4px; background:#fff; color:var(--ink);
}
body.romo-public .romo-phone { padding-top:4px; border:0; }
body.romo-public .romo-phone>summary { color:#665d61; font-size:13px; }
body.romo-public .costume-item { background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; margin:0 0 24px; padding:0 0 24px; }
body.romo-public .costume-item-tools { border:0; padding:0 0 18px; }
body.romo-public .costume-item-tools h3 { font-size:20px; font-weight:750; letter-spacing:0!important; }
body.romo-public .costume-item-tools button { border:1px solid var(--line); background:transparent; color:var(--ink); border-radius:4px; }
body.romo-public .romo-costume-choices { display:grid; gap:8px; border:0; padding:0; margin:0 0 18px; background:transparent; border-radius:0; }
body.romo-public label.romo-type-choice { display:grid; grid-template-columns:22px minmax(0,1fr) auto; gap:10px; padding:14px 12px; border:1px solid #d7cfcc; border-radius:4px; background:transparent; margin:0; font-size:14px; font-weight:550; box-shadow:none; }
body.romo-public .romo-type-choice:has(input:checked) { background:#fceaf0; border-color:var(--pink); box-shadow:inset 3px 0 var(--pink); }
body.romo-public .romo-type-choice strong { font-size:15px; }
body.romo-public details.romo-choice-help { margin:-4px 0 4px 32px; padding:0; border:0; background:transparent; }
body.romo-public .romo-choice-help>summary { display:flex; align-items:center; gap:8px; width:fit-content; min-height:44px; padding:0; list-style:none; cursor:pointer; color:#665d61; font-size:13px; font-weight:550; }
body.romo-public .romo-choice-help>summary::-webkit-details-marker { display:none; }
body.romo-public .romo-choice-help-mark { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border:1px solid currentColor; border-radius:50%; flex:none; font-weight:750; }
body.romo-public .romo-choice-help[open]>summary { color:var(--pink-dark); }
body.romo-public .romo-choice-help>p { margin:0 0 12px; padding:12px 14px; background:var(--soft); border-left:3px solid var(--gold); font-size:14px; line-height:1.55; }
body.romo-public .romo-person-match { background:transparent; color:#176743; padding:0; margin:10px 0; font-size:14px; border-radius:0; }
body.romo-public label.romo-other-person { font-size:13px; color:#665d61; margin:0 0 12px; padding:6px 0; }
body.romo-public .costume-item>.costume-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; }
body.romo-public .costume-person-questions { display:block; padding-top:0; margin-top:8px; border:0; }
body.romo-public .costume-field { margin:18px 0; }
body.romo-public .costume-field>label { font-size:14px; margin-bottom:8px; }
body.romo-public .costume-field>.muted { font-size:13px; }
body.romo-public .costume-field>fieldset { padding:0; border:0; background:transparent; border-radius:0; }
body.romo-public .costume-field .check { font-size:14px; gap:10px; padding:10px 0; min-height:44px; margin:0; }
body.romo-public input[type=checkbox],body.romo-public input[type=radio] { width:22px; height:22px; flex:0 0 22px; accent-color:var(--pink); }
body.romo-public button,body.romo-public .costume-submit { font-family:inherit; border-radius:4px; }
body.romo-public #costumeAddPerson { min-height:48px; border:1px solid var(--ink); border-radius:4px; background:transparent; color:var(--ink); font-size:14px; }
body.romo-public .romo-checkout { position:sticky; top:100px; min-width:0; padding:24px; border:0; border-radius:4px; background:var(--soft); }
body.romo-public .romo-checkout .costume-cart { margin:0; padding:0; border:0; border-radius:0; background:transparent; }
body.romo-public .romo-checkout h2 { margin:0 0 18px; font-size:21px; }
body.romo-public .romo-checkout .costume-cart-row { font-size:14px; padding:14px 0; gap:12px; border-color:var(--line); }
body.romo-public .romo-checkout .costume-cart-total { margin:20px 0 12px; font-size:24px; color:var(--ink); letter-spacing:0!important; }
body.romo-public #costumeQuoteMessage { font-size:13px; color:#665d61; }
body.romo-public .romo-checkout .muted { font-size:13px; }
body.romo-public .romo-checkout .costume-submit { min-height:50px; margin-top:12px; background:var(--gold); color:var(--ink); box-shadow:none; font-size:15px; font-weight:850; }
body.romo-public .romo-cart-description>strong { font-size:14px; }
body.romo-public .romo-cart-description>span { font-size:13px; }
body.romo-public .romo-cart-description>small { font-size:12px; }
body.romo-public .romo-cart-price strong { font-size:15px; }
body.romo-public .romo-cart-saving { border-radius:0; padding:10px 0; background:transparent; font-size:13px; }
body.romo-public .romo-notes { margin-top:44px; padding-top:32px; border-top:1px solid var(--line); }
body.romo-public .romo-notes h2 { font-size:26px; margin:0 0 20px; }
body.romo-public .romo-notes details { border-color:var(--line); }
body.romo-public .romo-notes summary { min-height:44px; font-size:15px; }
body.romo-public .romo-notes p { font-size:14px; color:#665d61; }
body.romo-public .romo-sponsor { max-width:var(--content); margin:0 auto; padding:30px 24px 38px; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; }
body.romo-public .romo-sponsor h2 { font-family:inherit; text-transform:none; font-size:16px; margin:0 0 8px; }
body.romo-public .romo-sponsor p { font-size:14px; margin:0; }
body.romo-public .romo-sponsor-logo { width:240px; min-height:44px; background:transparent; }
body.romo-public .romo-sponsor-caption { font-size:12px; color:#665d61; }
body.romo-public .costume-site-footer { max-width:none; margin:0; padding:40px max(24px,calc((100vw - var(--content))/2)); border:0; background:var(--ink); color:white; text-align:left; font-size:14px; }
body.romo-public .costume-site-footer nav a { color:rgba(255,255,255,.78); font-weight:500; }
body.romo-public .costume-site-footer strong { line-height:1.5; }
body.romo-public .costume-site-footer small { font-weight:400; }
body.romo-public .romo-receipt { max-width:720px; margin:12px auto 40px; padding:20px 0; background:transparent; border:0; border-radius:0; text-align:left; box-shadow:none; }
body.romo-public .romo-receipt[data-costume-success] { width:100%; max-width:960px; box-sizing:border-box; }
body.romo-public .romo-receipt[data-costume-success] .costume-cart-row strong { flex-shrink:0; white-space:nowrap; }
body.romo-public .romo-receipt h1 { color:var(--pink-dark); font-size:clamp(28px,4vw,42px); line-height:1.15; letter-spacing:0!important; }
body.romo-public .romo-receipt-mark { margin:16px 0; background:transparent; width:auto; height:auto; display:block; border-radius:0; }
body.romo-public .romo-receipt-lead { font-size:16px; margin:14px 0; }
body.romo-public .romo-receipt-number { display:block; border-radius:0; background:transparent; padding:0; font-size:14px; }
body.romo-public .romo-receipt-number strong { margin-left:6px; }
body.romo-public .romo-receipt-cart { margin:24px 0; padding:0; background:transparent; border:0; border-radius:0; }
body.romo-public .romo-receipt-cart .costume-cart-row { font-size:14px; }
body.romo-public .romo-receipt-cart .costume-cart-total { border-top:2px solid var(--gold); font-size:16px; color:var(--ink); }
body.romo-public .romo-receipt-cart .costume-cart-total span { color:var(--ink); }
body.romo-public .romo-receipt .costume-submit { min-height:50px; background:var(--gold); color:var(--ink); box-shadow:none; }
body.romo-public .romo-receipt-back { min-height:48px; border-radius:4px; background:var(--gold); color:var(--ink); font-weight:850; }
body.romo-public .romo-cancel-order { margin:-8px 0 24px; }
body.romo-public .romo-cancel-order summary { display:inline-flex; align-items:center; gap:9px; min-height:42px; padding:7px 13px; border:1px solid #efc4cc; border-radius:5px; background:#fff2f4; color:#a51f3c; cursor:pointer; font-size:14px; font-weight:750; }
body.romo-public .romo-cancel-order summary::-webkit-details-marker { display:none; }
body.romo-public .romo-cancel-mark { display:block; width:21px; height:21px; color:#b4233a; flex:none; }
body.romo-public .romo-cancel-order[open] { padding:10px 14px 14px; background:#fff7f8; border-left:3px solid #b4233a; }
body.romo-public .romo-cancel-order[open] p { margin:4px 0 10px; color:#665d61; font-size:13px; }
body.romo-public .romo-cancel-order form { margin:0; }
body.romo-public .romo-cancel-order button { min-height:40px; padding:6px 13px; border:1px solid #e6aab5; border-radius:4px; background:#fff; color:#a51f3c; box-shadow:none; font-size:13px; }
body.romo-public .romo-payment-content { max-width:720px; margin:12px auto 40px; }
body.romo-public .romo-payment-content h1 { color:var(--pink-dark); font-size:clamp(22px,6vw,34px); overflow-wrap:anywhere; }
body.romo-public .romo-payment-content h2 { font-size:22px; line-height:1.3; }
body.romo-public .romo-payment-content .club-payment-title { font-family:inherit; font-size:16px; line-height:1.5; font-weight:550; color:#665d61; text-transform:none; }
body.romo-public .romo-payment-content section { padding:24px 0; border-top:1px solid var(--line); }
body.romo-public .romo-payment-content .costume-cart-total { padding:18px 0; border-bottom:3px solid var(--gold); color:var(--ink); font-size:32px; }
body.romo-public .romo-payment-content dl { margin:20px 0; }
body.romo-public .romo-payment-content dt { margin-top:14px; color:#665d61; font-size:13px; }
body.romo-public .romo-payment-content dd { margin:2px 0 0; font-weight:650; overflow-wrap:anywhere; }
body.romo-public .romo-payment-content button { min-height:48px; max-width:100%; background:var(--gold); color:var(--ink); box-shadow:none; }
body.romo-public .romo-payment-content button.secondary { background:transparent; border:1px solid var(--line); }
@media(max-width:860px) {
    body.romo-public .site-header { gap:16px; }
    body.romo-public .romo-intro { grid-template-columns:1fr; gap:28px; padding:30px 18px 24px; }
    body.romo-public .romo-intro h1 { font-size:40px; }
    body.romo-public .romo-intro-subtitle { font-size:21px; }
    body.romo-public .romo-intro .button { width:100%; }
    body.romo-public .romo-photo-column { max-width:480px; width:100%; margin:auto; }
    body.romo-public .romo-prices { padding:20px 18px 28px; }
    body.romo-public .romo-price-table { font-size:14px; }
    body.romo-public .romo-price-table th,body.romo-public .romo-price-table td { padding:12px 8px; }
    body.romo-public .romo-price-table th:first-child { padding-left:0; }
    body.romo-public .romo-price-table thead th:first-child { padding-left:8px; }
    body.romo-public .costume-main { padding:26px 18px 36px; }
    body.romo-public .romo-form-heading h2 { font-size:28px!important; }
    body.romo-public #costumeOrderForm { display:block; }
    body.romo-public .romo-checkout { position:static; padding:22px 18px; margin-top:24px; border-radius:4px; }
    body.romo-public .romo-notes h2 { font-size:23px; }
    body.romo-public .romo-sponsor { margin:0 18px; padding:26px 0 32px; flex-direction:column; align-items:flex-start; gap:18px; }
    body.romo-public .romo-sponsor>a { align-self:flex-start; }
    body.romo-public .costume-site-footer { padding:30px 18px; }
    body.romo-public .romo-receipt { margin:0 auto 30px; padding:12px 0; }
}
@media(max-width:360px) {
    body.romo-public .costume-home { gap:6px; padding:10px; font-size:12px; }
    body.romo-public .site-header { padding-inline:16px; gap:12px; }
    body.romo-public .site-header .brand { gap:8px; }
    body.romo-public .site-header .brand img { width:42px; height:42px; }
    body.romo-public .site-header .brand b { font-size:13px; }
    body.romo-public .romo-price-table { font-size:13px; }
    body.romo-public .romo-price-table thead th { font-size:12px; }
    body.romo-public label.romo-type-choice { padding:12px 10px; font-size:13px; }
    body.romo-public .romo-type-choice strong { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) { body.romo-public * { scroll-behavior:auto!important; } }

/* Inline 3D view: load near the viewport and animate only while visible. */
body.romo-public section.romo-3d{padding:0;border:0;margin:4px 0 0}
body.romo-public .romo-3d-stage{height:390px;position:relative;touch-action:pan-y}
body.romo-public .romo-3d-stage canvas{display:block;width:100%;height:100%;touch-action:pan-y}
body.romo-public .romo-3d-stage p{position:absolute;inset:36px 16px auto;color:#665d61;font-size:14px}
body.romo-public .romo-3d-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:end}
body.romo-public .romo-3d-controls label{display:grid;gap:4px;margin:0;font-size:13px}
body.romo-public .romo-3d-controls input[type=range]{display:block;width:100%;min-height:40px;padding:0;border:0;background:transparent;accent-color:var(--pink)}
body.romo-public .romo-3d-controls output{padding-bottom:10px;font-size:13px;font-variant-numeric:tabular-nums;min-width:40px;text-align:right}
body.romo-public .romo-3d-controls button{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink);box-shadow:none;font-size:13px}
body.romo-public .romo-3d-caption{font-size:12px;color:#665d61;margin:10px 0 0}
@media(max-width:420px){body.romo-public .romo-3d-stage{height:350px}body.romo-public .romo-3d-controls{gap:8px}}

body.romo-public .romo-checkout .romo-3d-stage{height:280px}
body.romo-public .romo-checkout section.romo-3d{margin:8px 0 12px}
body.romo-public .romo-checkout .romo-3d-controls{gap:8px}

/* Photo enlargement requested for the additional costume pictures. */
body.romo-public .romo-photo-open{display:block;cursor:zoom-in}
body.romo-public .romo-photo-open:focus-visible{outline:3px solid #c80854;outline-offset:4px}
.romo-photo-dialog{box-sizing:border-box;width:min(1100px,94vw);max-width:94vw;max-height:94dvh;padding:16px;border:0;background:#fffcf7;color:#211c29;overflow:auto}
.romo-photo-dialog::backdrop{background:rgba(0,0,0,.82)}
.romo-photo-dialog img{display:block;width:100%;height:auto;max-height:76dvh;object-fit:contain}
.romo-photo-dialog p{margin:12px 0 0;text-align:center}
.romo-photo-dialog .romo-photo-close{display:block;margin:0 0 12px auto;min-height:44px;padding:8px 16px;border:1px solid #211c29;background:#fff;color:#211c29;cursor:pointer;font:inherit}
.romo-photo-viewing{overflow:hidden}
body.romo-public .romo-membership-application{display:inline-block;margin-top:12px;text-decoration:underline;font-weight:700}

/* The confirmation figure drives in and throws confetti from both hands. */
body.romo-public .romo-receipt section.romo-3d{max-width:620px;margin:0 auto 12px}
body.romo-public .romo-receipt .romo-3d-stage{height:320px;overflow:hidden}
body.romo-public .romo-3d-controls[hidden],body.romo-public .romo-3d-caption[hidden]{display:none!important}
body.romo-public .romo-animation-demo{max-width:760px;margin:0 auto;padding:28px 20px 48px}
body.romo-public .romo-animation-demo h1{font-size:clamp(30px,7vw,48px);line-height:1.1;margin:10px 0}
body.romo-public .romo-animation-demo [hidden]{display:none!important}
body.romo-public .romo-animation-demo form{margin-top:22px}
body.romo-public .romo-animation-demo .costume-submit{margin:14px 0;min-height:52px}
body.romo-public .romo-animation-demo .romo-3d-stage{height:360px}
@media(max-width:480px){body.romo-public .romo-receipt .romo-3d-stage{height:270px}body.romo-public .romo-animation-demo .romo-3d-stage{height:300px}}

body.romo-public .romo-workshop{max-width:820px;margin:12px auto 36px;padding:34px 24px 28px;text-align:center;border-radius:26px;background:linear-gradient(145deg,#fff9ed,#fff0f5);border:1px solid #f1dedc}
body.romo-public .romo-workshop h1{font-size:clamp(32px,6vw,56px);line-height:1.08;margin:10px 0 18px;color:#a50037}
body.romo-public .romo-workshop-lead{max-width:570px;margin:0 auto;font-size:18px;line-height:1.6}
body.romo-public .romo-workshop .romo-3d{max-width:650px;margin:10px auto 0}
body.romo-public .romo-workshop .romo-3d-stage{height:390px;cursor:default;touch-action:pan-y}
body.romo-public .romo-workshop-joke{font-weight:800;color:#a50037;font-size:18px;margin:0 0 16px}
@media(max-width:480px){body.romo-public .romo-workshop{padding:26px 14px}body.romo-public .romo-workshop .romo-3d-stage{height:310px}}
