/* ===========================================================================
   Theme: peacock & sindoor.
   A deep tesserae ground so the lit exhibit panel carries the eye;
   turmeric and vermillion accents. Purely architectural and material —
   no iconography, symbols or figures anywhere.
   =========================================================================== */
:root{
  --bg:#0d5f6a;          /* peacock teal — vivid, but never the subject   */
  --panel:#f1e5cc;       /* carved sandstone: the lit stage               */
  --panel-2:#e3d3b1;     /* raw parchment                                 */
  --line:#d1bd97;        /* hairline rule                                 */
  --line-2:#b59b70;      /* heavier rule                                  */
  --well:#f8eedb;        /* recessed: input and textarea grounds           */
  --lift:#fffdf6;        /* the light a raised surface catches             */
  --onaccent:#fdf6ec;    /* text on an accent fill                        */
  --text:#2a1e11;        /* sepia ink, on panels                          */
  --muted:#66523a;       /* faded ink, on panels                          */
  --onbg:#f2fbfb;        /* text that sits directly on the dark ground    */
  --onbg-soft:#a8d5d8;
  --bgline:#1c7d88;      /* rules on the dark ground                      */
  --accent:#9e3210;      /* vermillion, dark enough to read on parchment   */
  --accent-2:#812508;
  --gold:#e0a83a;        /* haldi / brass, now a lead colour              */
  --indigo:#1b3550;
  --good:#3f8a4e;
  --good-ink:#2c5f33;   /* dark enough for small bold text on a parchment pill */
  --bad:#b32b1c;
  --bad-ink:#8a2113;
  --warn:#d99424;
  --mat:#0a2a30;         /* mount board behind artwork                    */
  --shell:rgba(10,74,84,.94);   /* header and nav, tinted per skin        */
  --radius:12px;
  /* Marcellus: Roman inscriptional letterforms — carved, never decorative.
     Spectral: a reading serif for long-form chapter text.
     Mukta: Ek Type's humanist sans, and the only one of the three that
     carries Devanagari, so it backstops every other stack for Indic text. */
  --display:"Marcellus","Iowan Old Style","Palatino Linotype",Palatino,Georgia,ui-serif,serif;
  --serif:"Spectral","Mukta","Iowan Old Style",Palatino,Georgia,ui-serif,serif;
  --sans:"Mukta",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--onbg);font:16.5px/1.62 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{min-height:100dvh;display:flex;flex-direction:column;position:relative}

/* The ground the whole app stands on: a field of tesserae. Grout lines in two
   directions cut it into tiles; a coarser grid offset by half a tile gives the
   eye a second rhythm so it reads as laid stone rather than graph paper; two
   broad washes keep the light uneven the way a real mosaic never sits flat. */
body{
  background-color:var(--bg);
  background-image:
    radial-gradient(ellipse 78% 46% at 50% -6%, rgba(255,214,132,.20), transparent 60%),
    radial-gradient(ellipse 70% 52% at 12% 24%, rgba(64,214,214,.16), transparent 62%),
    radial-gradient(ellipse 66% 54% at 88% 84%, rgba(196,68,26,.22), transparent 64%),
    linear-gradient(to bottom, rgba(255,255,255,.05), rgba(0,24,30,.28)),
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22221%22%20height%3D%22221%22%20viewBox%3D%220%200%20221%20221%22%3E%3Crect%20width%3D%22221%22%20height%3D%22221%22%20fill%3D%22rgba%280%2C0%2C0%2C0.05%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3C%2Fsvg%3E");
  background-attachment:fixed;
}

/* fine paper grain over everything */
body::before{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.05;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}
body>*{position:relative;z-index:2}
a{color:var(--accent);text-decoration:none}

/* ---------- app skins: ground and panel together ----------
   Each skin restates every token the shell paints with, so a light-ground skin
   flips the on-ground ink as well. The exhibit journey keeps its own palette. */
body[data-skin="saffron"]{
  --well:#fcf1de; --lift:#fffdf6;
  --bg:#9c5410; --onbg:#fff5e3; --onbg-soft:#f0d3a0; --bgline:#c07a1e;
  --panel:#f7e9cf; --panel-2:#ecd9b6; --line:#dcc59c; --line-2:#c1a575;
  --text:#2b1a08; --muted:#6b5024; --accent:#97301a; --accent-2:#78210f;
  --gold:#f2c451; --mat:#341c06; --shell:rgba(112,58,8,.94);
}
body[data-skin="rani"]{
  --well:#fceee4; --lift:#fffdf6;
  --bg:#8a2352; --onbg:#ffeef5; --onbg-soft:#e9b3c9; --bgline:#ab3f70;
  --panel:#f7e5d8; --panel-2:#ecd4c6; --line:#dcc0b1; --line-2:#c5a291;
  --text:#2a1017; --muted:#6a3f46; --accent:#93204a; --accent-2:#74153a;
  --gold:#e8b84b; --mat:#33101f; --shell:rgba(98,22,58,.94);
}
body[data-skin="indigo"]{
  --well:#f7f0e0; --lift:#fffdf6;
  --bg:#1b3a6b; --onbg:#eef3fb; --onbg-soft:#a9bdd9; --bgline:#3a5a92;
  --panel:#efe6d2; --panel-2:#e2d5ba; --line:#d0c09f; --line-2:#b4a077;
  --text:#1e1a10; --muted:#5b5037; --accent:#983010; --accent-2:#7a2409;
  --gold:#dfae4a; --mat:#0e1b31; --shell:rgba(20,44,82,.94);
}
body[data-skin="sandstone"]{
  --well:#fffaf0; --lift:#fffdf6;
  --bg:#ddcbac; --onbg:#2e2016; --onbg-soft:#55432f; --bgline:#c6ac87;
  --panel:#fbf4e6; --panel-2:#f0e4cb; --line:#ddcba9; --line-2:#c3a882;
  --text:#221a12; --muted:#6b5741; --accent:#a8401b; --accent-2:#873114;
  --gold:#5c3d0a; --mat:#2b1d12; --shell:rgba(214,197,166,.95);
}

/* ---------- generated palettes ----------
   Seeded in OKLCh and derived by pal/gen.js: lightness moves perceptually,
   hue stays put, and every ink is pushed until it clears its own surface.
   The bird palettes take their colours from Indian plumage and never depict
   the bird. Edit the seeds and regenerate; do not hand-tune these blocks. */
