:root{--navy:#0B1830;--navy2:#070F24;--gold:#C8A34C;--gold2:#E4C36E;--gold3:#F3DFA6;--cream:#F6F1E4;--cream2:#FBF8F1;--text:#1E1A12;--muted:#4A4232;--ink:#6B5217;--line:#D9CBA6;--panel:#F2EAD6;--err:#9E2416;--ok:#24603A;--radius:14px;--serif:"Source Serif 4",Georgia,"Times New Roman",serif;--caps:Cinzel,Georgia,serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--cream2);color:var(--text);font-family:var(--serif);font-size:18px;line-height:1.6;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-underline-offset:3px}
a:hover{color:var(--text)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:16px;top:-60px;background:var(--gold2);color:var(--navy);padding:10px 16px;border-radius:8px;z-index:20;font-weight:600}
.skip:focus{top:10px}
.wrap{width:100%;max-width:1100px;margin:0 auto;padding:0 16px}
.narrow{max-width:780px}
h1,h2,h3{line-height:1.25;margin:0 0 .5em;font-weight:600;overflow-wrap:anywhere;hyphens:auto}
h1{font-size:2rem}
h2{font-family:var(--caps);font-size:1.3rem;letter-spacing:.04em;color:var(--ink)}
h3{font-size:1.12rem}
p{margin:0 0 1em}
ul,ol{padding-left:1.3em}
li{margin-bottom:.4em}
.lead{font-size:1.15rem}
.small{font-size:.92rem;color:var(--muted)}
.help{font-size:.95rem;color:var(--muted);margin:.1em 0 .45em}
.ic{width:26px;height:26px;flex:none;vertical-align:-6px}
/* header */
.site-header{background:var(--navy);color:#EDEAE2;position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(200,163,76,.35)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:66px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:var(--gold2);text-decoration:none;font-family:var(--caps);letter-spacing:.12em;font-size:1.05rem;text-transform:uppercase;min-height:48px}
.brand img{width:40px;height:40px;border-radius:10px}
.brand:hover{color:var(--gold3)}
.menu-btn{background:transparent;color:var(--gold3);border:1.5px solid var(--gold);border-radius:999px;min-height:48px;padding:0 20px;font:inherit;font-size:1rem;cursor:pointer}
.nav{display:none;width:100%;padding:4px 0 16px}
.nav.open{display:block}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.nav li{margin:0}
.nav a{display:flex;align-items:center;min-height:48px;padding:0 12px;color:#EDEAE2;text-decoration:none;border-radius:10px;font-size:1.05rem}
.nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.nav a[aria-current="page"]{color:var(--gold2);box-shadow:inset 3px 0 0 var(--gold)}
.nav .btn{justify-content:center;margin-top:6px}
.nav .btn[aria-current="page"]{box-shadow:none}
.lang{display:inline-flex;align-items:center;gap:8px;margin-top:10px;color:var(--gold3)}
.lang select{min-height:48px;background:var(--navy2);color:#EDEAE2;border:1.5px solid rgba(200,163,76,.6);border-radius:10px;padding:0 12px;font:inherit;font-size:1rem}
@media (min-width:980px){
  .menu-btn{display:none}
  .nav{display:flex!important;width:auto;align-items:center;gap:14px;padding:0}
  .nav ul{flex-direction:row;align-items:center}
  .nav a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--gold);border-radius:0}
  .nav .btn{margin:0 0 0 6px}
  .lang{margin:0}
}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:10px 26px;border-radius:999px;font:inherit;font-weight:600;font-size:1.05rem;text-decoration:none;border:2px solid transparent;cursor:pointer;text-align:center;line-height:1.2}
.btn-sm{min-height:48px;padding:6px 18px;font-size:1rem}
.btn-gold{background:var(--gold2);color:var(--navy);border-color:var(--gold2)}
.btn-gold:hover{background:var(--gold3);color:var(--navy)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--gold)}
.btn-ghost:hover{background:var(--panel);color:var(--text)}
.navy .btn-ghost,.hero .btn-ghost{color:var(--gold3)}
.hero .btn-ghost:hover{background:rgba(255,255,255,.08);color:#fff}
.btn-block{width:100%}
.btn[disabled]{opacity:.65;cursor:wait}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin:1.2em 0}
/* hero */
.hero{background:radial-gradient(1200px 500px at 80% -10%,#16294d 0%,var(--navy) 55%,var(--navy2) 100%);color:#EDEAE2;padding:40px 0 48px}
.hero h1{color:var(--gold3);font-size:2.1rem;font-family:var(--serif)}
.kicker{font-family:var(--caps);letter-spacing:.1em;color:var(--gold2);font-size:.95rem;text-transform:uppercase}
.hero .lead{color:#E2E6EF}
.note{display:flex;gap:10px;align-items:flex-start;color:#DCE1EC;font-size:1rem}
.note .ic{color:var(--gold2)}
.hero-grid{display:grid;gap:32px}
.phones{display:flex;gap:14px;justify-content:center}
.phone{margin:0;flex:1 1 0;max-width:230px}
.phone img{border-radius:22px;border:2px solid var(--gold);background:var(--navy2);box-shadow:0 18px 40px rgba(0,0,0,.45);width:100%}
.phone figcaption{text-align:center;font-size:.92rem;color:#DCE1EC;margin-top:10px}
@media (min-width:900px){.hero{padding:64px 0 72px}.hero-grid{grid-template-columns:1.15fr 1fr;align-items:center}.hero h1{font-size:2.8rem}.phone:nth-child(2){margin-top:48px}}
/* sections */
.section{padding:44px 0}
.section.alt{background:var(--cream)}
.navy{background:var(--navy);color:#EDEAE2}
.navy h2{color:var(--gold2);display:flex;gap:10px;align-items:center}
.page-head{background:var(--navy);color:#EDEAE2;padding:34px 0 30px}
.page-head h1{color:var(--gold3)}
.page-head .lead{color:#E2E6EF;max-width:760px}
.page-head a{color:var(--gold3)}
.cards{list-style:none;padding:0;margin:0;display:grid;gap:16px}
@media (min-width:700px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.cards{grid-template-columns:repeat(3,1fr)}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin:0}
.card .ic{color:var(--ink);width:32px;height:32px;margin-bottom:10px}
.card p{margin:0;color:var(--muted)}
.card b,.guide b,b.ui{font-weight:600;color:#3B2C08;background:var(--panel);border-radius:4px;padding:0 4px}
.ticks{list-style:none;padding:0;margin:0}
.ticks li{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.ticks .ic{color:var(--ok);margin-top:2px}
.ticks.light li{font-size:1.1rem}
.ticks.light .ic{color:var(--gold2)}
@media (min-width:800px){.ticks.light{display:grid;grid-template-columns:1fr 1fr;gap:6px 32px}}
.band{text-align:center;max-width:760px}
.band .btn{margin-top:8px}
.two{display:grid;gap:28px}
@media (min-width:860px){.two{grid-template-columns:1fr 1fr}}
.box{background:var(--panel);border-radius:var(--radius);padding:20px 22px;border:1px solid var(--line)}
.box h2,.box h3{margin-top:0}
.box.rules{border-left:5px solid var(--gold)}
.steps{list-style:none;padding:0;margin:0;display:grid;gap:14px}
@media (min-width:800px){.steps{grid-template-columns:repeat(3,1fr)}}
.steps li{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:0}
.steps p{margin:0;color:var(--muted)}
.num{flex:none;width:40px;height:40px;border-radius:50%;background:var(--navy);color:var(--gold2);font-family:var(--caps);display:flex;align-items:center;justify-content:center;font-size:1.1rem}
.plain li{margin-bottom:.6em}
.note-line{border-left:4px solid var(--gold);padding:4px 0 4px 14px;color:var(--muted)}
.qs li{margin-bottom:.7em}
.trouble{width:100%;border-collapse:collapse;margin:0 0 1.2em;background:#fff;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.trouble th,.trouble td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid var(--line)}
.trouble thead th{background:var(--navy);color:var(--gold3);font-family:var(--caps);font-size:.95rem;letter-spacing:.04em}
.trouble tbody th{font-weight:600;width:40%}
@media (max-width:700px){.trouble thead{display:none}.trouble,.trouble tbody,.trouble tr,.trouble th,.trouble td{display:block;width:100%}.trouble tbody th{background:var(--panel);border-bottom:0}.trouble tr{border-bottom:2px solid var(--line)}}
/* forms */
.signup-grid{display:grid;gap:28px}
@media (min-width:900px){.signup-grid{grid-template-columns:1.6fr 1fr;align-items:start}.side{position:sticky;top:90px}}
.side{display:grid;gap:16px}
.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px}
@media (min-width:700px){.form-card{padding:30px}}
.field{margin:0 0 20px;border:0;padding:0;min-width:0}
.field label,.field legend{display:block;font-weight:600;margin-bottom:6px}
.field legend{padding:0}
.req{color:var(--err)}
.opt{font-weight:400;color:var(--muted);font-size:.95rem}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=date],input[type=password],input:not([type]),select,textarea{width:100%;min-height:52px;padding:10px 14px;font:inherit;font-size:1.05rem;color:var(--text);background:#fff;border:1.5px solid #8C7B55;border-radius:10px}
textarea{min-height:120px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--navy);outline:3px solid var(--gold2);outline-offset:1px}
.has-error input,.has-error select,.has-error textarea,[aria-invalid="true"]{border-color:var(--err)}
.field-error{color:var(--err);font-weight:600;margin:6px 0 0;font-size:.98rem;min-height:0}
.field-error:empty{display:none}
.form-level{margin:0 0 14px}
.choices{display:grid;gap:8px}
.choice,.check{display:flex;gap:12px;align-items:flex-start}
.choice{min-height:48px;padding:10px 14px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;background:var(--cream2)}
.choice:hover{border-color:var(--gold)}
.choice input,.check input,.checklist input{width:24px;height:24px;flex:none;margin:2px 0 0;accent-color:var(--navy)}
.check{background:var(--cream);border-radius:10px;padding:14px;flex-wrap:wrap}
.check label{flex:1;font-weight:400;margin:0;min-width:0}
.check .help,.check .field-error{flex-basis:100%;margin-left:36px}
.success{text-align:center;padding:10px 0}
.success .ic{width:56px;height:56px;color:var(--ok);margin:0 auto 10px;display:block}
.success:focus{outline:none}
.alert{background:#FBE9E5;border:1px solid #E3B4AA;color:var(--err);padding:14px 16px;border-radius:10px}
.notice{background:var(--panel);border-radius:10px;padding:14px 16px;display:flex;gap:10px;align-items:flex-start}
.notice.warn{border-left:5px solid var(--gold)}
.status{color:var(--ok);font-weight:600;min-height:1.4em}
.seg{display:flex;gap:6px;background:var(--panel);padding:6px;border-radius:999px;margin-bottom:22px}
.seg-btn{flex:1;min-height:48px;border:0;border-radius:999px;background:transparent;font:inherit;font-weight:600;color:var(--muted);cursor:pointer}
.seg-btn[aria-pressed="true"]{background:var(--navy);color:var(--gold3)}
.grid3{display:grid;gap:0 16px}
@media (min-width:760px){.grid3{grid-template-columns:repeat(3,1fr)}}
/* faq & prose */
.faq details{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px}
.faq summary{cursor:pointer;padding:16px 18px;min-height:56px;font-weight:600;font-size:1.08rem;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--caps);color:var(--ink);font-size:1.4rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq .answer{padding:0 18px 8px}
.prose h2{margin-top:1.4em}
.prose .draft{background:#FFF4D6;border:1px dashed var(--gold);padding:10px 14px;border-radius:8px}
details.more{margin-top:18px}
details.more summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-weight:600;color:var(--ink)}
/* tester area */
.gate{text-align:center;max-width:640px;margin:0 auto}
.gate .ic{width:44px;height:44px;color:var(--ink);margin:0 auto 10px;display:block}
.gate .actions{justify-content:center}
.page-head .btn-ghost{color:var(--gold3);margin-left:8px}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px;border-bottom:2px solid var(--line);padding-bottom:10px}
.tab{min-height:48px;display:inline-flex;align-items:center;padding:0 18px;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:600;background:var(--panel)}
.tab[aria-current="true"]{background:var(--navy);color:var(--gold3)}
.panel:focus{outline:none}
.invite{display:flex;gap:16px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:22px}
.invite.ready{background:var(--navy);color:#EDEAE2;border-color:var(--gold)}
.invite.ready h2{color:var(--gold2)}
.invite .ic{width:34px;height:34px;color:var(--ink)}
.invite.ready .ic{color:var(--gold2)}
.invite p:last-child{margin-bottom:0}
.meter{margin:0 0 14px}
.track{height:16px;background:var(--panel);border:1px solid var(--line);border-radius:999px;overflow:hidden}
.track span{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));transition:width .3s}
.meter p{margin:8px 0 0;color:var(--muted)}
.checklist{list-style:none;padding:0;margin:0 0 10px}
.checklist li{display:flex;gap:12px;align-items:center;min-height:52px;border-bottom:1px solid var(--line);margin:0}
.checklist label{flex:1;padding:10px 0;cursor:pointer}
.msg,.fb{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:14px}
.meta{color:var(--muted);font-size:.95rem;margin-bottom:.5em}
.badge{display:inline-block;background:var(--navy);color:var(--gold3);font-size:.85rem;padding:2px 10px;border-radius:999px;margin-right:6px}
.st-fixed,.st-answered{background:var(--ok);color:#fff}
.st-seen{background:var(--ink);color:#fff}
.answer{background:var(--cream);border-left:4px solid var(--gold);padding:12px 16px;border-radius:8px;margin-top:10px}
.fb .answer h3{font-size:1rem;margin-bottom:.3em}
.qa{margin-bottom:.6em}
.dls{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.dl{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;margin:0}
.dl a{display:flex;gap:12px;align-items:center;min-height:48px;text-decoration:none;color:var(--text)}
.dl a .ic{color:var(--ink)}
.dl p{margin:4px 0 0 38px;color:var(--muted)}
.ft{font-size:.85rem;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:0 6px}
.skel span{display:block;height:18px;margin:12px 0;border-radius:8px;background:linear-gradient(90deg,var(--panel),#fff,var(--panel));background-size:200% 100%;animation:sh 1.4s infinite}
.skel span:nth-child(3n){width:70%}
@keyframes sh{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* footer */
.site-footer{background:var(--navy2);color:#C9CFDC;padding:34px 0 40px;font-size:1rem}
.site-footer a{color:var(--gold3)}
.brand-foot{display:flex;gap:10px;align-items:center;font-family:var(--caps);letter-spacing:.12em;color:var(--gold2);text-transform:uppercase}
.brand-foot img{width:32px;height:32px;border-radius:8px}
.disc{max-width:720px}
.site-footer .small{color:#AEB6C8}
.field .choice{display:flex;font-weight:400;margin:0}
.nav a.btn-gold,.nav a.btn-gold:hover,.nav a.btn-gold[aria-current="page"]{color:var(--navy);border-radius:999px}.nav a.btn-gold{background:var(--gold2)}.nav a.btn-gold:hover{background:var(--gold3)}.nav a.btn-gold[aria-current="page"],.nav a.btn-gold[aria-current="page"]:hover{box-shadow:inset 0 0 0 2px var(--navy)}
/* ===== Opening animation (homepage), ported from the app; full run 3.5 s, "still" without motion ===== */
.intro{position:fixed;inset:0;z-index:10000;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px calc(6vh + env(safe-area-inset-bottom,0px));background:radial-gradient(120% 75% at 50% 40%,#0F1F44 0%,#070F24 52%,#030916 100%);color:#F3DFA6;-webkit-tap-highlight-color:transparent;touch-action:none;cursor:pointer;animation:introFailsafe .5s ease 7s forwards}
@keyframes introFailsafe{to{opacity:0;visibility:hidden;pointer-events:none}}
.intro.out{opacity:0;transition:opacity .6s ease;pointer-events:none}
.intro.out.fast{transition-duration:.3s}
.intro.out .intro-stage{transform:scale(1.07);filter:blur(1.5px);transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .7s ease}
.intro-stage{position:relative;width:min(46vw,188px);aspect-ratio:1}
.intro-glyph{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 6px rgba(232,196,110,.55))}
.intro-glyph circle,.intro-glyph path{fill:none}
.intro-glyph .ig-dot{fill:url(#igGold)}
.ig-ring,.ig-tri,.ig-bar{stroke-dasharray:100 100;stroke-dashoffset:100}
.ig-ring-spark{stroke:#FFF6DA;stroke-dasharray:3 97;stroke-dashoffset:3;opacity:0;filter:drop-shadow(0 0 3px #FFE9AE)}
.ig-dot{opacity:0;transform-box:fill-box;transform-origin:center}
.ig-shine{transform:translateX(0);opacity:0}
.intro-beam,.intro-halo,.intro-flare,.intro-core,.intro-rays,.intro-name span,.intro-tag{opacity:0}
.intro-beam{position:absolute;left:50%;bottom:50%;width:2px;height:62vh;margin-left:-1px;background:linear-gradient(to bottom,rgba(255,236,190,0) 0%,rgba(255,236,190,.35) 55%,rgba(255,246,222,.95) 100%);transform-origin:50% 0;transform:scaleY(0);filter:blur(.3px);box-shadow:0 0 12px rgba(255,226,160,.55)}
.intro-core{position:absolute;left:50%;top:50%;width:46%;height:46%;margin:-23% 0 0 -23%;border-radius:50%;background:radial-gradient(circle,rgba(255,250,232,1) 0%,rgba(255,232,170,.75) 12%,rgba(232,190,95,.28) 38%,rgba(232,190,95,0) 70%);transform:scale(0)}
.intro-flare{position:absolute;left:50%;top:50%;width:150vw;height:2px;margin:-1px 0 0 -75vw;background:linear-gradient(90deg,rgba(255,236,190,0) 0%,rgba(255,240,205,0) 20%,rgba(255,248,226,.95) 50%,rgba(255,240,205,0) 80%,rgba(255,236,190,0) 100%);transform:scaleX(0);filter:blur(.4px)}
.intro-halo{position:absolute;inset:-60%;border-radius:50%;background:radial-gradient(circle,rgba(232,196,110,.38) 0%,rgba(232,196,110,.14) 32%,rgba(232,196,110,0) 62%);transform:scale(.6)}
.intro-rays{position:absolute;left:50%;top:50%;width:150vmax;height:150vmax;margin:-75vmax 0 0 -75vmax;border-radius:50%;pointer-events:none;background:repeating-conic-gradient(from 0deg,rgba(232,196,110,.16) 0deg 1.4deg,rgba(232,196,110,0) 1.4deg 10deg);-webkit-mask:radial-gradient(circle,#000 0%,rgba(0,0,0,.6) 18%,transparent 46%);mask:radial-gradient(circle,#000 0%,rgba(0,0,0,.6) 18%,transparent 46%)}
.intro-name{margin-top:clamp(26px,5vh,40px);font-family:var(--caps);font-weight:600;font-size:clamp(1.2rem,6.2vw,1.85rem);letter-spacing:.24em;padding-left:.24em;white-space:nowrap;line-height:1.1;filter:drop-shadow(0 0 10px rgba(232,196,110,.28))}
.intro-name span{display:inline-block;background:linear-gradient(180deg,#FBEBC0 0%,#E0BE6A 55%,#B48D35 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.intro-name .sp{width:.35em}
.intro-tag{margin-top:12px;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;text-align:center;color:rgba(220,225,236,.82);max-width:92vw}
.intro-motes{position:absolute;inset:0;pointer-events:none}
.intro-motes span{position:absolute;bottom:-6px;border-radius:50%;background:#F3DFA6;box-shadow:0 0 6px rgba(243,223,166,.9);opacity:0;animation-name:introMote;animation-timing-function:linear;animation-fill-mode:both}
@keyframes introMote{0%{transform:translate(0,0);opacity:0}15%{opacity:.8}70%{opacity:.45}100%{transform:translate(var(--dx,0px),-62vh);opacity:0}}
.intro.play .intro-beam{animation:ibBeam .8s cubic-bezier(.3,.6,.2,1) .08s forwards}
@keyframes ibBeam{0%{opacity:0;transform:scaleY(0)}15%{opacity:1}55%{opacity:1;transform:scaleY(1)}100%{opacity:0;transform:scaleY(1)}}
.intro.play .intro-core{animation:ibCore 1.4s cubic-bezier(.2,.8,.2,1) .42s forwards}
@keyframes ibCore{0%{opacity:0;transform:scale(0)}18%{opacity:1;transform:scale(1.5)}45%{opacity:.9;transform:scale(.95)}100%{opacity:.5;transform:scale(1.05)}}
.intro.play .intro-flare{animation:ibFlare .8s ease-out .47s forwards}
@keyframes ibFlare{0%{opacity:0;transform:scaleX(0)}25%{opacity:1;transform:scaleX(.55)}100%{opacity:0;transform:scaleX(1)}}
.intro.play .ig-dot{animation:ibDot .6s cubic-bezier(.2,1.6,.4,1) .47s forwards}
@keyframes ibDot{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.6)}100%{opacity:1;transform:scale(1)}}
.intro.play .ig-ring{animation:ibDraw .85s cubic-bezier(.55,.1,.3,1) .55s forwards}
.intro.play .ig-ring-spark{animation:ibSpark .85s cubic-bezier(.55,.1,.3,1) .55s forwards}
.intro.play .ig-tri{animation:ibDraw .78s cubic-bezier(.5,.1,.3,1) .85s forwards}
.intro.play .ig-bar{animation:ibDraw .34s cubic-bezier(.3,.2,.2,1) 1.36s forwards}
@keyframes ibDraw{to{stroke-dashoffset:0}}
@keyframes ibSpark{0%{opacity:0;stroke-dashoffset:3}8%{opacity:1}88%{opacity:1}100%{opacity:0;stroke-dashoffset:-97}}
.intro.play .intro-halo{animation:ibHalo 1.4s ease-out 1.5s forwards}
@keyframes ibHalo{0%{opacity:0;transform:scale(.6)}35%{opacity:1;transform:scale(1.05)}100%{opacity:.7;transform:scale(1)}}
.intro.play .intro-glyph{animation:ibGlow 1s ease-out 1.5s both}
@keyframes ibGlow{0%{filter:drop-shadow(0 0 6px rgba(232,196,110,.55))}30%{filter:drop-shadow(0 0 14px rgba(255,226,150,.95))}100%{filter:drop-shadow(0 0 8px rgba(232,196,110,.7))}}
.intro.play .intro-rays{animation:ibRaysIn 1.2s ease-out 1.57s forwards,ibRaysTurn 30s linear 1.57s infinite}
@keyframes ibRaysIn{0%{opacity:0}40%{opacity:.8}100%{opacity:.5}}
@keyframes ibRaysTurn{to{transform:rotate(360deg)}}
.intro.play .ig-shine{animation:ibShine .68s cubic-bezier(.4,0,.2,1) 1.8s forwards}
@keyframes ibShine{0%{opacity:1;transform:translateX(0)}100%{opacity:1;transform:translateX(56px)}}
.intro.play .intro-name span{animation:ibLetter .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(1.5s + var(--i,0)*40ms)}
@keyframes ibLetter{0%{opacity:0;transform:translateY(10px) scale(1.12)}60%{opacity:1}100%{opacity:1;transform:none}}
.intro.play .intro-tag{animation:ibFade .6s ease 2.1s forwards}
@keyframes ibFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.intro.still .ig-ring,.intro.still .ig-tri,.intro.still .ig-bar{stroke-dashoffset:0}
.intro.still .ig-dot,.intro.still .intro-name span,.intro.still .intro-tag{opacity:1}
.intro.still .intro-halo{opacity:.6;transform:none}
body.intro-reveal .site-header,body.intro-reveal .langbar,body.intro-reveal main,body.intro-reveal .site-footer{animation:introReveal .8s cubic-bezier(.2,.7,.2,1) both}
@keyframes introReveal{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
/* ===== Language flags, always visible under the header ===== */
.langbar{background:var(--navy2);border-bottom:1px solid rgba(200,163,76,.3)}
.langbar-in{display:flex;align-items:center;justify-content:center;gap:12px;min-height:52px}
.lang-now{display:none;color:#C9CFDC;font-size:.95rem}
.flags{display:flex;gap:4px}
.flag{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:0;background:transparent;border-radius:10px;cursor:pointer}
.flag .fl{display:block;width:30px;height:20px;border-radius:4px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.3);transition:transform .2s ease,box-shadow .2s ease}
.flag svg{display:block;width:100%;height:100%}
.flag:hover .fl{transform:translateY(-2px) scale(1.06)}
.flag[aria-current="true"] .fl{box-shadow:0 0 0 2px var(--navy2),0 0 0 4px var(--gold2)}
.flag:focus-visible{outline:3px solid var(--gold);outline-offset:0}
@media (min-width:600px){.langbar-in{justify-content:flex-end}.lang-now{display:inline}}
.lang-out main,.lang-out .site-footer,.lang-out .langbar-in,.lang-out .site-header .bar{opacity:0;transition:opacity .22s ease}
.lang-in main,.lang-in .site-footer{animation:amFadeIn .45s ease both}
@keyframes amFadeIn{from{opacity:0}to{opacity:1}}
/* ===== Scroll reveal, hover lift, floating screenshots ===== */
.fx .rv{opacity:0;transform:translateY(18px)}
.fx .rv.in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--rd,0)*80ms)}
.card,.dl,.msg,.fb,.steps li>div{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.card:hover,.card:focus-within,.dl:hover,.dl:focus-within{transform:translateY(-4px);box-shadow:0 14px 30px rgba(11,24,48,.12);border-color:var(--gold)}
.faq details{transition:border-color .25s ease,box-shadow .25s ease}
.faq details:hover{border-color:var(--gold);box-shadow:0 8px 20px rgba(11,24,48,.08)}
.btn{transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,color .18s ease}
.btn:hover,.btn:focus-visible{transform:translateY(-2px);box-shadow:0 8px 18px rgba(11,24,48,.2)}
.btn:active,.btn[disabled]:hover{transform:none;box-shadow:none}
.fx .phone img{animation:amFloat 9s ease-in-out infinite}
.fx .phone:nth-child(2) img{animation:amFloat2 10s ease-in-out -3s infinite}
@keyframes amFloat{0%,100%{transform:translateY(0) rotate(-1.2deg)}50%{transform:translateY(-10px) rotate(.4deg)}}
@keyframes amFloat2{0%,100%{transform:translateY(-6px) rotate(1.2deg)}50%{transform:translateY(4px) rotate(-.4deg)}}
/* ===== Cue-partner demo (homepage) ===== */
.demo-grid{display:grid;gap:28px;align-items:center}
@media (min-width:900px){.demo-grid{grid-template-columns:1fr 1.1fr}}
.demo-kick{color:var(--ink);margin-bottom:.3em}
.demo{background:radial-gradient(120% 90% at 20% 0%,#16294d 0%,var(--navy) 60%,var(--navy2) 100%);color:#EDEAE2;border:1px solid var(--gold);border-radius:20px;padding:22px;box-shadow:0 20px 44px rgba(11,24,48,.25)}
.demo-ex{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:#C9CFDC;margin:0 0 14px}
.bubble{border-radius:16px;padding:14px 16px;margin:0 0 12px}
.bubble.partner{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14)}
.bubble.you{background:rgba(228,195,110,.08);border:1px solid rgba(228,195,110,.4)}
.who{display:flex;align-items:center;gap:10px;margin:0 0 6px;font-size:.92rem;color:var(--gold3);font-weight:600}
.line{display:grid;margin:0;font-size:1.12rem;color:#F4F1EA}
.line>span{grid-area:1/1}
.line .ghost{visibility:hidden}
.caret{display:inline-block;width:2px;height:1.05em;background:var(--gold2);margin-left:2px;vertical-align:-3px;opacity:0}
.demo[data-state="partner"] .caret{opacity:1;animation:amBlink .8s steps(1) infinite}
@keyframes amBlink{50%{opacity:0}}
.spk{display:inline-flex;gap:3px;align-items:center;height:16px}
.spk i{display:block;width:3px;height:16px;border-radius:2px;background:var(--gold2);transform:scaleY(.35)}
.demo[data-state="partner"] .spk i{animation:amBars .7s ease-in-out infinite}
.demo[data-state="partner"] .spk i:nth-child(2){animation-delay:.15s}
.demo[data-state="partner"] .spk i:nth-child(3){animation-delay:.3s}
@keyframes amBars{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.mic{position:relative;display:inline-flex;width:22px;height:22px;color:var(--gold2)}
.mic svg{width:22px;height:22px}
.demo[data-state="listening"] .mic::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--gold2);animation:amPulse 1.1s ease-out infinite}
@keyframes amPulse{from{transform:scale(.6);opacity:.9}to{transform:scale(1.5);opacity:0}}
.words{margin:0;font-size:1.2rem;line-height:1.7}
.w{display:inline-block;color:#A3ABBC;transition:color .3s ease,text-shadow .3s ease}
.w.lit{color:var(--gold2);text-shadow:0 0 12px rgba(228,195,110,.55)}
.fx .w.lit{animation:amPop .35s ease}
@keyframes amPop{40%{transform:translateY(-3px)}}
.demo-status{min-height:1.6em;margin:4px 0 10px;color:var(--gold3);font-weight:600}
.demo-actions{min-height:52px}
.demo .btn-ghost{color:var(--gold3)}
.demo .btn-ghost:hover{background:rgba(255,255,255,.08);color:#fff}
/* ===== How testing works: timeline ===== */
.steps.timeline{display:block;position:relative;max-width:780px}
.steps.timeline li{display:block;position:relative;background:none;border:0;padding:0 0 0 60px;margin:0 0 16px}
.steps.timeline li>div{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.steps.timeline .num{position:absolute;left:0;top:10px;z-index:1;background:#fff;color:var(--ink);border:2px solid var(--line);transition:background-color .4s ease,color .4s ease,border-color .4s ease,box-shadow .4s ease}
.steps.timeline li.lit .num{background:var(--gold2);color:var(--navy);border-color:var(--gold);box-shadow:0 0 0 5px rgba(228,195,110,.3)}
.steps.timeline li.lit>div{border-color:var(--gold)}
.steps.timeline::before,.steps.timeline::after{content:"";position:absolute;left:18.5px;top:var(--tl-top,20px);height:var(--tl-len,0px);width:3px;border-radius:3px;background:var(--line)}
.steps.timeline::after{background:linear-gradient(var(--gold),var(--gold2));transform-origin:top;transform:scaleY(var(--tl,0))}
/* ===== FAQ and checklist bar ===== */
.faq .answer{overflow:hidden}
.track span{position:relative;overflow:hidden;transition:width .9s cubic-bezier(.2,.7,.2,1)}
.fx .track span::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.5) 50%,transparent 65%);transform:translateX(-100%);animation:amSheen 3.6s ease-in-out 1.2s infinite}
@keyframes amSheen{60%,100%{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.fx .rv{opacity:1;transform:none}}
/* ===== Narrow screens: long addresses never widen the page ===== */
@media (max-width:899px){.signup-grid{grid-template-columns:minmax(0,1fr)}}
.alert,.form-card,.box{overflow-wrap:anywhere}
/* ===== Ars Memorandi gives (homepage) ===== */
.give{max-width:760px;margin:0 auto;text-align:center;background:var(--cream);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:var(--radius);padding:30px 20px 26px}
.give-ic{display:inline-flex;width:44px;height:44px;color:var(--gold);margin-bottom:6px}
.give-ic svg{width:44px;height:44px}
.give-kick{color:var(--ink);font-size:.88rem;margin:0 0 .6em;font-variant:small-caps}
.give-title{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.55rem;letter-spacing:0;color:var(--navy);margin:0 0 .6em}
.give-body{color:var(--muted);margin:0 auto;max-width:620px}
@media (min-width:700px){.give{padding:40px 48px 34px}.give-title{font-size:1.9rem}}
/* ===== One world, one ritual: flag marquee (flags: flag-icons, MIT) ===== */
.world{background:linear-gradient(180deg,var(--navy2) 0%,var(--navy) 100%);color:#EDEAE2;padding:38px 0 30px;overflow:hidden;border-top:1px solid rgba(200,163,76,.25)}
.world-h{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--gold3);font-size:1.4rem;letter-spacing:0;line-height:1.35;text-align:center;max-width:760px;margin:0 auto 22px}
.marquee{display:grid;gap:14px;-webkit-mask:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);mask:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%)}
.mrow{overflow:hidden}
.mtrack{display:flex;width:max-content;animation:mqLeft 90s linear infinite}
.mrow.rev .mtrack{animation-name:mqRight;animation-duration:100s}
@keyframes mqLeft{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes mqRight{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.mflag{flex:none;display:block;width:60px;height:45px;margin-right:14px;border-radius:6px;overflow:hidden;background:var(--navy);box-shadow:0 4px 12px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.14)}
.mflag img{display:block;width:100%;height:100%;object-fit:cover}
.world:hover .mtrack,.world:focus-within .mtrack,.world.paused .mtrack{animation-play-state:paused}
.world-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 18px;margin-top:22px}
.world-small{margin:0;font-family:var(--caps);letter-spacing:.1em;text-transform:uppercase;font-size:.9rem;color:var(--gold2);text-align:center}
.mq-toggle{min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid rgba(200,163,76,.6);background:transparent;color:var(--gold3);font:inherit;font-size:.95rem;cursor:pointer}
.mq-toggle:hover{background:rgba(255,255,255,.07);color:#fff}
@media (min-width:900px){.world-h{font-size:1.75rem}.mflag{width:76px;height:57px;margin-right:18px}}
@media (prefers-reduced-motion:reduce){.marquee{-webkit-mask:none;mask:none;padding:0 16px}.mtrack{width:auto;flex-wrap:wrap;justify-content:center;row-gap:12px}.mflag{margin:0 6px}.mflag.dup,.mq-toggle{display:none}}
/* ===== "Only use text you may have" note ===== */
.allowed,.card .allowed,.steps .allowed{margin:10px 0 0;font-size:.92rem;line-height:1.5;color:var(--muted);border-left:3px solid var(--gold);padding:2px 0 2px 10px}
/* ===== Language: one flag button + picker ===== */
.langbar{display:none}
.lang-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;margin-inline-start:auto;border:1.5px solid rgba(200,163,76,.6);border-radius:999px;background:transparent;color:var(--gold3);font:inherit;font-size:.92rem;font-weight:600;cursor:pointer}
.lang-btn:hover{background:rgba(255,255,255,.07)}
.lflag{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:21px;border-radius:4px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.3)}
.lflag img{display:block;width:100%;height:100%;object-fit:cover}
.lflag.badge{background:var(--gold2);color:var(--navy);font-weight:600;font-size:.85rem;line-height:1}
.lang-code{letter-spacing:.06em}
@media (max-width:419px){.brand span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
@media (min-width:980px){.lang-btn{order:3;margin-inline-start:14px}.nav{order:2;margin-inline-start:auto}}
.lang-scrim{position:fixed;inset:0;z-index:1000;background:rgba(7,15,36,.55)}
.lang-pop{position:fixed;z-index:1001;width:300px;max-height:min(70vh,560px);display:flex;flex-direction:column;background:var(--cream2);color:var(--text);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:16px;box-shadow:0 24px 60px rgba(7,15,36,.35);overflow:hidden}
.lang-pop.sheet{left:0;right:0;bottom:0;top:auto;width:auto;max-height:80vh;border-radius:18px 18px 0 0;animation:amSheet .25s cubic-bezier(.2,.7,.2,1)}
@keyframes amSheet{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.lang-open,.lang-open body{overflow:hidden}
.lang-pop-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 10px 18px;border-bottom:1px solid var(--line)}
.lang-pop-head h2{margin:0;font-size:1.05rem}
.lang-close{width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:1.6rem;line-height:1;cursor:pointer}
.lang-close:hover{background:var(--panel)}
.lang-list{list-style:none;margin:0;padding:6px;overflow-y:auto;overscroll-behavior:contain}
.lang-list li{margin:0}
.lang-list button{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:6px 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:1rem;text-align:start;cursor:pointer}
.lang-list button:hover{background:var(--panel)}
.lang-list button[aria-current="true"]{background:var(--navy);color:var(--gold3);font-weight:600}
.lang-name{flex:1}
.lang-check{color:var(--gold2)}
/* ===== Heritage block ===== */
.heritage{background:radial-gradient(900px 400px at 15% 0%,#16294d 0%,var(--navy) 60%,var(--navy2) 100%);color:#EDEAE2;padding:46px 0 42px;text-align:center}
.her-logo{display:block;margin:0 auto 14px;border-radius:12px}
.heritage h2{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0;color:var(--gold3);font-size:1.5rem;max-width:760px;margin:0 auto 24px}
.her-list{list-style:none;padding:0;margin:0 auto;max-width:960px;display:grid;gap:12px;text-align:start}
.her-list li{display:flex;gap:14px;align-items:flex-start;margin:0;padding:16px 18px;border:1px solid rgba(200,163,76,.35);border-radius:14px;background:rgba(255,255,255,.04)}
.her-list .ic{color:var(--gold2);margin-top:2px}
.her-faq{margin:22px 0 6px}
.her-faq a{color:var(--gold3);font-weight:600}
.her-note{margin:0;font-size:.92rem;color:#C9CFDC}
@media (min-width:760px){.her-list{grid-template-columns:repeat(2,1fr)}.heritage h2{font-size:1.85rem}}
@media (min-width:1100px){.her-list{grid-template-columns:repeat(3,1fr)}}
/* ===== What the app does ===== */
.sec-head{text-align:center;max-width:760px;margin:0 auto 30px}
.sec-head .lead{color:var(--muted)}
.showcase{display:grid;gap:22px;margin-bottom:28px}
.show{display:grid;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;overflow:hidden}
.show-num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--navy);color:var(--gold2);font-family:var(--caps);margin-bottom:10px}
.show h3{font-size:1.3rem}
.show p{color:var(--muted);margin:0}
.show-phone{margin:0;justify-self:center;width:min(62%,220px)}
.show-phone img{width:100%;border-radius:22px;border:2px solid var(--gold);background:var(--navy2);box-shadow:0 16px 36px rgba(11,24,48,.28)}
@media (min-width:760px){.show{grid-template-columns:1.2fr .8fr;padding:30px 36px}.show.flip .show-text{order:2}.show-phone{width:220px}}
.tiles{list-style:none;padding:0;margin:0;display:grid;gap:14px}
@media (min-width:600px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.tiles{grid-template-columns:repeat(5,1fr)}}
.tile{margin:0;padding:20px;border-radius:16px;background:var(--cream);border:1px solid var(--line);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.tile:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(11,24,48,.12);border-color:var(--gold)}
.tile .ic{color:var(--ink);width:30px;height:30px;margin-bottom:8px}
.tile h3{font-size:1.05rem}
.tile p{margin:0;color:var(--muted);font-size:.98rem}
/* ===== Right-to-left (he, ar): mirror the layout, keep flags and phones as they are ===== */
.marquee,.phones,.show-phone{direction:ltr}
[dir="rtl"] .note-line,[dir="rtl"] .allowed,[dir="rtl"] .answer,[dir="rtl"] .box.rules{border-left:0;border-right:4px solid var(--gold);padding-left:0;padding-right:14px}
[dir="rtl"] .nav a[aria-current="page"]{box-shadow:inset -3px 0 0 var(--gold)}
[dir="rtl"] .skip{left:auto;right:16px}
[dir="rtl"] .trouble th,[dir="rtl"] .trouble td{text-align:right}
[dir="rtl"] .steps.timeline li{padding:0 60px 0 0}
[dir="rtl"] .steps.timeline .num{left:auto;right:0}
[dir="rtl"] .steps.timeline::before,[dir="rtl"] .steps.timeline::after{left:auto;right:18.5px}
[dir="rtl"] .check .help,[dir="rtl"] .check .field-error{margin-left:0;margin-right:36px}
[dir="rtl"] .dl p{margin:4px 38px 0 0}
@media (min-width:980px){[dir="rtl"] .nav a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--gold)}}
/* feedback form + "My reports" + owner view */
.grid2{display:grid;gap:0 16px}
@media (min-width:620px){.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fb-list,.own-list{min-width:0}
.st-progress{background:var(--gold2);color:var(--navy)}
.st-wontfix{background:#6b6558;color:#fff}
.st-new{background:var(--navy);color:var(--gold3)}
.badge.pr{font-weight:600}
.badge.p-high{background:var(--err);color:#fff}
.badge.p-normal{background:var(--panel);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}
.badge.p-low{background:#fff;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.tab-owner{border:1.5px dashed var(--gold)}
.own-stats{display:grid;gap:10px;margin:16px 0 8px}
@media (min-width:760px){.own-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.own-group{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;min-width:0}
.own-group h3{font-size:.95rem;font-family:var(--caps);letter-spacing:.06em;color:var(--ink);margin:0 0 8px}
.own-group ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.chip{min-height:40px;display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1.5px solid var(--line);background:var(--cream2);color:var(--text);font:inherit;font-size:.92rem;cursor:pointer;max-width:100%;text-align:start}
.chip b{display:inline-block;min-width:1.6em;padding:0 6px;border-radius:999px;background:var(--panel);color:var(--ink);font-size:.85rem;text-align:center}
.chip:hover{border-color:var(--gold)}
.chip.on{background:var(--navy);color:var(--gold3);border-color:var(--navy)}
.chip.on b{background:var(--gold2);color:var(--navy)}
.chip.p-high:not(.on){border-color:rgba(158,36,22,.55)}
.own-bar{display:grid;gap:0 16px;margin-top:10px}
@media (min-width:620px){.own-bar{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}
.own-bar input[type=search]{width:100%;min-height:52px;padding:10px 14px;font:inherit;font-size:1.05rem;color:var(--text);background:#fff;border:1.5px solid #8C7B55;border-radius:10px;-webkit-appearance:none;appearance:none}
.own-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:4px 0 14px}
.own-actions p{margin:0 auto 0 0;color:var(--muted)}
.own-list{list-style:none;margin:0;padding:0}
.own-item{background:#fff;border:1px solid var(--line);border-left:5px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}
.own-item.p-high{border-left-color:var(--err)}
.own-item.p-normal{border-left-color:var(--gold)}
.own-item summary{cursor:pointer;padding:14px 16px;list-style:none;min-height:48px}
.own-item summary::-webkit-details-marker{display:none}
.own-item summary:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.own-item details[open] summary{background:var(--cream2);border-bottom:1px solid var(--line)}
.own-sum{display:grid;gap:6px;min-width:0}
.own-tags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.own-tags .badge{margin:0}
.own-meta{color:var(--muted);font-size:.92rem;overflow-wrap:anywhere}
.own-ex{color:var(--text);overflow-wrap:anywhere}
.own-body{padding:14px 16px 18px;overflow-wrap:anywhere}
.own-dl{display:grid;gap:6px 16px;margin:12px 0 16px;padding:12px 14px;background:var(--cream);border-radius:10px}
@media (min-width:620px){.own-dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
.own-dl div{min-width:0}
.own-dl dt{font-size:.85rem;color:var(--muted)}
.own-dl dd{margin:0}
.own-form{border-top:1px solid var(--line);padding-top:12px}
.own-save{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.own-save .status{margin:0}
.own-none{padding:14px 0;color:var(--muted)}
[dir="rtl"] .own-item{border-left:1px solid var(--line);border-right:5px solid var(--line)}
[dir="rtl"] .own-item.p-high{border-right-color:var(--err)}
[dir="rtl"] .own-item.p-normal{border-right-color:var(--gold)}
[dir="rtl"] .own-actions p{margin:0 0 0 auto}
.own-item details[open] .own-ex{display:none}
/* "What the app does": three examples side by side, a swipe row on phones, zoom, lightbox, demos */
.examples{margin-bottom:30px}
.ex-track{list-style:none;margin:0;padding:6px 2px 16px;display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}
.ex-track::-webkit-scrollbar{display:none}
.ex{position:relative;flex:0 0 84%;scroll-snap-align:center;display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px 18px 20px;min-width:0;transition:opacity .3s ease,filter .3s ease}
.ex-media{position:relative;display:flex;justify-content:center;padding:2px 0 34px}
.ex-zoom{position:relative;z-index:1;display:block;width:150px;padding:0;margin:0;border:0;background:none;border-radius:20px;cursor:zoom-in;transform-origin:center;transition:transform .35s cubic-bezier(.2,.7,.2,1),filter .35s ease}
.ex-zoom img{display:block;width:100%;height:auto;border-radius:18px;border:2px solid var(--gold);background:var(--navy2);box-shadow:0 12px 26px rgba(11,24,48,.22);transition:box-shadow .35s ease}
.ex-zoom:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.ex.zoomed{z-index:5}
.ex.zoomed .ex-zoom{z-index:6}
.ex.zoomed .ex-zoom img{box-shadow:0 34px 80px rgba(11,24,48,.45)}
.ex-track.has-zoom .ex:not(.zoomed){opacity:.45;filter:saturate(.55)}
.ex-text h3{font-size:1.15rem;margin:.15em 0 .3em}
.ex-text p{color:var(--muted);margin:0;font-size:.98rem}
.ex-text .allowed{margin-top:.6em;font-size:.92rem}
.ex .show-num{width:30px;height:30px;font-size:.9rem;margin-bottom:6px}
.ex-dots{display:flex;justify-content:center;gap:4px;margin-top:2px}
.ex-dot{position:relative;width:32px;height:32px;padding:0;border:0;background:none;cursor:pointer;border-radius:50%}
.ex-dot::before{content:"";position:absolute;inset:10px;border-radius:50%;border:1.5px solid var(--gold);background:transparent;transition:background .25s ease,transform .25s ease}
.ex-dot[aria-current="true"]::before{background:var(--gold);transform:scale(1.2)}
.ex-dot:focus-visible{outline:3px solid var(--gold);outline-offset:0}
@media (min-width:760px){
  .ex-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;overflow:visible;padding:0}
  .ex{flex:none}
  .ex-zoom{width:160px}
  .ex-dots{display:none}
}
.anim{position:absolute;left:50%;bottom:0;z-index:2;transform:translateX(-50%);width:min(206px,100%);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 24px rgba(11,24,48,.16);padding:9px 11px;font-size:.8rem;line-height:1.35;color:var(--text);pointer-events:none}
.anim svg{display:block}
/* study plan: days tick off toward the ceremony */
.ap-top{display:flex;align-items:center;gap:6px;margin-bottom:6px;color:var(--ink)}
.ap-cal{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.ap-left{font-size:.95rem;min-width:1.2em}
.ap-days{display:flex;align-items:center;gap:5px}
.ap-day{width:19px;height:19px;flex:none;border-radius:5px;border:1.5px solid var(--line);background:var(--cream2);display:grid;place-items:center;transition:background .3s ease,border-color .3s ease}
.ap-day svg{width:12px;height:12px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.4);transition:opacity .25s ease,transform .25s ease}
.ap-day.on{background:var(--gold);border-color:var(--gold)}
.ap-day.on svg{opacity:1;transform:none}
.ap-goal{width:28px;height:28px;flex:none;border-radius:50%;background:var(--navy);display:grid;place-items:center;margin-inline-start:3px;transition:box-shadow .45s ease}
.ap-goal svg{width:20px;height:20px;fill:none;stroke:var(--gold2);stroke-width:1.5}
.ap-goal.on{box-shadow:0 0 0 5px rgba(200,163,76,.35)}
.ap-bar{height:4px;margin-top:8px;border-radius:4px;background:var(--panel);overflow:hidden}
.ap-bar span{display:block;height:100%;width:0;background:var(--gold);transition:width .4s ease}
/* cue partner: the partner's line, then yours word by word */
.ac-who{margin:0 0 3px;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ac-line{margin:0;padding:6px 9px;border-radius:10px}
.ac-p{background:var(--panel);opacity:0;transform:translateY(4px);transition:opacity .45s ease,transform .45s ease}
.ac-p.on{opacity:1;transform:none}
.ac-you{margin-top:6px;background:var(--navy);color:var(--gold3);min-height:2.7em}
.ac-you span{opacity:0;transition:opacity .3s ease}
.ac-you span.on{opacity:1}
/* own text: role names found and highlighted */
.ar-doc{position:relative;padding:2px 0}
.ar-scan{position:absolute;left:-4px;right:-4px;top:0;height:18px;border-radius:6px;background:linear-gradient(90deg,transparent,rgba(228,195,110,.35),transparent);opacity:0;transition:transform .45s ease,opacity .3s ease}
.ar-scan.on{opacity:1}
.ar-line{position:relative;display:flex;align-items:center;gap:7px;height:18px}
.ar-line+.ar-line{margin-top:4px}
.ar-name{flex:none;width:36px;height:10px;border-radius:3px;background:#D5CCB4;transition:background .3s ease,box-shadow .3s ease}
.ar-line.cont .ar-name{visibility:hidden}
.ar-text{height:6px;border-radius:3px;background:var(--panel)}
.ar-ok{width:14px;height:14px;flex:none;margin-inline-start:auto;fill:none;stroke:var(--ok);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .3s ease}
.ar-line.on .ar-name{background:var(--gold2);box-shadow:0 0 0 3px rgba(228,195,110,.35)}
.ar-line.on .ar-ok{opacity:1}
/* direction: officers moving step by step on a floor plan */
.tiles{grid-auto-flow:row dense}
@media (min-width:1000px){.tiles{grid-template-columns:repeat(3,1fr)}}
.tile-wide .anim{position:relative;left:auto;bottom:auto;transform:none;width:100%;max-width:280px;margin:14px auto 0;padding:8px;box-shadow:none;background:#fff}
.tile-wide .anim svg{width:100%;height:auto}
@media (min-width:600px){.tile-wide{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:center}.tile-wide .anim{margin:0;justify-self:center}}
.af-floor{fill:var(--cream2);stroke:var(--line);stroke-width:1.5}
.af-sq{fill:var(--navy);opacity:.09}
.af-edge{fill:none;stroke:var(--line);stroke-width:1}
.af-trail{fill:none;stroke:var(--gold);stroke-width:1.6;stroke-dasharray:3 4;stroke-linecap:round}
.af-tok{transition:transform .8s cubic-bezier(.4,0,.2,1)}
.af-t1{fill:var(--gold);stroke:#fff;stroke-width:2}
.af-t2{fill:var(--navy)}
.af-t3{fill:#fff;stroke:var(--ink);stroke-width:2}
/* lightbox for taps */
.lb{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:64px 16px 24px;background:rgba(7,15,36,.9);cursor:zoom-out;animation:lb-in .2s ease}
.lb img{display:block;width:auto;height:auto;max-width:min(100%,430px);max-height:calc(100vh - 96px);border-radius:22px;border:2px solid var(--gold);background:var(--navy2);box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lb-close{position:absolute;top:10px;right:12px;width:48px;height:48px;border-radius:50%;border:1.5px solid var(--gold);background:var(--navy);color:var(--gold3);font-size:1.7rem;line-height:1;cursor:pointer}
.lb-close:focus-visible{outline:3px solid var(--gold2);outline-offset:3px}
[dir="rtl"] .lb-close{right:auto;left:12px}
body.lb-open{overflow:hidden}
@keyframes lb-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.ex-zoom,.ex,.ap-day,.ap-day svg,.ap-bar span,.ac-p,.ac-you span,.ar-scan,.ar-name,.ar-ok,.af-tok{transition:none}.lb{animation:none}}
/* 34 languages: fonts and spacing for scripts the brand fonts don't cover */
:root:is(:lang(ru),:lang(uk),:lang(bg),:lang(sr),:lang(el)){--caps:"Source Serif 4",Georgia,"Times New Roman",serif}
:root:lang(ja){--serif:"Source Serif 4","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP","Noto Serif CJK JP",serif;--caps:var(--serif)}
:root:lang(zh){--serif:"Source Serif 4","Songti SC","Noto Serif SC","Noto Serif CJK SC","SimSun",serif;--caps:var(--serif)}
:root:lang(ko){--serif:"Source Serif 4","AppleMyungjo","Noto Serif KR","Noto Serif CJK KR","Batang",serif;--caps:var(--serif)}
:root:lang(he){--serif:"Source Serif 4","Noto Serif Hebrew","David","Times New Roman",serif;--caps:var(--serif)}
:root:lang(ar){--serif:"Noto Naskh Arabic","Amiri","Traditional Arabic","Times New Roman",serif;--caps:var(--serif)}
:root:is(:lang(ar),:lang(he),:lang(ja),:lang(zh),:lang(ko)) :not(.brand,.brand *){letter-spacing:normal!important}
:root:is(:lang(ja),:lang(zh),:lang(ko)) :is(p,li,dd,.lead){line-break:strict;word-break:normal;overflow-wrap:anywhere}
.tile-wide .anim{border:0;padding:0;background:transparent;border-radius:0}