/* GLAMOUR — a couture magazine issue. Black / white / gold, Didone type.
   Stage is 1080×1920 (scaled to the phone). Position things in px. */
body.theme-glamour{
  --gk:#0c0a09; --gw:#fbfaf7; --gg:#b8914a; --gg2:#d9b878; --gr:#6d0f1c; --gm:#5d554c;
  --f-did:"Bodoni Moda", Didot, "Bodoni 72", Georgia, serif;
  --f-pf:"Playfair Display", Georgia, serif;
  --f-sc:"Pinyon Script", cursive;
  --f-sans:"Jost", "Futura", system-ui, sans-serif;
}
.theme-glamour .page.gWhite{background:var(--gw);color:var(--gk)}
.theme-glamour .page.gBlack{background:#000;color:#fff}
.theme-glamour .gMask{overflow:hidden;padding:0 4px .04em;margin:0 -4px}
.theme-glamour .gMask > span{display:inline-block}
.theme-glamour .gMask{position:relative}
.theme-glamour .gMask > .gShine{position:absolute;left:0;right:0;top:0;text-align:center;pointer-events:none;display:block}
.gName .gShine{color:var(--gg)}
.gFlash{position:absolute;inset:0;background:#fff;pointer-events:none;z-index:45;opacity:0}
.gFlash.gTurn{z-index:60}

/* ---------- cover ---------- */
.gCam{position:absolute;inset:0;overflow:hidden}
.gCam .plate{transform-origin:50% 35%}
.gCoverShade{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 52%,rgba(0,0,0,.55) 70%,rgba(0,0,0,.92) 100%)}
.gCvTop{position:absolute;left:0;right:0;top:62px;text-align:center;font:500 26px/1 var(--f-sans);letter-spacing:9px;text-transform:uppercase;color:var(--gg2)}
.gMast{position:absolute;left:0;right:0;top:92px;text-align:center;white-space:nowrap;
  font:500 330px/1 var(--f-did);font-variation-settings:"opsz" 96;letter-spacing:-.01em;color:#fff}
.gMast .gShine{color:#f3d896}
.gCvSide{position:absolute;left:44px;top:880px;width:300px;display:flex;flex-direction:column;gap:18px}
.gCvLine{font:500 36px/1.1 var(--f-pf);color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.75)}
.gCvLine b{display:block;font:600 84px/1 var(--f-did);color:var(--gg2)}
.gCvLine.sm{font:500 26px/1.35 var(--f-sans);letter-spacing:4px;text-transform:uppercase;border-top:2px solid var(--gg2);padding-top:14px}
.gLabel{position:absolute;right:50px;top:470px;background:#fbfaf7;color:var(--gk);padding:16px 26px 18px;box-shadow:0 10px 30px rgba(0,0,0,.45);text-align:left;border-left:8px solid var(--gg)}
.gLabel small{display:block;font:600 22px/1 var(--f-sans);letter-spacing:6px;text-transform:uppercase;color:var(--gm);margin-bottom:8px}
.gLabel b{display:block;font:italic 600 46px/1 var(--f-pf)}
.gCvEx{position:absolute;left:60px;right:60px;bottom:230px;text-align:center}
.gCvKick{display:inline-block;font:600 92px/1 var(--f-did);letter-spacing:2px;text-transform:uppercase;color:var(--gg2);margin-bottom:8px}
.gCvNames{font:400 112px/1.08 var(--f-did);color:#fff;white-space:nowrap;text-shadow:0 3px 24px rgba(0,0,0,.5)}
.gCvNames .it{font-style:italic}
.gCvBar{position:absolute;left:60px;right:60px;bottom:80px;text-align:center;font:500 28px/1.3 var(--f-sans);letter-spacing:6px;text-transform:uppercase;color:var(--gg2);border-top:1px solid rgba(217,184,120,.6);padding-top:22px;line-height:1.45}

/* ---------- shared editorial ---------- */
.gHead{position:absolute;left:60px;right:60px;top:96px;text-align:center;font:500 150px/.95 var(--f-did);font-variation-settings:"opsz" 96;text-transform:uppercase;color:var(--gk);letter-spacing:-1px}
.gHead .gMask{white-space:nowrap}
.gFolio{position:absolute;left:60px;right:60px;bottom:44px;font:500 24px/1 var(--f-sans);letter-spacing:6px;text-transform:uppercase;color:var(--gm);border-top:1px solid #d8d2c6;padding-top:18px;z-index:20}
.gFolio b{font:600 26px/1 var(--f-did);color:var(--gg);margin-right:18px;letter-spacing:1px}
.gPhoto{position:absolute;overflow:hidden;background:#1a1612}
.gPhoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gGloss{position:absolute;top:0;bottom:0;left:0;width:70%;pointer-events:none;mix-blend-mode:screen;
  background:linear-gradient(105deg,rgba(255,255,255,0) 30%,rgba(255,245,220,.28) 50%,rgba(255,255,255,0) 70%)}

/* ---------- in this issue ---------- */
.gCt{top:110px;font-size:160px}
.gToc{position:absolute;left:80px;right:80px;top:540px;display:flex;flex-direction:column;gap:36px}
.gTocRow{position:relative;display:grid;grid-template-columns:110px 1fr;align-items:baseline;padding-top:28px}
.gRule{position:absolute;left:0;right:0;top:0;height:2px;background:var(--gg);transform-origin:0 50%}
.gTocRow em{font:italic 500 56px/1 var(--f-did);color:var(--gg)}
.gTocRow b{display:block;font:500 62px/1.05 var(--f-did);color:var(--gk);white-space:nowrap}
.gTocRow span{display:block;margin-top:10px;font:400 34px/1.2 var(--f-pf);font-style:italic;color:var(--gm)}
.gCredit{margin-top:20px;font:italic 400 30px/1.35 var(--f-pf);color:var(--gm)}
.gToc.dense{gap:16px;top:500px}
.gToc.dense .gTocRow{padding-top:16px}
.gToc.dense .gTocRow b{font-size:50px}
.gToc.dense .gTocRow em{font-size:46px}
.gToc.dense .gTocRow span{font-size:30px;margin-top:6px}

/* ---------- dear family ---------- */
.gDear{top:100px;font-size:150px;line-height:.95}
.gLetter{position:absolute;left:60px;width:560px;display:flex;flex-direction:column;gap:26px}
.gLetter .gLetTitle{font:italic 500 88px/1 var(--f-pf);color:var(--gk);margin-bottom:6px}
.gLetter p{font:400 var(--lp,37px)/1.48 var(--f-pf);color:#2a2522}
.gLetter .gLead{font:600 calc(var(--lp,37px) + 1px)/1.3 var(--f-pf);color:var(--gk)}
.gLetter .gFor{font:italic 500 var(--lp,37px)/1.35 var(--f-pf);color:var(--gr)}
.gLetter .gSign{font:400 110px/1 var(--f-sc);color:var(--gg);margin-top:10px;padding-bottom:6px}
.gLetter .gSignBy{font:600 26px/1.3 var(--f-sans);letter-spacing:5px;text-transform:uppercase;color:var(--gk);margin-top:-10px}
.gMasthead{position:absolute;left:660px;right:60px;display:flex;flex-direction:column;gap:6px;text-align:center}
.gMhTitle{font:600 26px/1 var(--f-sans);letter-spacing:8px;text-transform:uppercase;border-top:2px solid var(--gk);border-bottom:2px solid var(--gk);padding:14px 0 12px;margin:14px 0 12px}
.gMhLab{font:600 24px/1.2 var(--f-sans);letter-spacing:5px;text-transform:uppercase;color:var(--gg);margin-top:18px}
.gMhName{font:600 31px/1.25 var(--f-pf);color:var(--gk)}
.gPrint{position:relative;margin:44px auto 0;width:360px;height:420px;background:#fff;padding:14px;box-shadow:0 14px 36px rgba(0,0,0,.28)}
.gPrint img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- bride / groom ---------- */
.gName{position:absolute;left:0;right:0;top:80px;text-align:center;white-space:nowrap;font:500 250px/1 var(--f-did);font-variation-settings:"opsz" 96;color:var(--gk);letter-spacing:-2px}
.gCap{position:absolute;left:60px;right:60px;top:1490px;text-align:center;display:flex;flex-direction:column;gap:8px}
.gCap small{font:600 26px/1.2 var(--f-sans);letter-spacing:6px;text-transform:uppercase;color:var(--gk)}
.gCap span{font:italic 400 32px/1.3 var(--f-pf);color:var(--gm)}
.gQA{position:absolute;left:60px;right:60px;top:1620px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-top:22px;text-align:center}
.gQARule{position:absolute;left:0;right:0;top:0;height:2px;background:var(--gg);transform-origin:50% 50%}
.gQA small{display:block;font:600 22px/1.2 var(--f-sans);letter-spacing:3px;text-transform:uppercase;color:var(--gg);margin-bottom:8px}
.gQA b{display:block;font:italic 500 40px/1.1 var(--f-did);color:var(--gk)}

/* ---------- the edit ---------- */
.gEdit{top:84px;font-size:132px;line-height:.98}
.gRows{position:absolute;left:60px;right:60px}
.gRow{display:grid;grid-template-columns:450px 1fr;gap:30px;align-items:center;border-top:2px solid var(--gk)}
.gRow:last-child{border-bottom:2px solid var(--gk)}
.gRowA b{display:block;font:600 46px/1.05 var(--f-did);white-space:nowrap}
.gRowA span{display:block;margin-top:10px;font:500 30px/1.2 var(--f-sans);letter-spacing:2px;color:var(--gm)}
.gRowB{border-left:1px solid #cfc8bb;padding-left:28px}
.gRowB small{display:block;font:600 22px/1 var(--f-sans);letter-spacing:5px;text-transform:uppercase;color:var(--gg);margin:6px 0 6px}
.gRowB span{display:block;font:500 32px/1.2 var(--f-pf)}
.gRowB i{display:block;font:italic 500 31px/1.2 var(--f-pf);color:var(--gr)}
.gRow.tight .gRowA span{margin-top:6px;font-size:28px}
.gRow.tight .gRowB span{font-size:30px}
.gRow.tight .gRowB i{font-size:29px;margin-top:4px}

/* ---------- the wedding ---------- */
.gWed{top:90px;font-size:150px}
.gMuhurat{position:absolute;left:60px;right:60px;text-align:center;font:italic 500 32px/1.3 var(--f-pf);color:var(--gk);border-top:1px solid var(--gg);border-bottom:1px solid var(--gg);padding:14px 0}
.gCells{position:absolute;left:60px;right:60px;display:flex;flex-wrap:wrap;justify-content:center}
.gCell{width:50%;padding:22px 20px 0;text-align:center;border-top:2px solid var(--gk);display:flex;flex-direction:column;gap:8px}
.gCells .gCell:nth-child(2n){border-left:1px solid #cfc8bb}
.gCells .gCell:last-child:nth-child(odd){border-left:0}
.gCells.one .gCell{width:100%}
.gCell b{display:block;font:600 46px/1.05 var(--f-did);white-space:nowrap}
.gCell.main b{color:var(--gr)}
.gCell.main{border-top:6px solid var(--gg)}
.gCell span{font:500 30px/1.2 var(--f-sans);letter-spacing:2px;color:var(--gk)}
.gCell em{font:400 32px/1.2 var(--f-pf);color:var(--gm)}
.gCell i{font:italic 500 30px/1.2 var(--f-pf);color:var(--gr)}

/* ---------- rsvp ---------- */
.gBand{position:absolute;left:0;right:0;top:0;height:340px;overflow:hidden;background:#000}
.gBand img{width:100%;height:100%;object-fit:cover;display:block}
.gRsvp{position:absolute;left:0;right:0;top:350px;text-align:center;white-space:nowrap;font:500 230px/1 var(--f-did);font-variation-settings:"opsz" 96;letter-spacing:-.01em;color:var(--gg)}
.gRsvp .gShine{color:#f7e6b4}
.gBy{position:absolute;left:60px;right:60px;top:600px;text-align:center;font:italic 500 40px/1.2 var(--f-pf);color:var(--gk)}
.gHosts{position:absolute;left:60px;right:60px;top:662px;text-align:center;font:500 30px/1.35 var(--f-pf);color:var(--gm)}
.gForm{position:absolute;left:60px;right:60px;top:780px;display:flex;flex-direction:column}
.gFormFor{font:600 26px/1 var(--f-sans);letter-spacing:6px;text-transform:uppercase;color:var(--gg);padding:20px 0 14px;border-top:2px solid var(--gk);text-align:center}
.gRv{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd6c9}
.gRvT b{display:block;font:600 38px/1 var(--f-did);white-space:nowrap}
.gRvT span{display:block;font:500 24px/1 var(--f-sans);letter-spacing:3px;text-transform:uppercase;color:var(--gm);margin-top:6px}
.gRvB{display:flex;gap:10px}
.gRvB button,.gChips button{font:600 28px/1 var(--f-sans);letter-spacing:1px;border:2px solid var(--gk);background:transparent;color:var(--gk);cursor:pointer;-webkit-tap-highlight-color:transparent}
.gRvB button{width:128px;height:62px;padding:0}
.gRvB button.on{background:var(--gk);color:var(--gg2)}
.gRvB button:nth-child(1).on{background:var(--gg);border-color:var(--gg);color:#fff}
.gFormLab{font:600 24px/1 var(--f-sans);letter-spacing:6px;text-transform:uppercase;color:var(--gg);margin:22px 0 12px}
.gChips{display:flex;flex-wrap:wrap;gap:12px}
.gChips button{padding:14px 22px;border-radius:999px;border-width:2px;font-size:28px}
.gChips button.on{background:var(--gk);color:var(--gg2)}
.gNote{margin-top:20px;height:110px;resize:none;border:2px solid #cfc8bb;background:#fff;padding:16px 20px;font:italic 400 30px/1.3 var(--f-pf);color:var(--gk);outline:none}
.gNote:focus{border-color:var(--gg)}
.gSend{margin-top:20px;height:100px;border:0;background:var(--gk);color:var(--gg2);font:600 34px/1 var(--f-sans);letter-spacing:8px;text-transform:uppercase;cursor:pointer}
.gThanks{position:absolute;left:80px;right:80px;top:900px;text-align:center;opacity:0;pointer-events:none}
.gTk{font:italic 500 92px/1.05 var(--f-did);color:var(--gk)}
.gTk2{margin-top:26px;font:400 38px/1.4 var(--f-pf);color:var(--gm)}

/* gate */
.theme-glamour .gTitle{font:500 54px/1 var(--f-did);letter-spacing:4px}
.gHash{position:absolute;left:0;right:0;bottom:70px;text-align:center;font:italic 500 44px/1 var(--f-did);color:var(--gg)}
.gRv.tight .gRvT{white-space:nowrap}
.gRv.tight .gRvT b{display:inline-block;vertical-align:baseline}
.gRv.tight .gRvT span{display:inline-block;margin:0 0 0 12px;font-size:24px;letter-spacing:2px}
.gRv.tight .gRvB button{height:52px;width:120px}

/* ================= v2: full format (2026-10-08) =================
   Pages as tall as the phone (--dH over 1920); body text ≥ 38px. */
body.theme-glamour{--f-did:"Bodoni Moda",var(--fx-head),Didot,Georgia,serif;--f-pf:"Playfair Display",var(--fx-head),Georgia,serif;--f-sans:"Jost",var(--fx-head),system-ui,sans-serif}
.lang-nonlatin body.theme-glamour{--f-sc:var(--fx-head)}
.lang-nonlatin .theme-glamour .gHead,.lang-nonlatin .gName,.lang-nonlatin .gMast{line-height:1.25}
.gCap{top:calc(1490px + var(--dH,0px))}.gQA{top:calc(1620px + var(--dH,0px))}
.gQA b{font-size:40px}.gQA small{font-size:26px}
/* the guest's letter, full width, with the print at the foot */
.gLetterFull{left:80px;right:80px;width:auto}
.gLetterFull p{font-size:var(--lp,42px);line-height:1.38}
.gLetterFull .gLead{font-size:46px}
.gPrintLetter{position:absolute;right:90px;bottom:150px;margin:0;width:340px;height:400px;z-index:3}
/* the families' masthead page */
.gFamBox{position:absolute;left:120px;right:120px;top:330px;bottom:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px}
.gInv{font:600 50px/1.2 Georgia,"Noto Serif Devanagari",var(--f-pf);color:var(--gg);margin-bottom:30px}
.gFamBox .gMhTitle{font-size:34px;padding:18px 40px 16px;margin-bottom:14px}
.gFamBox .gMhLab{font-size:30px;margin-top:36px}
.gFamBox .gMhName{font:500 52px/1.2 var(--f-pf);color:var(--gk)}
/* map + add to calendar under each function */
.gActs{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap}
.gCells .gActs{justify-content:center}
.gCal{display:contents}
#stage .gActs .mzBtn,#stage .gActs .fx-lnk{min-height:62px;padding:0 22px;border:2px solid var(--gk);border-radius:0;background:transparent;color:var(--gk);font:600 24px/1 var(--f-sans);letter-spacing:4px;text-transform:uppercase;margin:0;box-shadow:none}
.gRowA span,.gRowB span{font-size:34px}.gRowB i{font-size:34px}
.gCell span{font-size:32px}.gCell em{font-size:34px}
/* RSVP: the functions and one black button to the real reply */
.gRv{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:20px 0}
.gRvT b{font-size:42px}
.gRvD{font:500 30px/1 var(--f-sans);letter-spacing:2px;color:var(--gm);white-space:nowrap}
.mzBtn.gSend{display:flex;width:100%;height:auto;min-height:120px;margin-top:30px;border:0;border-radius:0;background:var(--gk);color:var(--gg2);font:600 38px/1 var(--f-sans);letter-spacing:8px}
.gThanks{top:calc(900px + var(--dH,0px) * .3)}
.gTk2{font-size:42px}
/* the shared pages as white editorial pages */
.gXH{top:96px}
.xPage .xKickOnly{position:absolute;left:60px;right:60px;top:280px;text-align:center;font:italic 500 42px/1.2 var(--f-pf);letter-spacing:0;text-transform:none;color:var(--gm)}
.xPage.gBlack .xKickOnly{color:var(--gg2)}
.xPage.gBlack .gXH{color:#fff}
.xPage .xCol{top:420px;left:80px;right:80px}
.xPage .xNote{border-top:2px solid var(--gk);padding:28px 0}
.xPage .xNote:first-child{border-top:0}
.xPage .xNote b{font:500 54px/1.05 var(--f-did);text-transform:uppercase;color:var(--gk);font-style:normal}
.xPage .xNote p{font:400 40px/1.35 var(--f-pf);color:var(--gm)}
.xPage .xNote small{font:600 28px/1 var(--f-sans);letter-spacing:6px;color:var(--gg)}
.xPage .xNum em{font:500 96px/.9 var(--f-did);color:var(--gg);font-style:normal}
.xPage .xSub{font:600 30px/1 var(--f-sans);letter-spacing:7px;color:var(--gg)}
.xPage .xWish{font:italic 400 62px/1.2 var(--f-pf);color:var(--gk)}
.xPage .xWish span{color:var(--gg)}
.xPage .xWish cite{font:600 28px/1 var(--f-sans);color:var(--gg)}
.xPage .xInv p{font:italic 400 42px/1.3 var(--f-pf);color:var(--gk)}
.xPage .mzBtn{border:2px solid var(--gk);border-radius:0;background:transparent;color:var(--gk);font:600 26px/1 var(--f-sans);letter-spacing:5px}
.xPage .syN{font:500 72px/1 var(--f-did);text-transform:uppercase;color:var(--gk);font-style:normal}
.xPage .syD{font:italic 400 38px/1.3 var(--f-pf);color:var(--gm)}
.xPage .syRow figure,.xPage .xPrint{background:#fff;box-shadow:0 14px 36px rgba(0,0,0,.25)}
.xPage .xCap{font:italic 500 62px/1.1 var(--f-did);color:var(--gk)}
.xPage .xFilm{top:420px;border:10px solid #fff;box-shadow:0 30px 60px rgba(0,0,0,.6);max-height:calc(var(--H,1920px) - 620px)}
.xPage .xPlay span{border-color:transparent transparent transparent var(--gk)}
/* reply / wishes sheet: black, white and gold */
.theme-glamour{--fx-ink:#0c0a09;--fx-muted:#5d554c;--fx-accent:#0c0a09;--fx-accent-2:#b8914a;--fx-soft:#6d0f1c;--fx-card:#fbfaf7;--fx-card-solid:#fbfaf7;
  --fx-btn:#0c0a09;--fx-btn-ink:#d9b878;--fx-on:#0c0a09;--fx-on-ink:#d9b878;--fx-on-line:#0c0a09;--fx-line:rgba(12,10,9,.25);--fx-field:#fff;--cream:#fbfaf7;--maroon:#0c0a09}
.theme-glamour .shH{font:500 46px/1 "Bodoni Moda",var(--fx-head),serif;font-style:normal;text-transform:uppercase;color:#0c0a09}
.theme-glamour .shPanel .fx-btn,.theme-glamour .fx-q .fx-opts button{border-radius:0}
/* v2 fit-ups: one compact row of buttons under each function */
.gRow{grid-template-rows:1fr auto;row-gap:8px;padding:16px 0}
.gActsRow{grid-column:1 / -1;margin-top:0}
.gActs{gap:10px;flex-wrap:nowrap}
#stage .gActs .mzBtn,#stage .gActs .fx-lnk{min-height:58px;padding:0 16px;font-size:22px;letter-spacing:2px;white-space:nowrap}
.gCell{justify-content:flex-start}
.gPrintLetter{bottom:240px}
.gCell{padding:22px 26px 0}
.gCells .gActs{gap:8px}
#stage .gCells .gActs .mzBtn,#stage .gCells .gActs .fx-lnk{padding:0 12px;font-size:20px;letter-spacing:1px}
.lang-nonlatin .gLetTitle,.lang-nonlatin .gFor,.lang-nonlatin .gCvNames .it,.lang-nonlatin .gCap span,.lang-nonlatin .gQA b,.lang-nonlatin .gRowB i,.lang-nonlatin .gMuhurat,.lang-nonlatin .gBy{font-style:normal}