body[data-skin="kingfisher"]{   /* Kingfisher */
  --bg:#036387; --onbg:#e3f5ff; --onbg-soft:#95c6e0; --bgline:#2181ab;
  --panel:#f1e5d0; --panel-2:#e0d2bc; --line:#d2c4ad; --line-2:#b3a48c;
  --well:#faefde; --lift:#fffdf6;
  --text:#271e0d; --muted:#635641; --accent:#a33600; --accent-2:#842a00;
  --gold:#e0ae5d; --mat:#002535; --shell:rgba(4,83,113,0.94);
}
body[data-skin="roller"]{   /* Roller */
  --bg:#433987; --onbg:#f0f0ff; --onbg-soft:#b8b8e9; --bgline:#5e58a1;
  --panel:#f1e5d0; --panel-2:#e0d2bc; --line:#d2c4ad; --line-2:#b3a48c;
  --well:#faefde; --lift:#fffdf6;
  --text:#271e0d; --muted:#635641; --accent:#066576; --accent-2:#04505e;
  --gold:#deaf5c; --mat:#110535; --shell:rgba(54,42,118,0.94);
}
body[data-skin="parakeet"]{   /* Parakeet */
  --bg:#367e30; --onbg:#e6f8e3; --onbg-soft:#acd3a7; --bgline:#5a9c53;
  --panel:#f1e5d0; --panel-2:#e0d2bc; --line:#d2c4ad; --line-2:#b3a48c;
  --well:#faefde; --lift:#fffdf6;
  --text:#271e0d; --muted:#635641; --accent:#a72f3e; --accent-2:#8f142b;
  --gold:#d9b15b; --mat:#0b3b07; --shell:rgba(36,110,30,0.94);
}
body[data-skin="hoopoe"]{   /* Hoopoe */
  --bg:#a66a3a; --onbg:#100601; --onbg-soft:#452912; --bgline:#814c1f;
  --panel:#f1e5d0; --panel-2:#e0d2bc; --line:#d2c4ad; --line-2:#b3a48c;
  --well:#faefde; --lift:#fffdf6;
  --text:#271e0d; --muted:#635641; --accent:#a73225; --accent-2:#8f190e;
  --gold:#301e00; --mat:#583313; --shell:rgba(152,93,44,0.94);
}
body[data-skin="flamingo"]{   /* Flamingo */
  --bg:#be6974; --onbg:#261517; --onbg-soft:#562d33; --bgline:#974b56;
  --panel:#f1e5d0; --panel-2:#e0d2bc; --line:#d2c4ad; --line-2:#b3a48c;
  --well:#faefde; --lift:#fffdf6;
  --text:#271e0d; --muted:#635641; --accent:#a73130; --accent-2:#8f161d;
  --gold:#402601; --mat:#6b353d; --shell:rgba(176,91,103,0.94);
}
body[data-skin="sarus"]{   /* Sarus */
  --bg:#5c646d; --onbg:#eff2f5; --onbg-soft:#b9bec4; --bgline:#79818a;
  --panel:#f1e5d0; --panel-2:#e0d2bc; --line:#d2c4ad; --line-2:#b3a48c;
  --well:#faefde; --lift:#fffdf6;
  --text:#271e0d; --muted:#635641; --accent:#a73036; --accent-2:#8f1523;
  --gold:#deaf5c; --mat:#24292f; --shell:rgba(77,85,94,0.94);
}
body[data-skin="koel"]{   /* Koel */
  --bg:#161e35; --onbg:#eef2fa; --onbg-soft:#b7bece; --bgline:#2f374e;
  --panel:#f1e5d0; --panel-2:#e0d2bc; --line:#d2c4ad; --line-2:#b3a48c;
  --well:#faefde; --lift:#fffdf6;
  --text:#271e0d; --muted:#635641; --accent:#a73130; --accent-2:#8f161d;
  --gold:#d9b15b; --mat:#040714; --shell:rgba(10,17,39,0.94);
}
body[data-skin="sunbird"]{   /* Sunbird */
  --bg:#4f1f5d; --onbg:#faecff; --onbg-soft:#cfb1d9; --bgline:#6a3d78;
  --panel:#f1e5d0; --panel-2:#e0d2bc; --line:#d2c4ad; --line-2:#b3a48c;
  --well:#faefde; --lift:#fffdf6;
  --text:#271e0d; --muted:#635641; --accent:#795504; --accent-2:#614302;
  --gold:#d9b15b; --mat:#110017; --shell:rgba(64,14,78,0.94);
}
body[data-skin="plain-light"]{   /* Plain light */
  --bg:#eaedf1; --onbg:#1b1e24; --onbg-soft:#5a6270; --bgline:#d3d8e0;
  --panel:#ffffff; --panel-2:#f1f3f6; --line:#e3e6ec; --line-2:#c8cdd6;
  --well:#f7f8fa; --lift:#ffffff;
  --text:#14161a; --muted:#565d6b; --accent:#1552a0; --accent-2:#0f3f7d;
  --gold:#2f353d; --mat:#1a1d22; --shell:rgba(247,248,250,0.94);
}
body[data-skin="plain-dark"]{   /* Plain dark */
  --bg:#101215; --onbg:#e8ebf0; --onbg-soft:#98a1ae; --bgline:#2b3037;
  --panel:#1c1f24; --panel-2:#23272e; --line:#2d323a; --line-2:#3d434d;
  --well:#15181c; --lift:#7f8996;
  --text:#eef1f5; --muted:#a6aeba; --accent:#7fb0ff; --accent-2:#a3c6ff;
  --gold:#cdd4de; --mat:#0b0d10; --shell:rgba(22,24,28,0.94);
  --onaccent:#0b1220;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}

/* ---------- plumage cards ----------
   The parchment card is the complement of a teal ground, which is why it
   read as sandstone under every palette. A plumage card is a SECOND colour
   off the same bird — a kingfisher's white throat, a sunbird's yellow tuft —
   so the foreground carries the palette too. The original five have no second
   colour to borrow, so theirs is a drained tint of their own ground.
   Generated by pal/tonal.js. */
body:not([data-skin])[data-card="tonal"]{
  --panel:#e9f8fa; --panel-2:#d2e9ed; --line:#c5dee3; --line-2:#a6c6cc;
  --well:#dff1f4; --lift:#ffffff;
  --text:#081a1d; --muted:#476064; --accent:#9e3210; --accent-2:#822202;
}
body[data-skin="saffron"][data-card="tonal"]{
  --panel:#fff2e9; --panel-2:#f4dfd1; --line:#ebd4c4; --line-2:#d7b9a5;
  --well:#fae9de; --lift:#ffffff;
  --text:#231307; --muted:#6d5544; --accent:#97301a; --accent-2:#7f1901;
}
body[data-skin="rani"][data-card="tonal"]{
  --panel:#fef0f4; --panel-2:#f6dce4; --line:#edd0d9; --line-2:#d8b4c0;
  --well:#fbe7ed; --lift:#ffffff;
  --text:#231017; --muted:#6f515b; --accent:#93204a; --accent-2:#7b0138;
}
body[data-skin="indigo"][data-card="tonal"]{
  --panel:#eff5fe; --panel-2:#d8e5f8; --line:#ccdaf0; --line-2:#afc1dd;
  --well:#e3eefd; --lift:#ffffff;
  --text:#0e1726; --muted:#4e5c71; --accent:#983010; --accent-2:#7d1f00;
}
body[data-skin="sandstone"][data-card="tonal"]{
  --panel:#fdf9f2; --panel-2:#eee8dd; --line:#e3dcd1; --line-2:#938b7d;
  --well:#f6f1e9; --lift:#ffffff;
  --text:#1b170f; --muted:#605a4f; --accent:#a8401b; --accent-2:#8f2c01;
}
body[data-skin="kingfisher"][data-card="tonal"]{
  --panel:#ebf5fb; --panel-2:#d6e6ef; --line:#c9dbe5; --line-2:#acc3cf;
  --well:#e1eef5; --lift:#ffffff;
  --text:#061a23; --muted:#445f6e; --accent:#a33600; --accent-2:#842a00;
}
body[data-skin="roller"][data-card="tonal"]{
  --panel:#f2edfe; --panel-2:#e3daf6; --line:#d9cfee; --line-2:#c1b4dc;
  --well:#ebe4fb; --lift:#ffffff;
  --text:#1a1324; --muted:#5e566f; --accent:#066576; --accent-2:#03505e;
}
body[data-skin="parakeet"][data-card="tonal"]{
  --panel:#eff5dd; --panel-2:#dde6c2; --line:#d2dbb3; --line-2:#b8c390;
  --well:#e7eed1; --lift:#ffffff;
  --text:#161906; --muted:#585e43; --accent:#a72f3e; --accent-2:#8f142b;
}
body[data-skin="hoopoe"][data-card="tonal"]{
  --panel:#fdf1e6; --panel-2:#f1e0ce; --line:#e7d4c1; --line-2:#d2baa1;
  --well:#f7e9db; --lift:#ffffff;
  --text:#211405; --muted:#6b5741; --accent:#a73225; --accent-2:#8f180e;
}
body[data-skin="flamingo"][data-card="tonal"]{
  --panel:#feeef0; --panel-2:#fad8dd; --line:#f2cbd1; --line-2:#dfafb7;
  --well:#ffe3e7; --lift:#ffffff;
  --text:#241014; --muted:#705156; --accent:#a73130; --accent-2:#8f171c;
}
body[data-skin="sarus"][data-card="tonal"]{
  --panel:#edf2f8; --panel-2:#dae2eb; --line:#ced7e1; --line-2:#b3bfcb;
  --well:#e4ebf2; --lift:#ffffff;
  --text:#15171a; --muted:#585b5f; --accent:#a73036; --accent-2:#8f1623;
}
body[data-skin="koel"][data-card="tonal"]{
  --panel:#eef4e4; --panel-2:#dde5cd; --line:#d1dabf; --line-2:#b7c2a0;
  --well:#e6edd9; --lift:#ffffff;
  --text:#161810; --muted:#595d51; --accent:#a73130; --accent-2:#8f171c;
}
body[data-skin="sunbird"][data-card="tonal"]{
  --panel:#f9f0d4; --panel-2:#eddfb5; --line:#e4d4a4; --line-2:#cfba7d;
  --well:#f3e8c7; --lift:#ffffff;
  --text:#1d1704; --muted:#635a40; --accent:#795504; --accent-2:#614302;
}
body[data-card="tonal"] .card::after{border-color:var(--line)}   /* no brass on a plumage card */

/* ---------- night cards ----------
   Heritage's dark mode. The ground does not change — this is the same bird
   after dark — only the foreground inverts. Generated by pal/night.js. */
body:not([data-skin])[data-card="night"]{
  --panel:#0f1c1e; --panel-2:#17282b; --line:#213539; --line-2:#334d51;
  --well:#051214; --lift:#66787b;
  --text:#d8f3f7; --muted:#90b4ba; --accent:#e37f63; --accent-2:#fb9578;
  --onaccent:#230803;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="saffron"][data-card="night"]{
  --panel:#201711; --panel-2:#2e221a; --line:#3c2e24; --line-2:#564337;
  --well:#170e07; --lift:#7f7268;
  --text:#fde8db; --muted:#c1a795; --accent:#e37e67; --accent-2:#fb947d;
  --onaccent:#230703;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="rani"][data-card="night"]{
  --panel:#201619; --panel-2:#2f2125; --line:#3d2c32; --line-2:#574148;
  --well:#170c10; --lift:#806f74;
  --text:#fee5ed; --muted:#c2a2ac; --accent:#e07a95; --accent-2:#f98faa;
  --onaccent:#23060f;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="indigo"][data-card="night"]{
  --panel:#141a22; --panel-2:#1e2631; --line:#29323f; --line-2:#3d4859;
  --well:#0b1019; --lift:#6d7581;
  --text:#e2eeff; --muted:#9eadc6; --accent:#e37f63; --accent-2:#fb9579;
  --onaccent:#230803;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="sandstone"][data-card="night"]{
  --panel:#1c1913; --panel-2:#29251d; --line:#363128; --line-2:#4d473b;
  --well:#130f0a; --lift:#79746c;
  --text:#f3ecdf; --muted:#b5ab9b; --accent:#e28060; --accent-2:#fa9675;
  --onaccent:#230802;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="kingfisher"][data-card="night"]{
  --panel:#111b20; --panel-2:#1a272f; --line:#24343d; --line-2:#364b56;
  --well:#071117; --lift:#68777f;
  --text:#dbf1fd; --muted:#94b1c2; --accent:#e2805e; --accent-2:#fa9673;
  --onaccent:#230802;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="roller"][data-card="night"]{
  --panel:#181822; --panel-2:#242430; --line:#30303f; --line-2:#464559;
  --well:#0f0f18; --lift:#737381;
  --text:#eaebff; --muted:#a9a9c5; --accent:#5eabbe; --accent-2:#74c2d4;
  --onaccent:#00151a;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="parakeet"][data-card="night"]{
  --panel:#151c14; --panel-2:#1f281e; --line:#2a3529; --line-2:#3e4c3c;
  --well:#0b120a; --lift:#6e786c;
  --text:#e2f2e0; --muted:#9fb39c; --accent:#e47b7f; --accent-2:#fc9095;
  --onaccent:#230709;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="hoopoe"][data-card="night"]{
  --panel:#201711; --panel-2:#2e221a; --line:#3c2e24; --line-2:#554437;
  --well:#160e07; --lift:#7f7268;
  --text:#fde9db; --muted:#c0a794; --accent:#e47d6d; --accent-2:#fc9382;
  --onaccent:#230704;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="flamingo"][data-card="night"]{
  --panel:#211617; --panel-2:#302122; --line:#3e2c2e; --line-2:#584143;
  --well:#180c0d; --lift:#817071;
  --text:#fee6e8; --muted:#c4a3a5; --accent:#e47c74; --accent-2:#fc9289;
  --onaccent:#240706;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="sarus"][data-card="night"]{
  --panel:#181a1b; --panel-2:#232528; --line:#2f3235; --line-2:#45484c;
  --well:#0e1012; --lift:#727577;
  --text:#e9edf1; --muted:#a8adb2; --accent:#e47b79; --accent-2:#fc918e;
  --onaccent:#230707;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="koel"][data-card="night"]{
  --panel:#3a3d43; --panel-2:#474a53; --line:#545862; --line-2:#6b707d;
  --well:#2f3239; --lift:#9ca0a9;
  --text:#f1f5ff; --muted:#b2b9ca; --accent:#ffa098; --accent-2:#ffc3bd;
  --onaccent:#240706;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}
body[data-skin="sunbird"][data-card="night"]{
  --panel:#1d171f; --panel-2:#2a222d; --line:#372d3b; --line-2:#4f4253;
  --well:#130d15; --lift:#7a717d;
  --text:#f5e7fa; --muted:#b7a5bd; --accent:#be9755; --accent-2:#d5ad6a;
  --onaccent:#1a0f00;
  --good:#6bbd7c; --bad:#ef7a6a; --warn:#e5b45c; --indigo:#7f9ce0;
}

/* ---------- the scroll card ----------
   One shared vellum, not a per-palette derivation: a scroll is a scroll, and
   the ground still carries the palette. Ink is iron-gall brown-black and the
   accent is rubrication vermillion, which is what a scribe actually reached
   for. The rolled ends are the card's two pseudo-elements, so the inset frame
   turns off here — a scroll has no inner rule. */
body[data-card="scroll"]{
  --panel:#ead9b2; --panel-2:#ddc999; --line:#c9b184; --line-2:#a68b5c;
  --well:#f3e8ca; --lift:#fff8e2;
  --text:#2b1f0e; --muted:#5f4d2c; --accent:#8f2e14; --accent-2:#722109;
  --onaccent:#fdf3dd;
}
body[data-card="scroll"] .card{
  border:0; border-radius:3px; padding:34px 24px 36px;
  background:
    radial-gradient(ellipse 60% 40% at 12% 8%,  rgba(140,102,44,.11), transparent 70%),
    radial-gradient(ellipse 52% 36% at 88% 92%, rgba(120,84,32,.13), transparent 72%),
    linear-gradient(90deg, rgba(118,86,34,.24), transparent 6%,
                           transparent 94%, rgba(118,86,34,.24)),
    repeating-linear-gradient(90deg, rgba(255,252,240,.30) 0 1px, transparent 1px 3px),
    linear-gradient(180deg, #f2e5c6 0%, #ead9b2 55%, #e3cfa2 100%);
  box-shadow:0 16px 36px -12px rgba(0,0,0,.55), 0 2px 6px rgba(0,0,0,.26);
}
/* the two rolled ends */
body[data-card="scroll"] .card::before,
body[data-card="scroll"] .card::after{
  content:""; position:absolute; left:-9px; right:-9px; height:19px; z-index:0;
  border-radius:10px; display:block; border:0; opacity:1;
  background:linear-gradient(180deg,#7d5c2c 0%,#d9bd82 32%,
                             #f1ddb0 50%, #c3a166 72%, #6f5126 100%);
  box-shadow:0 2px 6px rgba(0,0,0,.38);
}
body[data-card="scroll"] .card::before{top:-10px}
body[data-card="scroll"] .card::after {bottom:-10px}
/* scribal lettering, kept off the small controls where it would cost legibility */
body[data-card="scroll"] h1,
body[data-card="scroll"] h2,
body[data-card="scroll"] .brand{font-family:"Cinzel",var(--display); letter-spacing:.04em}
body[data-card="scroll"] .card p,
body[data-card="scroll"] .card textarea,
body[data-card="scroll"] .viewer pre{
  font-family:"Cormorant Garamond",var(--serif); font-size:1.09em; line-height:1.62}
/* sandstone's ground is itself sandy, so vellum vanishes into it; darken the
   ground for this one combination rather than lightening the scroll */
body[data-skin="sandstone"][data-card="scroll"]{--bg:#c3aa80; --bgline:#a98d61;}

/* ---------- Plain mode ----------
   Same token contract, no ornament: no tesserae, no paper grain, no washes,
   no inner rule, no gradient on the card. For staff who want the tool quiet.
   Visitor exhibit themes are untouched by this. */
body[data-mode="plain"]{background-image:none}
body[data-mode="plain"]::before{display:none}
body[data-mode="plain"] .card{background:var(--panel);
  box-shadow:0 1px 2px rgba(0,0,0,.06),0 4px 14px -6px rgba(0,0,0,.16)}
body[data-mode="plain"] .card::after{display:none}
body[data-mode="plain"] header{border-bottom:1px solid var(--bgline)}

/* the skin picker */
.skinbtn{width:32px;height:32px;border-radius:50%;flex:none;cursor:pointer;
  border:1px solid var(--bgline);background:var(--gold);padding:0}
.skinbar{position:sticky;top:0;z-index:19;display:none;gap:8px;flex-wrap:wrap;
  padding:10px 16px;background:var(--shell);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--bgline)}
.skinbar.on{display:flex}
.skinbar button{display:flex;align-items:center;gap:7px;cursor:pointer;font:inherit;
  font-size:12px;font-weight:600;color:var(--onbg);
  background:color-mix(in srgb,var(--onbg) 11%, transparent);
  border:1px solid var(--bgline);border-radius:999px;padding:6px 12px 6px 6px}
.skinbar button.sel{outline:2px solid var(--gold);outline-offset:1px}
/* Heritage / Plain sits on its own row above the swatches */
.skinbar .modes{flex-basis:100%;display:flex;gap:6px;margin-bottom:2px}
.skinbar .modes.cards{margin-top:-2px;opacity:.92}
.skinbar .modes.cards .modetab{font-size:10px;padding:4px 12px}
.skinbar button.modetab{padding:5px 15px;border-radius:99px;letter-spacing:.08em;
  text-transform:uppercase;font-weight:700;font-size:11px;background:transparent}
.skinbar button.modetab.sel{outline:none;background:var(--accent);
  border-color:var(--accent);color:var(--onaccent)}   /* --onaccent is audited; --gold is not */
.skinbar i{width:18px;height:18px;border-radius:50%;display:block;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}

/* ---------- shell ---------- */
header{position:sticky;top:0;z-index:20;background:var(--shell);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--bgline);
  box-shadow:0 2px 0 rgba(224,168,58,.35);
  padding:calc(env(safe-area-inset-top) + 11px) 16px 11px;
  display:flex;align-items:center;gap:10px}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--display);
  font-weight:400;font-size:19px;letter-spacing:.08em;color:var(--gold)}
.brand svg{width:22px;height:22px;flex:none;color:var(--gold)}
.spacer{flex:1}
.who{font-size:12px;color:var(--onbg-soft);max-width:38vw;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}

main{flex:1;width:100%;max-width:760px;margin:0 auto;padding:18px 16px 110px}

nav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:none;
  background:var(--shell);backdrop-filter:blur(10px);
  border-top:1px solid var(--bgline);box-shadow:0 -2px 0 rgba(224,168,58,.35);
  padding:8px 6px calc(env(safe-area-inset-bottom) + 8px)}
