@font-face{font-family:Alexandria;src:url(fonts/Alexandria-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:Alexandria;font-weight:600 900;src:url(fonts/Alexandria-SemiBold.ttf) format("truetype");font-display:swap}
@font-face{font-family:Poppins;src:url(fonts/Poppins-Regular.ttf) format("truetype");font-display:swap}
@font-face{font-family:Poppins;font-weight:600 900;src:url(fonts/Poppins-SemiBold.ttf) format("truetype");font-display:swap}
/* Authored card styles: shared by editor, public page, and print. */
*{box-sizing:border-box}
.stage{container-type:inline-size}.card{--c:#163e43;--a:#a6ecd4;--fg:white;--cardFont:Alexandria,sans-serif;--cardLatin:Poppins,Alexandria,sans-serif;--photoRadius:50%;isolation:isolate;position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:8px;width:100%;aspect-ratio:1.68;min-height:195px;padding:17px;padding:clamp(15px,4.9cqw,29px);border-radius:13px;background:var(--c);color:var(--fg);overflow:hidden;box-shadow:0 13px 26px -17px #102e31aa;font-family:var(--cardFont)}
.card>*:not(.motif){position:relative;z-index:1}.motif{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}.motif i{display:block;position:absolute}.top,.person{display:flex;align-items:center;gap:10px;min-width:0}.top{min-height:16px;font-weight:600;font-size:clamp(10px,2.7cqw,16px)}.top img{max-width:23%;width:auto;height:26px;height:clamp(20px,6.5cqw,34px);object-fit:contain}
.top span{max-width:76%;overflow-wrap:anywhere}.person{align-self:center}.identity{min-width:0;max-width:100%;flex:1}.person img{width:56px;width:clamp(42px,16cqw,90px);aspect-ratio:1;display:block;object-fit:cover;flex:none;border-radius:var(--photoRadius);border:2px solid var(--a)}
.identity h2,.identity p,.identity small{margin:0;max-width:100%;overflow-wrap:anywhere}.identity h2{font-size:22px;font-size:clamp(19px,5.6cqw,35px);line-height:1.45;font-weight:600}.identity p{font-family:var(--cardLatin);font-size:14px;font-size:clamp(12px,3.45cqw,20px);line-height:1.45;letter-spacing:-.35px}.identity small{display:block;font-size:clamp(9px,2.5cqw,14px);line-height:1.6;margin-top:3px}
.identity :empty,.top span:empty{display:none}.card footer{direction:ltr;display:flex;align-items:flex-start;flex-wrap:wrap;gap:2px 12px;padding-top:9px;border-top:1px solid currentColor;border-top:1px solid color-mix(in srgb,currentColor 28%,transparent);font:400 clamp(9px,2.55cqw,14px)/1.4 var(--cardLatin);max-width:100%;min-height:10px}.card footer:empty{border-color:var(--a);width:34px}.card footer span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card[data-typeface=editorial]{--cardFont:serif;--cardLatin:Georgia,serif}.card[data-typeface=system]{--cardFont:system-ui,sans-serif;--cardLatin:system-ui,sans-serif}.card[data-shape=soft]{--photoRadius:22%}.card[data-shape=square]{--photoRadius:1px}
.classic .motif i{width:84%;aspect-ratio:1;border:1px solid var(--a);border-radius:50%;opacity:.19;left:-43%;bottom:-67%}.classic .motif i:nth-child(2){width:99%;left:-50%;bottom:-80%}.classic .motif i:nth-child(3){width:111%;left:-55%;bottom:-91%}
.classic .top:before,.signature .top:before{content:'';width:19px;height:3px;background:var(--a)}.classic .top:has(img:not([hidden])):before,.signature .top:has(img:not([hidden])):before{display:none}
.paper{background:#fffefa;color:#20312f;border:1px solid #d8ded4;border-inline-start:7px solid var(--c)}.paper .top{color:#344a48}.paper .motif{background:linear-gradient(175deg,transparent 72%,color-mix(in srgb,var(--a) 13%,white) 72%)}.paper .person{gap:14px}.paper .identity h2{color:#1f312f}.paper footer{color:#384b48;border-top:1px solid #c5d1c8}.paper .top:after{content:'';flex:1;height:1px;background:var(--c);opacity:.42}
.bold .motif i:first-child{width:47%;height:100%;left:0;top:0;background:var(--a);clip-path:polygon(0 0,60% 0,14% 100%,0 100%)}.bold .motif i:nth-child(2){width:30%;height:100%;left:4%;top:0;background:var(--a);clip-path:polygon(74% 0,81% 0,11% 100%,4% 100%);opacity:.75}.bold{padding-left:19%;padding-left:clamp(45px,20cqw,105px)}.bold footer{justify-content:flex-end}.bold .person{flex-direction:row-reverse}
.stripe{padding-left:26%;padding-left:clamp(65px,27cqw,145px);background:#fffefa;color:#182e30}.stripe .motif{background:linear-gradient(90deg,var(--c) 0 19%,var(--a) 19% 21%,transparent 21%)}.stripe .motif i:first-child{width:10.5%;height:3px;background:var(--a);top:16%;left:4%}.stripe .motif i:nth-child(2){width:5.5%;height:3px;background:var(--a);top:20%;left:4%}.stripe .person{position:static!important}.stripe .person img{position:absolute;width:19%;left:1%;top:50%;transform:translateY(-50%)}.stripe footer{border-color:#becdc5}
.gallery{padding-left:43%;background:var(--c);color:var(--fg)}.gallery .person{position:static!important}.gallery .person img{position:absolute;left:0;top:0;bottom:0;width:36%;height:100%;border:none;border-radius:0;object-fit:cover;object-position:50% 25%}.gallery .motif{width:36%;right:auto;left:0;background:var(--a)}.gallery .motif i{width:90%;aspect-ratio:1;border:1px solid var(--c);border-radius:50%;opacity:.35;left:-35%;top:15%}.gallery .motif i:nth-child(2){left:25%;top:47%}.gallery .motif i:nth-child(3){left:60%;top:75%}.gallery footer{display:grid}
.signature .motif:before{content:'';position:absolute;inset:8px;border:1px solid var(--a);opacity:.5}.signature .top,.signature .person{justify-content:center;text-align:center}.signature .person{flex-direction:column;gap:4px}.signature .person img{width:clamp(30px,9cqw,48px)}.signature .identity{flex:0 1 auto}.signature .identity h2{font-size:clamp(17px,4.8cqw,29px)}.signature footer{justify-content:center;text-align:center}.signature .top:before{width:16px;height:1px}.signature{gap:4px}
.card[data-alignment=center] .identity{text-align:center}.card[data-alignment=start] .identity{text-align:start}.card[data-alignment=center] .person{justify-content:center}.card[data-alignment=center] .top{justify-content:center}
.card[data-name-order=latinFirst] .identity{display:flex;flex-direction:column}
.card[data-name-order=latinFirst] .identity p{order:-1;font-weight:600;font-size:clamp(17px,5.1cqw,31px);line-height:1.25;letter-spacing:-.6px}
.card[data-name-order=latinFirst] .identity h2:not(:only-child){font-size:clamp(14px,3.6cqw,22px)}
.card[data-name-order=latinFirst] .identity p:empty+h2,.card[data-name-order=latinFirst] .identity:has(p:empty) h2{font-size:clamp(19px,5.6cqw,35px)}
/* Folio: a letterpress masthead and an edge-to-edge light contact band. */
.folio{--pad:clamp(15px,4.9cqw,29px);padding:var(--pad) var(--pad) 0;grid-template-rows:auto 1fr auto}
.folio .top{border-bottom:1px solid currentColor;padding-bottom:clamp(4px,1.3cqw,8px)}
.folio .top:after{content:'';display:block;width:23%;height:4px;background:var(--a);margin-inline-start:auto}
.folio .person{align-self:center;gap:clamp(8px,3cqw,17px)}.folio .identity h2{font-size:clamp(20px,6cqw,35px);letter-spacing:-.5px}
.folio footer{padding:clamp(8px,2.8cqw,16px) var(--pad);min-height:clamp(33px,10cqw,57px);width:calc(100% + 2 * var(--pad));max-width:none;margin-inline:calc(-1 * var(--pad));align-items:center;background:#f5f3e9;color:#20332e;border:0;border-top:3px solid var(--a)}
.folio footer:empty{width:calc(100% + 2 * var(--pad));border-color:var(--a)}.folio:has(footer[hidden]){padding-bottom:var(--pad)}
/* Ticket: the stationary stub is decorative; it carries no scan code. */
.ticket{background:#f9f6ed;color:#263832;border:1px solid #d2d8cc;padding-left:26%;padding-left:clamp(67px,25cqw,152px)}
.ticket .motif{background:linear-gradient(90deg,var(--c) 0 18%,var(--a) 18% 18.8%,transparent 18.8%)}
.ticket .motif:before{content:'';position:absolute;left:20.5%;top:0;bottom:0;border-left:1.5px dashed #a5aca0}
.ticket .motif i{left:4.5%;width:9%;height:2px;background:var(--a)}.ticket .motif i:first-child{top:12%}.ticket .motif i:nth-child(2){top:16%;width:5.5%}.ticket .motif i:nth-child(3){bottom:13%;height:26%;width:9%;background:repeating-linear-gradient(0deg,var(--a) 0 2px,transparent 2px 5px)}
.ticket .top{border-bottom:1px solid #c4cbbd;padding-bottom:5px}.ticket footer{border-color:#a4afa1}.ticket .person{gap:clamp(6px,2cqw,12px)}.ticket .person img{width:clamp(36px,12cqw,67px)}
/* Crest: a symmetrical stationery face, with deep side rails and a fine inset rule. */
.crest{--rail:8%;background:#faf8ef;color:#243630;padding-inline:14%;padding-block:clamp(13px,4cqw,24px);gap:4px}
.crest .motif{background:linear-gradient(90deg,var(--c) 0 var(--rail),var(--a) var(--rail) 8.75%,transparent 8.75% 91.25%,var(--a) 91.25% 92%,var(--c) 92%)}
.crest .motif:before{content:'';position:absolute;inset:8px 10.5%;border:1px solid #bfc7b9}.crest .motif i{inset:8px auto auto calc(50% - 5px);width:10px;height:10px;transform:rotate(45deg);background:var(--c);border:2px solid #faf8ef}.crest .motif i:nth-child(2){top:auto;bottom:4px}.crest .motif i:nth-child(3){display:none}
.crest .person{flex-direction:column;justify-content:center;text-align:center;gap:3px}.crest .person img{width:clamp(30px,9cqw,51px)}.crest .identity{flex:none}.crest .identity h2{font-size:clamp(17px,4.7cqw,28px)}.crest .top{justify-content:center;text-align:center}.crest footer{border:0;padding-top:3px;justify-content:center;text-align:center}.crest footer:empty{width:auto}
.card .identity,.calling-card .names{text-align:right}html[dir=ltr] .card .identity,html[dir=ltr] .calling-card .names{text-align:left}.card .identity>*:not(.layout-item),.calling-card .names>*{text-align:inherit}.card[data-alignment=center] .identity,.signature .identity,.crest .identity{text-align:center!important}.card[data-alignment=start] .identity{text-align:start}.card h2,.card p,.card small,.card footer span{overflow-wrap:anywhere}.card{height:auto}[hidden]{display:none!important}
