/*
 * SideBlooms — the pieces on the wall.
 *
 * Every frame, every stone and everything written under them. It lives in one
 * file because the wall hangs in two rooms: the gallery itself, and a short
 * row of it low on the entrance.
 */
/* ---- the gallery ---- */
.sift{margin-top:2.2rem;display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}
.sift label{display:flex;flex-direction:column;gap:.45rem;min-width:12rem;flex:1 1 12rem}
.sift label span{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--quiet)}
.sift select{appearance:none;background:transparent;border:0;border-bottom:1.5px solid var(--hair);
  padding:.7rem 1.6rem .7rem .1rem;font-family:var(--serif);font-variation-settings:var(--wonky);
  font-size:1.16rem;color:inherit;min-height:48px;
  background-image:linear-gradient(45deg,transparent 50%,var(--quiet) 50%),linear-gradient(135deg,var(--quiet) 50%,transparent 50%);
  background-position:calc(100% - 12px) 55%,calc(100% - 6px) 55%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.sift select:focus{outline:0;border-bottom-color:var(--bloom)}
.sift select:hover{border-bottom-color:color-mix(in srgb,var(--bloom) 58%,var(--hair))}
.sift label span{color:var(--bloom)}
.sift button{position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(146deg,#3A2352 0%,#22143A 42%,#120A22 70%,#2E1B44 100%);
  color:#FBF6FA;border:0;border-radius:999px;padding:.9rem 1.7rem;
  font-size:.95rem;font-weight:600;min-height:48px;cursor:pointer;
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 42%,transparent),
             inset 0 -1px 0 color-mix(in srgb,#000 50%,transparent),
             0 10px 22px -12px color-mix(in srgb,var(--ink) 60%,transparent)}
.sift .clear{color:var(--quiet);font-size:.95rem;padding:.9rem 0;text-decoration:none;border-bottom:1.5px solid transparent}
.sift .clear:hover{color:var(--bloom);border-bottom-color:var(--bloom)}

/*
 * THE GALLERY.
 *
 * Hers, 27 September 2026: "The images are too big. I told you to put two
 * images there. Don't use dark text on there. This is not a gallery. Think
 * high-end art gallery."
 *
 * A high-end gallery does not fill its walls. It hangs a small piece in a
 * great deal of space, puts a quiet label beneath it, and the ROOM is what you
 * remember. Everything here follows from that:
 *
 *   the pieces   small and mounted, two side by side, never more than a
 *                quarter of the wall between them
 *   the wall     one of her hot colours, most of it deliberately empty,
 *                and the emptiness is the design rather than a gap in it
 *   the label    the size a gallery label actually is — her name, her trade,
 *                her suburb, her own line, her rate and the way in
 *   the writing  cream on every wall. She has struck dark lettering twice.
 *
 * The hang moves along the wall as you walk down — near, middle, far, middle —
 * so it is a room being walked rather than a column being scrolled.
 */
.showroom{display:block;margin:3rem 0 0;
  width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}

.hung{display:block;background:var(--wall);color:#FFF6F9}
.hung__wall{max-width:76rem;margin:0 auto;
  padding:clamp(3.4rem,9vw,7.5rem) clamp(1.4rem,6vw,5rem);
  display:flex;flex-direction:column;align-items:flex-start;
  gap:clamp(1.6rem,3vw,2.6rem)}
@media (min-width:56rem){
  .hung--middle .hung__wall{align-items:center;text-align:center}
  .hung--far .hung__wall{align-items:flex-end;text-align:right}
}

/* --- the pieces --- */
.hung__works{display:flex;gap:clamp(.9rem,2vw,1.6rem);align-items:flex-start}
.hung__work{display:block;text-decoration:none;
  width:clamp(7.5rem,17vw,10.5rem);flex:none;
  transition:transform .55s cubic-bezier(.2,.8,.2,1)}
/* The second hangs a touch lower, the way two pieces are actually hung. */
.hung__work--two{margin-top:clamp(.7rem,1.8vw,1.6rem)}
.hung__work:hover{transform:translateY(-5px)}
.hung__work:focus-visible{outline:2px solid #FFF6F9;outline-offset:6px}

/* A plain mount, the way a gallery frames a small work. Never a jewel. */
.hung__mount{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;
  background:#FFFDFD;padding:clamp(.4rem,.9vw,.62rem);
  box-shadow:0 18px 30px -16px rgba(0,0,0,.44),0 2px 6px -3px rgba(0,0,0,.3)}
.hung__mount img{width:100%;height:100%;object-fit:cover;display:block}

.hung__open{position:absolute;inset:clamp(.4rem,.9vw,.62rem);display:grid;place-items:center;
  padding:.6rem;text-align:center;
  background:color-mix(in srgb,var(--wall) 9%,#FFFDFD);
  border:1px solid color-mix(in srgb,var(--wall) 26%,transparent)}
.hung__open em{font-style:normal;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;
  color:color-mix(in srgb,var(--wall) 74%,#000)}

/* --- the label on the wall --- */
.hung__label{max-width:34rem}
.hung__logo{display:block;margin-bottom:.8rem}
.hung__logo img{max-width:6.5rem;max-height:2.2rem;width:auto;height:auto;display:block}
.hung--middle .hung__logo img{margin:0 auto}
.hung--far .hung__logo img{margin-left:auto}

.hung__name{margin:0;font-family:var(--serif);font-variation-settings:var(--wonky);
  font-weight:500;font-size:clamp(1.15rem,1.85vw,1.5rem);line-height:1.14;
  letter-spacing:-.018em}
.hung__name a{color:#FFF9FB;text-decoration:none;
  border-bottom:1px solid transparent;transition:border-color .3s ease}
.hung__name a:hover{border-bottom-color:color-mix(in srgb,#FFF 70%,transparent)}

.hung__what{margin:.62rem 0 0;display:flex;gap:.55rem;flex-wrap:wrap;
  font-size:.575rem;letter-spacing:.24em;text-transform:uppercase;line-height:1.6;
  color:color-mix(in srgb,#FFF 74%,transparent)}
.hung--middle .hung__what,.hung--middle .hung__foot{justify-content:center}
.hung--far .hung__what,.hung--far .hung__foot{justify-content:flex-end}
.hung__what span+span::before{content:"";display:inline-block;width:3px;height:3px;
  border-radius:50%;background:currentColor;margin-right:.55rem;vertical-align:.24em;opacity:.7}
.hung__standin{color:color-mix(in srgb,#FFF 48%,transparent)}

.hung__magic{margin:1.05rem 0 0;font-family:var(--serif);
  font-variation-settings:'opsz' 28,'SOFT' 70,'WONK' 1;
  font-size:clamp(.96rem,1.35vw,1.08rem);line-height:1.5;
  color:color-mix(in srgb,#FFF 92%,transparent);max-width:38ch}
.hung--middle .hung__magic{margin-left:auto;margin-right:auto}
.hung--far .hung__magic{margin-left:auto}

.hung__foot{margin:1.15rem 0 0;padding-top:1rem;
  border-top:1px solid color-mix(in srgb,#FFF 26%,transparent);
  display:flex;gap:1.4rem;flex-wrap:wrap;align-items:center}
.hung__rate{font-family:var(--serif);font-variation-settings:var(--wonky);
  font-size:1rem;color:#FFF9FB}
.hung__door{display:inline-flex;align-items:center;gap:.55rem;
  color:#FFF9FB;text-decoration:none;
  font-size:.575rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600;
  padding:.7rem 0;min-height:44px;
  border-bottom:1px solid color-mix(in srgb,#FFF 55%,transparent);
  transition:border-color .3s ease}
.hung__door svg{width:18px;height:8px;flex:none;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.hung__door:hover{border-bottom-color:#FFF9FB}
.hung__door:hover svg{transform:translateX(4px)}
.hung__door:focus-visible{outline:2px solid #FFF9FB;outline-offset:4px}

@media (prefers-reduced-motion:reduce){
  .hung__work,.hung__door svg{transition:none}
  .hung__work:hover{transform:none}
  .hung__door:hover svg{transform:none}
}

.none{margin-top:3rem}

/* The three on the entrance, and beside her as she writes. */
.showroom.is-strip{width:auto;max-width:100%;margin-left:0;margin-right:0}
.showroom.is-strip .hung__wall{padding:clamp(2.2rem,5vw,3.4rem) clamp(1.3rem,4vw,2.6rem)}

/*
 * THE COLOURS THE ROOMS ARE LIT BY.
 *
 * These were the stones her listings used to sit in. The listings are her
 * own photographs now — hers, 27 September 2026 — and the colours stayed,
 * because the menu and her studio still light their rooms with them.
 */
.stone-emerald {--lit:#2FA173;--mid:#127350;--core:#062A1C;--glow:#5FE6AD}
.stone-sapphire{--lit:#3E77D8;--mid:#1B428F;--core:#08163C;--glow:#7FB4FF}
.stone-ruby    {--lit:#D3325C;--mid:#96122F;--core:#3B0212;--glow:#FF7C9E}
.stone-amethyst{--lit:#8A54C8;--mid:#55289B;--core:#210A46;--glow:#C495F7}
.stone-gold    {--lit:#E9C25B;--mid:#A87E18;--core:#3E2A03;--glow:#FFF0B6}
.stone-amber   {--lit:#E39338;--mid:#A85B12;--core:#3E1C02;--glow:#FFCE86}
.stone-silver  {--lit:#CFD8E0;--mid:#8A97A4;--core:#2A333C;--glow:#FFFFFF}
.stone-saffron {--lit:#FFC94A;--mid:#E39A12;--core:#5A3300;--glow:#FFE8A8}
.stone-coral   {--lit:#FF8A6B;--mid:#E0523A;--core:#5C1A12;--glow:#FFC8B8}
.stone-magenta {--lit:#FF45C4;--mid:#C4137F;--core:#4E0A3C;--glow:#FFB3E6}
.stone-flame   {--lit:#FF5A3C;--mid:#D8261A;--core:#5A0F0B;--glow:#FFBFAE}
.stone-poppy   {--lit:#FF3B5C;--mid:#D0123A;--core:#5A0A18;--glow:#FFB4C2}
.stone-rose    {--lit:#EE9CBC;--mid:#C55C86;--core:#5E1837;--glow:#FFD1E1}
.stone-pearl   {--lit:#FBF0F3;--mid:#DCD3E0;--core:#8E8296;--glow:#FFFFFF}

/* ---- the way around her world ---- */
.top{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:1.2rem;
  padding:.9rem clamp(1.2rem,6vw,4rem);background:color-mix(in srgb,var(--paper) 94%,transparent);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--hair)}
.top .mark{font-family:var(--serif);font-variation-settings:var(--wonky);font-weight:600;
  font-size:clamp(1.32rem,4.4vw,1.6rem);letter-spacing:-.02em;text-decoration:none;color:inherit;margin-right:auto}
.top .mark b{color:var(--bloom);font-weight:600}

/* One button, no word beside it. */
.top .burger{display:inline-flex;align-items:center;justify-content:center;
  background:transparent;border:0;padding:.55rem;min-width:48px;min-height:48px;cursor:pointer;color:var(--ink);
  position:relative;z-index:80}
.top .burger .bars{display:grid;gap:5px;width:26px}
/* HER BURGER, 27 SEPTEMBER 2026: "It's a studio black burger menu on my
   thing." It was three bars in currentColor — the stock hamburger every site
   has. Three of her own colours now, a little thicker, and they still fold
   into a cross when the way around opens. */
.top .burger .bars i{display:block;height:3px;background:var(--bloom);border-radius:3px;
  transition:transform .38s cubic-bezier(.2,.8,.2,1),opacity .2s ease}
.top .burger .bars i:nth-child(2){background:var(--saffron,#F79A1E)}
.top .burger .bars i:nth-child(3){background:var(--gold,#F5C518)}
.top .burger:hover .bars i{background:var(--ink)}
.top.is-open .burger .bars i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.top.is-open .burger .bars i:nth-child(2){opacity:0}
.top.is-open .burger .bars i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* HER THREE FLOWER DOLLS, 30 SEPTEMBER 2026: "a better burger menu, like some
   three little flowers? Three flower dolls." Her same three colours, now three
   of her women on their stems. They sway when touched, and while the way
   around is open they fold into the sun (hers: "They can fold into a butterfly or
   sunshine ... I actually think sunshine"). */
.top .burger .dolls{display:block;width:44px;height:38px;overflow:visible}
.top .burger .dolls g{transform-box:fill-box;transform-origin:50% 100%;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .25s ease}
.top .burger .dolls .shut{opacity:0;transform:scale(.4);transition:opacity .35s ease,transform .5s cubic-bezier(.2,.8,.2,1)}
.top .burger .dolls .shut{transform-origin:50% 50%}
.top .burger .dolls .shut .rays{transform-box:view-box;transform-origin:21px 18px;transition:none}
.top .burger:hover .dolls .d1,.top .burger:focus-visible .dolls .d1{transform:rotate(-9deg)}
.top .burger:hover .dolls .d2,.top .burger:focus-visible .dolls .d2{transform:translateY(-2px)}
.top .burger:hover .dolls .d3,.top .burger:focus-visible .dolls .d3{transform:rotate(9deg)}
.top.is-open .burger .dolls .d1,.top.is-open .burger .dolls .d2,.top.is-open .burger .dolls .d3{opacity:0;transform:scale(.5)}
.top.is-open .burger .dolls .shut{opacity:1;transform:none}
.top.is-open .burger .dolls .shut .rays{animation:sbSun 14s linear infinite}
@keyframes sbSun{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.top .burger .dolls g,.top .burger .dolls .shut{transition:none}.top.is-open .burger .dolls .shut .rays{animation:none}}

/* The menu, hung as a small gallery. */
.top nav{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100dvh;z-index:70;overflow-y:auto;
  padding:6rem clamp(1.3rem,6vw,4rem) 3.4rem;background:var(--paper);
  opacity:0;visibility:hidden;transform:translateY(-1.5rem);
  transition:opacity .42s ease,transform .5s cubic-bezier(.2,.8,.2,1),visibility 0s .5s}
.top.is-open nav{opacity:1;visibility:visible;transform:none;transition:opacity .42s ease,transform .5s cubic-bezier(.2,.8,.2,1),visibility 0s}

.top .rooms{max-width:66rem;margin:0 auto;display:grid;gap:1.1rem;
  grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.top .room{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1rem;
  text-decoration:none;color:inherit;padding:.5rem;border-radius:2px;
  opacity:0;transform:translateY(14px);
  transition:opacity .5s ease,transform .5s cubic-bezier(.2,.8,.2,1),background .3s ease}
.top.is-open .room{opacity:1;transform:none}
.top.is-open .room:nth-child(1){transition-delay:.06s}
.top.is-open .room:nth-child(2){transition-delay:.12s}
.top.is-open .room:nth-child(3){transition-delay:.18s}
.top.is-open .room:nth-child(4){transition-delay:.24s}
.top.is-open .room:nth-child(5){transition-delay:.30s}
.top.is-open .room:nth-child(6){transition-delay:.36s}
.top .room:hover{background:color-mix(in srgb,var(--hair) 34%,transparent)}

.top .room .face{position:relative;display:block;width:clamp(64px,15vw,86px);aspect-ratio:4/5;overflow:hidden;
  background:
    radial-gradient(88% 68% at 30% 20%, color-mix(in srgb,var(--glow) 82%,transparent) 0%, transparent 58%),
    radial-gradient(96% 84% at 82% 88%, color-mix(in srgb,var(--core) 92%,transparent) 0%, transparent 62%),
    linear-gradient(146deg, var(--lit) 0%, var(--mid) 34%, var(--core) 62%, var(--mid) 82%, var(--lit) 100%);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 40%,transparent),
             inset 0 0 26px color-mix(in srgb,#000 40%,transparent),
             0 10px 20px -12px color-mix(in srgb,var(--ink) 50%,transparent)}
.top .room .face .lustre{position:absolute;inset:0;
  background:radial-gradient(26% 15% at 28% 18%, color-mix(in srgb,#fff 92%,transparent) 0%, transparent 70%),
    radial-gradient(40% 22% at 76% 90%, color-mix(in srgb,var(--glow) 62%,transparent) 0%, transparent 74%);
  mix-blend-mode:screen}
.top .room .face .facets{position:absolute;inset:0;
  background:linear-gradient(104deg,transparent 0%,color-mix(in srgb,#fff 44%,transparent) 10%,
    transparent 19%,transparent 64%,color-mix(in srgb,#fff 26%,transparent) 72%,transparent 80%);
  mix-blend-mode:screen;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.top .room:hover .face .facets{transform:translateX(13%)}

.top .room .told b{display:block;font-family:var(--serif);font-variation-settings:var(--wonky);
  font-weight:500;font-size:clamp(1.45rem,4.4vw,1.85rem);line-height:1.06;letter-spacing:-.024em;color:var(--ink)}
.top .room .told em{display:block;margin-top:.3rem;font-style:normal;
  font-size:clamp(.95rem,2.6vw,1.02rem);line-height:1.4;color:var(--quiet)}
.top .room.is-here .told b{color:var(--bloom)}

.top nav .pass-it{display:block;max-width:66rem;margin:1.1rem auto 0;padding:1rem;
  background:transparent;border:0;cursor:pointer;
  font-family:var(--sans);font-size:1rem;color:var(--quiet);
  text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px;
  text-decoration-color:color-mix(in srgb,var(--bloom) 60%,transparent);min-height:48px}
.top nav .pass-it:hover{color:var(--bloom)}
.top nav .join{display:flex;max-width:66rem;margin:2.4rem auto 0;justify-content:center;
  font-family:var(--sans);font-size:1.05rem;font-weight:600;letter-spacing:0;
  padding:1.15rem 2rem;min-height:58px;color:#FBF6FA;text-decoration:none;border-radius:999px}

@media (prefers-reduced-motion:reduce){
  .top nav,.top .room,.top .burger .bars i,.top .room .face .facets{transition:none}
}


/* ---- her own room ---- */
.rooms-mine{margin-top:2.6rem;display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}
.rooms-mine .room{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1rem;
  text-decoration:none;color:inherit;padding:.6rem;border-radius:2px;transition:background .3s ease}
.rooms-mine .room:hover{background:color-mix(in srgb,var(--hair) 34%,transparent)}
.rooms-mine .room .face{position:relative;display:block;width:clamp(58px,13vw,74px);aspect-ratio:4/5;overflow:hidden;
  background:
    radial-gradient(88% 68% at 30% 20%, color-mix(in srgb,var(--glow) 82%,transparent) 0%, transparent 58%),
    radial-gradient(96% 84% at 82% 88%, color-mix(in srgb,var(--core) 92%,transparent) 0%, transparent 62%),
    linear-gradient(146deg, var(--lit) 0%, var(--mid) 34%, var(--core) 62%, var(--mid) 82%, var(--lit) 100%);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 40%,transparent),
             inset 0 0 22px color-mix(in srgb,#000 40%,transparent),
             0 8px 18px -11px color-mix(in srgb,var(--ink) 50%,transparent)}
.rooms-mine .room .face .lustre{position:absolute;inset:0;
  background:radial-gradient(26% 15% at 28% 18%, color-mix(in srgb,#fff 92%,transparent) 0%, transparent 70%);
  mix-blend-mode:screen}
.rooms-mine .room .face .facets{position:absolute;inset:0;
  background:linear-gradient(104deg,transparent 0%,color-mix(in srgb,#fff 44%,transparent) 10%,transparent 19%);
  mix-blend-mode:screen;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.rooms-mine .room:hover .face .facets{transform:translateX(13%)}
.rooms-mine .told b{display:block;font-family:var(--serif);font-variation-settings:var(--wonky);
  font-weight:500;font-size:1.32rem;line-height:1.08;letter-spacing:-.022em}
.rooms-mine .told em{display:block;margin-top:.3rem;font-style:normal;font-size:.98rem;line-height:1.4;color:var(--quiet)}
.rooms-mine .told .soon{display:inline-block;margin-top:.5rem;font-style:normal;font-size:.68rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--bloom)}
.rooms-mine .room.is-coming{opacity:.62}

/* ---- the writing room ---- */
.writing-room{margin-top:2.6rem;display:grid;gap:clamp(2rem,5vw,3.6rem);grid-template-columns:1fr}
@media (min-width:60rem){ .writing-room{grid-template-columns:1.25fr .75fr;align-items:start} }
.writing-room .beside-her{position:sticky;top:6rem}
.writing-room .watching{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--quiet);margin-bottom:1rem}
.writing-room .showroom{margin-top:0;grid-template-columns:1fr!important;gap:0}

.ask{margin:0 0 2.2rem}
.ask label{display:block;font-family:var(--serif);font-variation-settings:var(--wonky);font-weight:500;
  font-size:clamp(1.35rem,3.2vw,1.7rem);letter-spacing:-.02em;line-height:1.14}
.ask small{display:block;margin-top:.4rem;color:var(--quiet);font-size:.98rem;line-height:1.5;max-width:46ch}
.ask input[type=text],.ask select{width:100%;max-width:34rem;margin-top:.9rem;background:transparent;border:0;
  border-bottom:1.5px solid var(--hair);padding:.75rem .1rem;font-family:var(--serif);
  font-variation-settings:var(--wonky);font-size:1.28rem;color:inherit;min-height:52px}
.ask input[type=text]:focus,.ask select:focus{outline:0;border-bottom-color:var(--bloom)}
.stones{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.apick{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem .85rem;
  border:1px solid var(--hair);border-radius:999px;min-height:48px;font-size:.95rem}
.apick input{position:absolute;opacity:0;width:0;height:0}
.apick .swatch{display:block;width:20px;height:20px;border-radius:50%;
  background:linear-gradient(146deg,var(--lit),var(--core));box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.apick:has(input:checked){border-color:var(--bloom);background:color-mix(in srgb,var(--bloom) 8%,transparent)}
.apick:has(input:focus-visible){outline:2px solid var(--bloom);outline-offset:2px}

/* ---- what reaches her ---- */
.board{margin-top:2rem;overflow-x:auto}
.board table{width:100%;min-width:32rem;border-collapse:collapse;font-variant-numeric:tabular-nums}
.board caption{text-align:left;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--bloom);padding-bottom:.9rem}
.board th,.board td{text-align:right;padding:.85rem .9rem;border-bottom:1px solid var(--hair);font-size:1.04rem}
.board thead th{text-align:right;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--quiet);font-weight:600;border-bottom:1px solid var(--ink)}
.board tbody th{text-align:left;font-family:var(--serif);font-variation-settings:var(--wonky);
  font-weight:600;font-size:1.16rem;letter-spacing:-.015em}
.board .nought{color:var(--bloom);font-weight:600}
.board .hers{font-family:var(--serif);font-variation-settings:var(--wonky);font-weight:600;font-size:1.16rem}
.board tr.whole th,.board tr.whole td{border-top:2px solid var(--bloom);border-bottom:0;padding-top:1.1rem}
.board tr.whole .hers{color:var(--bloom)}

/* ---- getting paid, first thing in her room ---- */
.getting-paid{margin-top:2.4rem;padding:clamp(1.5rem,4vw,2.4rem);
  background:linear-gradient(148deg,color-mix(in srgb,var(--petal) 46%,var(--paper)),var(--paper) 72%);
  border:1px solid color-mix(in srgb,var(--bloom) 26%,transparent);border-left:3px solid var(--bloom)}
.getting-paid h2{margin-top:.4rem;font-size:clamp(1.7rem,4.4vw,2.5rem);max-width:20ch}
.getting-paid .say{max-width:60ch}
.getting-paid .heads-up{padding:.9rem 1.1rem;margin-top:1.3rem;
  background:color-mix(in srgb,#fff 62%,transparent);
  border-left:2px solid color-mix(in srgb,var(--bloom) 60%,transparent)}
.getting-paid .board{margin-top:1.8rem;overflow-x:auto;-webkit-overflow-scrolling:touch}
.getting-paid .board table{min-width:0;width:100%;table-layout:fixed;font-size:.92rem}
.getting-paid .board th,.getting-paid .board td{padding:.55rem .35rem;overflow-wrap:anywhere}
.getting-paid .board th{font-size:.62rem;letter-spacing:.14em}

/* NOTHING SLIDES SIDEWAYS ON A PHONE.
   A table wider than the screen scrolls inside its own box; the page never
   does. She was catching the whole world moving a little to the left. */
.board,.rooms-mine,.writing-room{max-width:100%}
/* The wall is deliberately wider than the page, so it is not capped here. */
.showroom.is-strip,.writing-room .showroom{max-width:100%}
.board{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media (max-width:34rem){
  .board table{min-width:26rem}
  .board th,.board td{padding:.7rem .55rem;font-size:.95rem}
  .board tbody th{font-size:1rem}
}
.top nav{max-width:100vw}
.getting-paid{max-width:100%;overflow:hidden}

/* ---- one woman's shopfront ---- */
.one-bloom{margin-top:2.4rem;display:grid;gap:clamp(2rem,5vw,3.4rem);grid-template-columns:1fr}
@media (min-width:56rem){ .one-bloom{grid-template-columns:.85fr 1.15fr;align-items:start} }
/* On her own page the words are already said, larger, beside it. So the
   shopfront hangs as her photograph alone. */
/* On her own page every word is said again, larger, beside it — so her wall
   here holds her work and nothing else. */
.one-bloom .hung__label{display:none}
.one-bloom .hung__wall{padding:clamp(1.6rem,4vw,2.6rem);align-items:center}
.one-bloom .hung__work{width:clamp(8rem,38%,13rem)}
.one-bloom h1{margin-top:.2rem}
.magic-large{margin-top:1.1rem;font-family:var(--serif);font-variation-settings:'opsz' 40,'SOFT' 60,'WONK' 1;
  font-style:italic;font-size:clamp(1.3rem,3vw,1.7rem);line-height:1.34;max-width:32ch}
.plain-rows{margin-top:1.8rem}
.plain-rows li{display:grid;grid-template-columns:1fr;gap:.2rem;padding:.95rem 0}
@media (min-width:34rem){ .plain-rows li{grid-template-columns:12rem 1fr;gap:1rem;align-items:baseline} }
.plain-rows i{font-style:normal;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--bloom);margin:0}
.plain-rows b{font-family:var(--serif);font-variation-settings:var(--wonky);font-weight:500;
  font-size:1.16rem;letter-spacing:-.015em;margin:0}
.declared-large{margin-top:1.6rem;padding-left:1rem;border-left:2px solid var(--petal);
  color:var(--quiet);font-size:1.02rem;line-height:1.6;max-width:46ch}
.declared-large i{display:block;font-style:normal;font-size:.72rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--bloom);margin-bottom:.4rem}
.reach{margin-top:clamp(3rem,7vh,5rem);padding-top:clamp(2rem,4vh,3rem);border-top:1px solid var(--hair)}
.reach form{max-width:34rem;margin-top:1.6rem}
.landed{margin-top:1.4rem;font-family:var(--serif);font-variation-settings:var(--wonky);
  font-size:1.4rem;color:var(--bloom);max-width:30ch}

/* A door you can press. */
a.ticket{text-decoration:none;color:inherit;transition:background .3s ease}
a.ticket:hover{background:color-mix(in srgb,var(--petal) 30%,var(--paper))}
.ticket u{display:block;margin-top:.9rem;text-decoration:none;font-size:.76rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--bloom);border-bottom:1px solid color-mix(in srgb,var(--bloom) 42%,transparent);
  padding-bottom:.25rem;width:fit-content}
a.ticket:hover u{border-bottom-color:var(--bloom)}
.rows i a{color:inherit;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--bloom) 40%,transparent)}
.rows i a:hover{border-bottom-color:var(--bloom)}

/* ---------------------------------------------------------------------------
   ENQUIRIES AND BOOKINGS

   A room that is being built is a span rather than an anchor now, so it must
   stop behaving like one — no hover lift, no pointer, and said plainly.
--------------------------------------------------------------------------- */
.rooms-mine .room.is-coming{cursor:default;opacity:.72}
.rooms-mine .room.is-coming:hover{background:transparent}
.rooms-mine .room.is-coming:hover .face .facets{transform:none}

.backup{color:var(--quiet);text-decoration:none;border-bottom:1px solid var(--hair);padding-bottom:2px}
.backup:hover{color:var(--bloom);border-bottom-color:var(--bloom)}

.asks{margin-top:2.4rem;display:grid;gap:1.1rem}

.ask{
  position:relative;padding:1.5rem 1.5rem 1.35rem;border-radius:2px;
  background:#fff;border:1px solid var(--hair);
  box-shadow:0 10px 26px rgba(19,26,20,.05);
}
/* the stem down the side, so a card reads as one of hers */
.ask::before{
  content:'';position:absolute;left:0;top:1.2rem;bottom:1.2rem;width:2px;
  background:var(--bloom);opacity:.5;
}
.ask.is-replied::before{opacity:.24}
.ask.is-booked::before{background:var(--bloom);opacity:1;width:3px}

.ask__when{
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--quiet);
  margin:0 0 .8rem;
}
.ask__when b{color:var(--bloom);font-weight:600;letter-spacing:.14em}

.ask__what{
  font-family:var(--serif);font-variation-settings:var(--wonky);
  font-size:1.18rem;line-height:1.5;color:var(--ink);margin:0 0 1rem;max-width:52ch;
}
.ask__line{
  display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;
  margin:0 0 .45rem;font-size:1rem;color:var(--ink);
}
.ask__line span{
  font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--quiet);
  min-width:9.5rem;
}

.ask__do{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.3rem}
.ask__do form{margin:0}
.way{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 1.15rem;border-radius:999px;cursor:pointer;
  border:1px solid var(--hair);background:transparent;color:var(--ink);
  font-family:var(--sans);font-size:.95rem;text-decoration:none;
  transition:border-color .3s ease,color .3s ease;
}
.way:hover{border-color:var(--bloom);color:var(--bloom)}
.way:focus-visible{outline:2px solid var(--bloom);outline-offset:2px}

.afterword{margin-top:2.2rem;color:var(--quiet);font-size:.98rem;line-height:1.6;max-width:46ch}

@media (max-width:34rem){
  .ask__line span{min-width:100%}
}

/* ---------------------------------------------------------------------------
   THE FOOTER

   What stood here was a build note — typeface names and hex codes — and it was
   fully visible on her live homepage. A stranger's last impression of her world
   was our working notes.
--------------------------------------------------------------------------- */
footer .foot-mark{
  font-family:var(--serif);font-variation-settings:var(--wonky);font-weight:600;
  font-size:clamp(1.6rem,3.4vw,2.2rem);line-height:.95;letter-spacing:-.03em;
  color:var(--ink);margin:0 0 1.6rem;
}
footer .foot-nav{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin:0 0 2rem}
footer .foot-nav a{
  color:var(--ink);text-decoration:none;font-size:1rem;line-height:2.6;
  border-bottom:1px solid transparent;
}
footer .foot-nav a:hover{color:var(--bloom);border-bottom-color:var(--bloom)}
footer .foot-line{margin:0 0 .5rem;color:var(--quiet)}
footer .foot-quiet{font-size:.88rem;opacity:.8}

/* ---------------------------------------------------------------------------
   THE ATELIER

   Hers: she doesn't sit for it, she creates it — an experience, never a form,
   and she comes out enriched. So there is no step counter anywhere here and
   nothing is scored. The card filling up beside her is the only progress.
--------------------------------------------------------------------------- */
.lede--quiet{color:var(--quiet);font-size:1.02rem;margin-top:.7rem}

.atelier{
  margin-top:2.8rem;display:grid;gap:2.4rem;align-items:start;
  grid-template-columns:1fr;
}
/* What she is growing. A stem, hers, drawn from what she has given it —
   never a bar and never a count. */
.atelier__growing{display:block;width:100%;height:9rem;margin:0 0 .4rem}
@media (min-width:56rem){
  .atelier__growing{height:11rem;grid-row:1;grid-column:2}
  .atelier__made{grid-row:1;grid-column:2}
}
@media (min-width:56rem){
  .atelier{grid-template-columns:1fr minmax(16rem,21rem);gap:3.4rem}
  .atelier__made{position:sticky;top:2rem}
}

.atelier__stage{min-height:19rem}
.atelier__stage.is-in{animation:sb-arrive .5s cubic-bezier(.2,.7,.3,1) both}
@keyframes sb-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .atelier__stage.is-in{animation:none}
}

.atelier__eyebrow{
  font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--bloom);margin:0 0 1rem;
}
.atelier__say{font-size:1.06rem;line-height:1.6;color:var(--quiet);margin:0 0 1.1rem;max-width:34rem}
.atelier__ask{
  font-family:var(--serif);font-variation-settings:var(--wonky);font-weight:500;
  font-size:clamp(1.5rem,3.4vw,2.1rem);line-height:1.18;letter-spacing:-.018em;
  color:var(--ink);margin:0 0 1.3rem;max-width:22ch;text-wrap:balance;
}
.atelier__ask.is-big{font-size:clamp(1.7rem,4.4vw,2.7rem);max-width:18ch}

.atelier__quote{
  font-family:var(--serif);font-variation-settings:var(--wonky);
  font-size:clamp(1.3rem,3vw,1.8rem);line-height:1.3;color:var(--bloom);
  margin:0 0 1.2rem;padding-left:1rem;border-left:2px solid var(--petal);max-width:26ch;
}

.atelier__field{
  width:100%;max-width:34rem;display:block;
  border:0;border-bottom:1px solid var(--hair);background:transparent;
  padding:.6rem .1rem;resize:vertical;
  font-family:var(--sans);font-size:1.14rem;line-height:1.5;color:var(--ink);
}
.atelier__field::placeholder{color:var(--hair)}
.atelier__field:focus{outline:0;border-bottom-color:var(--bloom)}

.atelier__picks{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.2rem}
.atelier__pick{
  cursor:pointer;border:1px solid var(--hair);background:transparent;border-radius:999px;
  padding:.45rem .95rem;font-family:var(--sans);font-size:.95rem;color:var(--ink);
  transition:border-color .25s ease,color .25s ease;
}
.atelier__pick:hover{border-color:var(--bloom);color:var(--bloom)}
.atelier__pick.is-hers{border-color:var(--bloom);color:var(--bloom);background:color-mix(in srgb,var(--petal) 45%,transparent)}

.atelier__mine{display:flex;flex-wrap:wrap;gap:.6rem;margin:1.1rem 0 0}
.atelier__mineway{
  cursor:pointer;border:1px solid var(--hair);background:transparent;border-radius:2px;
  padding:.5rem .9rem;font-family:var(--sans);font-size:.92rem;color:var(--quiet);
}
.atelier__mineway.is-hers{border-color:var(--bloom);color:var(--bloom)}

.atelier__stones{display:flex;flex-wrap:wrap;gap:.7rem;margin:0 0 1.3rem}
.atelier__stone{
  width:2.4rem;height:2.4rem;border-radius:999px;cursor:pointer;
  border:1px solid var(--hair);padding:0;
}
.atelier__stone.is-hers{outline:2px solid var(--bloom);outline-offset:3px;border-color:transparent}

.atelier__on{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;margin:1.8rem 0 0}
.atelier__go{
  cursor:pointer;border:0;background:transparent;padding:0;
  font-family:var(--sans);font-size:1.06rem;color:var(--bloom);
  text-decoration:underline;text-underline-offset:.3em;text-decoration-thickness:1px;
}
.atelier__go:hover{text-decoration-thickness:2px}
.atelier__go:focus-visible{outline:2px solid var(--bloom);outline-offset:3px}
.atelier__skip,.atelier__back{
  cursor:pointer;border:0;background:transparent;padding:0;
  font-family:var(--sans);font-size:.92rem;color:var(--quiet);
  text-decoration:underline;text-underline-offset:.28em;
}
.atelier__skip:hover,.atelier__back:hover{color:var(--ink)}
.atelier__keep{margin:1.8rem 0 1rem}

/* She writes INTO the sentence, never into a field. Completing a thought is
   not the same act as filling a box, and that difference is the whole build. */
.atelier__seed{
  font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--bloom);margin:0 0 1rem;
}
.atelier__set{font-size:1.06rem;line-height:1.6;color:var(--quiet);margin:0 0 1.4rem;max-width:34rem}

.atelier__line{
  font-family:var(--serif);font-variation-settings:var(--wonky);font-weight:500;
  font-size:clamp(1.35rem,3.1vw,2rem);line-height:1.55;letter-spacing:-.014em;
  color:var(--ink);margin:0;max-width:30ch;
}
.atelier__line.is-open{max-width:34ch}
.atelier__line.is-small{
  font-family:var(--sans);font-size:1rem;line-height:1.7;color:var(--quiet);
  margin-top:1.3rem;max-width:34rem;
}

.atelier__blank{
  display:inline;min-width:5ch;outline:0;
  color:var(--bloom);
  border-bottom:2px solid var(--petal);
  padding:0 .12em;
  transition:border-color .25s ease;
}
.atelier__blank.is-wide{min-width:9ch}
.atelier__blank:focus{border-bottom-color:var(--bloom)}
.atelier__blank.is-waiting::before{
  content:attr(data-hint);color:var(--hair);
}
/* An empty blank is still a line to write on, never a gap in a sentence. */
.atelier__blank.is-waiting{min-width:8ch;border-bottom-color:var(--hair)}
.atelier__blank.is-wide.is-waiting{min-width:14ch}
.atelier__line.is-small .atelier__blank{color:var(--ink);border-bottom-color:var(--hair)}

.atelier__table{display:flex;flex-wrap:wrap;gap:.55rem;margin:0}
.atelier__take{
  cursor:pointer;border:1px solid var(--hair);background:#fff;border-radius:2px;
  padding:.62rem 1rem;font-family:var(--sans);font-size:1rem;line-height:1.3;
  color:var(--ink);text-align:left;
  transition:border-color .22s ease,color .22s ease,transform .22s ease;
}
.atelier__take:hover{border-color:var(--bloom);transform:translateY(-1px)}
.atelier__take.is-hers{
  border-color:var(--bloom);color:var(--bloom);
  background:color-mix(in srgb,var(--petal) 46%,#fff);
}
@media (prefers-reduced-motion:reduce){.atelier__take:hover{transform:none}}

.atelier__plain{display:grid;gap:1.5rem;margin:0}
.atelier__plainrow{margin:0}
.atelier__plainsay{
  display:block;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--quiet);margin:0 0 .45rem;
}
.atelier__plainrow .atelier__blank{
  font-family:var(--serif);font-variation-settings:var(--wonky);
  font-size:1.24rem;line-height:1.5;
}
.atelier__plain .atelier__picks{margin-top:.8rem}

.atelier__madesay{
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--quiet);
  margin:0 0 .9rem;
}

/* Beside her as she writes, and at the end of the atelier: one real wall. */
.her-tile .hung,.atelier__made .hung{display:block}
.her-tile .hung__wall,.atelier__made .hung__wall{padding:clamp(1.8rem,4vw,2.8rem)}
.atelier__made .hung{max-width:34rem}

/* ---------------------------------------------------------------------------
   THE SPACE BOARD
--------------------------------------------------------------------------- */
/* Where she is. Her ruling, 7 September 2026 — a mannequin in Perth is no use
   to a woman in Yarraville, so near is what organises this table. One line,
   asked once, never a filter panel. */
.nearby{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem .9rem;
  margin:2.4rem 0 0;padding-bottom:1rem;border-bottom:1px solid var(--hair);
}
.nearby label{
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--quiet);
}
.nearby input{
  flex:1 1 11rem;min-width:0;border:0;border-bottom:1px solid var(--hair);
  background:transparent;padding:.35rem .1rem;
  font-family:var(--sans);font-size:1.02rem;color:var(--ink);
}
.nearby input:focus{outline:0;border-bottom-color:var(--bloom)}
.nearby__from{
  margin:.8rem 0 0;font-size:.95rem;color:var(--quiet);
}
.space__away{color:var(--bloom)!important}

/* The map. A pin is a suburb, never an address. */
.lendingmap{
  margin-top:1.6rem;height:clamp(15rem,42vw,22rem);
  border:1px solid var(--hair);border-radius:2px;overflow:hidden;background:var(--paper);
}
.lendingpin{
  display:block;width:15px;height:15px;padding:0;cursor:pointer;
  border:2px solid #fff;border-radius:999px;background:var(--bloom);
  box-shadow:0 1px 6px rgba(19,26,20,.35);
}
.lendingpin:hover{transform:scale(1.22)}
.lendingpin:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.lendingme{
  width:13px;height:13px;border-radius:999px;background:#fff;
  border:3px solid var(--ink);box-shadow:0 1px 6px rgba(19,26,20,.3);
}
.lendingpop{max-width:15rem}
.lendingpop__what{
  font-family:var(--serif);font-variation-settings:var(--wonky);font-weight:500;
  font-size:1.02rem;line-height:1.3;color:var(--ink);margin:0 0 .3rem;
}
.lendingpop__where{
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--quiet);margin:0 0 .55rem;
}
.lendingpop__go{
  font-size:.9rem;color:var(--bloom);text-decoration:underline;text-underline-offset:.25em;
}
.mapboxgl-popup-content{
  border-radius:2px;padding:.9rem 1rem;box-shadow:0 10px 26px rgba(19,26,20,.14);
  font-family:var(--sans);
}

.board{margin-top:2.6rem;display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr))}

.space{
  position:relative;background:#fff;border:1px solid var(--hair);border-radius:2px;
  padding:1.5rem 1.5rem 1.4rem;box-shadow:0 10px 26px rgba(19,26,20,.05);
  display:flex;flex-direction:column;
}
.space::before{content:'';position:absolute;left:0;top:1.2rem;bottom:1.2rem;width:2px;background:var(--bloom);opacity:.42}
.space.is-hers::before{opacity:1;width:3px}

.space__what{
  font-family:var(--serif);font-variation-settings:var(--wonky);font-weight:500;
  font-size:1.32rem;line-height:1.25;letter-spacing:-.01em;color:var(--ink);margin:0 0 .85rem;
}
.space__facts{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin:0 0 .8rem}
.space__facts span{
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--quiet);
}
.space__place{
  font-size:.92rem;line-height:1.5;color:var(--quiet);margin:0 0 .7rem;
  padding-left:.7rem;border-left:2px solid var(--petal);
}
.space__asks{font-size:1.02rem;color:var(--ink);margin:0 0 .7rem}
.space__more{font-size:.98rem;line-height:1.55;color:var(--quiet);margin:0 0 .9rem}
.space__whose{
  font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bloom);
  margin:auto 0 1rem;padding-top:.9rem;
}
.space__ask{margin:0}
.space__ask label{
  display:block;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--quiet);margin:0 0 .5rem;
}
.space__ask textarea,.offer textarea{
  width:100%;border:1px solid var(--hair);border-radius:2px;background:var(--paper);
  padding:.8rem .9rem;font-family:var(--sans);font-size:1rem;line-height:1.55;color:var(--ink);
  resize:vertical;
}
.space__ask textarea:focus,.offer textarea:focus{outline:2px solid var(--bloom);outline-offset:1px;border-color:var(--bloom)}
.space__ask .way{margin-top:.8rem}

.tookit{
  margin:1rem 0 0;padding:.85rem 1rem;border-left:2px solid var(--bloom);
  background:color-mix(in srgb,var(--petal) 40%,transparent);
  font-size:.98rem;line-height:1.5;color:var(--ink);
}

.offer{margin-top:3.4rem;padding-top:2.6rem;border-top:1px solid var(--hair)}
.offer h2{
  font-family:var(--serif);font-variation-settings:var(--wonky);font-weight:500;
  font-size:clamp(1.5rem,3.6vw,2rem);letter-spacing:-.02em;color:var(--ink);margin:0 0 .7rem;
}
.offer__lede{color:var(--quiet);font-size:1.02rem;line-height:1.6;max-width:44ch;margin:0 0 2rem}
.offer .lay{margin:0 0 1.4rem;max-width:38rem}
.offer .lay label{
  display:block;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--quiet);margin:0 0 .5rem;
}

/* The registered name and the ABN. Quiet, at the foot — a legal line rather
   than a badge, and never louder than her own sentence above it. */
footer .foot-abn{font-size:.8rem;opacity:.62;margin-top:.35rem}

/* ── COMING IN ─────────────────────────────────────────────────────────
   Two lines and her card. It is never a stack of filled buttons, because a
   filled button on a step is what makes a form out of a moment. */
.comein{display:flex;flex-direction:column;gap:.4rem;max-width:32rem;margin:2rem 0}
.comein label{font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--quiet);margin-top:1rem}
.comein input{font:inherit;font-size:1.05rem;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--hair);padding:.55rem 0;border-radius:0}
.comein input:focus{outline:0;border-bottom-color:var(--bloom)}
/* The button borrows .onward whole and only sheds the browser's own
   chrome, so pressing forward here looks exactly like pressing forward
   anywhere else on this world. */
.comein button.onward{align-self:flex-start;background:none;border:0;color:inherit;font:inherit;cursor:pointer;text-align:left}
.ticket a{display:inline-block;margin-top:.7rem;color:var(--bloom);text-decoration:none;border-bottom:1px solid var(--bloom);padding-bottom:1px}
.ticket a:hover{color:var(--ink);border-bottom-color:var(--ink)}

/* ── THE COUNTER ───────────────────────────────────────────────────────
   Her payment moment, in her own ink. The shared module ships the
   mechanism; every world writes its own words and wears its own colours,
   or a woman meets somebody else's gateway at the one moment that matters
   most. */
.lam-pay-page{max-width:34rem;margin:0 auto}
.lam-pay-page__said{font-family:var(--serif);font-variation-settings:var(--wonky);
  font-weight:500;font-size:clamp(2rem,5.5vw,3rem);line-height:1.05;
  letter-spacing:-.03em;color:var(--ink);text-wrap:balance}
.lam-pay-page__lost{margin-top:1.1rem;color:var(--quiet);font-size:1.06rem;line-height:1.6;max-width:46ch}
.lam-pay-page__back{display:inline-block;margin-top:1.6rem;color:var(--bloom);
  text-decoration:none;border-bottom:1px solid var(--bloom);padding-bottom:1px}
.lam-pay-page__back:hover{color:var(--ink);border-bottom-color:var(--ink)}
.lam-pay{margin-top:2rem}
.lam-pay__trouble:empty{display:none}
.lam-pay__trouble{margin-bottom:1rem;color:var(--bloom);font-size:1rem;line-height:1.55}
.lam-pay button,.lam-pay .lam-pay__go{width:100%;min-height:54px;background:var(--bloom);
  color:#fff;border:0;border-radius:2px;font:inherit;font-weight:600;font-size:1.02rem;
  letter-spacing:.01em;cursor:pointer}
.lam-pay button:hover,.lam-pay .lam-pay__go:hover{background:var(--ink)}
.lam-pay__safe,.lam-pay p{margin-top:.9rem;color:var(--quiet);font-size:.95rem;line-height:1.55;text-align:center}