nav.on{display:flex}
nav button{flex:1;background:none;border:0;color:var(--onbg-soft);font:inherit;font-size:11px;
  display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;cursor:pointer;
  border-radius:9px}
nav button svg{width:21px;height:21px}
nav button.sel{color:var(--gold)}

/* ---------- primitives ---------- */
/* the ground is dark now, so every light surface must restate its ink or
   headings inherit the pale body colour and vanish */
/* The card is a slab of lit sandstone, not a sheet of paper: a warm vertical
   wash so the top edge catches the light, a brass-toned inner rule, and a
   shadow warm enough to belong to the ground rather than sit on it. */
.card{position:relative;background:
    linear-gradient(178deg,color-mix(in srgb,var(--panel) 92%, var(--lift)) 0%,
                    var(--panel) 46%,
                    color-mix(in srgb,var(--panel) 93%, var(--line)) 100%);
  color:var(--text);
  border:1px solid var(--line-2);
  border-radius:var(--radius);padding:22px;margin-bottom:14px;
  box-shadow:0 1px 0 color-mix(in srgb,var(--panel) 74%, var(--lift)) inset,
             0 10px 30px -8px rgba(0,0,0,.42),
             0 2px 6px rgba(0,0,0,.18)}
.card::after{content:"";position:absolute;inset:5px;
  border:1px solid color-mix(in srgb,var(--gold) 30%, var(--line));
  border-radius:8px;pointer-events:none;opacity:.5}
