/* weddinginvites.us maker v2: editor UI, card engine, template motifs, tool pages.
   Loaded only by the homepage and the tool pages; style.css stays the shared base. */

/* ---------- page furniture ---------- */
.wi-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
:where(.wi-ed,.wi-tool,.wi-dlg,.wi-hub,.site-foot.v2,.wi-hero) :focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px}
.brand .mark svg{width:17px;height:17px;display:block}
.nav-toggle svg{width:26px;height:26px;display:block}
.wi-hero .eyebrow+h1{margin-top:0}
.wi-top{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 74px auto;grid-template-areas:"hero" "ad" "ed"}
@media(min-width:781px){.wi-top{grid-template-rows:auto 122px auto}}
.wi-top>.o1{grid-area:hero;min-width:0}.wi-top>.o2{grid-area:ad;overflow:hidden;min-width:0}.wi-top>.o3{grid-area:ed;min-width:0}
.wi-hero{padding:30px 0 6px;text-align:center;background:radial-gradient(900px 300px at 10% -30%,var(--blush),transparent 62%),radial-gradient(900px 340px at 100% -20%,var(--sage),transparent 56%),var(--paper)}
.wi-hero .eyebrow{display:inline-block;letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:600;color:var(--gold-deep);background:#fff;border:1px solid var(--line);border-radius:999px;padding:.35rem .9rem;margin-bottom:.7rem}
.wi-hero h1{font-size:clamp(2rem,4.4vw,3.15rem);margin:0 0 .2em}
.wi-hero .lede{max-width:720px;margin:0 auto .75em;color:var(--ink-soft);font-size:1.08rem;line-height:1.55}
.wi-hero .crumbs{font-size:.84rem;color:var(--ink-soft);margin:0 0 .6rem}
.wi-hero .crumbs a{color:var(--ink-soft)}
.wi-trust{display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;justify-content:center;font-size:.9rem;color:var(--ink-soft);margin:0;padding:0;list-style:none}
.wi-trust li{display:inline-flex;align-items:center;gap:.35rem}
.wi-trust svg{width:16px;height:16px;color:var(--gold-deep);flex:none}
.ad-r250{display:flow-root;min-height:294px}
.ad-r90{display:flow-root}
.ad-nat{display:flow-root;min-height:220px}

/* ---------- editor shell ---------- */
.wi-ed{padding:6px 0 26px;scroll-margin-top:70px}
.wi-types{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 12px;margin:0;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.wi-type{flex:0 0 auto;scroll-snap-align:start;display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink-soft);font:500 .92rem/1.2 var(--sans);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.wi-type svg{width:18px;height:18px;flex:none}
.wi-type:hover{border-color:var(--gold)}
.wi-type[aria-checked="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.wi-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.wi-stage{min-width:0;display:flex;flex-direction:column;gap:10px}
.wi-panel{min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
@media(min-width:980px){
  .wi-grid{grid-template-columns:360px minmax(0,1fr);gap:24px;align-items:start}
  .wi-panel{grid-column:1;grid-row:1;position:sticky;top:78px;height:calc(100vh - 94px);max-height:900px;min-height:540px;overflow:hidden}
  .wi-stage{grid-column:2;grid-row:1}
  .wi-pnls{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
}
.wi-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wi-bar .wi-sel{flex:1 1 220px;width:auto;min-width:0}
.wi-sel,.wi-f input[type=text],.wi-f input[type=url],.wi-f input[type=number],.wi-f input[type=date],.wi-f input[type=time],.wi-f textarea,.wi-f select{width:100%;font:400 .95rem/1.35 var(--sans);color:var(--ink);padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--paper);min-width:0}
.wi-f textarea{resize:vertical;min-height:62px;line-height:1.45}
.wi-sel:focus,.wi-f input:focus,.wi-f textarea:focus,.wi-f select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(176,141,87,.2)}
.wi-seg{display:inline-flex;gap:4px;padding:3px;background:var(--cream);border:1px solid var(--line);border-radius:999px}
.wi-seg button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;border-radius:999px;padding:6px 11px;font:600 .8rem/1.1 var(--sans);color:var(--ink-soft);cursor:pointer;white-space:nowrap}
.wi-seg button svg{width:16px;height:16px}
.wi-seg button[aria-pressed="true"]{background:#fff;color:var(--gold-deep);box-shadow:0 1px 3px rgba(70,55,40,.15)}
.wi-custom{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.wi-custom .wi-f{margin:0;flex:1 1 90px}
.wi-custom[hidden]{display:none}
.wi-view{position:relative;overflow:hidden;border-radius:16px;border:1px solid var(--line);background:linear-gradient(135deg,#f3ede4,#ebe1d3);height:calc(min(var(--ar,1.4) * (100vw - 58px), 72vh) + 28px);min-height:230px}
@media(min-width:980px){.wi-view{height:clamp(430px,calc(100vh - 300px),760px)}}
.wi-scale{position:absolute;left:50%;top:50%;transform-origin:0 0}
.wi-view .wcard{box-shadow:0 14px 44px rgba(60,45,30,.24)}
.wi-view.loading .wi-scale{visibility:hidden}
.wi-meta{font-size:.84rem;color:var(--ink-soft);text-align:center;margin:0}
.wi-meta b{color:var(--ink)}
.wi-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center}
.wi-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 17px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font:600 .93rem/1.1 var(--sans);cursor:pointer;text-decoration:none;transition:transform .12s,box-shadow .12s,background .15s}
.wi-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);text-decoration:none;color:var(--ink)}
.wi-btn svg{width:17px;height:17px;flex:none}
.wi-btn.pri{background:linear-gradient(135deg,var(--gold),var(--gold-deep));border-color:transparent;color:#fff}
.wi-btn.pri:hover{color:#fff}
.wi-btn.ghost{background:transparent}
.wi-btn.sm{padding:7px 12px;font-size:.84rem}
.wi-btn:disabled{opacity:.55;cursor:progress;transform:none}
.wi-note{font-size:.8rem;color:var(--ink-soft);margin:.2rem 0 .7rem;line-height:1.45}
.wi-note.c{text-align:center}

/* panel + tabs */
.wi-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(62px,1fr));gap:4px;padding:7px;background:var(--cream);border-bottom:1px solid var(--line);border-radius:16px 16px 0 0}
.wi-tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 2px;border:0;border-radius:10px;background:transparent;color:var(--ink-soft);font:600 .72rem/1.1 var(--sans);cursor:pointer;min-width:0}
.wi-tab svg{width:18px;height:18px}
.wi-tab[aria-selected="true"]{background:#fff;color:var(--gold-deep);box-shadow:0 1px 4px rgba(70,55,40,.14)}
.wi-tab[hidden]{display:none}
.wi-pnl{padding:15px 16px 20px}
.wi-pnl[hidden]{display:none}
.wi-f{margin:0 0 10px;min-width:0}
.wi-f label,.wi-lab{display:block;font:600 .79rem/1.3 var(--sans);color:var(--ink-soft);margin:0 0 4px}
.wi-r2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}
.wi-r3{display:grid;grid-template-columns:minmax(0,1fr) 62px minmax(0,1fr);gap:8px}
.wi-sec{border-top:1px solid var(--line);margin:14px 0 0;padding:13px 0 0}
.wi-sec:first-child{border-top:0;margin-top:0;padding-top:0}
.wi-sec h3{font:600 .72rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 9px}
.wi-help{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:10px 11px;margin:0 0 12px}
.wi-help .wi-r2{align-items:end}
.wi-help .wi-f{margin-bottom:8px}
.wi-help .wi-fb{display:flex;align-items:flex-end}
.wi-help .wi-note{margin-bottom:0}
.wi-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.wi-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 11px;font:600 .78rem/1.1 var(--sans);color:var(--ink-soft);cursor:pointer}
.wi-chip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.wi-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:9px}
.wi-th{position:relative;aspect-ratio:5/7;border:2px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;cursor:pointer;padding:0;display:block;width:100%}
.wi-th:hover{border-color:var(--gold)}
.wi-th[aria-pressed="true"]{border-color:var(--gold-deep);box-shadow:0 0 0 3px rgba(176,141,87,.3)}
.wi-th .wcard{position:absolute;left:0;top:0;transform-origin:0 0;pointer-events:none;transform:scale(var(--ts,.19))}
.wi-th>span{position:absolute;left:0;right:0;bottom:0;background:rgba(255,255,255,.95);font:600 .64rem/1.2 var(--sans);padding:4px 3px;color:var(--ink);border-top:1px solid var(--line);text-align:center}
.wi-pals{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:7px;margin-bottom:10px}
.wi-pal{border:1px solid var(--line);border-radius:10px;background:#fff;padding:5px;cursor:pointer;display:flex;flex-direction:column;gap:4px;align-items:stretch}
.wi-pal span{display:flex;height:20px;border-radius:6px;overflow:hidden}
.wi-pal i{flex:1}
.wi-pal small{font:600 .62rem/1.15 var(--sans);color:var(--ink-soft);text-align:center}
.wi-pal[aria-pressed="true"]{border-color:var(--gold-deep);box-shadow:0 0 0 2px rgba(176,141,87,.3)}
.wi-crow{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;align-items:center;margin:0 0 8px}
.wi-crow>span{font:600 .78rem/1.2 var(--sans);color:var(--ink-soft)}
.wi-sw{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.wi-sw button{width:26px;height:26px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0}
.wi-sw button[aria-pressed="true"]{box-shadow:0 0 0 2px var(--gold-deep),0 0 0 4px #fff}
.wi-sw label{position:relative;width:26px;height:26px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 1px var(--line);background:conic-gradient(#e66,#ec6,#6c6,#6ce,#66e,#c6e,#e66);cursor:pointer;display:block}
.wi-sw label input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0}
.wi-fonts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:10px}
.wi-fp{border:1px solid var(--line);border-radius:10px;background:#fff;padding:7px 8px;cursor:pointer;text-align:left;min-width:0}
.wi-fp b{display:block;font-size:1.25rem;line-height:1.1;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wi-fp small{display:block;font:500 .66rem/1.2 var(--sans);color:var(--ink-soft);margin-top:2px}
.wi-fp[aria-pressed="true"]{border-color:var(--gold-deep);box-shadow:0 0 0 2px rgba(176,141,87,.3)}
.wi-switch{display:flex;align-items:center;gap:9px;font:600 .82rem/1.2 var(--sans);color:var(--ink-soft);cursor:pointer;margin:0 0 10px}
.wi-switch input{width:18px;height:18px;accent-color:var(--gold-deep);margin:0}
.wi-range{display:flex;align-items:center;gap:9px}
.wi-range input{flex:1;accent-color:var(--gold-deep);min-width:0}
.wi-range output{font:600 .78rem/1 var(--sans);color:var(--ink-soft);min-width:40px;text-align:right}
.wi-file{display:block;border:1.5px dashed var(--gold);border-radius:12px;padding:12px;text-align:center;font:600 .86rem/1.3 var(--sans);color:var(--gold-deep);cursor:pointer;background:var(--paper)}
.wi-file input{display:block;margin:8px auto 0;max-width:100%;font-size:.8rem}
.wi-prog{height:8px;border-radius:99px;background:var(--cream);border:1px solid var(--line);overflow:hidden;margin:8px 0}
.wi-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--gold-deep));transition:width .2s}
.wi-count{font:600 .8rem/1.3 var(--sans);color:var(--ink-soft)}
.wi-count.warn{color:#9a3b3b}

/* dialogs */
.wi-dlg{border:0;border-radius:18px;padding:0;width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 40px);box-shadow:0 24px 70px rgba(40,30,20,.35);background:#fff;color:var(--ink)}
.wi-dlg::backdrop{background:rgba(30,24,18,.45)}
.wi-dlg.fallback{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:300}
.wi-dlg header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.wi-dlg header h2{font-size:1.3rem;margin:0;text-align:left}
.wi-dlg .x{border:0;background:var(--cream);border-radius:50%;width:34px;height:34px;display:grid;place-items:center;cursor:pointer;color:var(--ink)}
.wi-dlg .x svg{width:16px;height:16px}
.wi-dlg .bd{padding:14px 16px 18px;overflow-y:auto;max-height:calc(100vh - 120px)}
.wi-dlg .bd p{font-size:.92rem;color:var(--ink-soft)}
.wi-res{display:block;max-width:100%;max-height:52vh;margin:0 auto 12px;border-radius:8px;box-shadow:var(--shadow-sm)}
.wi-link{display:flex;gap:8px;margin:8px 0}
.wi-link input{flex:1;min-width:0;font:400 .85rem/1.3 var(--sans);padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.wi-saves{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin:12px 0}
.wi-save{border:1px solid var(--line);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px;min-width:0}
.wi-save .pv{position:relative;height:150px;border-radius:8px;background:var(--cream);overflow:hidden}
.wi-save .pv .wcard{position:absolute;left:50%;top:50%;transform-origin:0 0}
.wi-save b{font-size:.82rem;line-height:1.25;overflow-wrap:anywhere}
.wi-save small{font-size:.72rem;color:var(--ink-soft)}
.wi-save .wi-actions{justify-content:flex-start;gap:5px}
#wiPrintBox{display:none}
#wiOff{position:fixed;left:-20000px;top:0;display:block;pointer-events:none}

/* ---------- card engine (all sizes in em or --u so any size scales) ---------- */
.wcard{position:relative;overflow:hidden;background-color:var(--c-bg);color:var(--c-tx);font-family:var(--f-body);font-size:var(--c-fs,19px);line-height:1.36;text-align:center;-webkit-font-smoothing:antialiased;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.wcard *{box-sizing:border-box}
.wc-ph,.wc-tint,.wc-deco,.wc-brd{position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none}
.wc-ph{background-repeat:no-repeat;background-size:cover}
.wc-tint{background-color:var(--c-bg)}
.wc-deco,.wc-brd{color:var(--c-ac)}
.wc-deco i,.wc-deco b,.wc-deco svg,.wc-brd i{position:absolute;display:block}
.wc-body{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;justify-content:center;padding:var(--c-pt) var(--c-pr) var(--c-pb) var(--c-pl)}
.wc-in{width:100%}
.wcard p,.wcard h3,.wcard div{margin:0}
.wcard [contenteditable]{outline:none;border-radius:3px;cursor:text}
.wcard [contenteditable]:hover{box-shadow:0 0 0 1px rgba(176,141,87,.45)}
.wcard [contenteditable]:focus{box-shadow:0 0 0 2px rgba(176,141,87,.7)}
.wcard.exporting [contenteditable]{box-shadow:none!important}
.al-left .wc-in{text-align:left}.al-right .wc-in{text-align:right}
.al-left .c-div,.al-left .c-meals{justify-content:flex-start}.al-right .c-div,.al-right .c-meals{justify-content:flex-end}
.c-pre{font-size:.7em;letter-spacing:.17em;text-transform:uppercase;opacity:.86;margin:0 0 1.05em!important}
.c-names{font-family:var(--f-names);font-weight:var(--w-names,400);font-style:var(--s-names,normal);font-size:calc(2.65em * var(--n-k,1));line-height:1.06;color:var(--c-tx);overflow-wrap:normal}
.c-amp{font-family:var(--f-names);font-size:calc(1.3em * var(--n-k,1));line-height:1;color:var(--c-ac);font-style:italic;margin:.1em 0!important}
.c-names .c-amp{display:inline;font-size:.6em;margin:0 .1em!important}
.caps-n .c-names,.caps-n .c-head{text-transform:uppercase;letter-spacing:.1em}
.caps-n .c-names{font-size:2em}
.c-l{font-size:.95em}
.c-l1{margin-top:1.05em!important}
.c-div{display:flex;align-items:center;justify-content:center;gap:.55em;color:var(--c-ac);margin:1em 0!important;height:1em}
.c-div i{display:block;width:2.7em;height:0;border-top:.06em solid;opacity:.65}
.c-div svg{display:block;width:1em;height:1em;flex:none}
.c-date{font-family:var(--f-head);font-weight:var(--w-head,600);font-size:1.12em}
.c-year{font-size:.75em;letter-spacing:.15em;text-transform:uppercase;opacity:.8;margin:.18em 0 .5em!important}
.c-time{font-size:.92em;margin:.1em 0 .95em!important}
.c-venue{font-family:var(--f-head);font-weight:var(--w-head,600);font-size:1.04em}
.c-addr{font-size:.8em;opacity:.84;margin:.12em 0 .95em!important;white-space:pre-line}
.c-note{font-size:.78em;font-style:italic;opacity:.84;margin:.35em 0 0!important;white-space:pre-line}
.c-head{font-family:var(--f-names);font-weight:var(--w-names,400);font-style:var(--s-names,normal);font-size:calc(2.45em * var(--n-k,1));line-height:1.06;color:var(--c-tx);margin:0 0 .22em!important}
.caps-n .c-head{font-size:1.75em}
.c-cap{font-size:.68em;letter-spacing:.2em;text-transform:uppercase;color:var(--c-ac);font-weight:600;margin:0 0 .4em!important}
.c-big{font-family:var(--f-head);font-weight:var(--w-head,600);font-size:1.5em;line-height:1.2;margin:.08em 0 .12em!important}
.c-pair{font-family:var(--f-names);font-weight:var(--w-names,400);font-style:var(--s-names,normal);font-size:calc(1.7em * var(--n-k,1));line-height:1.12}
.c-txt{font-size:.9em;white-space:pre-line}
.c-blk{margin:0 0 .95em!important}
.c-blk:last-child{margin-bottom:0!important}
.c-sm{font-size:.8em;opacity:.85}
.c-web{font-size:.72em;letter-spacing:.14em;text-transform:uppercase;margin-top:.9em!important;opacity:.9}
.c-rl{display:flex;align-items:baseline;gap:.4em;font-size:.88em;margin:.72em 0 0!important;text-align:left}
.c-rl .bl{flex:1;align-self:flex-end;border-bottom:.07em solid;opacity:.55;height:.25em;min-width:2em}
.c-rl .bs{flex:none;align-self:flex-end;width:2.5em;border-bottom:.07em solid;opacity:.55;height:.25em}
.c-meals{display:flex;flex-wrap:wrap;justify-content:center;gap:.35em 1em;font-size:.84em;margin:.85em 0 0!important}
.c-meals span{display:inline-flex;align-items:baseline;gap:.3em}
.c-meals i{display:inline-block;width:1.7em;border-bottom:.07em solid;opacity:.55;height:.2em;align-self:flex-end}
.c-li{margin:0 0 .58em!important}
.c-li .t{display:block;font-family:var(--f-head);font-weight:var(--w-head,600);font-size:.96em}
.c-li .d{display:block;font-size:.8em;font-style:italic;opacity:.84}
.c-ret{position:absolute;left:var(--c-pl);top:calc(var(--u)*8);text-align:left;font-size:.62em;line-height:1.35;white-space:pre-line;max-width:46%;opacity:.9}
.k-envelope .wc-in{max-width:74%;margin:0 auto}
.k-envelope .c-names{font-size:calc(1.75em * var(--n-k,1))}
.k-place .c-names{font-size:calc(2em * var(--n-k,1))}
.k-program .c-names{font-size:calc(2.15em * var(--n-k,1))}
.c-ph{display:block;margin:0 auto .95em!important;background-repeat:no-repeat;background-size:cover;width:var(--phw,42%);aspect-ratio:1;border:.12em solid var(--c-ac)}
.c-ph.circle{border-radius:50%}
.c-ph.arch{aspect-ratio:4/5;border-radius:999px 999px .3em .3em}
.c-ph.rect{aspect-ratio:4/5;border-radius:.2em}
.wc-qr{position:absolute;background:var(--qr-bg,#fff);padding:calc(var(--u)*1.1);border-radius:calc(var(--u)*1.2);line-height:0;text-align:center}
.wc-qr svg,.c-qr svg{display:block;width:100%;height:auto}
.wc-qr span,.c-qr span{display:block;font:600 calc(var(--u)*2.5)/1.2 var(--f-body);color:var(--qr-fg,#111);margin-top:calc(var(--u)*.8);letter-spacing:.04em}
.c-qr{display:block;margin:.8em auto 0!important;background:var(--qr-bg,#fff);padding:calc(var(--u)*1.1);border-radius:calc(var(--u)*1.2);line-height:0}
.al-left .c-qr{margin-left:0!important}.al-right .c-qr{margin-right:0!important}
.thumb .c-names{font-size:calc(3.2em * var(--n-k,1))}
.thumb.caps-n .c-names{font-size:2.3em}
.thumb .c-amp{font-size:1.8em}
.thumb .c-l{font-size:1.25em}

/* ---------- motifs (currentColor = accent) ---------- */
.m-rule{left:19%;right:19%;height:0;border-top:calc(var(--u)*.4) solid;opacity:.72}
.m-rule.dash{border-top-style:dashed}
.m-rule.thin{border-top-width:calc(var(--u)*.22)}
.m-rule b{left:50%;top:0;width:calc(var(--u)*1.3);height:calc(var(--u)*1.3);margin:calc(var(--u)*-.85) 0 0 calc(var(--u)*-.65);background:currentColor;border-radius:50%}
.m-ring{left:50%;top:50%;width:calc(var(--u)*72);height:calc(var(--u)*72);margin:calc(var(--u)*-36) 0 0 calc(var(--u)*-36);border:calc(var(--u)*.3) solid;border-radius:50%;opacity:.34}
.m-ring.in{width:calc(var(--u)*67);height:calc(var(--u)*67);margin:calc(var(--u)*-33.5) 0 0 calc(var(--u)*-33.5);border-width:calc(var(--u)*.2);opacity:.24}
.m-barl{left:0;top:0;bottom:0;width:calc(var(--u)*1.9);background:linear-gradient(currentColor,transparent)}
.m-c{width:calc(var(--u)*11);height:calc(var(--u)*11);border:calc(var(--u)*.45) solid;opacity:.75}
.m-c.tl{top:calc(var(--u)*5);left:calc(var(--u)*5);border-right:0;border-bottom:0}
.m-c.tr{top:calc(var(--u)*5);right:calc(var(--u)*5);border-left:0;border-bottom:0}
.m-c.bl{bottom:calc(var(--u)*5);left:calc(var(--u)*5);border-right:0;border-top:0}
.m-c.br{bottom:calc(var(--u)*5);right:calc(var(--u)*5);border-left:0;border-top:0}
.m-ul{left:50%;bottom:calc(var(--u)*6);width:calc(var(--u)*9);margin-left:calc(var(--u)*-4.5);border-top:calc(var(--u)*.7) solid}
.m-ul.top{top:calc(var(--u)*6);bottom:auto;width:calc(var(--u)*6);margin-left:calc(var(--u)*-3);border-top-width:calc(var(--u)*.3);opacity:.6}
.m-wash{left:-12%;right:-12%;top:-14%;height:60%;background:radial-gradient(58% 60% at 50% 32%,currentColor,transparent 72%);opacity:.2}
.m-wash.b{top:auto;bottom:-18%;height:46%;opacity:.12}
.m-arch{left:13%;right:13%;top:calc(var(--u)*5);bottom:calc(var(--u)*5);border:calc(var(--u)*.4) solid;border-radius:999px 999px calc(var(--u)*1.5) calc(var(--u)*1.5);opacity:.42}
.m-fr{left:calc(var(--u)*4);right:calc(var(--u)*4);top:calc(var(--u)*4);bottom:calc(var(--u)*4);border:calc(var(--u)*.3) solid}
.m-fr.bold{border-width:calc(var(--u)*1.1)}
.m-fr.in{left:calc(var(--u)*6.3);right:calc(var(--u)*6.3);top:calc(var(--u)*6.3);bottom:calc(var(--u)*6.3);border-width:calc(var(--u)*.2)}
.m-fr.in2{left:calc(var(--u)*5.6);right:calc(var(--u)*5.6);top:calc(var(--u)*5.6);bottom:calc(var(--u)*5.6);border-width:calc(var(--u)*.15);opacity:.8}
.m-fr.dot{border-style:dotted;border-width:calc(var(--u)*.35);left:calc(var(--u)*6);right:calc(var(--u)*6);top:calc(var(--u)*6);bottom:calc(var(--u)*6);opacity:.7}
.m-gb{background:linear-gradient(90deg,currentColor,var(--c-acl),currentColor,var(--c-acl),currentColor)}
.m-gb.h{left:calc(var(--u)*4);right:calc(var(--u)*4);height:calc(var(--u)*.8)}
.m-gb.v{top:calc(var(--u)*4);bottom:calc(var(--u)*4);width:calc(var(--u)*.8);background:linear-gradient(180deg,currentColor,var(--c-acl),currentColor,var(--c-acl),currentColor)}
.m-sarch{left:13%;right:13%;top:6.5%;bottom:6.5%;background:var(--c-soft);border-radius:999px 999px calc(var(--u)*2) calc(var(--u)*2)}
.m-sarch.ln{left:calc(13% + var(--u)*2);right:calc(13% + var(--u)*2);top:calc(6.5% + var(--u)*2);bottom:calc(6.5% + var(--u)*2);background:none;border:calc(var(--u)*.25) solid;opacity:.55}
.m-sc{left:0;right:0;height:calc(var(--u)*3);background:radial-gradient(circle at 50% 0,currentColor 0 calc(var(--u)*1.45),transparent calc(var(--u)*1.55)) 0 0/calc(var(--u)*4) calc(var(--u)*3) repeat-x;opacity:.34}
.m-sc.t{top:0}.m-sc.b{bottom:0;transform:scaleY(-1)}
.m-sc.l,.m-sc.r{top:0;bottom:0;left:0;right:auto;width:calc(var(--u)*3);height:auto;background:radial-gradient(circle at 0 50%,currentColor 0 calc(var(--u)*1.45),transparent calc(var(--u)*1.55)) 0 0/calc(var(--u)*3) calc(var(--u)*4) repeat-y}
.m-sc.r{left:auto;right:0;transform:scaleX(-1)}
.m-blob{border-radius:50%;opacity:.5}
.m-band{left:0;top:0;bottom:0;width:11%;background:currentColor}
.m-band2{left:calc(11% + var(--u)*3);right:calc(var(--u)*4);top:calc(var(--u)*4);bottom:calc(var(--u)*4);border:calc(var(--u)*.25) solid;opacity:.5}
.m-ln{height:0;border-top:calc(var(--u)*.35) solid}
.m-lv{width:0;border-left:calc(var(--u)*.35) solid}
.m-dia{width:calc(var(--u)*3.2);height:calc(var(--u)*3.2);border:calc(var(--u)*.35) solid;transform:rotate(45deg);background:var(--c-bg)}
.m-dia.f{background:currentColor;width:calc(var(--u)*2);height:calc(var(--u)*2)}
.wc-deco svg{overflow:visible}
.m-o{opacity:.8}

/* user borders */
.b-thin{left:calc(var(--u)*4);right:calc(var(--u)*4);top:calc(var(--u)*4);bottom:calc(var(--u)*4);border:calc(var(--u)*.25) solid}
.b-double{left:calc(var(--u)*4);right:calc(var(--u)*4);top:calc(var(--u)*4);bottom:calc(var(--u)*4);border:calc(var(--u)*.9) double}
.b-thick{left:calc(var(--u)*3.2);right:calc(var(--u)*3.2);top:calc(var(--u)*3.2);bottom:calc(var(--u)*3.2);border:calc(var(--u)*1.2) solid}
.b-dashed{left:calc(var(--u)*4);right:calc(var(--u)*4);top:calc(var(--u)*4);bottom:calc(var(--u)*4);border:calc(var(--u)*.3) dashed}
.b-dotted{left:calc(var(--u)*4);right:calc(var(--u)*4);top:calc(var(--u)*4);bottom:calc(var(--u)*4);border:calc(var(--u)*.45) dotted}
.b-rounded{left:calc(var(--u)*4.5);right:calc(var(--u)*4.5);top:calc(var(--u)*4.5);bottom:calc(var(--u)*4.5);border:calc(var(--u)*.3) solid;border-radius:calc(var(--u)*4)}
.b-edge{left:0;right:0;top:0;bottom:0;border:calc(var(--u)*2.6) solid}
.b-inset2{left:calc(var(--u)*3.5);right:calc(var(--u)*3.5);top:calc(var(--u)*3.5);bottom:calc(var(--u)*3.5);border:calc(var(--u)*.2) solid;box-shadow:inset 0 0 0 calc(var(--u)*1.2) var(--c-bg),inset 0 0 0 calc(var(--u)*1.45) currentColor}

/* ---------- tool pages + content ---------- */
.wi-tool{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-sm);padding:18px;margin:8px 0 6px}
.wi-tool .wi-r2,.wi-tool .wi-r3{margin-bottom:2px}
.wi-out{margin-top:14px}
.wi-tl{width:100%;border-collapse:collapse;font-size:.95rem}
.wi-tl th,.wi-tl td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.wi-tl th{font:600 .74rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep)}
.wi-tl td b{color:var(--ink)}
.wi-tl tr.now td{background:var(--sage)}
.wi-tl tr.past td{color:#9a8f83}
.wi-tags{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin:10px 0}
.wi-tag{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--paper);min-width:0}
.wi-tag code{font:600 .95rem/1.3 var(--sans);color:var(--ink);overflow-wrap:anywhere;background:none;padding:0}
.wi-tag small{display:block;font-size:.72rem;color:var(--ink-soft)}
.wi-tagh{font:600 .74rem/1.2 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);margin:14px 0 4px}
.wi-szv{display:flex;justify-content:center;align-items:center;padding:18px;background:linear-gradient(135deg,#f3ede4,#ebe1d3);border-radius:14px;border:1px solid var(--line);min-height:280px}
.wi-szv svg{max-width:100%;height:auto;display:block}
.wi-kv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:6px 12px;font-size:.94rem;margin:12px 0}
.wi-kv dt{color:var(--ink-soft);font-weight:600}
.wi-kv dd{margin:0;color:var(--ink)}
.wi-pill{display:inline-block;border-radius:999px;padding:2px 10px;font:600 .78rem/1.5 var(--sans);background:var(--sage);color:#33402d}
.wi-pill.warn{background:#f6e3df;color:#8a3b2e}
.wi-qrv{display:flex;justify-content:center;padding:16px;background:var(--cream);border-radius:14px;border:1px solid var(--line)}
.wi-qrv canvas,.wi-qrv svg{max-width:100%;height:auto;display:block}
.wi-hub{padding:38px 0 26px}
.wi-hub h2{text-align:center}
.wi-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin:18px 0 0}
.wi-tools a{display:flex;gap:11px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 14px;color:var(--ink);text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .12s,border-color .12s}
.wi-tools a:hover{transform:translateY(-2px);border-color:var(--gold);text-decoration:none}
.wi-tools svg{width:22px;height:22px;color:var(--gold-deep);flex:none;margin-top:2px}
.wi-tools b{display:block;font-family:var(--serif);font-size:1.1rem;line-height:1.2}
.wi-tools small{display:block;color:var(--ink-soft);font-size:.84rem;line-height:1.35;margin-top:2px}
.feature .fi svg{width:30px;height:30px;color:var(--gold-deep)}
.wi-art{padding-top:18px}
.wi-art table{width:100%;border-collapse:collapse;margin:0 0 1.4em;font-size:.95rem}
.wi-art th,.wi-art td{border-bottom:1px solid var(--line);padding:8px 6px;text-align:left;vertical-align:top}
.wi-art th{font-family:var(--sans);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-deep)}
.wi-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.wi-src{font-size:.82rem;color:var(--ink-soft)}
.site-foot.v2 .wrap{grid-template-columns:1.25fr 2fr 1fr}
.site-foot.v2 .foot-make{columns:2;column-gap:24px}
.site-foot.v2 .foot-make a{break-inside:avoid}
@media(max-width:900px){.site-foot.v2 .wrap{grid-template-columns:1fr 1fr}.site-foot.v2 .wrap>div:first-child{grid-column:1/-1}}
@media(max-width:680px){.site-foot.v2 .wrap{grid-template-columns:1fr}.wi-hero{padding-top:22px}.wi-hero .lede{font-size:1rem}.wi-tool{padding:14px}}
@media(max-width:400px){.wi-r3{grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr)}.wi-btn{padding:10px 13px}}
@media print{.wi-ed,.wi-hero,.ad-r250,.ad-nat{display:none!important}}

.c-rvb{margin:.55em auto 0!important;max-width:30em}
.c-pairc{font-family:var(--f-head);font-weight:var(--w-head,600);text-transform:uppercase;letter-spacing:.16em;font-size:.92em;margin:.25em 0 0!important}
.c-pairc .c-amp{display:inline;font-size:1em;font-family:var(--f-head);font-style:normal;margin:0 .15em!important}
.c-pair .c-amp{display:inline;font-size:.62em;margin:0 .12em!important}

.site-foot.v2 .fh{color:#fff;font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;margin:0 0 .9rem;line-height:1.2}
.sub a,.wi-art p a,.wi-art li a,.wi-art td a,.wi-note a,.faq p a,.callout p a,.wi-hero .lede a{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.c-cap{color:var(--c-act,var(--c-ac))}
.wi-file svg{width:22px;height:22px;display:inline-block;vertical-align:-6px;margin-right:4px}
.wi-help .wi-btn svg,.wi-actions .wi-btn svg{flex:none}
.c-cap,.c-pairc{font-variant-numeric:lining-nums}
