/* Structure only. Every option sets these tokens and restyles freely. Corners stay square, no shadows. */
:root{--green:#1A865A;--green-d:#0F4A33;--green-dd:#0B3625;--gold:#EBAC25;--gold-d:#B9830F;--parch:#F4F1E9;--parch-2:#EEE8DB;--brown:#655753;--gray:#474747;--teal:#035B69}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0}
img{max-width:100%;display:block}
button{font:inherit;color:inherit;cursor:pointer}
a{color:inherit}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.g{width:1em;height:1em;flex:none;display:inline-block;vertical-align:-.12em}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* skeleton loaders: every photo, the film, chat replies, legal text */
.sk{display:block;position:relative;overflow:hidden;background:var(--sk,#DCD3C0)}
.sk img{width:100%;height:100%;object-fit:cover;opacity:0}
.sk.is-loaded img{opacity:1}
.sk:not(.is-loaded)::after{content:"";position:absolute;inset:0;background:var(--sk-hi,#E9E2D2);animation:skp 1.2s ease-in-out infinite alternate}
.skl{display:block;height:.85em;margin:.45em 0;background:var(--sk,#DCD3C0);animation:skp 1.2s ease-in-out infinite alternate}
.skl.short{width:55%}
@keyframes skp{from{opacity:.25}to{opacity:.9}}
@media (prefers-reduced-motion:reduce){.sk::after,.skl{animation:none}}

/* film */
.film{position:relative;overflow:hidden;background:var(--green-dd)}
.film video{width:100%;height:100%;object-fit:cover;display:block}
.film .film-sk{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;background:var(--green-dd);pointer-events:none}
.film .film-sk span{background:#174B37;animation:skp 1.2s ease-in-out infinite alternate}
.film.is-ready .film-sk{display:none}

/* YouTube lite */
.yt,.yt-frame{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;background:#000}
.yt .sk{position:absolute;inset:0;--sk:#222;--sk-hi:#333}
.yt-play{position:absolute;left:50%;top:50%;translate:-50% -50%;width:64px;height:64px;display:grid;place-items:center;background:var(--gold);color:var(--green-dd);font-size:28px}

/* assistant */
.as{display:flex;flex-direction:column;min-height:0}
.as-log{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:12px;min-height:160px}
.as-msg{max-width:88%;padding:10px 14px;line-height:1.5}
.as-msg p{margin:0 0 .5em}.as-msg p:last-child{margin:0}
.as-msg ul{margin:.3em 0;padding-left:1.1em}
.as-me{align-self:flex-end}
.as-bot.is-pending{width:70%}
.as-handoff{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.as-handoff button,.as-handoff a{padding:8px 12px;border:0;text-decoration:none;font-weight:700}
.as-sugg{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 12px}
.as-sugg[hidden]{display:none}
.as-chip{border:1px solid currentColor;background:transparent;padding:6px 10px;font-size:.85rem}
.as-form{display:flex;gap:0;border-top:1px solid var(--line,#ccc)}
.as-in{flex:1;min-width:0;border:0;padding:14px 16px;font:inherit;background:transparent;color:inherit}
.as-in:focus{outline:none}
.as-mic,.as-send{border:0;width:52px;display:grid;place-items:center;font-size:20px}
.as-booknow{display:block;width:100%;border:0;padding:11px 16px;font:inherit;font-weight:700;text-align:center}
.as-note{margin:0;padding:8px 16px 12px;font-size:.75rem;opacity:.75}
.as-note button{background:none;border:0;padding:0;text-decoration:underline;font-size:inherit}

/* voice sheet */
dialog.vc{padding:0;border:0;width:min(560px,100vw);max-width:100vw;height:min(760px,100dvh);max-height:100dvh;margin:auto}
dialog.vc::backdrop{background:rgba(11,54,37,.72)}
.vc-in{height:100%;display:flex;flex-direction:column;padding:20px 24px 16px;gap:14px}
.vc-top{display:flex;justify-content:space-between;align-items:center}
.vc-who{display:flex;align-items:center;gap:10px;font-weight:700}
.vc-who img{width:34px;height:34px;object-fit:contain}
.vc-x{border:0;background:transparent;font-size:22px;padding:6px}
.vc-state{margin:0;min-height:1.4em;font-size:.95rem}
.vc-state button{background:none;border:0;padding:0;text-decoration:underline}
.vc-heard{font-size:1.4rem;line-height:1.3;min-height:1.3em}
.vc-reply{flex:1;overflow:auto;line-height:1.55}
.vc-reply p{margin:0 0 .6em}
.vc-ctl{display:flex;justify-content:center}
.vc-main{display:flex;align-items:center;gap:12px;border:0;padding:18px 28px;font-weight:700;font-size:1.05rem}
.vc-main .g{font-size:26px}
.vc-main:disabled{opacity:.4;cursor:not-allowed}
.vc-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:.85rem}
.vc-call{text-decoration:none;display:inline-flex;gap:6px;align-items:center}
.vc-legal{margin:0;font-size:.72rem;opacity:.75}
.vc-legal button{background:none;border:0;padding:0;text-decoration:underline;font-size:inherit}

/* dialogs */
dialog.dlg{padding:0;border:0;width:min(980px,100vw);max-width:100vw;max-height:100dvh;height:100dvh;margin:auto 0 auto auto}
dialog.dlg::backdrop{background:rgba(11,54,37,.6)}
.dlg-in{position:relative;height:100%;overflow:auto;padding:56px clamp(20px,5vw,64px) 64px}
.dlg-x{position:sticky;top:0;float:right;margin:-40px -20px 0 0;border:0;background:transparent;font-size:24px;padding:8px;z-index:2}
.rd article{max-width:720px;margin:0 auto}
.rd-cover{aspect-ratio:3/2;margin:24px 0}
.rd-gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;margin:12px 0 28px}
.rd-gal .sk{aspect-ratio:1}
.rd-more{display:flex;flex-direction:column;gap:8px;margin-top:40px;padding-top:20px;border-top:1px solid currentColor}
.rd-more button{text-align:left;background:none;border:0;padding:0;text-decoration:underline;font-size:1.1rem}
.kid-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.kid-grid .sk{aspect-ratio:3/4}
.kid-grid .kid-flyer{aspect-ratio:2/3}
.kid-grid .kid-flyer img{object-fit:contain}
.kid-nav{display:flex;flex-direction:column;gap:6px;margin-top:20px}
.kid-nav button{text-align:left;background:none;border:0;padding:0;text-decoration:underline}
@media (max-width:640px){.kid-grid{grid-template-columns:1fr}}
.legal h1{margin-top:0}
.legal p{max-width:70ch;line-height:1.6}

/* forms */
.fm{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
.fm-row{display:flex;flex-direction:column;gap:6px}
.fm-wide{grid-column:1/-1}
.fm label{font-size:.85rem;font-weight:700}
.fm input,.fm select,.fm textarea{font:inherit;padding:12px;border:1px solid var(--line,#999);background:var(--field,#fff);color:inherit;border-radius:0;width:100%}
.fm .is-bad{border-color:#B3261E;outline:1px solid #B3261E}
.fm .req{color:#B3261E;margin-left:2px}
.fm-act{align-items:flex-start}
.fm-go{border:0;padding:14px 28px;font-weight:700}
.fm-msg{margin:6px 0 0;font-size:.9rem}
@media (max-width:640px){.fm{grid-template-columns:1fr}}