.card>*{position:relative;z-index:1}
h1{font-family:var(--display);font-size:26px;font-weight:400;margin:0 0 7px;
  letter-spacing:.012em;line-height:1.25;color:var(--text)}
h2{font-family:var(--display);font-size:18px;font-weight:400;margin:0 0 12px;
  letter-spacing:.015em;line-height:1.3}
p.sub{color:var(--muted);font-size:14.5px;margin:0 0 16px;line-height:1.6}
label{display:block;font-size:11.5px;color:var(--muted);margin:0 0 6px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase}
input,select,textarea,button{font:inherit}
input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{
  width:100%;background:var(--well);
  border:1px solid var(--line-2);border-radius:9px;
  color:var(--text);padding:12px 13px;outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%, transparent)}
textarea{min-height:130px;resize:vertical;font-family:var(--serif);font-size:15px;line-height:1.7}
.field{margin-bottom:14px}
.row{display:flex;gap:10px}
.row>*{flex:1}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
  background:var(--accent);color:var(--onaccent);border:1px solid var(--accent-2);border-radius:10px;
  padding:13px 16px;font-weight:600;cursor:pointer;letter-spacing:.02em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);transition:filter .15s,opacity .15s}
.btn:hover{filter:brightness(1.07)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.ghost{background:var(--panel-2);color:var(--text);border:1px solid var(--line-2);
  box-shadow:none}
.btn.danger{background:transparent;color:var(--bad);border:1px solid #d8b3a8;box-shadow:none}
.btn.sm{width:auto;padding:8px 13px;font-size:13px;border-radius:8px}

.seg{display:flex;background:var(--panel-2);border:1px solid var(--line-2);
  border-radius:10px;padding:4px;gap:4px;margin-bottom:16px}
.seg button{flex:1;background:none;border:0;color:var(--muted);padding:9px 6px;
  border-radius:7px;cursor:pointer;font-size:14px;font-weight:600}
.seg button.sel{background:var(--accent);color:#fdf6ec}

.drop{border:1.5px dashed var(--line-2);border-radius:11px;padding:26px 16px;text-align:center;
  cursor:pointer;transition:border-color .15s,background .15s;background:var(--panel-2)}
.drop:hover,.drop.over{border-color:var(--accent);background:#e9d9bf}
.drop svg{width:30px;height:30px;color:var(--muted);margin-bottom:8px}
.drop .big{font-weight:600;font-size:14px}
.drop .small{color:var(--muted);font-size:12px;margin-top:3px}

.hint{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.55}
.pill{display:inline-block;font-size:11px;padding:3px 9px;border-radius:999px;
  background:var(--panel-2);border:1px solid var(--line-2);color:var(--muted);font-weight:600}
.pill.good{color:color-mix(in srgb,var(--good) 46%,var(--text));border-color:color-mix(in srgb,var(--good) 34%,var(--panel));
  background:color-mix(in srgb,var(--good) 13%,var(--panel))}
.pill.bad{color:color-mix(in srgb,var(--bad) 46%,var(--text));border-color:color-mix(in srgb,var(--bad) 30%,var(--panel));
  background:color-mix(in srgb,var(--bad) 11%,var(--panel))}

.note{border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.6;margin-bottom:14px;
  border-left:3px solid}
.note.info{background:color-mix(in srgb,var(--indigo) 12%,var(--panel));
  border:1px solid color-mix(in srgb,var(--indigo) 30%,var(--panel));
  border-left:3px solid var(--indigo);color:color-mix(in srgb,var(--indigo) 40%,var(--text))}
.note.err{background:color-mix(in srgb,var(--bad) 11%,var(--panel));
  border:1px solid color-mix(in srgb,var(--bad) 28%,var(--panel));
  border-left:3px solid var(--bad);color:color-mix(in srgb,var(--bad) 44%,var(--text))}
.note.ok{background:color-mix(in srgb,var(--good) 12%,var(--panel));
  border:1px solid color-mix(in srgb,var(--good) 30%,var(--panel));
  border-left:3px solid var(--good);color:color-mix(in srgb,var(--good) 44%,var(--text))}

.qrwrap{background:#fffdf8;padding:16px;border-radius:12px;display:flex;justify-content:center;
  margin:0 auto 14px;width:fit-content;border:1px solid var(--line-2);
  box-shadow:0 1px 2px rgba(46,32,22,.08)}
.qrwrap canvas,.qrwrap img{display:block;width:220px;height:220px;image-rendering:pixelated}

.linkbox{display:flex;gap:8px;align-items:center;background:var(--panel-2);
  border:1px solid var(--line-2);border-radius:9px;padding:9px 11px;margin-bottom:12px}
.linkbox code{flex:1;font-size:11px;color:var(--muted);overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,Menlo,monospace}

.item{display:flex;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.item:last-child{border-bottom:0}
.item .ico{width:40px;height:40px;border-radius:9px;background:var(--panel-2);
  border:1px solid var(--line);display:grid;place-items:center;flex:none;color:var(--muted)}
.item .ico svg{width:19px;height:19px}
.item .meta{flex:1;min-width:0}
.item .meta b{display:block;font-size:14px;font-weight:600;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.item .meta span{font-size:12px;color:var(--muted)}

#reader{width:100%;border-radius:11px;overflow:hidden;background:var(--mat)}
#reader video{width:100%!important;display:block}

.viewer img,.viewer video{width:100%;border-radius:11px;display:block;background:var(--mat)}
.viewer pre{white-space:pre-wrap;word-break:break-word;background:var(--panel-2);
  border:1px solid var(--line-2);border-radius:11px;padding:15px;font-size:15px;
  font-family:var(--serif);line-height:1.7;margin:0;max-height:60vh;overflow:auto}

.center{text-align:center}
.mt{margin-top:14px}
.hide{display:none!important}

#toast{position:fixed;left:50%;transform:translateX(-50%);
  bottom:calc(env(safe-area-inset-bottom) + 84px);
  background:var(--panel);color:var(--text);border:1px solid var(--line-2);
  border-radius:9px;padding:11px 16px;
  font-size:13px;z-index:60;opacity:0;pointer-events:none;transition:opacity .2s;max-width:88vw}
#toast.on{opacity:1}

.bar{height:6px;background:var(--panel-2);border:1px solid var(--line);border-radius:99px;
  overflow:hidden;margin-top:10px}
.bar i{display:block;height:100%;width:0;background:var(--gold);transition:width .25s}

.spin{width:16px;height:16px;border:2px solid rgba(253,246,236,.4);border-top-color:#fdf6ec;
  border-radius:50%;animation:sp .7s linear infinite}
.btn.ghost .spin{border-color:rgba(46,32,22,.25);border-top-color:var(--text)}
@keyframes sp{to{transform:rotate(360deg)}}

/* ---------- exhibits: curator ---------- */
.exlist{display:grid;gap:12px}
.excard{display:flex;gap:12px;align-items:center;background:var(--panel-2);
  border:1px solid var(--line-2);border-radius:11px;padding:12px;cursor:pointer;
  transition:border-color .15s,transform .1s}
.excard:hover{border-color:var(--accent)}
.excard:active{transform:scale(.995)}
.excard .thumb{width:56px;height:64px;flex:none;object-fit:cover;background:var(--mat);
  display:grid;place-items:center;color:#b9a184;font-size:10px;text-align:center;
  border-radius:28px 28px 6px 6px/34px 34px 6px 6px;border:1px solid var(--line-2)}
.excard .m{flex:1;min-width:0}
.excard .m b{display:block;font-family:var(--serif);font-size:16px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.excard .m span{font-size:12px;color:var(--muted)}

.chap{border:1px solid var(--line-2);border-radius:10px;margin-bottom:10px;overflow:hidden;
  background:var(--panel)}
.chap>.head{display:flex;align-items:center;gap:8px;padding:11px 12px;background:var(--panel-2);
  cursor:pointer}
.chap>.head .n{width:26px;height:26px;border-radius:50%;background:var(--bg);flex:none;
  display:grid;place-items:center;font-size:12px;color:var(--muted);
  border:1px solid var(--line-2);font-family:var(--serif)}
.chap>.head b{flex:1;font-family:var(--serif);font-size:15px;font-weight:600;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.chap>.body{padding:13px;border-top:1px solid var(--line)}
.iconbtn{background:var(--bg);border:1px solid var(--line-2);color:var(--muted);border-radius:7px;
  width:28px;height:28px;display:grid;place-items:center;cursor:pointer;flex:none;font-size:13px}
.iconbtn:hover{color:var(--accent);border-color:var(--accent)}
.iconbtn:disabled{opacity:.3;cursor:not-allowed}

.toggle{display:flex;align-items:center;gap:12px;background:var(--panel-2);
  border:1px solid var(--line-2);border-radius:10px;padding:13px;margin-bottom:14px}
.toggle .t{flex:1}
.toggle .t b{display:block;font-size:14px}
.toggle .t span{font-size:12px;color:var(--muted)}
.sw{width:46px;height:26px;border-radius:99px;background:var(--line-2);position:relative;
  cursor:pointer;flex:none;transition:background .18s;border:1px solid var(--line-2);padding:0}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;
  background:#fffdf8;transition:transform .18s;box-shadow:0 1px 2px rgba(46,32,22,.3)}
.sw.on{background:var(--good);border-color:var(--good)}
.sw.on::after{transform:translateX(20px)}

/* ---------- exhibits: visitor ---------- */
.stage{min-height:calc(100dvh - 160px);display:flex;flex-direction:column}

/* jaali lattice — pure geometry, woven from crossing diagonals */
.lattice{
  background-color:var(--panel);
  background-image:
    repeating-linear-gradient(45deg,  rgba(176,69,30,.07) 0 1px, transparent 1px 14px),
    repeating-linear-gradient(-45deg, rgba(176,69,30,.07) 0 1px, transparent 1px 14px),
    repeating-linear-gradient(45deg,  rgba(191,143,44,.06) 0 1px, transparent 1px 42px),
    repeating-linear-gradient(-45deg, rgba(191,143,44,.06) 0 1px, transparent 1px 42px);
}

.cover{text-align:center;padding:6px 0 0}
/* "Whole object" is the default: a standing figure or a tall stele must not
   have its head and feet cropped to fill a fixed box. The image keeps its own
   proportions and is capped by height instead. */
.cover .hero.fit-contain{width:auto;max-width:100%;height:auto;max-height:54vh;
  aspect-ratio:auto;object-fit:contain;margin-left:auto;margin-right:auto}
.cover .hero{width:100%;aspect-ratio:3/4;max-height:46vh;object-fit:cover;background:var(--mat);
  margin:0 auto 20px;display:block;border:1px solid var(--line-2);
  /* temple arch silhouette: rounded crown, squared base */
  border-radius:46% 46% 8px 8px / 30% 30% 8px 8px;
  box-shadow:0 2px 6px rgba(46,32,22,.14)}
.cover h1{font-size:27px;line-height:1.28;margin-bottom:10px}
.cover .st{color:var(--muted);font-size:15px;margin-bottom:6px;font-family:var(--serif)}
.cover .cr{color:var(--muted);font-size:12px;margin-bottom:22px;letter-spacing:.04em}
.rule{display:flex;align-items:center;gap:9px;margin:18px auto;max-width:220px}
.rule i{flex:1;height:1px;background:var(--line-2)}
.rule b{width:7px;height:7px;transform:rotate(45deg);background:var(--gold);flex:none}

.prog{display:flex;gap:4px;margin-bottom:18px}
.prog i{flex:1;height:3px;border-radius:99px;background:var(--line);transition:background .25s}
.prog i.on{background:var(--accent)}

.chapview{flex:1}
.chapview .kicker{font-size:11px;color:var(--gold);letter-spacing:.16em;
  text-transform:uppercase;margin-bottom:9px;font-weight:700}
.chapview h2{font-size:23px;line-height:1.32;margin-bottom:15px}
.chapview img{width:100%;margin-bottom:17px;background:var(--mat);border:1px solid var(--line-2);
  border-radius:40% 40% 8px 8px / 22% 22% 8px 8px;box-shadow:0 2px 6px rgba(46,32,22,.12)}
.chapview .text{font-family:var(--serif);font-size:17px;line-height:1.8;white-space:pre-wrap;
  color:#3b2a1c}
.chapview .text::first-letter{font-size:1em}

.pager{display:flex;gap:10px;align-items:center;margin-top:28px;
  padding-bottom:calc(env(safe-area-inset-bottom) + 8px)}
.pager .btn{flex:1}
.pager .count{font-size:12px;color:var(--muted);flex:none;min-width:54px;text-align:center;
  font-family:var(--serif)}

/* ---------- themed journey surface ---------- */
.journey{background:var(--jpanel);color:var(--jink);border-color:var(--jline)}
.journey::after{border-color:var(--jline)}
.journey h1,.journey h2{color:var(--jink)}
.journey .st,.journey .cr,.journey .hint,.journey .count,.journey .sub{color:var(--jsoft)}
.journey .kicker{color:var(--jaccent)}
.journey .text{color:var(--jink)}
.journey .prog i{background:var(--jline)}
.journey .prog i.on{background:var(--jaccent)}
.journey .rule i{background:var(--jline)}
.journey .rule b{background:var(--jaccent)}
.journey .btn{background:var(--jaccent);border-color:var(--jaccent);color:var(--jonaccent)}
.journey .btn.ghost{background:transparent;color:var(--jink);border-color:var(--jline)}
.journey{background-color:var(--jpanel)}
.journey.bg-lattice{background-image:
  repeating-linear-gradient(45deg,  var(--jweave) 0 1px, transparent 1px 14px),
  repeating-linear-gradient(-45deg, var(--jweave) 0 1px, transparent 1px 14px)}

/* mosaic: tesserae laid in the exhibit's own accent, with an offset coarse
   course so the field reads as set stone */
.journey.bg-mosaic{background-image:
  radial-gradient(ellipse 64% 50% at 26% 20%, rgba(255,255,255,.07), transparent 62%),
  radial-gradient(ellipse 58% 46% at 80% 78%, var(--jgoldfaint), transparent 64%),
  url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22221%22%20height%3D%22221%22%20viewBox%3D%220%200%20221%20221%22%3E%3Crect%20width%3D%22221%22%20height%3D%22221%22%20fill%3D%22rgba%280%2C0%2C0%2C0.05%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%222%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%2219%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%2236%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%2253%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%2270%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%2287%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22104%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22121%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22138%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22155%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22172%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.016%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.026%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22189%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2219%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%2236%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%2253%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2270%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%2287%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.038%29%22%2F%3E%3Crect%20x%3D%22104%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.020%29%22%2F%3E%3Crect%20x%3D%22121%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22138%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.012%29%22%2F%3E%3Crect%20x%3D%22155%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.045%29%22%2F%3E%3Crect%20x%3D%22172%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.055%29%22%2F%3E%3Crect%20x%3D%22189%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3Crect%20x%3D%22206%22%20y%3D%22206%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%221%22%20fill%3D%22rgba%28240%2C224%2C186%2C0.032%29%22%2F%3E%3C%2Fsvg%3E")}

/* plain ground: nothing behind the object but colour and the mandala */
.journey.bg-plain{background-image:none}
.journey.bg-plain::after{opacity:.28}

/* brocade: a fine damask grid of knots over a wide diagonal weave */
.journey.bg-brocade{background-image:
  radial-gradient(circle at 50% 50%, var(--jgold) 0 1.6px, transparent 2.2px),
  radial-gradient(circle at 0% 0%,   var(--jgold) 0 1.6px, transparent 2.2px),
  repeating-linear-gradient(45deg,  var(--jgoldfaint) 0 1px, transparent 1px 26px),
  repeating-linear-gradient(-45deg, var(--jgoldfaint) 0 1px, transparent 1px 26px);
  background-size:46px 46px, 46px 46px, auto, auto}

/* velvet: a soft sheen down the centre with the nap of the pile across it */
.journey.bg-velvet{background-image:
  radial-gradient(ellipse 78% 62% at 50% 26%, rgba(255,255,255,.07), rgba(255,255,255,0) 62%),
  repeating-linear-gradient(90deg, rgba(0,0,0,.055) 0 2px, rgba(255,255,255,.022) 2px 5px),
  linear-gradient(to bottom, rgba(0,0,0,0) 55%, rgba(0,0,0,.22))}

/* gilded: scattered gold dust caught in a warm central glow */
.journey.bg-gilded{background-image:
  radial-gradient(circle at 22% 18%, var(--jgold) 0 1.2px, transparent 1.9px),
  radial-gradient(circle at 68% 58%, var(--jgold) 0 1.2px, transparent 1.9px),
  radial-gradient(circle at 41% 82%, var(--jgold) 0 1.2px, transparent 1.9px),
  radial-gradient(circle at 84% 31%, var(--jgoldfaint) 0 1px, transparent 1.6px),
  radial-gradient(ellipse 80% 62% at 50% 40%, rgba(255,215,150,.11), rgba(255,215,150,0) 66%);
  background-size:118px 118px, 92px 92px, 143px 143px, 71px 71px, auto}

/* regal edging: a gold hairline, a breath of ground, then a second line */
.journey.regal{box-shadow:
  inset 0 0 0 1px var(--jaccent),
  inset 0 0 0 5px var(--jpanel),
  inset 0 0 0 6px var(--jaccent),
  0 2px 10px rgba(0,0,0,.22)}
.journey.regal::after{border-color:var(--jaccent);opacity:.32;inset:11px}

/* focus: darken the edges so the eye has nowhere else to go */
.journey>.vignette{position:absolute;inset:0;pointer-events:none;z-index:0;
  border-radius:inherit;
  background:radial-gradient(ellipse 76% 56% at 50% 40%,
    rgba(0,0,0,0) 38%, rgba(0,0,0,.30) 72%, rgba(0,0,0,.60) 100%)}
.figure .glowpool{position:absolute;left:50%;top:46%;width:124%;height:86%;
  transform:translate(-50%,-50%);pointer-events:none;z-index:0;
  background:radial-gradient(ellipse at center,
    rgba(255,206,120,.42), rgba(255,190,90,.14) 46%, rgba(255,190,90,0) 72%)}
.journey.focus .mandala{opacity:.32}
.journey.focus .mandala svg{width:126%;height:126%}
.journey.focus .plate{box-shadow:0 18px 38px rgba(0,0,0,.55)}
/* A frameless plate has no visible rectangle, so a box shadow would draw the
   outline of a box that isn't there. Shadow the shape instead. */
.journey.focus .plate.frm-none{box-shadow:none;
  filter:drop-shadow(0 14px 24px rgba(0,0,0,.55))}

/* ---------- artwork mount, frame, lighting, pedestal ---------- */
.figure{position:relative;padding:0 44px;margin-bottom:17px}
.figure.has-side{padding-left:56px;padding-right:56px}
.figure.has-top{padding-top:54px}
.figure.has-bottom{padding-bottom:14px}
.mount{position:relative;z-index:1}
.plate{position:relative;overflow:hidden;background:var(--mat)}
.plate img{width:100%;display:block;margin:0;border-radius:inherit;border:0;box-shadow:none}
.lit{position:absolute;inset:0;pointer-events:none;border-radius:inherit}

/* Silhouette: the picture's own alpha becomes a stencil filled with one
   colour. Needs a cut-out image — a rectangular photo masks to a rectangle. */
.plate.sil{background:var(--silcolor);
  -webkit-mask:var(--sil) center/contain no-repeat;
  mask:var(--sil) center/contain no-repeat}
.plate.sil img{opacity:0}
.plate.sil .lit{display:none}

/* Duotone: tint the picture itself rather than laying colour over the panel,
   so a cut-out image keeps its transparent surround instead of filling in
   as a solid block. */
.plate.duo img{filter:grayscale(1) contrast(1.35) sepia(1) saturate(2.4)
  hue-rotate(var(--duohue,0deg)) brightness(1.02)}

/* With no frame the artwork is a cut-out, so the light has to hug its shape —
   a rectangular wash across a transparent surround reads as a grey box. */
.plate.frm-none .lit{
  -webkit-mask:var(--sil) center/contain no-repeat;
  mask:var(--sil) center/contain no-repeat}

.frm-none {border-radius:0;background:none}
.frm-arch {border-radius:40% 40% 8px 8px / 22% 22% 8px 8px}
.frm-rect {border-radius:8px}
.frm-panel{border-radius:3px;box-shadow:0 0 0 6px var(--jpanel),0 0 0 8px var(--jline),
  0 2px 8px rgba(0,0,0,.18)}
.frm-gilt {border-radius:2px;box-shadow:0 0 0 5px #c9922b,0 0 0 7px #6f4711,
  0 4px 14px rgba(0,0,0,.4)}

.lit-spot{background:
  radial-gradient(ellipse 72% 52% at 50% -6%, rgba(255,242,208,.5), rgba(255,242,208,0) 62%),
  linear-gradient(to bottom, rgba(0,0,0,0) 42%, rgba(0,0,0,.34))}
.lit-beam{background:
  radial-gradient(ellipse 26% 96% at 50% -22%, rgba(255,241,205,.62),
  rgba(255,241,205,.06) 62%, rgba(255,241,205,0) 76%),
  linear-gradient(to bottom, rgba(0,0,0,0) 38%, rgba(0,0,0,.46))}
.lit-twin{background:
  radial-gradient(ellipse 20% 86% at 13% -14%, rgba(255,241,205,.52), rgba(255,241,205,0) 70%),
  radial-gradient(ellipse 20% 86% at 87% -14%, rgba(255,241,205,.52), rgba(255,241,205,0) 70%),
  linear-gradient(to bottom, rgba(0,0,0,0) 44%, rgba(0,0,0,.42))}
.lit-uplight{background:
  radial-gradient(ellipse 68% 46% at 50% 110%, rgba(255,216,145,.58), rgba(255,216,145,0) 66%),
  linear-gradient(to top, rgba(0,0,0,0) 52%, rgba(0,0,0,.44))}
.lit-raking{background:
  linear-gradient(102deg, rgba(255,238,198,.46) 0%, rgba(255,238,198,.05) 34%,
  rgba(0,0,0,.12) 62%, rgba(0,0,0,.38) 100%)}
.lit-halo{background:
  radial-gradient(circle at 50% 44%, rgba(255,255,255,.16), rgba(0,0,0,.06) 42%,
  rgba(0,0,0,.48) 82%)}
.lit-warm{background:
  linear-gradient(180deg, rgba(255,199,116,.3), rgba(168,86,22,.2))}
.lit-cool{background:
  linear-gradient(180deg, rgba(196,224,255,.3), rgba(52,88,140,.22))}

.pedestal{width:76%;max-width:270px;margin:-4px auto 0;position:relative;z-index:0}
.pedestal svg{width:100%;display:block}

/* ---------- ornament slots: several may be lit at once ---------- */
.orn{position:absolute;pointer-events:none;user-select:none;z-index:2}
.orn svg{width:100%;height:100%;display:block;overflow:visible}

.orn.slot-top{top:0;width:42px;height:146px;transform-origin:50% 4px;
  animation:sway 5.4s ease-in-out infinite alternate}
.orn.slot-top.l{left:0}
.orn.slot-top.r{right:0;animation-duration:6.6s;animation-delay:-1.7s}
.orn.slot-top.stack-1.l{left:34px;animation-duration:6.1s;animation-delay:-.9s}
.orn.slot-top.stack-1.r{right:34px;animation-duration:5.8s;animation-delay:-2.3s}
@keyframes sway{0%{transform:rotate(-2.6deg)}100%{transform:rotate(2.6deg)}}

.orn.slot-bottom{bottom:0;width:38px;height:92px}
.orn.slot-bottom.l{left:0}
.orn.slot-bottom.r{right:0}
.orn.slot-bottom.stack-1.l{left:34px}
.orn.slot-bottom.stack-1.r{right:34px}
.orn.slot-bottom .glow{position:absolute;left:50%;top:2px;width:46px;height:46px;
  margin-left:-23px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,181,74,.6),rgba(255,150,40,0) 68%);
  animation:lampglow 3.1s ease-in-out infinite}
.orn.slot-bottom.r .glow{animation-duration:3.7s;animation-delay:-1.1s}

.orn.slot-side{top:50%;transform:translateY(-50%);width:50px;height:224px;
  animation:breathe 7s ease-in-out infinite alternate}
.orn.slot-side.l{left:-6px}
.orn.slot-side.r{right:-6px;transform:translateY(-50%) scaleX(-1);animation-delay:-2.4s}
@keyframes breathe{0%{opacity:.86}100%{opacity:1}}

.orn.custom img{width:100%;height:100%;object-fit:contain;display:block;margin:0;
  border:0;border-radius:0;background:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}
.orn.custom.r img{transform:scaleX(-1)}
.orn.slot-side.r.custom img{transform:none}

.flame{transform-origin:50% 100%;animation:flicker 1.7s ease-in-out infinite alternate}
.r .flame{animation-duration:2.15s;animation-delay:-.6s}
.lampglow{animation:lampglow 3.6s ease-in-out infinite;transform-box:fill-box;
  transform-origin:50% 50%}

.journey>.mandala{position:absolute;inset:-4%;display:grid;place-items:center;
  pointer-events:none;opacity:.16;z-index:0;overflow:hidden}
.mandala svg{width:112%;height:112%;animation:turn 150s linear infinite}
@keyframes turn{to{transform:rotate(360deg)}}
@keyframes flicker{
  0%  {transform:scale(1,1)      translateX(0);   opacity:.9}
  35% {transform:scale(.94,1.13) translateX(.7px);opacity:1}
  70% {transform:scale(1.05,.95) translateX(-.6px);opacity:.93}
  100%{transform:scale(.97,1.06) translateX(.3px);opacity:.86}
}
@keyframes lampglow{
  0%,100%{opacity:.55;transform:scale(1)}
  50%    {opacity:.85;transform:scale(1.14)}
}
.nomotion .flame,.nomotion .glow,.nomotion .orn,
.nomotion .mandala svg,.nomotion .lampglow{animation:none!important}
.calm .flame{animation-duration:4.4s}
.calm .glow,.calm .lampglow{animation-duration:6.5s}
.calm .orn.slot-top{animation-duration:11s}
.calm .mandala svg{animation-duration:320s}
@media(prefers-reduced-motion:reduce){
  .flame,.glow,.orn,.mandala svg,.lampglow{animation:none!important}
}

/* ---------- sound control ---------- */
.sound{position:fixed;right:14px;bottom:calc(env(safe-area-inset-bottom) + 14px);z-index:40;
  width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);
  background:rgba(251,245,234,.94);backdrop-filter:blur(8px);cursor:pointer;
  display:grid;place-items:center;color:var(--accent);
  box-shadow:0 2px 8px rgba(46,32,22,.18)}
.sound svg{width:20px;height:20px}
.sound.off{color:var(--muted)}

/* ---------- design tab ---------- */
.tones{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:8px}
.tone{border:2px solid transparent;border-radius:9px;padding:2px;cursor:pointer;background:none;
  text-align:center}
.tone i{display:block;height:32px;border-radius:6px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.16)}
.tone b{display:block;font-size:9px;color:var(--muted);margin-top:4px;line-height:1.15;
  font-weight:600}
.tone.sel{border-color:var(--accent)}
.tone.sel b{color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line-2);background:var(--panel-2);border-radius:999px;
  padding:8px 14px;font-size:13px;cursor:pointer;color:var(--text);font-weight:600}
.chip.sel{background:var(--accent);color:#fdf6ec;border-color:var(--accent-2)}
.seg.wrap{flex-wrap:wrap}
.seg.wrap button{flex:1 1 30%}
.swatches{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.swatch{width:32px;height:32px;border-radius:8px;border:2px solid transparent;cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.swatch.sel{border-color:var(--text)}
input[type=range]{width:100%;accent-color:var(--accent)}
input[type=color]{width:100%;height:42px;padding:3px;background:var(--well);
  border:1px solid var(--line-2);border-radius:9px;cursor:pointer}
.pv{border:1px solid var(--line-2);border-radius:14px;overflow:hidden;margin-bottom:12px}
.pvhead{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  padding:8px 12px;background:var(--panel-2);border-bottom:1px solid var(--line-2);font-weight:700}
.pvbody{padding:16px}

@media(min-width:720px){
  main{padding-bottom:40px}
  nav{position:static;max-width:760px;margin:0 auto 16px;border-top:0;
    border:1px solid var(--bgline);border-radius:11px;background:rgba(255,255,255,.04);box-shadow:none}
  nav button{flex-direction:row;font-size:13px;padding:10px}
  #toast{bottom:28px}
  .cover .hero{max-width:340px}
}
