/* Calls to action, loaded last on every page (docs/cta-plan.md).
   .end-tags: two kraft shipping tags on a wool string. Primary = Get your store measured (ink), secondary = Open the box (kraft). */
.end-tags{position:relative;margin:clamp(2.4rem,5vw,4rem) auto;max-width:min(860px,100%);padding:2.6rem 0 0;font-family:"SuisseMono","Courier New",monospace;color:#1d1a16}
.end-tags .et-k{position:absolute;left:0;top:0;margin:0;font:600 10.5px/1 "SuisseMono","Courier New",monospace;letter-spacing:.2em;text-transform:uppercase;color:#b4291d}
.end-tags .et-string{position:absolute;left:-2%;right:-2%;top:1.35rem;width:104%;height:34px;overflow:visible;pointer-events:none}
.end-tags .et-string path{fill:none;stroke:#c74335;stroke-width:2;stroke-linecap:round}
.end-tags .et-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,3vw,2.4rem)}
.et-tag{position:relative;display:grid;align-content:start;gap:.45rem;min-height:9.5rem;padding:1.35rem 1.4rem 1.25rem 3rem;text-decoration:none!important;color:#1d1a16;background:linear-gradient(170deg,#dcc196,#cfae7c);clip-path:polygon(1.6rem 0,100% 0,100% 100%,1.6rem 100%,0 calc(100% - 1.6rem),0 1.6rem);filter:drop-shadow(0 10px 12px rgba(60,40,20,.22));transition:transform .25s cubic-bezier(.3,1.5,.5,1);transform-origin:50% -1.2rem}
.et-tag:nth-child(1){transform:rotate(-1.4deg)}.et-tag:nth-child(2){transform:rotate(1.2deg)}
.et-tag:hover,.et-tag:focus-visible{transform:rotate(0) translateY(3px)}
.et-tag .et-eye{position:absolute;left:1.05rem;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:#f4f1e6;box-shadow:0 0 0 3px #a98a5c,inset 0 1px 2px rgba(0,0,0,.3)}
.et-tag small{font:600 9.5px/1 "SuisseMono","Courier New",monospace;letter-spacing:.2em;text-transform:uppercase;opacity:.75}
.et-tag b{font:700 clamp(1.35rem,1rem + 1vw,2rem)/1.02 "Inter Tight","Helvetica Neue",Arial,sans-serif;letter-spacing:-.03em}
.et-tag span{font:400 clamp(14px,.85rem + .2vw,17px)/1.35 "EB Garamond",Georgia,serif;max-width:30ch}
.et-tag em{font:600 10px/1 "SuisseMono","Courier New",monospace;letter-spacing:.18em;text-transform:uppercase;font-style:normal;margin-top:.35rem}
.et-tag.et-measure{background:linear-gradient(170deg,#24201b,#16130f);color:#f4f1e6}
.et-tag.et-measure .et-eye{box-shadow:0 0 0 3px #c9a35a,inset 0 1px 2px rgba(0,0,0,.4)}
.et-tag.et-measure em{color:#f0b3a8}
.et-tag.et-box em{color:#8f2b21}
@media(max-width:700px){.end-tags .et-row{grid-template-columns:1fr}.end-tags .et-string{display:none}.et-tag{min-height:0}}
/* homepage panel: a compact pair under the intro, sized to the panel */
.panel .end-tags{margin:1.6rem 0 1.2rem;padding-top:2.2rem}
.panel .et-tag{min-height:7.6rem;padding:1.1rem 1.1rem 1rem 2.6rem}
.panel .et-tag b{font-size:clamp(1.15rem,.9rem + .6vw,1.55rem)}
.panel .et-tag span{font-size:14px}
/* footer subscribe status line (all pages) */
.updates-form+.sub-msg{margin:.4rem 0 0;font:500 10px/1.35 "SuisseMono","Courier New",monospace;letter-spacing:.06em;text-transform:uppercase;color:inherit;opacity:.85}
.updates-form+.sub-msg[data-k=err]{color:#b4291d;opacity:1}
.updates-form input[aria-invalid=true]{box-shadow:inset 0 -2px 0 #b4291d}
.et-wrap{padding:0 clamp(16px,5vw,64px)}
body.board-mani .et-wrap .end-tags{max-width:min(760px,100%)}
/* homepage on phones: the tags sit on their own paper above the wall collage */
@media(max-width:700px){.panel .end-tags{position:relative;z-index:30;background:#f4f1e6;padding:2.2rem .8rem 1rem;margin-left:-.8rem;margin-right:-.8rem;box-shadow:0 10px 18px -14px rgba(60,40,20,.45)}.panel .end-tags .et-k{left:.8rem;top:.9rem}}
@media(max-width:700px){.panel .end-tags{width:auto!important;max-width:none!important;z-index:80}.panel .end-tags .et-row{grid-template-columns:1fr}.panel .et-tag{min-height:0}}
.panel .end-tags{align-self:stretch;width:auto!important;max-width:none!important}
.panel .end-tags,.panel .end-tags *{text-align:left}.panel .et-tag{justify-items:start}
@media(max-width:700px){#panel.panel{z-index:200!important}}
/* homepage: a kraft luggage tag tied to the centre box with red string, swaying. It is the parcel's own label: open the box */
.panel .box-tag{position:relative;display:block;width:max-content;margin:clamp(-6.5rem,-6vw,-3.4rem) 0 clamp(1.2rem,2.5vw,2rem) calc(50% + clamp(2.5rem,5vw,5.5rem));text-decoration:none;color:var(--ink,#1d1a16);transform-origin:0 0;animation:bt-sway 4.8s ease-in-out infinite;z-index:3}
.box-tag .bt-string{position:absolute;left:clamp(-5.2rem,-6vw,-3.2rem);top:-1.6rem;width:clamp(3.6rem,6vw,5.6rem);height:3rem;overflow:visible;fill:none;stroke:#c74335;stroke-width:2;stroke-linecap:round}
.box-tag .bt-card{position:relative;display:grid;gap:2px;padding:.7rem 1rem .75rem 2rem;background:linear-gradient(170deg,#dcc192,#cfae7a);clip-path:polygon(14px 0,100% 0,100% 100%,14px 100%,0 50%);box-shadow:inset 0 -2px 0 rgba(0,0,0,.08);filter:drop-shadow(2px 6px 6px rgba(60,40,20,.28));transition:transform .25s cubic-bezier(.3,1.5,.5,1)}
.box-tag .bt-card i{position:absolute;left:12px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#f4f1e6;box-shadow:0 0 0 2px #a07f52}
.box-tag small{font:600 9px/1 "SuisseMono","Courier New",monospace;letter-spacing:.16em;text-transform:uppercase;color:#8b0000}
.box-tag b{font:700 clamp(1.15rem,1.4vw,1.6rem)/1 var(--sans,"Inter Tight",sans-serif);letter-spacing:-.03em}
.box-tag em{font:italic 400 clamp(.9rem,.95vw,1.1rem)/1.2 "EB Garamond",Georgia,serif;color:#3b2a10}
.box-tag:hover .bt-card,.box-tag:focus-visible .bt-card{transform:rotate(-3deg) translateY(2px)}
.box-tag:focus-visible{outline:2px solid #2B6CB0;outline-offset:4px}
@keyframes bt-sway{0%,100%{transform:rotate(4deg)}50%{transform:rotate(-1.5deg)}}
@media(max-width:700px){.panel .box-tag{margin:-2.4rem auto 1.2rem;margin-left:auto;margin-right:12%}}
/* the box tag is the one thing in the centre you can act on: a red priority tag (stamp red, cream type, kraft-reinforced eyelet), not kraft on kraft */
.box-tag .bt-card{background:linear-gradient(170deg,#c2453a,#a8322a)!important;box-shadow:inset 0 -2px 0 rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.12)!important;filter:drop-shadow(2px 7px 7px rgba(80,20,10,.32))!important}
.box-tag small{color:#f3dcb2!important;opacity:.9}
.box-tag b{color:#fbf3e4!important}
.box-tag em{color:#f6e6cf!important}
.box-tag .bt-card i{background:#a8322a!important;box-shadow:0 0 0 2.5px #d9bd8c,0 0 0 3.5px rgba(0,0,0,.15)!important}
.box-tag .bt-string{stroke:#9e2a20!important;stroke-width:2.4!important}
.box-tag:hover .bt-card{background:linear-gradient(170deg,#1f1b15,#2c2620)!important}
/* phones: the centre panel is a sheet of paper laid over the wall, so photos and string pass under the text and footer, not through them */
@media(max-width:700px){html body .stage .canvas .panel,html body .canvas section.panel#panel{background:#f4f1e6!important;padding-bottom:2.2rem!important;box-shadow:0 0 0 14px #f4f1e6,0 18px 30px -18px rgba(60,40,20,.35)!important;border-radius:2px}}
/* essay packing-list board: a small postage stamp, the parcel's return address to the lab */
.ctn-board .pstamp-sm{position:relative;align-self:flex-end;display:grid;gap:3px;padding:.65rem .8rem .7rem;background:#b93b2f;color:#fbf3e4;text-decoration:none;transform:rotate(3deg);border:5px dotted #f5f2ea;box-shadow:0 0 0 1px rgba(185,59,47,.25),2px 5px 8px -3px rgba(60,20,10,.4);transition:transform .2s cubic-bezier(.3,1.5,.5,1)}
.ctn-board .pstamp-sm small{font:600 8px/1 "SuisseMono","Courier New",monospace;letter-spacing:.16em;text-transform:uppercase;opacity:.85}
.ctn-board .pstamp-sm b{font:700 1.05rem/1.05 "Inter Tight",var(--sans,sans-serif);letter-spacing:-.02em;max-width:8.5rem}
.ctn-board .pstamp-sm i{position:absolute;right:.45rem;bottom:.3rem;font:600 8px/1 "SuisseMono",monospace;opacity:.6;font-style:normal}
.ctn-board .pstamp-sm:hover{transform:rotate(0) translateY(-2px)}
/* manifesto: a typed postscript under the letter */
html body.board-mani .letter .ps{margin:2.4rem 0 0!important;font:400 13.5px/1.6 "SuisseMono","Courier New",monospace!important;letter-spacing:.02em;color:#2a2723;max-width:70%}
html body.board-mani .letter .ps span{font-weight:700}
html body.board-mani .letter .ps a{color:#b93b2f;text-decoration:underline;text-underline-offset:3px;font-weight:700}
@media(max-width:600px){html body.board-mani .letter .ps{max-width:62%;font-size:12.5px!important}}
/* retail-intelligence case study: from shelf photo to decision, five paper objects pinned on kraft and joined by red wool */
.sp-board{position:relative;margin:2.4rem 0 2.6rem;padding:2.6rem clamp(1rem,2.4vw,2rem) 1.6rem;background:repeating-linear-gradient(90deg,rgba(90,60,20,.05) 0 2px,transparent 2px 11px),linear-gradient(170deg,#d8b98a,#c9a46e 60%,#bd955c);box-shadow:inset 0 0 0 1px rgba(80,55,20,.25),0 18px 30px -20px rgba(60,40,20,.55);border-radius:2px}
.sp-string{position:absolute;left:3%;right:3%;top:2.3rem;width:94%;height:40px;fill:none;stroke:#c74335;stroke-width:2.2;overflow:visible;pointer-events:none;z-index:1}
.sp-row{position:relative;z-index:2;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(.6rem,1.4vw,1.4rem);align-items:start}
.sp-o{position:relative;display:flex;flex-direction:column;align-items:center;transform:rotate(var(--r,0deg));padding-top:.4rem}
.sp-pin{position:absolute;top:-1.2rem;left:50%;width:22px;height:26px;margin-left:-11px;z-index:4;filter:drop-shadow(1px 3px 2px rgba(40,20,10,.35))}
.sp-n{position:absolute;top:.2rem;left:-.3rem;z-index:5;background:#e6ccab;color:#3b2a10;font:700 10px/1 "SuisseMono","Courier New",monospace;letter-spacing:.08em;padding:.25rem .4rem .22rem .6rem;clip-path:polygon(6px 0,100% 0,100% 100%,6px 100%,0 50%);box-shadow:0 2px 3px -2px rgba(0,0,0,.4)}
.sp-cap{margin-top:.75rem;text-align:center;font:600 10px/1.3 "SuisseMono","Courier New",monospace;letter-spacing:.1em;text-transform:uppercase;color:#2a1f12;background:rgba(251,248,239,.85);padding:.3rem .45rem;transform:rotate(calc(var(--r,0deg) * -1))}
.sp-o>*:not(.sp-pin):not(.sp-n):not(.sp-cap){box-shadow:0 1px 1px rgba(40,30,15,.12),0 10px 16px -10px rgba(40,30,15,.55)}
/* 01 polaroid */
.sp-polaroid{display:block;width:100%;background:#fbf8ef;padding:7% 7% 22%;position:relative}
.sp-polaroid .sp-shelf{display:block;width:100%;height:auto;filter:saturate(.75) contrast(.95) sepia(.12)}
.sp-polaroid em{position:absolute;left:0;right:0;bottom:5%;text-align:center;font:400 clamp(.85rem,1vw,1.05rem)/1 "Cedarville",cursive;color:#2f3b8f}
/* 02/03 planogram printout */
.sp-plan{position:relative;display:grid;gap:5px;width:100%;aspect-ratio:1/1.08;background:#fbf8ef url(/assets/images/letter-paper.webp) center/cover;padding:9% 8%;box-sizing:border-box}
.sp-plan b{font:700 9px/1 "SuisseMono","Courier New",monospace;letter-spacing:.08em;text-transform:uppercase;color:#1d1a16;border-bottom:1px solid #1d1a16;padding-bottom:4px}
.sp-plan .r{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;padding-bottom:4px;border-bottom:2px solid #8a7a5c;font-style:normal}
.sp-plan .r span{height:clamp(14px,1.6vw,24px);border:1px solid #6b5d45;background:repeating-linear-gradient(45deg,transparent 0 3px,rgba(107,93,69,.18) 3px 4px)}
.sp-plan .r span.gap{border:1.5px dashed #b93b2f;background:none}
.sp-loupe{position:absolute;left:52%;top:46%;width:38%;aspect-ratio:1;border-radius:50%;border:4px solid #a8873c;box-shadow:inset 0 0 0 2px rgba(255,255,255,.5),0 4px 6px rgba(40,20,10,.35);background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.45),rgba(255,255,255,.05) 60%)}
.sp-loupe::after{content:"";position:absolute;right:-38%;bottom:-30%;width:42%;height:12%;background:#5a3b1e;border-radius:3px;transform:rotate(45deg)}
.sp-x{position:absolute;left:55%;top:50%;font:700 clamp(1.6rem,2.4vw,2.6rem)/1 "SuisseMono","Courier New",monospace;color:#b93b2f;transform:translate(-50%,-50%) rotate(-8deg)}
.sp-stamp{position:absolute;left:8%;bottom:8%;border:2.5px solid #8b0000;color:#8b0000;padding:.2rem .4rem .15rem;font:800 9px/1 "SuisseMono","Courier New",monospace;letter-spacing:.1em;text-transform:uppercase;transform:rotate(-7deg);mix-blend-mode:multiply;opacity:.9}
/* 04 till receipt */
.sp-rcpt{position:relative;display:grid;gap:5px;width:88%;padding:12% 10% 14%;background:#fbf8ef;font:400 9.5px/1.25 "SuisseMono","Courier New",monospace;color:#1d1a16;-webkit-mask:linear-gradient(#000,#000) top/100% calc(100% - 6px) no-repeat,conic-gradient(from 135deg at 50% 100%,#000 90deg,#0000 0) bottom/10px 6px repeat-x;mask:linear-gradient(#000,#000) top/100% calc(100% - 6px) no-repeat,conic-gradient(from 135deg at 50% 100%,#000 90deg,#0000 0) bottom/10px 6px repeat-x}
.sp-rcpt b{font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px dashed #6b5d45;padding-bottom:4px;font-size:9px}
.sp-rcpt span{display:flex;justify-content:space-between}
.sp-rcpt span i{font-style:normal}.sp-rcpt span i+i{font-weight:700}
.sp-rcpt em{font:italic 400 .8rem/1 "EB Garamond",Georgia,serif;color:#8b0000;text-align:right}
.sp-staple{position:absolute;top:5px;left:50%;width:22px;height:4px;margin-left:-11px;border:1.5px solid #9aa0a6;border-bottom:0;border-radius:1px}
/* 05 memo card */
.sp-memo{position:relative;display:block;width:100%;aspect-ratio:1.2/1;padding:12% 10%;box-sizing:border-box;background:#fbf8ef;background-image:linear-gradient(#fbf8ef 22%,transparent 22%),repeating-linear-gradient(#fbf8ef 0 15px,#cfdbe8 15px 16px);border-top:3px solid #c74335;font:400 clamp(.75rem,.95vw,1rem)/1.35 "SuisseMono","Courier New",monospace;color:#1d1a16}
.sp-memo small{display:block;margin-bottom:.4rem;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:#6b5d45}
.sp-dec{position:absolute;right:8%;bottom:10%;border:3px solid #8b0000;color:#8b0000;padding:.25rem .5rem .2rem;font:800 11px/1 "SuisseMono","Courier New",monospace;letter-spacing:.14em;text-transform:uppercase;transform:rotate(-10deg);mix-blend-mode:multiply}
.sp-board figcaption{margin-top:1.4rem;text-align:center;font:600 10px/1.4 "SuisseMono","Courier New",monospace;letter-spacing:.14em;text-transform:uppercase;color:#3b2a10}
@media(max-width:760px){.sp-board{padding:2rem 1.2rem 1.4rem}.sp-string{left:50%;top:2rem;bottom:3.4rem;width:40px;height:auto;margin-left:-20px}.sp-row{grid-template-columns:1fr;gap:2.4rem;max-width:15rem;margin:0 auto}}
.sp-string-v{display:none}
@media(max-width:760px){.sp-string{display:none}.sp-string-v{display:block;position:absolute;left:50%;top:1.6rem;bottom:3.6rem;width:40px;height:calc(100% - 5.2rem);margin-left:-20px;fill:none;stroke:#c74335;stroke-width:2.2;z-index:1;pointer-events:none}}
.sp-board{padding-top:3rem;padding-bottom:1.8rem}
.sp-row{row-gap:1rem}
.sp-plan{padding:13% 8% 9%;gap:6px}
.sp-plan b{font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:clip}
.sp-o:nth-child(3) .sp-plan{padding-bottom:24%}
.sp-stamp{bottom:5%;left:50%;transform:translateX(-50%) rotate(-6deg);white-space:nowrap}
.sp-memo{aspect-ratio:auto;padding:12% 10% 34%;font-size:clamp(.72rem,.85vw,.95rem)}
.sp-dec{bottom:7%;right:7%}
.sp-rcpt{gap:6px;padding:12% 10% 16%}
.sp-rcpt span i:first-child{padding-right:.4rem}
.sp-rcpt em{margin-top:.2rem}
.sp-cap{min-height:2.6em;display:flex;align-items:center;justify-content:center}

/* ===== blog tables as documents (17 Oct): claim tables = evidence check form; numbered tables = work-order ticket ===== */
@font-face{font-family:"MC Hand";src:url(/assets/fonts/cedarville-cursive.ttf) format("truetype");font-display:swap}
.tx-doc .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
html body.board-art.board-art .prose .tx-table.tx-doc{position:relative;overflow:visible!important;border:0!important;border-radius:1px!important;padding:0 0 .2rem!important;margin:2.4rem 0 2.6rem!important;
 background:#fbf8ef url(/assets/images/letter-paper.webp) center/cover!important;box-shadow:0 1px 1px rgba(40,30,15,.08),0 18px 30px -20px rgba(40,30,15,.45)!important}
html body.board-art.board-art .prose .tx-doc .tx-form{display:flex;align-items:baseline;gap:.9rem;padding:.75rem 1.2rem .65rem;background:#1f1b15;color:#f4f1e6}
.tx-doc .tx-form b{font:700 11px/1 "SuisseMono","Courier New",monospace;letter-spacing:.18em;text-transform:uppercase;color:#f3d9a8}
.tx-doc .tx-form span{flex:1;font:400 15px/1.2 "EB Garamond",Georgia,serif;font-style:italic;color:#f4f1e6}
.tx-doc .tx-form i{font:600 10px/1 "SuisseMono","Courier New",monospace;font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:#cbbf9f}
/* header row: two columns that never collide */
html body.board-art.board-art .prose .tx-doc .tx-head{display:grid!important;grid-template-columns:var(--tx-c,5.2rem) 1fr!important;gap:0!important;padding:.55rem 1.2rem .5rem!important;background:none!important;border:0!important;border-bottom:1.5px solid #1f1b15!important;font:600 10px/1 "SuisseMono","Courier New",monospace!important;letter-spacing:.16em!important;color:#5c5446!important}
html body.board-art.board-art .prose .tx-doc .tx-head>span:first-child{width:auto!important;color:#8b0000!important}
html body.board-art.board-art .prose .tx-doc .tx-row{display:grid!important;grid-template-columns:var(--tx-c,5.2rem) 1fr!important;column-gap:0;padding:1rem 1.4rem 1rem 1.2rem!important;border-bottom:1px solid rgba(70,60,40,.16)!important;transition:none}
html body.board-art.board-art .prose .tx-doc .tx-row:hover{background:none!important}

/* --- evidence check form --- */
.tx-claim{--tx-c:3.6rem}
.tx-claim .tx-head>span:first-child{font-size:0!important}
.tx-claim .tx-head>span:first-child::after{content:"Seen";font-size:10px}
.tx-claim .tx-box{width:26px;height:26px;margin-top:.1rem;border:1.5px solid #3b342a;border-radius:2px;position:relative;background:rgba(255,255,255,.4)}
.tx-claim .tx-box svg{position:absolute;inset:-6px -8px -2px -2px;width:38px;height:34px;fill:none;stroke:#b4291d;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;transform:rotate(-4deg)}
.tx-claim .tx-no .tx-box svg{stroke:#6b6254;stroke-width:2.4;inset:1px;width:22px;height:22px;transform:none}
html body.board-art.board-art .prose .tx-claim .tx-no :is(h3,p){color:#7a7163!important}
.tx-claim .tx-stamp{display:inline-block;margin:0 0 .35rem .7rem;vertical-align:.2em;padding:.25rem .5rem .2rem;border:2px solid #b4291d;color:#b4291d;font:700 10px/1 "SuisseMono","Courier New",monospace;letter-spacing:.14em;text-transform:uppercase;transform:rotate(-3deg);opacity:.85;mix-blend-mode:multiply}
html body.board-art.board-art .prose .tx-claim .tx-no h3{display:inline-block}
.tx-claim .tx-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.2rem .6rem;font:600 10px/1 "SuisseMono","Courier New",monospace;letter-spacing:.14em;text-transform:uppercase;color:#5c5446}
.tx-claim .tx-foot b{padding:.35rem .6rem .3rem;border:2px solid #8b0000;color:#8b0000;transform:rotate(-4deg);font-weight:700}

/* --- work-order ticket: perforated stub with big numbers, typed lines, pencilled margin notes --- */
.tx-ticket{--tx-c:5.4rem}
.tx-ticket::before{content:"";position:absolute;left:5.4rem;top:2.6rem;bottom:.4rem;border-left:2px dotted rgba(60,50,35,.45)}
html body.board-art.board-art .prose .tx-ticket .tx-row>.tx-code{font:700 clamp(1.6rem,2.2vw,2.4rem)/1 "SuisseMono","Courier New",monospace!important;letter-spacing:-.02em!important;color:#b4291d!important;padding-top:.1rem}
html body.board-art.board-art .prose .tx-ticket .tx-row>div{padding-left:1.2rem}
html body.board-art.board-art .prose .tx-ticket .tx-row h3{font:700 1.02rem/1.3 "SuisseMono","Courier New",monospace!important;letter-spacing:.02em!important;text-transform:uppercase}
html body.board-art.board-art .prose .tx-doc .tx-row .tx-eg{position:relative;margin:.5rem 0 0 1.4rem!important;font:400 clamp(1.05rem,1.15vw,1.35rem)/1.35 "MC Hand",cursive!important;font-style:normal!important;color:#2f3b8f!important;transform:rotate(-1deg)}
.tx-doc .tx-eg::before{content:"";position:absolute;left:-1.5rem;top:.15rem;width:1.1rem;height:.8rem;border-left:1.5px solid #2f3b8f;border-bottom:1.5px solid #2f3b8f;border-radius:0 0 0 8px}
html body.board-art.board-art .prose .tx-doc .tx-eg>span{font:400 inherit!important;font-family:"MC Hand",cursive!important;text-transform:none!important;letter-spacing:0!important;color:#2f3b8f!important;margin-right:.35rem;text-decoration:underline;text-decoration-thickness:1px}
@media(max-width:700px){.tx-ticket{--tx-c:3.4rem}.tx-ticket::before{left:3.4rem}.tx-claim{--tx-c:2.8rem}
 html body.board-art.board-art .prose .tx-ticket .tx-row>div{padding-left:.8rem}
 .tx-doc .tx-form{flex-wrap:wrap;gap:.3rem .8rem}.tx-doc .tx-form span{flex-basis:100%;order:3}
 .tx-claim .tx-stamp{display:table;margin:.2rem 0 .4rem}}
html body.board-art.board-art .prose .tx-doc .tx-eg>span{font-size:1em!important;font-weight:400!important}
html body.board-art.board-art .prose .tx-doc .tx-head>span:first-child{padding-right:.6rem;white-space:nowrap}
@media(max-width:700px){.tx-ticket{--tx-c:3.9rem}.tx-ticket::before{left:3.9rem}.tx-claim{--tx-c:3.3rem}}
/* phones and small tablets: compact nav pill + paper index card (built in js/updates.js). Desktop unchanged */
.mnav,.mn-card{display:none}
@media(max-width:760px){
 html body .nav:not(.bk-nav){display:none!important}
 .mnav{display:flex;align-items:center;gap:.6rem;width:min(100%,560px);margin:0 auto;padding:4px 4px 4px 12px;box-sizing:border-box;background:#f3f0e4;border:1px solid rgba(70,50,20,.22);border-radius:999px;box-shadow:0 6px 16px -12px rgba(60,40,20,.45);position:relative;z-index:60;pointer-events:auto}
 .mnav .mn-home{display:flex;align-items:center;min-height:44px;padding-right:.2rem}
 .mnav .mn-home img{width:30px;height:auto;display:block}
 .mnav .mn-here{flex:1;min-width:0;text-align:center;font:500 11px/1 "SuisseMono","Courier New",monospace;letter-spacing:.14em;text-transform:uppercase;color:#4a463c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .mnav .mn-key{min-height:40px;min-width:76px;padding:0 1rem;border:0;border-radius:999px;background:#1d1a16;color:#f4f1e6;font:600 11px/1 "SuisseMono","Courier New",monospace;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent}
 .mn-card{display:block;position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));z-index:400;max-height:calc(100dvh - 90px - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;padding:1rem 1.1rem calc(.9rem + env(safe-area-inset-bottom));background:#fbf8ef;border:1px solid rgba(70,50,20,.2);box-shadow:0 22px 44px -20px rgba(60,40,20,.55),0 2px 4px rgba(60,40,20,.08);transform:translateY(-8px) rotate(-.6deg);opacity:0;transition:opacity .2s,transform .28s cubic-bezier(.3,1.4,.5,1);background-image:repeating-linear-gradient(transparent 0 43px,rgba(43,108,176,.12) 43px 44px)}
 .mn-card[hidden]{display:none}
 .mn-card.in{opacity:1;transform:rotate(-.6deg)}
 .mn-card::before{content:"";position:absolute;left:1.6rem;top:0;bottom:0;width:1px;background:rgba(199,67,53,.35)}
 .mn-k{margin:0 0 .4rem 1.1rem;font:600 10px/1 "SuisseMono","Courier New",monospace;letter-spacing:.18em;text-transform:uppercase;color:#8b0000}
 .mn-list{list-style:none;margin:0;padding:0}
 .mn-row{display:flex;align-items:center}
 .mn-row>a{flex:1;display:flex;align-items:center;gap:.9rem;min-height:48px;padding-left:1.1rem;font:700 1.35rem/1 "Inter Tight",var(--sans,sans-serif);letter-spacing:-.02em;color:#1d1a16;text-decoration:none}
 .mn-n{font:500 10px/1 "SuisseMono","Courier New",monospace;letter-spacing:.1em;color:#9a8e78;width:1.4rem}
 .mn-list li.on .mn-row>a{color:#1d1a16}
 .mn-list li.on .mn-n{color:transparent;position:relative}
 .mn-list li.on .mn-n::after{content:"";position:absolute;left:3px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:#c74335;box-shadow:0 1px 2px rgba(80,20,10,.35)}
 .mn-more{width:44px;height:44px;border:1px solid rgba(70,50,20,.25);border-radius:50%;background:transparent;font:400 22px/1 "SuisseMono",monospace;color:#1d1a16;cursor:pointer}
 .mn-sub{padding:.1rem 0 .5rem 3.4rem;display:grid}
 .mn-sub[hidden]{display:none}
 .mn-sub a{min-height:44px;display:flex;align-items:center;font:italic 400 1.15rem/1 "EB Garamond",Georgia,serif;color:#3b2a10;text-decoration:none}
 .mn-foot{margin:.8rem 0 0 1.1rem;padding-top:.7rem;border-top:1px dashed rgba(70,50,20,.3);display:flex;gap:.5rem;font:600 10.5px/1 "SuisseMono","Courier New",monospace;letter-spacing:.12em;text-transform:uppercase}
 .mn-foot a{color:#1d1a16;text-decoration:none;min-height:32px;display:flex;align-items:center}
 .mn-foot span{color:#9a8e78;display:flex;align-items:center}
 html.mn-open,html.mn-open body{overflow:hidden!important}
 .mn-row>a:focus-visible,.mn-more:focus-visible,.mn-sub a:focus-visible,.mn-key:focus-visible,.mn-foot a:focus-visible{outline:2px solid #2B6CB0;outline-offset:2px}
}
/* phone menu card, 17 Oct: capped to the visible viewport (JS sets max-height from visualViewport, so Safari's toolbar never hides Contact); the index scrolls inside, the X · LinkedIn · GitHub foot stays pinned at the bottom */
@media(max-width:759px){
 .mn-card{display:flex;flex-direction:column;overflow:hidden!important;max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px - env(safe-area-inset-bottom));padding-bottom:calc(.7rem + env(safe-area-inset-bottom))!important}
 .mn-card[hidden]{display:none}
 .mn-card .mn-k{flex:none}
 .mn-card .mn-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 .mn-card .mn-foot{flex:none;background:#fbf8ef;position:relative;z-index:1}
}
/* footer on phones: one paper colophon card, left-aligned. Row 1 mark + who we are; the place line with the flag inline; Get updates full width; X · LinkedIn · GitHub as three equal keys; legal small at the foot */
@media(max-width:760px){
 html body footer.foot{display:grid!important;grid-template-columns:44px minmax(0,1fr)!important;column-gap:.8rem!important;row-gap:.85rem!important;align-items:center!important;justify-items:stretch!important;text-align:left!important;width:min(560px,calc(100vw - 28px))!important;max-width:none!important;min-width:0!important;margin:2.4rem auto 1.6rem!important;padding:1.3rem 1.2rem 1.1rem!important;box-sizing:border-box!important;background:#fbf8ef!important;border:1px solid rgba(70,50,20,.18)!important;box-shadow:0 14px 28px -18px rgba(60,40,20,.45)!important;position:relative!important;transform:rotate(-.4deg)}
 html body footer.foot .fc{display:contents!important}
 html body footer.foot .fb{order:1;grid-column:1!important;display:flex!important;align-items:center;margin:0!important}
 html body footer.foot .fb img{width:40px!important;height:auto!important;margin:0!important}
 html body footer.foot .footer-intro{order:2;grid-column:2!important;margin:0!important;font:600 11px/1.45 "SuisseMono","Courier New",monospace!important;letter-spacing:.1em!important;text-transform:uppercase;color:#1d1a16!important;text-align:left!important}
 html body footer.foot .footer-intro br,html body footer.foot .footer-location br{display:none}
 html body footer.foot .footer-intro span+br+span::before{content:" "}
 html body footer.foot .footer-location{order:3;grid-column:1/-1!important;margin:0!important;padding-top:.75rem;border-top:1px dashed rgba(70,50,20,.3);font:400 10.5px/1.5 "SuisseMono","Courier New",monospace!important;letter-spacing:.1em!important;text-transform:uppercase;color:#4a453d!important;text-align:left!important}
 html body footer.foot .fg{display:inline-block!important;width:18px!important;height:11px!important;margin:0 .3em 0 .35em!important;vertical-align:-1px!important}
 html body footer.foot .updates-form{order:4;grid-column:1/-1!important;width:100%!important;margin:0!important}
 html body footer.foot .updates-field{width:100%!important;height:48px!important;box-sizing:border-box}
 html body footer.foot .updates-field input{flex:1;min-width:0;font-size:14px!important}
 html body footer.foot .updates-field button{width:52px!important;min-height:44px}
 html body footer.foot .xl{order:5;grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0!important;justify-content:stretch!important}
 html body footer.foot .xl span{display:none!important}
 html body footer.foot .xl a{display:flex!important;align-items:center;justify-content:center;min-height:44px;border:1px solid rgba(70,50,20,.25);background:#f4f1e6;font:600 10.5px/1 "SuisseMono","Courier New",monospace!important;letter-spacing:.12em;text-transform:uppercase;color:#1d1a16!important;text-decoration:none!important}
 html body footer.foot .fc.m>p{order:6;grid-column:1/-1!important;margin:0!important;text-align:left!important;font:400 9.5px/1.4 "SuisseMono","Courier New",monospace!important;letter-spacing:.1em!important;text-transform:uppercase;color:#7c6f59!important}
 html body footer.foot .fc.m>p:not(.dm){padding-top:.75rem;border-top:1px dashed rgba(70,50,20,.3);color:#4a453d!important}
 html body footer.foot .fc.m>p.dm{margin-top:-.55rem!important}
 html body footer.foot .fc.m>p.dm a{display:inline-flex;align-items:center;min-height:32px;color:inherit!important}
 html body footer.foot .foot-pin{position:absolute!important;left:50%!important;top:-14px!important;transform:translateX(-50%) rotate(8deg)!important}
}
@media(max-width:760px){html body footer.foot>.fc>*{min-width:0;max-width:100%;white-space:normal!important;box-sizing:border-box}html body footer.foot .footer-location{white-space:normal!important}}
@media(max-width:760px){html body footer.foot .footer-intro span{white-space:normal!important}}

/* homepage: repeat the child rules with #panel specificity (v10.css pins grid areas with #panel) */
@media(max-width:760px){
 html body.is-home #panel footer.foot .fc{display:contents!important}
 html body.is-home #panel footer.foot .fb{order:1;grid-column:1!important;display:flex!important;align-items:center;margin:0!important}
 html body.is-home #panel footer.foot .fb img{width:40px!important;height:auto!important;margin:0!important}
 html body.is-home #panel footer.foot .footer-intro{order:2;grid-column:2!important;margin:0!important;font:600 11px/1.45 "SuisseMono","Courier New",monospace!important;letter-spacing:.1em!important;text-transform:uppercase;color:#1d1a16!important;text-align:left!important}
 html body.is-home #panel footer.foot .footer-intro br, html body.is-home #panel footer.foot .footer-location br{display:none}
 html body.is-home #panel footer.foot .footer-intro span+br+span::before{content:" "}
 html body.is-home #panel footer.foot .footer-location{order:3;grid-column:1/-1!important;margin:0!important;padding-top:.75rem;border-top:1px dashed rgba(70,50,20,.3);font:400 10.5px/1.5 "SuisseMono","Courier New",monospace!important;letter-spacing:.1em!important;text-transform:uppercase;color:#4a453d!important;text-align:left!important}
 html body.is-home #panel footer.foot .fg{display:inline-block!important;width:18px!important;height:11px!important;margin:0 .3em 0 .35em!important;vertical-align:-1px!important}
 html body.is-home #panel footer.foot .updates-form{order:4;grid-column:1/-1!important;width:100%!important;margin:0!important}
 html body.is-home #panel footer.foot .updates-field{width:100%!important;height:48px!important;box-sizing:border-box}
 html body.is-home #panel footer.foot .updates-field input{flex:1;min-width:0;font-size:14px!important}
 html body.is-home #panel footer.foot .updates-field button{width:52px!important;min-height:44px}
 html body.is-home #panel footer.foot .xl{order:5;grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0!important;justify-content:stretch!important}
 html body.is-home #panel footer.foot .xl span{display:none!important}
 html body.is-home #panel footer.foot .xl a{display:flex!important;align-items:center;justify-content:center;min-height:44px;border:1px solid rgba(70,50,20,.25);background:#f4f1e6;font:600 10.5px/1 "SuisseMono","Courier New",monospace!important;letter-spacing:.12em;text-transform:uppercase;color:#1d1a16!important;text-decoration:none!important}
 html body.is-home #panel footer.foot .fc.m>p{order:6;grid-column:1/-1!important;margin:0!important;text-align:left!important;font:400 9.5px/1.4 "SuisseMono","Courier New",monospace!important;letter-spacing:.1em!important;text-transform:uppercase;color:#7c6f59!important}
 html body.is-home #panel footer.foot .fc.m>p:not(.dm){padding-top:.75rem;border-top:1px dashed rgba(70,50,20,.3);color:#4a453d!important}
 html body.is-home #panel footer.foot .fc.m>p.dm{margin-top:-.55rem!important}
 html body.is-home #panel footer.foot .fc.m>p.dm a{display:inline-flex;align-items:center;min-height:32px;color:inherit!important}
 html body.is-home #panel footer.foot .foot-pin{position:absolute!important;left:50%!important;top:-14px!important;transform:translateX(-50%) rotate(8deg)!important}
 html body.is-home #panel footer.foot>.fc{display:contents!important;grid-area:auto!important}
 html body.is-home #panel footer.foot *{grid-area:auto}
}
/* homepage phone footer: same colophon card inside the scaled board panel (#panel is drawn at 0.55, so sizes are 1.8x) */
@media(max-width:760px){
 html body footer.foot,html body.is-home #panel footer.foot{grid-template-areas:none!important}
 html body.is-home #panel footer.foot{grid-template-columns:76px minmax(0,1fr)!important;column-gap:1.4rem!important;row-gap:1.5rem!important;width:100%!important;max-width:none!important;margin:3rem 0 0!important;padding:2.2rem 2rem 2rem!important;transform:none!important;justify-items:stretch!important;text-align:left!important}
 html body.is-home #panel footer.foot .fb img{width:68px!important}
 html body.is-home #panel footer.foot .footer-intro{font-size:20px!important}
 html body.is-home #panel footer.foot .footer-location{font-size:18px!important;padding-top:1.3rem}
 html body.is-home #panel footer.foot .fg{width:30px!important;height:19px!important}
 html body.is-home #panel footer.foot .updates-form{width:100%!important}
 html body.is-home #panel footer.foot .updates-field{height:84px!important;width:100%!important}
 html body.is-home #panel footer.foot .updates-field input{font-size:24px!important}
 html body.is-home #panel footer.foot .updates-field button{width:90px!important}
 html body.is-home #panel footer.foot .xl{gap:.9rem}
 html body.is-home #panel footer.foot .xl a{min-height:80px;font-size:18px!important}
 html body.is-home #panel footer.foot .fc.m>p{font-size:16px!important}
 html body.is-home #panel footer.foot .fc.m>p.dm{margin-top:-1rem!important}
 html body.is-home #panel footer.foot .fc.m>p.dm a{min-height:56px}
}
@media(max-width:760px){html body.is-home #panel footer.foot .fc.m,html body.is-home #panel footer.foot .fc.l,html body.is-home #panel footer.foot .fc.r{display:contents!important;grid-area:auto!important}}
@media(max-width:760px){footer img[src*="singapore-flag"],.foot img[src*="singapore-flag"]{margin:0 .45em 0 .2em!important;vertical-align:-1px}}
