/* Fairly Connected — S3a room v1 (2026-10-05). Loaded only on /p/{slug}?room=1 and /b/{slug}?room=1 (shop rooms, rev 4).
   The scene is a picture with four controls; the panels are the page's own sections, dressed as the object
   they came from (fridge enamel, shelf wood, wall cork, front door). Every visible word is HTML. */

.fc-roomscene{--rm-green:#203d34;--rm-brass:#c4ab6e;--rm-cream:#f1e5c5;max-width:none;margin:0;padding:0;background:#17231c}
.fc-roomscene-view{position:relative;overflow:hidden;aspect-ratio:3/2;background:#17231c;max-width:1920px;margin:0 auto}
.fc-roomscene-plate{position:relative;width:100%;height:100%}
.fc-roomscene-plate>img{display:block;width:100%;height:100%;max-width:none;object-fit:cover}
.fc-roomscene-keep{position:absolute;transform:rotate(-3deg);background:#fbf5e4;padding:4px 4px 12px;box-shadow:1px 3px 6px #0006;pointer-events:none;display:flex}
.fc-roomscene-keep img{width:100%;height:100%;min-height:0;object-fit:cover;display:block}
.fc-roomscene-keep:before{content:'';position:absolute;left:42%;top:-7%;width:16%;aspect-ratio:1;border-radius:50%;background:#b65d3e;box-shadow:1px 2px 3px #0007}

/* the four controls: a big, quiet touch target on the object itself */
.fc-roomhot{position:absolute;display:block;border-radius:14px;color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;outline-offset:-3px}
/* a hidden control (phone views that are not showing) must not stay in hit-testing or tab order: display:block above would otherwise beat the UA's [hidden] */
.fc-roomhot[hidden]{display:none}
.fc-roomhot-name{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none;white-space:nowrap;
  background:#203d34a6;color:#fff6df;border:1px solid #c4ab6e99;border-radius:3px;padding:7px 14px;font:700 15px/1.2 'Source Sans 3',system-ui,sans-serif;letter-spacing:.3px;transition:opacity .15s}
.fc-roomhot:focus-visible{box-shadow:inset 0 0 0 3px #ffd768,inset 0 0 24px #ffdd9644}
.fc-roomhot:focus-visible .fc-roomhot-name{opacity:1}
@media (hover:hover){.fc-roomhot:hover{box-shadow:inset 0 0 0 3px #f4d394,inset 0 0 24px #ffdd9633}.fc-roomhot:hover .fc-roomhot-name{opacity:1}}

/* phones: the room is wider than the screen; the brass dial moves the view. JS adds .room-js */
.room-js .fc-roomscene-view{--rm-h:57dvh}
@media (max-width:800px),(max-height:500px) and (max-width:1100px){
  .room-js .fc-roomscene{max-width:none}
  .room-js .fc-roomscene-view{aspect-ratio:auto;height:var(--rm-h);min-height:260px;max-height:650px;border-radius:0}
  .room-js .fc-roomscene-plate{position:absolute;width:auto;height:auto;transition:left .45s,top .45s,width .45s,height .45s}
  .room-js .fc-roomhot-name{display:none}
}
@media (prefers-reduced-motion:reduce){.room-js .fc-roomscene-plate,.fc-roomhot-name{transition:none}}
/* the names stay readable on hover / keyboard focus in narrow windows too */
.room-js .fc-roomhot:focus-visible .fc-roomhot-name{display:block}
@media(hover:hover){.room-js .fc-roomhot:hover .fc-roomhot-name{display:block}}

.fc-roomdial{position:absolute;z-index:5;bottom:14px;left:50%;transform:translateX(-50%);display:none;align-items:center;gap:5px;padding:5px 7px;border:1px solid var(--rm-brass);border-radius:40px;
  background:linear-gradient(110deg,#514a32f5,#302f24f5);box-shadow:0 3px 12px #0005,inset 0 1px 0 #e4cc9138;color:#f7e8c3;max-width:calc(100% - 24px)}
@media (max-width:800px),(max-height:500px) and (max-width:1100px){.room-js .fc-roomdial{display:flex}}
.fc-roomdial>button{border:0;color:inherit;background:transparent;width:40px;height:44px;border-radius:50%;font-size:23px;cursor:pointer}
.fc-roomdial-mid{min-width:105px;text-align:center}
.fc-roomdial-name{display:block;font:600 13px/18px 'Source Sans 3',system-ui,sans-serif;letter-spacing:.5px}
.fc-roomdial-dots{display:flex;justify-content:center}
.fc-roomdial-dots button{padding:0;width:25px;height:24px;border:0;background:none;cursor:pointer}
.fc-roomdial-dots button:after{content:'';display:block;width:5px;height:5px;background:#b2a584;border-radius:50%;margin:auto}
.fc-roomdial-dots button[aria-selected=true]:after{background:#ffe3a0;box-shadow:0 0 5px #ebc567}
.fc-roomdial button:focus-visible{outline:3px solid #ffd768;outline-offset:1px}

/* no-JS and JS: the door panel is a section on the page until JS carries it into the door's dialog */
.fc-doorpanel{max-width:var(--fc-max,720px);margin:18px auto 0;padding:0 16px}
.fc-doorpanel>h2{font-size:22px;margin-bottom:10px}
.fc-doorpanel .fc-porch-light{margin:0 0 12px}
.fc-doorpanel .fc-porch-line{margin:12px 0 0;font-size:16px}
.fc-doorpanel .fc-block{margin-top:14px}
.room-js .fc-doorpanel{display:none}
.room-js dialog .fc-doorpanel{display:block}

/* ---------- the panels: one dialog, dressed per object ---------- */
.fc-roompanel{padding:0;border:0;background:none;max-width:min(900px,calc(100% - 20px));width:100%;max-height:92dvh;overflow:visible;color:var(--page-ink)}
.fc-roompanel::backdrop{background:#101c16cc;backdrop-filter:blur(4px)}
.fc-roompanel-shell{position:relative;max-height:92dvh;overflow:auto;padding:46px 22px 26px;overscroll-behavior:contain}
.fc-roompanel-close{position:sticky;float:right;top:0;margin:-34px -10px 0 0;z-index:2;background:#fff9e7;color:#27382a;border:1px solid #6a765e;border-radius:3px;padding:7px 15px;font:600 15px 'Source Sans 3',system-ui,sans-serif;cursor:pointer}
.fc-roompanel-close:focus-visible{outline:3px solid #ffd768;outline-offset:2px}
.fc-roompanel .fc-fridge,.fc-roompanel .fc-wall,.fc-roompanel .fc-room,.fc-roompanel .fc-doorpanel{margin:0;padding-left:0;padding-right:0;max-width:none}
.fc-roompanel .fc-room--shelf{margin-top:0}

/* the door is one column in the room: the keepsake first, then the letters, each at a readable width */
.fc-roompanel .fc-fridge-door{grid-template-columns:1fr;justify-items:center;width:min(100%,430px);padding:15% 17% 17% 17%}
.fc-roompanel .fc-fridge-door .fc-magnet{max-width:240px;width:100%}
.fc-roompanel .fc-fridge-head{margin-bottom:6px}
/* fridge: cream enamel, rounded, a chrome handle's worth of edge */
.fc-roompanel[data-object=fridge]{--page-ink:#2a2a24;--page-ink-2:#5b5a4c;--page-card:#fffaf0;--page-line:#c9bfa5}
.fc-roompanel[data-object=fridge] .fc-roompanel-shell{background:linear-gradient(100deg,#c7bea4,#f6edda 15%,#e8ddc4 90%,#aaa18c);border:8px solid #bfb7a1;border-radius:28px;box-shadow:inset 0 0 0 2px #fff7e0,0 20px 90px #0008}
/* the keepsake is a picture magnet among the letters */
.fc-keepsake{margin:0;background:#fffaf0;padding:22px 12px 12px;box-shadow:1px 4px 8px #0003;transform:rotate(var(--tilt,-2deg));position:relative;max-width:230px}
.fc-keepsake-img{width:100%;aspect-ratio:1;object-fit:cover;border:6px solid #fbf5e4;box-shadow:inset 0 0 0 1px #0002}
.fc-keepsake figcaption{margin-top:8px;font:italic 14px/1.35 var(--fc-font-head,Georgia,serif);color:#3d3b2f;overflow-wrap:anywhere}
.fc-keepsake footer{margin-top:6px;font-size:13px;color:#5b5a4c}
.fc-keepsake .fc-magnet-pin{position:absolute;top:-16px;left:50%;width:44px;height:44px;margin-left:-22px}

/* shelf: dark wood and brass */
.fc-roompanel[data-object=shelf]{--page-ink:#f1e7ce;--page-ink-2:#d9c9a5;--page-card:#00000022;--page-line:#c9a06a55}
.fc-roompanel[data-object=shelf] .fc-roompanel-shell{background:linear-gradient(92deg,#604332,#805d40 48%,#543c2c);border:12px ridge #8b6845;box-shadow:0 20px 90px #0008}
.fc-roompanel[data-object=shelf] a{color:#ffe3a0}
.fc-roompanel[data-object=shelf] .fc-links a{background:#f3e7cc;color:#2b2418;border-color:#c9a06a}
.fc-roompanel[data-object=shelf] .fc-links a small{color:#5a4a30}

/* wall: cork board; notes stay paper */
.fc-roompanel[data-object=wall]{--page-ink:#2b2418;--page-ink-2:#5a4a30;--page-card:#fff8e1;--page-line:#c8b78d}
.fc-roompanel[data-object=wall] .fc-roompanel-shell{background:radial-gradient(#0000001a 1px,#0000 1px) 0 0/7px 7px,linear-gradient(135deg,#b9885a,#c99c68 50%,#ad7d4f);border:12px solid #6b4a2c;border-radius:6px;box-shadow:inset 0 0 30px #0004,0 20px 90px #0008}
.fc-roompanel[data-object=wall] .fc-wall-head h2,.fc-roompanel[data-object=wall] .fc-wall-head small{color:#2b2418}
.fc-roompanel[data-object=wall] .fc-note{box-shadow:2px 4px 8px #0003}
.fc-roompanel[data-object=wall] .fc-wall-owner label{color:#2b2418}

/* front door: painted green, brass edge */
.fc-roompanel[data-object=door]{--page-ink:#f5ecd2;--page-ink-2:#d6cfae;--page-card:#00000026;--page-line:#c4ab6e66}
.fc-roompanel[data-object=door] .fc-roompanel-shell{background:linear-gradient(95deg,#264638,#2f5645 55%,#223c31);border:10px solid #6f5a2c;border-radius:6px 6px 0 0;box-shadow:inset 0 0 0 3px #c4ab6e55,0 20px 90px #0008}
.fc-roompanel[data-object=door] a:not(.fc-btn){color:#ffe3a0}
.fc-roompanel[data-object=door] .fc-btn--ghost{color:#f5ecd2;border-color:#c4ab6e}
@media (max-width:560px){.fc-roompanel-shell{padding:44px 14px 20px}}

/* The shelf plank (fc.css) is drawn 161% wide and only clipped when painted, which makes some phones
   widen the layout; on a room page that would push the dialog off to one side. Clip it for real here. */
.fc-page{overflow-x:clip}

/* Rev 3 (Dave, on his phone): with the room drawn, the page below it no longer repeats the fridge, shelf, wall or
   door. They live in the room. Only direct children of the page are hidden, so the same nodes still show inside the
   dialog; with no JS (no .room-js) nothing here applies and every section stays on the page as a plain link target. */
.room-js .fc-page>main.fc-rooms,.room-js .fc-page>#fridge,.room-js .fc-page>#wall,.room-js .fc-page>#board,.room-js .fc-page>#window,
.room-js .fc-head:not(.fc-head--threshold) .fc-porch-light,.room-js .fc-head:not(.fc-head--threshold) .fc-actions{display:none}
.room-js .fc-sill{max-width:var(--fc-max,720px);margin:0 auto;padding:2px 16px 6px}

/* ---------- shop rooms (rev 4): sign and slip are the page's own name and tagline, drawn as HTML on the blank surfaces ---------- */
.fc-roomscene-sign,.fc-roomscene-slip{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none;text-align:center;container-type:inline-size}
.fc-roomscene-sign span{font:800 clamp(16px,6.2cqw,52px)/1.05 var(--fc-font-head,Georgia,serif);letter-spacing:2px;color:#e1bd6c;text-shadow:1px 2px 2px #0008;overflow-wrap:anywhere;max-width:100%}
.fc-roomscene-slip span{font:700 clamp(10px,9cqw,24px)/1.15 'Source Sans 3',system-ui,sans-serif;color:#263e31;overflow-wrap:anywhere}
.fc-roomscene[data-room-kind=shop] .fc-roomscene-view{background:#21372d}

/* the shop's panels: the window is warm paper on green glass, the board is cork with its two sections stacked */
.fc-windowpanel,.fc-board{margin:0}
.fc-windowpanel{max-width:var(--fc-max,720px);margin:0 auto;padding:6px 16px}
.fc-board{max-width:var(--fc-max,720px);margin:0 auto;padding:0 16px}
.fc-board>*+*{margin-top:26px}
.fc-roompanel .fc-windowpanel,.fc-roompanel .fc-board{max-width:none;padding:0}
.fc-roompanel[data-object=window]{--page-ink:#2b2418;--page-ink-2:#5a4a30;--page-card:#fff8e1;--page-line:#c8b78d}
.fc-roompanel[data-object=window] .fc-roompanel-shell{background:linear-gradient(135deg,#efe6cb,#e6d9b6 60%,#d9c9a1);border:10px solid #947449;border-radius:6px;box-shadow:inset 0 0 0 2px #fff7e0,0 20px 90px #0008}
.fc-roompanel[data-object=window] .fc-windowpanel>h2{font-size:26px;margin:0 0 8px;color:#2b2418}
.fc-roompanel[data-object=window] .fc-sill-note p{color:#2b2418}
.fc-roompanel[data-object=board]{--page-ink:#2b2418;--page-ink-2:#5a4a30;--page-card:#fff8e1;--page-line:#c8b78d}
.fc-roompanel[data-object=board] .fc-roompanel-shell{background:radial-gradient(#0000001a 1px,#0000 1px) 0 0/7px 7px,linear-gradient(135deg,#b9885a,#c99c68 50%,#ad7d4f);border:12px solid #6b4a2c;border-radius:6px;box-shadow:inset 0 0 30px #0004,0 20px 90px #0008}
.fc-roompanel[data-object=board] .fc-wall-head h2,.fc-roompanel[data-object=board] .fc-wall-head small,.fc-roompanel[data-object=board] .fc-fridge-head h2,.fc-roompanel[data-object=board] .fc-fridge-head small{color:#2b2418}
.fc-roompanel[data-object=board] .fc-note{box-shadow:2px 4px 8px #0003}
.fc-roompanel[data-object=board] .fc-wall-owner label{color:#2b2418}

/* ---------- rev 5 (Dave, on the live shop room): the room is the page ----------
   The picture runs edge to edge (up to the art's own 1920; wider screens get the room's own dark on either side, never cream),
   and the name / avatar / tagline / chips block that used to sit under it moves ONTO it as a small plaque. The heading stays in the page
   for screen readers and search; with no JS the plain header comes back as before and the plaque is not drawn. */
.fc-roomscene-plaque{display:none}
/* a shop: one engraved line right under its own sign. It sits on the plate, so it moves with the picture and scales with the sign. */
.room-js .fc-roomscene-plaque--under{display:flex;position:absolute;z-index:2;margin:0;justify-content:center;text-align:center;pointer-events:none;container-type:inline-size}
.room-js .fc-roomscene-plaque--under span{font:700 clamp(11.5px,2.6cqw,17px)/1.25 'Source Sans 3',system-ui,sans-serif;letter-spacing:1.4px;text-transform:uppercase;color:#e1bd6c;opacity:.92;text-shadow:1px 1px 2px #000a;overflow-wrap:anywhere}
/* a person: a small brass name plate on the wall (the picture has no sign of its own). On the view, so it stays put while a phone's dial moves the picture. */
.room-js .fc-roomscene-plaque--name{display:flex;flex-direction:column;align-items:center;gap:1px;position:absolute;z-index:3;left:50%;top:3.5%;transform:translateX(-50%);margin:0;padding:6px 18px 7px;max-width:calc(100% - 28px);text-align:center;
  background:#203d34d9;color:#f6e9c6;border:1px solid #c4ab6e99;border-radius:3px;box-shadow:0 2px 8px #0006;pointer-events:none;overflow-wrap:anywhere}
.room-js .fc-roomscene-plaque--name strong{font:800 clamp(15px,1.9vw,26px)/1.1 var(--fc-font-head,Georgia,serif);letter-spacing:.8px;color:#e1bd6c}
.room-js .fc-roomscene-plaque--name span{font:600 clamp(11.5px,.95vw,14px)/1.25 'Source Sans 3',system-ui,sans-serif;letter-spacing:.5px}
.room-js .fc-head:not(.fc-head--threshold){position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
@media (max-width:800px),(max-height:500px) and (max-width:1100px){.room-js .fc-roomscene-plaque--name{left:10px;top:10px;transform:none;align-items:flex-start;padding:5px 11px 6px;max-width:calc(100% - 20px)}.room-js .fc-roomscene-plaque--name strong{font-size:15px}}
.room-js .fc-roomscene-avatar{width:32px;height:32px;object-fit:cover;border-radius:50%;flex:none}
.room-js .fc-roomscene-plaque--name{box-sizing:border-box;max-width:min(460px,calc(100% - 28px))}
.room-js .fc-roomscene-plaque--shop{left:auto;right:12px;top:12px;transform:none;padding:4px}
.room-js .fc-roomscene-plaque--shop>strong,.room-js .fc-roomscene-plaque--shop>span{display:none}
.room-js .fc-roomscene-plaque--shop:not(:has(>img)){display:none}
@media (max-width:800px),(max-height:500px) and (max-width:1100px){
 .room-js .fc-roomscene-plaque--under{display:none}
 .room-js .fc-roomscene-plaque--shop,.room-js .fc-roomscene-plaque--shop:not(:has(>img)){display:flex;left:10px;right:auto;top:10px;transform:none;padding:5px 11px 6px}
 .room-js .fc-roomscene-plaque--shop>strong,.room-js .fc-roomscene-plaque--shop>span{display:block}
 .room-js .fc-roomscene-plaque--name{max-width:calc(100% - 20px);max-height:calc(100% - 110px);overflow:auto;pointer-events:auto}
 .room-js .fc-roomscene-plaque--name:has(>img){display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center;text-align:left;justify-items:start}
 .room-js .fc-roomscene-plaque--name>img{grid-row:1/span 3;width:30px;height:30px}
 .room-js .fc-roomscene-plaque--shop:not(:has(>img)){display:flex}
}

/* ---------- rev 6: redesigned popups (preview: drawn only with data-room-popups="2", i.e. exactly ?room=1) ----------
   One shared dialog, an object-specific surface per object (plain colours first; the material art can follow). A header row sits OUTSIDE the
   scrolling body: the object's name left, Close in its own column right. */
.fc-roompanel--v2{--v2-w:880px;--v2-head:#2b2418;--v2-head-bg:transparent;--v2-line:#0002;
  width:100%;max-width:min(var(--v2-w),calc(100% - 64px));max-height:calc(100dvh - 64px);margin:auto;overflow:visible;font-size:17px;line-height:1.55}
.fc-roompanel--v2[data-object=fridge]{--v2-w:760px}.fc-roompanel--v2[data-object=shelf]{--v2-w:880px}.fc-roompanel--v2[data-object=wall]{--v2-w:880px}
.fc-roompanel--v2[data-object=board]{--v2-w:920px}.fc-roompanel--v2[data-object=window]{--v2-w:680px}.fc-roompanel--v2[data-object=door]{--v2-w:720px}
.fc-roompanel--v2::backdrop{background:#10221a8f;backdrop-filter:blur(3px)}
.fc-roompanel--v2[open]{animation:fcv2in 170ms ease-out}
@keyframes fcv2in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fc-roompanel--v2[open]{animation:none}.fc-roompanel--v2{transition:none}}
.fc-roompanel--v2 .fc-roompanel-shell{display:flex;flex-direction:column;padding:0;max-height:calc(100dvh - 64px);overflow:hidden;box-sizing:border-box}
.fc-roompanel--v2 .fc-roompanel-head{flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:14px 20px 12px;color:var(--v2-head);background:var(--v2-head-bg);border-bottom:1px solid var(--v2-line)}
.fc-roompanel--v2 .fc-roompanel-title{font:800 clamp(22px,2.4vw,26px)/1.2 var(--fc-font-head,Georgia,serif);overflow-wrap:anywhere;padding-top:6px}
.fc-roompanel--v2 .fc-roompanel-close{position:static;float:none;margin:0;z-index:auto;min-width:84px;min-height:44px;box-sizing:border-box;background:#fff9e7;color:#27382a;border:1px solid #27382a;border-radius:4px;padding:8px 16px;font:700 16px 'Source Sans 3',system-ui,sans-serif}
.fc-roompanel--v2 .fc-roompanel-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:18px 24px 26px;overscroll-behavior:contain;overflow-wrap:anywhere}
.fc-roompanel--v2 .fc-roompanel-dup{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.fc-roompanel--v2 img{max-width:100%;height:auto}
.fc-roompanel--v2 .fc-roompanel-body p,.fc-roompanel--v2 .fc-roompanel-body li{max-width:66ch}

/* fridge: warm ivory enamel; the letters sit straight on it */
.fc-roompanel--v2[data-object=fridge]{--v2-head:#2a2a24}
.fc-roompanel--v2[data-object=fridge] .fc-roompanel-shell{background:linear-gradient(100deg,#e3dac2,#f7efdc 12%,#efe5cd 88%,#d5ccb2);border:6px solid #d3cab1;border-radius:24px;box-shadow:inset 0 0 0 2px #fff7e0,inset 0 -10px 24px #0000001a,0 20px 80px #0008}
.fc-roompanel--v2[data-object=fridge] .fc-fridge-door{width:min(100%,520px);padding:0}
.fc-roompanel--v2[data-object=fridge] .fc-keepsake{max-width:260px}

/* shelf: a wood frame and ledges; prose on cream sheets, links on cream slips */
.fc-roompanel--v2[data-object=shelf]{--v2-head:#f4e8cc;--v2-line:#f4e8cc33}
.fc-roompanel--v2[data-object=shelf] .fc-roompanel-shell{background:linear-gradient(92deg,#5e402f,#7a573b 50%,#523829);border:10px solid #8b6845;border-radius:6px;box-shadow:inset 0 0 0 2px #00000033,0 20px 80px #0008}
.fc-roompanel--v2[data-object=shelf] .fc-block{--page-ink:#2b2418;--page-ink-2:#5a4a30;--page-card:#fffaf0;--page-line:#d9c9a1;background:#fbf3df;color:#2b2418;border:1px solid #d9c9a1;border-radius:3px;padding:18px 22px;margin:0 0 20px;box-shadow:0 6px 0 #45301f,0 10px 14px #0004}
.fc-roompanel--v2[data-object=shelf] .fc-block h2{color:#2b2418}
.fc-roompanel--v2[data-object=shelf] .fc-block a:not(.fc-link){color:#7a3b12}
.fc-roompanel--v2[data-object=shelf] .fc-block:last-child{margin-bottom:8px}

/* wall and board: cork, a slim wood edge, paper on top */
.fc-roompanel--v2[data-object=wall],.fc-roompanel--v2[data-object=board]{--v2-head:#2b2418;--v2-line:#2b24182e}
.fc-roompanel--v2[data-object=wall] .fc-roompanel-shell,.fc-roompanel--v2[data-object=board] .fc-roompanel-shell{background:linear-gradient(135deg,#bf9163,#cba06d 50%,#b78859);border:8px solid #6b4a2c;border-radius:5px;box-shadow:inset 0 0 26px #0003,0 20px 80px #0008}
.fc-roompanel--v2[data-object=wall] .fc-wall-owner,.fc-roompanel--v2[data-object=board] .fc-wall-owner{background:#fffaf0;border-radius:3px;padding:12px 14px;box-shadow:1px 3px 6px #0003}
.fc-roompanel--v2[data-object=board] .fc-fridge-door{width:min(100%,440px);padding:0}
.fc-roompanel--v2[data-object=board] .fc-fridge,.fc-roompanel--v2[data-object=board] .fc-wall{padding:0}
.fc-roompanel--v2[data-object=board] .fc-wall{border-top:2px dashed #2b241855;padding-top:22px}
.fc-roompanel--v2[data-object=board] .fc-board>*+*{margin-top:30px}

/* window: pale daylit glass in a thin green sash, a warm paper notice */
.fc-roompanel--v2[data-object=window]{--v2-head:#1f3f31;--v2-line:#1f3f3126}
.fc-roompanel--v2[data-object=window] .fc-roompanel-shell{background:linear-gradient(160deg,#eef5f0,#dcebe3 60%,#e9f1e6);border:8px solid #3f6b55;border-radius:5px;box-shadow:inset 0 0 0 2px #ffffffaa,0 20px 80px #0008}
.fc-roompanel--v2[data-object=window] .fc-sill-note{background:#fff8e1;border:1px solid #d9c9a1;border-radius:3px;padding:16px 20px;box-shadow:1px 3px 6px #0002}

/* door: deep green painted wood with a brass edge, actions on a cream correspondence sheet */
.fc-roompanel--v2[data-object=door]{--v2-head:#f5ecd2;--v2-line:#c4ab6e55}
.fc-roompanel--v2[data-object=door] .fc-roompanel-shell{background:linear-gradient(95deg,#1f4132,#2c5443 55%,#1b372b);border:8px solid #1b372b;border-radius:5px 5px 0 0;box-shadow:inset 0 0 0 3px #c4ab6eaa,0 20px 80px #0008}
.fc-roompanel--v2[data-object=door] .fc-doorpanel{--page-ink:#2b2418;--page-ink-2:#5a4a30;--page-card:#fffaf0;--page-line:#d9c9a1;background:#fbf3df;color:#2b2418;border-radius:3px;padding:20px 24px;box-shadow:1px 4px 10px #0004}
.fc-roompanel--v2[data-object=door] .fc-doorpanel h2{color:#2b2418}
.fc-roompanel--v2[data-object=door] .fc-doorpanel a:not(.fc-btn){color:#7a3b12}
.fc-roompanel--v2[data-object=door] .fc-doorpanel .fc-btn--ghost{color:#2b2418;border-color:#8b6a2c}

/* phones and short landscape: the panel fills the screen; the material shows in a thin edge */
@media (max-width:800px),(max-height:500px) and (max-width:1100px){
 .fc-roompanel--v2{max-width:none;width:100%;height:100dvh;max-height:none;margin:0}
 .fc-roompanel--v2 .fc-roompanel-shell{height:100%;max-height:none;border-width:4px;border-radius:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
 .fc-roompanel--v2[data-object=fridge] .fc-roompanel-shell{border-radius:0}
 .fc-roompanel--v2 .fc-roompanel-head{padding:10px 12px 10px 16px}
 .fc-roompanel--v2 .fc-roompanel-body{padding:14px 16px 24px}
 .fc-roompanel--v2[data-object=shelf] .fc-block,.fc-roompanel--v2[data-object=door] .fc-doorpanel{padding:14px 14px}
 .fc-roompanel--v2[data-object=board] .fc-fridge-door{width:100%}
}
.fc-roompanel--v2[data-object=shelf] .fc-block .fc-links a{color:#2b2418}
.fc-roompanel--v2[data-object=shelf] .fc-block .fc-links a small{color:#5a4a30}

/* ---- rev 6b: Chet's material kit (2026-10-06-19) folded in. One continuous crop per surface, on the stationary shell (never stretched over the
   scrolling body); every image sits over its plain-colour fallback, so a missing file leaves the plain build. Each rule applies only to the open
   object, so a panel loads only the surfaces it uses. Words sit on paper, enamel or a scrim, never straight on cork, wood or paint. */
.fc-roompanel--v2[data-object=fridge] .fc-roompanel-shell{background:url(fc-material-enamel-v1.webp) center/cover no-repeat,linear-gradient(100deg,#e3dac2,#f7efdc 12%,#efe5cd 88%,#d5ccb2)}
.fc-roompanel--v2[data-object=shelf] .fc-roompanel-shell{background:url(fc-material-wood-v1.webp) center/cover no-repeat,linear-gradient(92deg,#5e402f,#7a573b 50%,#523829)}
.fc-roompanel--v2[data-object=shelf] .fc-roompanel-head,.fc-roompanel--v2[data-object=door] .fc-roompanel-head{background:#1a120acc}
.fc-roompanel--v2[data-object=door] .fc-roompanel-head{background:#0f2a1fb3}
.fc-roompanel--v2[data-object=door] .fc-roompanel-shell{background:url(fc-material-green-paint-v1.webp) center/cover no-repeat,linear-gradient(95deg,#1f4132,#2c5443 55%,#1b372b)}
.fc-roompanel--v2[data-object=window] .fc-roompanel-shell{border:8px solid transparent;background:linear-gradient(160deg,#eef5f0,#dcebe3 60%,#e9f1e6) padding-box,url(fc-material-green-paint-v1.webp) center/cover border-box,#3f6b55 border-box}
.fc-roompanel--v2[data-object=wall] .fc-roompanel-shell,.fc-roompanel--v2[data-object=board] .fc-roompanel-shell{border:8px solid transparent;
  background:url(fc-material-cork-v1-512.webp) center/cover no-repeat padding-box,linear-gradient(135deg,#bf9163,#cba06d 50%,#b78859) padding-box,url(fc-material-wood-v1.webp) center/cover border-box,#6b4a2c border-box}
/* paper carries the reading */
.fc-roompanel--v2[data-object=shelf] .fc-block,.fc-roompanel--v2[data-object=door] .fc-doorpanel{background:url(fc-material-paper-v1.webp) center/cover no-repeat,#fbf3df}
.fc-roompanel--v2[data-object=window] .fc-sill-note,.fc-roompanel--v2[data-object=wall] .fc-wall-owner,.fc-roompanel--v2[data-object=board] .fc-wall-owner{background:url(fc-material-paper-v1.webp) center/cover no-repeat,#fff8e1}
/* cork shows around the paper, not under the words: the wall's section, and the board's section heads, are paper */
.fc-roompanel--v2[data-object=wall] .fc-wall,.fc-roompanel--v2[data-object=board] .fc-wall{background:url(fc-material-paper-v1.webp) center/cover no-repeat,#fff8e1;border:0;border-radius:3px;padding:16px 18px 18px;box-shadow:1px 3px 8px #0004;color:#2b2418;--page-ink:#2b2418;--page-ink-2:#5a4a30}
.fc-roompanel--v2[data-object=board] .fc-fridge-head{background:url(fc-material-paper-v1.webp) center/cover no-repeat,#fff8e1;border-radius:3px;padding:10px 16px 12px;margin:0 0 14px;box-shadow:1px 3px 8px #0004;color:#2b2418}
.fc-roompanel--v2[data-object=board] .fc-fridge-head h2,.fc-roompanel--v2[data-object=board] .fc-fridge-head small{color:#2b2418}
.fc-roompanel--v2[data-object=fridge] .fc-fridge-head{padding:0 0 10px}
.fc-roompanel--v2[data-object=wall] .fc-roompanel-head,.fc-roompanel--v2[data-object=board] .fc-roompanel-head{background:url(fc-material-paper-v1.webp) center/cover no-repeat,#fff8e1;box-shadow:0 2px 6px #0003;position:relative;z-index:1}
/* rev 6c (Chet review 21): kept letters read in full, no old fridge art behind the new surfaces, keepsake photo keeps its shape. Preview only. */
.fc-roompanel--v2[data-object=fridge] .fc-fridge-door,
.fc-roompanel--v2[data-object=board] .fc-fridge-door{background:none}
.fc-roompanel--v2[data-object=fridge] .fc-fridge-door .fc-magnet,
.fc-roompanel--v2[data-object=board] .fc-fridge-door .fc-magnet{width:100%;max-width:440px}
.fc-roompanel--v2 .fc-magnet-body{display:block;-webkit-line-clamp:unset;overflow:visible;font-size:17px;line-height:1.55}
.fc-roompanel--v2 .fc-magnet footer,.fc-roompanel--v2 .fc-keepsake footer{font-size:14px}
.fc-roompanel--v2[data-object=fridge] .fc-fridge-head small{color:#5b5a4c}
.fc-roompanel--v2[data-object=fridge] .fc-fridge-door .fc-keepsake{max-width:260px}
.fc-roompanel--v2[data-object=fridge] .fc-keepsake-img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}

/* ---------- the welcome desk (/welcome, 2026-10-07): a room that belongs to no page. Same shell and materials as the other rooms. ---------- */
.fc-welcome{--fc-ink:#1E1A16}
.fc-welcome-intro{text-align:center;padding:28px 16px 18px;max-width:760px;margin:0 auto}
.fc-welcome-intro h1{font:800 clamp(30px,5vw,46px)/1.1 var(--fc-font-head,Georgia,serif);margin:0 0 6px}
.fc-welcome-intro p{margin:0 0 14px;font-size:18px}
.fc-welcome-intro .fc-actions,.fc-welcome-sheet .fc-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.fc-welcome-sheet .fc-actions{justify-content:flex-start}
.fc-welcome-intro .fc-btn,.fc-welcome-sheet .fc-btn{min-height:44px;display:inline-flex;align-items:center}
/* the sections: below the picture they are the plain page (no script = this is all there is); the room carries each into its panel */
.fc-welcome-sections{max-width:760px;margin:26px auto 40px;padding:0 16px;display:grid;gap:18px}
.fc-welcome-sheet{background:#fbf3df;color:#2b2418;border:1px solid #d9c9a1;border-radius:3px;padding:18px 22px;box-shadow:0 3px 8px #0002;--page-ink:#2b2418;--page-ink-2:#5a4a30;--page-card:#fffaf0;--page-line:#c8b88c}
.fc-welcome-sheet h2{margin:0 0 8px;font:800 22px/1.2 var(--fc-font-head,Georgia,serif);color:#2b2418}
.fc-welcome-sheet p{margin:0 0 10px;max-width:62ch}
.fc-welcome-sheet a:not(.fc-btn){color:#7a3b12}
.fc-welcome-sheet .fc-btn--ghost{color:#2b2418;border-color:#8b6a2c}
.fc-welcome-sheet .fc-join-form{margin:12px 0 10px}
.fc-welcome-sheet .fc-join-form label{color:#2b2418;font-size:16px}
.fc-welcome-sheet .fc-join-form label span{color:#5a4a30}
.fc-welcome-sheet .fc-join-form input{background:#fffdf6;color:#2b2418;border-color:#8b6a2c;font-size:16px;min-height:44px}
.fc-welcome-small{font-size:16px;color:#5a4a30}
.fc-welcome-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fc-welcome-list a{display:block;padding:10px 12px;border:1px solid #d9c9a1;border-radius:3px;background:#fffaf0;text-decoration:none;color:#2b2418}
.fc-welcome-list a strong{display:block;font-size:17px;color:#2b2418}
.fc-welcome-list a span{font-size:16px;color:#5a4a30}
.fc-welcome-list a:hover,.fc-welcome-list a:focus-visible{border-color:#8b6a2c}
/* in the panel: the sheet is the reading surface; the panel's own shell is the object's material */
.fc-roompanel--v2 .fc-welcome-sheet{border:0;box-shadow:1px 4px 10px #0004;background:url(fc-material-paper-v1.webp) center/cover no-repeat,#fbf3df;padding:20px 24px;margin:0}
.fc-roompanel--v2[data-object=clipboard]{--v2-w:720px;--v2-head:#f4e8cc;--v2-line:#f4e8cc33}
.fc-roompanel--v2[data-object=envelopes]{--v2-w:720px;--v2-head:#2a2a24}
.fc-roompanel--v2[data-object=map]{--v2-w:760px;--v2-head:#2b2418;--v2-line:#2b24182e}
.fc-roompanel--v2[data-object=book]{--v2-w:760px;--v2-head:#f5ecd2;--v2-line:#c4ab6e55}
.fc-roompanel--v2[data-object=clipboard] .fc-roompanel-shell{background:url(fc-material-wood-v1.webp) center/cover no-repeat,linear-gradient(92deg,#5e402f,#7a573b 50%,#523829);border:10px solid #8b6845;border-radius:6px;box-shadow:inset 0 0 0 2px #00000033,0 20px 80px #0008}
.fc-roompanel--v2[data-object=envelopes] .fc-roompanel-shell{background:url(fc-material-enamel-v1.webp) center/cover no-repeat,linear-gradient(100deg,#e3dac2,#f7efdc 12%,#efe5cd 88%,#d5ccb2);border:6px solid #d3cab1;border-radius:24px;box-shadow:inset 0 0 0 2px #fff7e0,inset 0 -10px 24px #0000001a,0 20px 80px #0008}
.fc-roompanel--v2[data-object=map] .fc-roompanel-shell{border:8px solid transparent;background:url(fc-material-cork-v1-512.webp) center/cover no-repeat padding-box,linear-gradient(135deg,#bf9163,#cba06d 50%,#b78859) padding-box,url(fc-material-wood-v1.webp) center/cover border-box,#6b4a2c border-box;border-radius:5px;box-shadow:inset 0 0 26px #0003,0 20px 80px #0008}
.fc-roompanel--v2[data-object=book] .fc-roompanel-shell{background:url(fc-material-green-paint-v1.webp) center/cover no-repeat,linear-gradient(95deg,#1f4132,#2c5443 55%,#1b372b);border:8px solid #1b372b;border-radius:5px;box-shadow:inset 0 0 0 3px #c4ab6eaa,0 20px 80px #0008}
.fc-roompanel--v2[data-object=clipboard] .fc-roompanel-head{background:#1a120acc}
.fc-roompanel--v2[data-object=book] .fc-roompanel-head{background:#0f2a1fb3}
.fc-roompanel--v2[data-object=map] .fc-roompanel-head{background:url(fc-material-paper-v1.webp) center/cover no-repeat,#fff8e1;box-shadow:0 2px 6px #0003;position:relative;z-index:1}
.fc-roompanel--v2[data-object=envelopes] .fc-roompanel-shell .fc-welcome-sheet{box-shadow:1px 3px 8px #0003}
.fc-roompanel--v2[data-object=door] .fc-welcome-sheet .fc-btn--ghost{color:#2b2418;border-color:#8b6a2c}

/* ---------- the events hall (/events?room=1, 2026-10-07): the welcome desk's shell and sheets, five objects of its own ---------- */
.fc-hall .fc-board2-warn{max-width:640px;margin:0 0 16px;padding:12px 16px;background:#fff3d6;color:#2b2418;border-top:3px solid #c25b1f;border-radius:2px;font:400 16px/1.5 'Source Sans 3',system-ui,sans-serif}
.fc-hall-day{margin:0 0 18px}
.fc-hall-day h3{margin:0 0 8px;padding-bottom:4px;border-bottom:2px double #8b6a2c;font:800 19px/1.2 var(--fc-font-head,Georgia,serif);color:#2b2418}
.fc-hall-slips{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.fc-hall-slip{min-width:0;padding:10px 14px;background:#fffaf0;border:1px solid #d9c9a1;border-left:5px solid #8b6a2c;border-radius:2px;color:#2b2418}
.fc-hall-open{display:block;min-height:44px;color:inherit;text-decoration:none}
.fc-hall-time{display:block;font-size:16px;color:#5a4a30}
.fc-hall-title{display:block;font:700 19px/1.25 var(--fc-font-head,Georgia,serif);overflow-wrap:anywhere}
.fc-hall-open:hover .fc-hall-title,.fc-hall-open:focus-visible .fc-hall-title{text-decoration:underline;text-underline-offset:3px}
.fc-hall-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;font-size:16px;color:#5a4a30}
.fc-hall-meta a{display:inline-flex;align-items:center;min-height:44px;color:#7a3b12}
.fc-hall-small{font-size:16px;color:#5a4a30}
.fc-hall-empty{font-size:17px}
.fc-hall-cards{list-style:none;margin:0 0 16px;padding:0;display:grid;align-items:start;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:18px}
.fc-hall-card{margin:0;min-width:0;background:#fbf3df;color:#2b2418;border-radius:2px;box-shadow:1px 4px 10px #0004}
.fc-hall-card:nth-child(3n+1){transform:rotate(-.6deg)}.fc-hall-card:nth-child(3n+2){transform:rotate(.5deg)}
.fc-hall-card a{display:block;min-height:44px;padding:12px 14px 14px;color:inherit;text-decoration:none}
.fc-hall-card img{display:block;width:100%;height:auto;margin:0 0 10px;border-radius:2px}
.fc-hall-card-day{display:block;font-size:16px;color:#5a4a30}
.fc-hall-card-title{display:block;margin:2px 0 4px;font:800 20px/1.2 var(--fc-font-head,Georgia,serif);overflow-wrap:anywhere}
.fc-hall-card-when{display:block;font-size:16px;color:#5a4a30;overflow-wrap:anywhere}
.fc-hall-card a:hover .fc-hall-card-title,.fc-hall-card a:focus-visible .fc-hall-card-title{text-decoration:underline;text-underline-offset:3px}
.fc-hall-note{margin:0 0 12px;max-width:62ch}
.fc-hall-go{margin:6px 0 0}
.fc-hall-sheet .fc-hall-go .fc-btn,.fc-hall-sheet .fc-hall-empty a{min-height:44px}
.fc-hall-go .fc-btn{display:inline-flex;align-items:center}
@media (prefers-reduced-motion:reduce){.fc-hall-card{transform:none!important}}
/* in the panels. The door is the green door; the others take their own materials. */
.fc-roompanel--v2[data-object=calendar]{--v2-w:820px;--v2-head:#2b2418;--v2-line:#2b24182e}
.fc-roompanel--v2[data-object=invitations]{--v2-w:940px;--v2-head:#2b2418;--v2-line:#2b24182e}
.fc-roompanel--v2[data-object=add]{--v2-w:680px;--v2-head:#2b2418;--v2-line:#2b24182e}
.fc-roompanel--v2[data-object=gatherings]{--v2-w:680px;--v2-head:#f4e8cc;--v2-line:#f4e8cc33}
.fc-roompanel--v2[data-object=calendar] .fc-roompanel-shell,.fc-roompanel--v2[data-object=add] .fc-roompanel-shell{border:8px solid #c9b88a;background:url(fc-material-paper-v1.webp) center/cover no-repeat,#f3ead2;border-radius:3px;box-shadow:inset 0 0 0 2px #fff7e0,0 20px 80px #0008}
.fc-roompanel--v2[data-object=calendar] .fc-welcome-sheet,.fc-roompanel--v2[data-object=add] .fc-welcome-sheet{background:none;box-shadow:none;padding:2px 4px}
.fc-roompanel--v2[data-object=invitations] .fc-roompanel-shell{border:8px solid transparent;background:url(fc-material-cork-v1-512.webp) center/cover no-repeat padding-box,linear-gradient(135deg,#bf9163,#cba06d 50%,#b78859) padding-box,url(fc-material-wood-v1.webp) center/cover border-box,#6b4a2c border-box;border-radius:5px;box-shadow:inset 0 0 26px #0003,0 20px 80px #0008}
.fc-roompanel--v2[data-object=invitations] .fc-roompanel-head{background:url(fc-material-paper-v1.webp) center/cover no-repeat,#fff8e1;box-shadow:0 2px 6px #0003;position:relative;z-index:1}
.fc-roompanel--v2[data-object=invitations] .fc-welcome-sheet{background:none;box-shadow:none;padding:0}
.fc-roompanel--v2[data-object=invitations] .fc-hall-note{display:inline-block;padding:8px 12px;background:url(fc-material-paper-v1.webp) center/cover no-repeat,#fff8e1;border-radius:2px;box-shadow:1px 3px 6px #0003;color:#2b2418}
.fc-roompanel--v2[data-object=invitations] .fc-hall-go{display:inline-block;margin-top:14px}
.fc-roompanel--v2[data-object=invitations] .fc-board2-warn{box-shadow:1px 3px 6px #0003}
.fc-roompanel--v2[data-object=gatherings] .fc-roompanel-shell{background:url(fc-material-wood-v1.webp) center/cover no-repeat,linear-gradient(92deg,#5e402f,#7a573b 50%,#523829);border:10px solid #8b6845;border-radius:6px;box-shadow:inset 0 0 0 2px #00000033,0 20px 80px #0008}
.fc-roompanel--v2[data-object=gatherings] .fc-roompanel-head{background:#1a120acc}
@media (max-width:800px){.fc-roompanel--v2[data-object=calendar] .fc-roompanel-shell,.fc-roompanel--v2[data-object=add] .fc-roompanel-shell{border-width:5px}}


/* ======================================================================================================================
   Room-first (Chet 118, 2026-10-19). Only on a person's or shop's room: the scene carries data-room-layout="first".
   The welcome desk and the events hall never get this attribute and keep everything above exactly as it was.
   Order on the page: the whole room, the brass slide bar, the threshold (the page's own header), the page's "right now" note.
   Words sit on paper, keepsakes on enamel, notes on cork. The page's own colors rule everything outside the room and its reader. */

/* the room: always a 3:2 window onto the whole picture; the camera (room.js) moves inside it */
.room-js .fc-roomscene[data-room-layout=first] .fc-roomscene-view{aspect-ratio:3/2;height:auto;min-height:0;max-height:none;border-radius:0}
.room-js .fc-roomscene[data-room-layout=first] .fc-roomscene-plate{position:absolute;left:0;top:0;width:100%;height:100%;transition:left .45s,top .45s,width .45s,height .45s}
.fc-roomscene[data-room-layout=first] .fc-roomscene-plate>img{object-fit:cover}
@media (prefers-reduced-motion:reduce){.room-js .fc-roomscene[data-room-layout=first] .fc-roomscene-plate{transition:none}}

/* the four objects: 44px touch targets; on the whole-room view each wears a short brass name so nothing is a mystery */
.fc-roomscene[data-room-layout=first] .fc-roomhot{min-width:44px;min-height:44px}
.fc-roomscene[data-room-layout=first] .fc-roomhot:after{content:attr(data-short);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap;
  background:#23372ee8;color:#f4dfae;border-bottom:2px solid #bc9349;padding:3px 9px;border-radius:2px;font:700 13px/1.25 'Source Sans 3',system-ui,sans-serif;letter-spacing:.2px;box-shadow:0 2px 7px #0004}
.fc-roomscene[data-room-layout=first]:not([data-stop=whole]) .fc-roomhot:after{display:none}
.fc-roomscene[data-room-layout=first] .fc-roomhot-name{display:none}
.room-js .fc-roomscene[data-room-layout=first] .fc-roomhot:focus-visible .fc-roomhot-name{display:block}
.fc-roomscene[data-room-layout=first] .fc-roomhot[hidden]{display:none}

/* previous / the view's name / next: quiet brass on green, every button at least 44px */
.fc-roomslide{display:none}
.room-js .fc-roomscene[data-room-layout=first] .fc-roomslide{display:grid;grid-template-columns:52px minmax(0,1fr) 52px;max-width:1920px;margin:0 auto;background:#26382c;color:#eddba9;border-top:2px solid #a98649}
.fc-roomslide button{min-height:52px;min-width:44px;margin:0;padding:0 6px;background:none;border:0;color:inherit;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.fc-roomslide .prev,.fc-roomslide .next{font-size:30px;line-height:1}
.fc-roomslide .mid{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 18px;padding:4px 8px;text-align:center}
.fc-roomslide .name{font:700 16px/1.3 'Source Sans 3',system-ui,sans-serif;letter-spacing:.3px}
.fc-roomslide .act{font:400 13px/1.3 'Source Sans 3',system-ui,sans-serif;color:#ddd1b0}
.fc-roomslide button:focus-visible,.fc-reader button:focus-visible,.fc-zoom button:focus-visible{outline:3px solid #ffd768;outline-offset:-3px}
.fc-roomslide button:hover .name{text-decoration:underline;text-underline-offset:4px}

/* the threshold: the page's own header, now right under the room */
.fc-head--threshold{max-width:960px;margin:0 auto;padding:26px 18px 14px;display:grid;grid-template-columns:var(--th-av,125px) minmax(0,1fr);column-gap:18px;row-gap:0;align-items:start;grid-template-areas:"av tags" "av name" "av tag" "av act" "light light";--th-av:125px}
@media (min-width:600px){.fc-head--threshold{--th-av:150px;column-gap:26px}}
@media (min-width:760px){.fc-head--threshold{--th-av:170px}}
.fc-head--threshold .fc-avatar{grid-area:av;width:var(--th-av);height:var(--th-av);border-radius:3px;border:4px ridge #a18446;background:#243d31;box-shadow:3px 5px 10px #2823162a;overflow:hidden;box-sizing:border-box}
.fc-head--threshold .fc-avatar img{width:100%;height:100%;object-fit:contain;display:block}
.fc-head--threshold .fc-avatar--initials{display:grid;place-items:center}
.fc-head--threshold .fc-avatar-initials{font:700 calc(var(--th-av) * .34)/1 var(--fc-font-head,Georgia,serif);letter-spacing:.04em;color:#e9d9ad}
.fc-head--threshold .fc-tags{grid-area:tags;margin:0 0 4px;gap:2px 12px;align-self:end}
.fc-head--threshold .fc-tag,.fc-head--threshold .fc-tag--accent{padding:0;border:0;border-radius:0;background:none;color:var(--page-ink-2);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.fc-head--threshold .fc-name{grid-area:name;margin:0;font-size:clamp(30px,8vw,44px);line-height:1.05;overflow-wrap:anywhere}
.fc-head--threshold .fc-tagline{grid-area:tag;margin:8px 0 0;font-size:17px;line-height:1.4;max-width:46ch}
.fc-head--threshold .fc-actions{grid-area:act;margin:12px 0 0}
.fc-head--threshold .fc-actions .fc-btn{min-height:44px;box-sizing:border-box}
.fc-head--threshold .fc-porch-light{grid-area:light;margin-top:14px}
.room-js .fc-head--threshold .fc-actions .fc-btn--ghost{display:none}
@media (max-width:380px){.fc-head--threshold{column-gap:14px;padding-left:14px;padding-right:14px}.fc-head--threshold .fc-tagline{font-size:16px}}

/* the reader: one dialog, one object at a time */
html.fc-reader-open{overflow:hidden}
.fc-sr-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fc-reader{--page-ink:#2b2418;--page-ink-2:#5a4a30;--page-card:#fffaf0;--page-line:#d9c9a1;padding:0;border:0;background:none;color:#2b2418;width:min(900px,calc(100% - 24px));max-width:none;max-height:calc(100dvh - 24px);margin:auto;overflow:visible;font-size:1rem}
.fc-reader::backdrop{background:#101e19a8;backdrop-filter:blur(3px)}
.fc-reader[open]{animation:fcrin 170ms ease-out}
@keyframes fcrin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fc-reader[open]{animation:none}}
.fc-reader-shell{display:flex;flex-direction:column;max-height:calc(100dvh - 24px);box-shadow:0 18px 80px #0007;background:url(fc-material-paper-v1.webp),#f3eddc}
.fc-reader-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 6px 20px;background:#263d32;color:#e8d7a9;border-bottom:2px solid #a98649}
.fc-reader-title{margin:0;font:700 clamp(1.05rem,2.4vw,1.35rem)/1.25 var(--fc-font-head,Georgia,serif);overflow-wrap:anywhere}
.fc-reader-close{flex:none;min-width:84px;min-height:44px;padding:0 14px;background:none;border:1px solid #a98649;border-radius:3px;color:inherit;font:600 1rem 'Source Sans 3',system-ui,sans-serif;cursor:pointer}
.fc-reader-tabs{flex:none;display:flex;flex-wrap:wrap;gap:4px 14px;padding:0 20px;border-bottom:1px solid #b5ad94;background:#f3eddc99}
.fc-reader-tabs[hidden]{display:none}
.fc-reader-tabs button{min-height:44px;padding:0 4px;background:none;border:0;border-bottom:3px solid transparent;color:#2b2418;font:600 1rem 'Source Sans 3',system-ui,sans-serif;cursor:pointer;overflow-wrap:anywhere;text-align:left}
.fc-reader-tabs button[aria-pressed=true]{border-bottom-color:#a68542}
.fc-reader-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:22px 28px 26px;font-size:1.125rem;line-height:1.65;overflow-wrap:anywhere}
.fc-reader-body p,.fc-reader-body li,.fc-reader-body dd{max-width:66ch}
.fc-reader-body img{max-width:100%;height:auto}
.fc-reader-body :where(section,.fc-room,.fc-fridge,.fc-wall,.fc-doorpanel,.fc-windowpanel,.fc-board){margin:0;padding-left:0;padding-right:0;max-width:none}
.fc-reader-body a:not(.fc-btn){color:#7a3b12}
.fc-reader-body .fc-btn--ghost{color:#2b2418;border-color:#8b6a2c}
.fc-reader-body .fc-btn{min-height:44px;box-sizing:border-box}
.fc-reader-dup{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.fc-reader-nav{flex:none;display:flex;justify-content:space-between;gap:10px;padding:6px 14px 10px;border-top:1px solid #b5ad94;background:#f3eddc99}
.fc-reader-nav[hidden]{display:none}
.fc-reader-nav button{min-height:44px;padding:0 6px;background:none;border:0;border-bottom:1px solid #a58a50;color:#2b2418;font:600 1rem 'Source Sans 3',system-ui,sans-serif;cursor:pointer;overflow-wrap:anywhere;text-align:left;max-width:48%}
.fc-reader-nav .next{text-align:right;margin-left:auto}
/* words: blocks sit straight on paper, the neighbor's own heading is the heading */
.fc-reader .fc-block{background:none;border:0;border-radius:0;box-shadow:none;padding:4px 0 14px;margin:0}
.fc-reader .fc-block h2{font:800 clamp(1.3rem,3vw,1.7rem)/1.2 var(--fc-font-head,Georgia,serif);letter-spacing:0;text-transform:none;color:#2b2418;margin:0 0 10px}
.fc-reader .fc-room-head{margin:0 0 6px}
.fc-reader .fc-room-head small,.fc-reader .fc-wall-head small,.fc-reader .fc-fridge-head small{color:#5a4a30}
.fc-reader .fc-links a{background:#fffaf0;border-color:#d9c9a1;min-height:44px;box-sizing:border-box;color:#2b2418}
.fc-reader .fc-links a small{color:#5a4a30}
.fc-reader .fc-photos img{cursor:zoom-in}
.fc-reader .fc-photos img:focus-visible{outline:3px solid #ba662f;outline-offset:2px}
.fc-reader .fc-porch-light{display:none}
.fc-reader .fc-door-about{margin:0 0 18px;padding-bottom:6px;border-bottom:1px solid #d9c9a1}
.fc-reader .fc-hours dt,.fc-reader .fc-hours dd{font-size:1.0625rem}
/* the fridge is enamel, the keepsakes and letters are paper slips on it */
.fc-reader[data-object=fridge] .fc-reader-body,.fc-reader[data-object=board] .fc-fridge{background:url(fc-material-enamel-v1.webp),#e8e2cf}
.fc-reader[data-object=fridge] .fc-reader-body{padding-top:20px}
.fc-reader[data-object=fridge] .fc-fridge-door,.fc-reader[data-object=board] .fc-fridge-door{width:min(100%,520px);margin:0 auto;padding:30px 0 6px;background:none;box-shadow:none;border-radius:0}
.fc-reader[data-object=fridge] .fc-magnet,.fc-reader[data-object=board] .fc-magnet{background:#f7f1dd;width:100%;max-width:440px}
.fc-reader[data-object=fridge] .fc-magnet-body,.fc-reader[data-object=board] .fc-magnet-body{display:block;-webkit-line-clamp:unset;overflow:visible;font-size:1.0625rem;line-height:1.55}
.fc-reader[data-object=fridge] .fc-magnet footer,.fc-reader[data-object=board] .fc-magnet footer{font-size:.875rem}
.fc-reader .fc-keepsake-img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
/* the wall is cork; the wall's own words and the notes are paper laid on it */
.fc-reader[data-object=wall] .fc-reader-body,.fc-reader[data-object=board] .fc-reader-body{background:url(fc-material-cork-v1-512.webp),#bf9163}
.fc-reader[data-object=wall] .fc-wall,.fc-reader[data-object=board] .fc-wall,.fc-reader[data-object=board] .fc-fridge-head{background:url(fc-material-paper-v1.webp),#fff8e1;border-radius:3px;padding:14px 18px 18px;box-shadow:1px 3px 8px #0004}
.fc-reader[data-object=board] .fc-fridge{padding:16px 18px;border-radius:3px;box-shadow:1px 3px 8px #0004}
.fc-reader[data-object=board] .fc-fridge-head{box-shadow:none;background:none;padding:0 0 4px}
.fc-reader[data-object=board] .fc-board>*+*{margin-top:26px}
.fc-reader .fc-note{box-shadow:2px 4px 8px #0003}
/* window, door and shelf: plain paper */
.fc-reader .fc-sill-note{background:#fff8e1;border:1px solid #d9c9a1;border-radius:3px;padding:16px 20px;box-shadow:1px 3px 6px #0002}
/* phones and short landscape: the reader fills the screen */
@media (max-width:640px),(max-height:500px) and (max-width:1100px){
 .fc-reader{width:100%;height:100dvh;max-height:none;margin:0}
 .fc-reader-shell{height:100%;max-height:none;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
 .fc-reader-head{padding-left:16px}.fc-reader-tabs{padding:0 14px}.fc-reader-body{padding:16px 16px 24px}
}

/* a picture, enlarged on request */
.fc-zoom{padding:0;border:0;background:#101e19;color:#f4ecd4;width:min(1100px,calc(100% - 16px));max-width:none;max-height:calc(100dvh - 16px);margin:auto}
.fc-zoom::backdrop{background:#000000d9}
.fc-zoom-bar{display:flex;justify-content:flex-end;padding:4px 6px}
.fc-zoom-close{min-width:84px;min-height:44px;background:none;border:1px solid #a98649;border-radius:3px;color:inherit;font:600 1rem 'Source Sans 3',system-ui,sans-serif;cursor:pointer}
.fc-zoom figure{margin:0;padding:0 10px 12px;text-align:center}
.fc-zoom img{display:block;margin:0 auto;max-width:100%;max-height:calc(100dvh - 150px);object-fit:contain}
.fc-zoom figcaption{margin-top:8px;font-size:1rem;line-height:1.4}
