@font-face{font-family:Bevan;src:url('/assets/fonts/bevan-latin.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Archivo;src:url('/assets/fonts/archivo-latin.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap}
/* Shared app vocabulary. The existing layout rules still support secondary forms. */
body.ph-app{--green:var(--paint-ink);--muted:var(--ink-2);--line:var(--rule);--panel:var(--paper);--serif:Archivo,system-ui,sans-serif;--sans:Archivo,system-ui,sans-serif;background:var(--wall);color:var(--ink);font:400 16px/1.55 Archivo,system-ui,sans-serif;margin:0}
.ph-app *{box-sizing:border-box}
.ph-app :is(h1,h2,h3,h4){font-family:Archivo,system-ui,sans-serif;font-weight:900;font-stretch:72%;font-style:normal;line-height:1.25;letter-spacing:0;color:var(--ink)}
.ph-app :is(p,small,address,dt,dd,li,label,summary,input,select,textarea,.small-copy,.post-copy,.form-message){font-family:Archivo,system-ui,sans-serif;font-size:16px;line-height:1.55}
.ph-app :is(h1,h2,h3,p){margin-top:0}
.ph-app p{margin-bottom:var(--s3)}
.ph-app :is(small,.small-copy){color:var(--ink-2)}
.ph-app a{color:inherit;text-underline-offset:3px}
.ph-app :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--paint-ink);outline-offset:3px;box-shadow:0 0 0 3px var(--paper)}
.ph-app :is(button,.button){display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:48px;padding:var(--s2) var(--s4);border:2px solid var(--fascia-deep);border-radius:0;background:var(--fascia);color:var(--on-fascia);font:800 16px/1.25 Archivo,system-ui,sans-serif;font-stretch:85%;text-decoration:none;box-shadow:0 4px 0 var(--fascia-deep);cursor:pointer;transition:background-color 120ms}
.ph-app :is(button,.button):hover{background:var(--fascia-deep);color:var(--gilt)}
.ph-app :is(button,.button).secondary{background:var(--paper);color:var(--ink);border-color:var(--ink);box-shadow:none}
.ph-app :is(button,.button).ph-ink{background:var(--ink);color:var(--paper);border-color:var(--ink);box-shadow:none}
.ph-app :is(button,.button) small{font-size:12.8px;color:inherit;text-transform:uppercase;font-weight:800}
.ph-app :is(input,select,textarea){min-width:0;max-width:100%;min-height:48px;border:2px solid var(--ink);border-radius:0;padding:var(--s2) var(--s3);background:var(--paper);color:var(--ink)}
.ph-app :is(.panel,.event-card,.national-ledger,.craic-wallet,.national-blackboard,.join-banner,.index-definition,.index-stats>div){background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:0;padding:var(--s5);box-shadow:none}
.ph-app .panel{margin-bottom:var(--s5)}
.ph-app :is(.eyebrow,.tag,.joined-tag,.interest-tag,.role-label){font:800 12.8px/1.55 Archivo,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;border-radius:0;background:var(--paper);color:var(--ink)}
.ph-wrap,.ph-app .shell{width:100%;max-width:1320px;padding:0 var(--s6);margin:0 auto}
.ph-app .shell{padding-bottom:var(--s7)}
.ph-top{background:var(--ink);color:var(--paper)}
.ph-top .ph-wrap{display:flex;align-items:center;gap:var(--s5);min-height:56px}
.ph-mark{display:inline-flex;align-items:center;min-height:44px;font-size:25px;font-weight:900;font-stretch:125%;text-decoration:none;white-space:nowrap;line-height:1}
.ph-mark b{background:var(--paper);color:var(--ink);padding:0 var(--s1);margin-right:var(--s1)}
.ph-top nav{display:flex;align-items:center;gap:var(--s5);margin-left:auto}
.ph-top nav a{display:inline-flex;align-items:center;min-height:44px;font-weight:700;font-stretch:85%;text-decoration:none}
.ph-top .ph-signin{border:2px solid var(--paper);padding:0 var(--s4)}
.ph-top .account{color:var(--paper);font-size:16px;max-width:20ch}
.ph-top .avatar{font-family:Archivo;background:var(--paper);color:var(--ink)}
.ph-tonight{background:var(--paper);border-bottom:2px solid var(--ink)}
.ph-tonight .ph-wrap{display:flex;align-items:center;gap:var(--s3);min-height:56px;padding-top:var(--s1);padding-bottom:var(--s1)}
.ph-tonight p{margin:0;flex:1;min-width:0;font-weight:600;line-height:1.55}
.ph-tonight-tag{background:var(--fascia);color:var(--on-fascia);font:800 12.8px/1.55 Archivo,system-ui,sans-serif;font-stretch:85%;letter-spacing:.12em;text-transform:uppercase;padding:var(--s1) var(--s2)}
.ph-pin{display:inline-flex;align-items:center;min-height:44px;font-weight:800;white-space:nowrap}
.ph-app .site-trail{display:none}
.ph-front{margin:0 calc(-1 * var(--s6));padding:var(--s4) var(--s6) var(--s5);background:var(--fascia);border-top:16px solid var(--fascia-deep);color:var(--on-fascia)}
.ph-fascia{display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:stretch;gap:var(--s3)}
.ph-console{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s2);background:var(--fascia-deep);color:var(--gilt);border-radius:0 0 22px 22px;font-weight:900;font-size:20px}
.ph-console:before{content:'';width:12px;height:12px;border:2px solid var(--gilt);border-radius:50%}
.ph-board{display:flex;align-items:center;justify-content:center;padding:var(--s4) var(--s7);min-height:132px;background:var(--fascia);box-shadow:inset 0 0 0 3px var(--fascia-deep),inset 0 0 0 7px var(--fascia),inset 0 0 0 8px var(--gilt)}
.ph-app .ph-name,.ph-measure{font-family:Bevan,Georgia,serif;font-weight:400;line-height:1.04;letter-spacing:.04em;text-transform:uppercase;text-align:center;color:var(--gilt);margin:0;max-width:100%;text-shadow:.012em .012em 0 var(--gilt-shade),.024em .024em 0 var(--gilt-shade),.038em .038em 0 var(--fascia-deep),.052em .052em 0 var(--fascia-deep)}
.ph-name-short{font-size:76.29px}.ph-name-medium{font-size:48.83px}.ph-name-long{font-size:31.25px}
.ph-name-line{display:block;white-space:nowrap}.ph-the{display:block;font-size:.4em;letter-spacing:.32em;margin-bottom:.15em}
.ph-measure{position:absolute;left:-9999px;top:0;white-space:nowrap;font-size:100px;visibility:hidden;max-width:none}
.ph-transom{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);border-block:1px solid var(--gilt);padding:var(--s1) 0;margin-top:var(--s2);font:800 12.8px/1.55 Archivo,system-ui,sans-serif;text-transform:uppercase;letter-spacing:.12em;color:var(--gilt)}
.ph-closed-stamp{border:2px solid currentColor;padding:0 var(--s2)}
.ph-windows{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s5);margin-top:var(--s4);align-items:start}
.ph-pane{background:var(--paper);color:var(--ink);border:3px solid var(--fascia-deep);padding:var(--s5);min-width:0}
.ph-label{font:800 12.8px/1.55 Archivo,system-ui,sans-serif!important;font-stretch:85%!important;text-transform:uppercase;letter-spacing:.08em!important}
.ph-app .ph-plate{display:table;background:var(--fascia-deep);color:var(--gilt);padding:var(--s1) var(--s3);margin:calc(-1 * var(--s5)) 0 var(--s3) calc(-1 * var(--s5))}
.ph-ticket{display:grid;grid-template-columns:48px minmax(0,1fr);background:var(--paper);border:2px solid var(--ink);color:var(--ink);transform:rotate(-.8deg);box-shadow:6px 6px 0 var(--fascia-deep);margin:0 6px 6px 0;min-width:0}
.ph-tear{display:flex;align-items:center;justify-content:center;border-right:2px dashed var(--ink-2);background-image:radial-gradient(var(--paint-ink) 1.4px,transparent 1.7px);background-size:8px 8px}
.ph-tear span{writing-mode:vertical-rl;transform:rotate(180deg);background:var(--paper);padding:var(--s2) 0;font-size:20px;font-weight:900;font-stretch:62%;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.ph-ticket-body{padding:var(--s4) var(--s5) var(--s5)}
.ph-ticket h2{margin:0;color:var(--ink)}
.ph-price{color:var(--paint-ink);font-weight:900;font-stretch:62%;font-size:61.04px;line-height:1;margin:var(--s3) 0}
.ph-price>span{display:flex;align-items:end;gap:var(--s1)}
.ph-price i{display:inline-block;width:.5em;height:.7em;background:color-mix(in srgb,var(--paint-ink) 13%,var(--paper));border-bottom:6px solid var(--paint-ink)}
.ph-ticket .button{width:100%;margin-top:var(--s1)}
.ph-find address{font-size:20px;line-height:1.25;font-weight:700;font-style:normal}
.ph-find p{margin-top:var(--s3)}
.ph-find small{display:block}
.ph-find-links{display:flex;flex-wrap:wrap;gap:0 var(--s4);margin-top:var(--s2)}
.ph-find-links a{display:inline-flex;align-items:center;min-height:44px;font-weight:700}
.ph-counts{display:flex;gap:var(--s4);line-height:1.25;flex-wrap:wrap}
.ph-counts b{font-size:25px;font-stretch:75%;margin-right:var(--s1)}
.ph-join-actions{display:flex;flex-direction:column;gap:var(--s2);margin-top:var(--s4)}
.ph-join-actions .button,.ph-join-actions button,.ph-join-actions form{width:100%;margin:0}
.ph-app .ph-tabs{position:sticky;top:0;z-index:5;display:flex;background:var(--paper);border-bottom:2px solid var(--ink);gap:0;margin:0 calc(-1 * var(--s6)) var(--s5);padding:0 var(--s6)}
.ph-app .ph-tabs a{display:flex;align-items:center;justify-content:center;min-height:52px;padding:var(--s3) var(--s4);font-size:16px;font-weight:800;font-stretch:72%;text-transform:uppercase;text-decoration:none;border-bottom:4px solid transparent;white-space:normal}
.ph-app .ph-tabs [aria-selected=true]{border-color:var(--paint-ink);color:var(--paint-ink)}
.ph-app .pub-layout{margin-top:var(--s5)}
.ph-app .pub-shortcuts{font-size:16px;gap:var(--s4)}
.ph-app .pub-layout h2{font-size:31.25px}.ph-app .pub-layout h3{font-size:25px}
.ph-app .pub-grid,.ph-boards{display:grid;grid-template-columns:repeat(auto-fill,minmax(188px,1fr));gap:var(--s5) var(--s4)}
.ph-shop{min-width:0;display:flex;flex-direction:column;background:var(--paper);border:2px solid var(--fascia-deep);border-top:8px solid var(--fascia-deep)}
.ph-shop>.ph-board{min-height:112px;padding:var(--s3);text-decoration:none}
.ph-app .ph-mini-name{font-size:20px;overflow-wrap:anywhere}
.ph-shop-info{display:grid;gap:var(--s1);padding:var(--s3);flex:1;align-content:start}
.ph-shop-info p{margin:0;color:var(--ink-2);overflow-wrap:anywhere}
.ph-status{font-size:12.8px;font-weight:700;line-height:1.55}
.ph-stub{border:2px dashed var(--ink);display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:44px;padding:var(--s1) var(--s2);margin-top:var(--s2);text-decoration:none}
.ph-stub strong{color:var(--paint-ink);font-size:25px;font-stretch:62%;white-space:nowrap}
.ph-stub span{font-size:12.8px;font-weight:700;line-height:1.55}
.ph-app .ph-region-header{margin:0 calc(-1 * var(--s6)) var(--s5);padding:var(--s4) var(--s6);background:var(--fascia);border-top:16px solid var(--fascia-deep)}
.ph-region-header .ph-board{min-height:112px}
.ph-region-tools{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);align-items:end;margin-bottom:var(--s4)}
.ph-region-tools .index-switch{margin:0;gap:var(--s4)}
.ph-region-tools .index-filters{flex:1;margin:0}
.ph-app .index-filters{gap:var(--s3)}
.ph-app .index-filters label{min-width:0}
.ph-app .index-filters input{width:100%}
.ph-home-windows{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s5);margin-top:var(--s5)}
.ph-search>div{display:flex;margin-top:var(--s1)}
.ph-search input{flex:1;width:100%;border-right:0}
.ph-search button{box-shadow:none;border-color:var(--ink)}
.ph-quick{display:flex;gap:var(--s5);margin-top:var(--s4)}
.ph-quick a{display:inline-flex;align-items:center;min-height:44px;font-weight:700}
.ph-daily p{font-weight:800;font-stretch:80%;font-size:20px}
.ph-daily b{font-size:61.04px;font-stretch:62%;color:var(--paint-ink);line-height:1}
.ph-daily .button{width:100%}.ph-daily small{display:block;margin-top:var(--s2)}
.ph-app .national-columns{margin-top:var(--s7);gap:var(--s5)}
.ph-app .national-heading h1,.ph-app .index-intro h1{font-size:48.83px;letter-spacing:0}
.ph-app .index-row,.ph-app .craic-row,.ph-app .national-pub-line{display:flex;align-items:center;gap:var(--s4);padding:var(--s4) 0;border-color:var(--rule)}
.ph-app :is(.index-row,.craic-row,.national-pub-line)>div{flex:1;min-width:0}
.ph-app :is(.index-row,.craic-row,.national-pub-line) h3{font-size:20px;margin:0}
.ph-app :is(.index-row,.craic-row,.national-pub-line)>strong{text-align:right;font-size:25px;font-variant-numeric:tabular-nums;font-stretch:62%}
.ph-swatch{display:inline-block;width:16px;height:32px;background:var(--fascia);border:1px solid var(--ink);flex:none}
.ph-app table :is(td,th):not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.ph-app footer{display:block;background:var(--ink);color:var(--paper);padding:var(--s7) max(var(--s4),calc((100vw - 1256px)/2));border:0}
.ph-app .ph-footer-line{font:400 31.25px/1.25 Bevan,Georgia,serif;color:var(--paper);margin-bottom:var(--s5);max-width:30ch}
.ph-app footer>div{margin:0;display:flex;flex-wrap:wrap;gap:var(--s4) var(--s5);font-size:16px}
.ph-app footer a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:1099px){.ph-windows{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ph-find{grid-column:1/-1;order:3}.ph-regulars{order:2}.ph-top .ph-secondary-nav{display:none}}
@media(max-width:719px){
 .ph-wrap,.ph-app .shell{padding-left:var(--s4);padding-right:var(--s4)}
 .ph-top .ph-wrap{gap:var(--s3);min-height:56px}.ph-mark{font-size:20px}.ph-top nav{gap:var(--s3)}.ph-top .ph-index-nav{display:none}.ph-top .ph-signin{padding:0 var(--s2)}
 .ph-tonight .ph-wrap{gap:var(--s2);min-height:64px}.ph-tonight p{font-size:16px}.ph-pin{max-width:8ch;white-space:normal;line-height:1.25}
 .ph-front{margin:0 calc(-1 * var(--s4));padding:var(--s3) var(--s2) var(--s4);border-top-width:12px}
 .ph-fascia{grid-template-columns:22px minmax(0,1fr) 22px;gap:var(--s1)}.ph-console{border-radius:0 0 11px 11px;font-size:12.8px}.ph-console span{writing-mode:vertical-rl;transform:rotate(180deg)}.ph-console:before{width:8px;height:8px}
 .ph-board{padding:var(--s3);min-height:92px}.ph-name-short{font-size:39.06px}.ph-name-medium{font-size:25px}.ph-name-long{font-size:22px}
 .ph-transom{padding:var(--s1) var(--s2);letter-spacing:.04em}
 .ph-windows{grid-template-columns:minmax(0,1fr);gap:var(--s4);margin-top:var(--s4)}.ph-find{grid-column:auto;order:3}.ph-regulars{order:2}
 .ph-pane{padding:var(--s3)}.ph-app .ph-plate{margin:calc(-1 * var(--s3)) 0 var(--s3) calc(-1 * var(--s3))}
 .ph-ticket{grid-template-columns:40px minmax(0,1fr)}.ph-ticket-body{padding:var(--s3) var(--s4) var(--s4)}.ph-tear span{font-size:16px}.ph-price{font-size:48.83px;margin:var(--s2) 0}
 .ph-counts{gap:var(--s4);flex-wrap:nowrap}.ph-counts b{font-size:25px}.ph-join-actions{flex-direction:row;margin-top:var(--s3)}.ph-join-actions>*{flex:1;min-width:0}.ph-join-actions .button,.ph-join-actions button{padding:var(--s2);font-stretch:72%}
 .ph-app .ph-tabs{margin-left:calc(-1 * var(--s4));margin-right:calc(-1 * var(--s4));padding:0 var(--s2);overflow:visible}.ph-app .ph-tabs a{flex:1;padding:var(--s2) var(--s1);font-size:12.8px;font-stretch:62%;text-align:center;min-height:52px}
 .ph-app .pub-layout{grid-template-columns:minmax(0,1fr);gap:var(--s4)}.ph-app .pub-shortcuts{display:flex;flex-wrap:wrap;gap:var(--s2)}
 .ph-app .pub-grid,.ph-boards{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4) var(--s3)}.ph-shop>.ph-board{min-height:100px;padding:var(--s2)}.ph-shop-info{padding:var(--s2)}.ph-stub{flex-wrap:wrap;gap:0 var(--s1);padding:var(--s1)}
 .ph-app .ph-region-header{margin-left:calc(-1 * var(--s4));margin-right:calc(-1 * var(--s4));padding:var(--s3) var(--s2)}.ph-region-header .ph-board{min-height:92px}
 .ph-region-tools{gap:var(--s2)}.ph-region-tools .index-filters{flex-basis:100%}.ph-region-tools .index-switch a{margin:0;min-height:44px;padding:var(--s1) 0}
 .ph-home-windows{grid-template-columns:minmax(0,1fr);gap:var(--s4);margin-top:var(--s4)}.ph-home-front .ph-board{min-height:120px}.ph-daily b{font-size:48.83px}.ph-daily small{font-size:16px}
 .ph-app .national-columns{grid-template-columns:minmax(0,1fr);margin-top:var(--s7)}
 .ph-app .craic-row{flex-wrap:wrap}.ph-app .craic-row>.button{margin-left:auto}.ph-app .craic-wallet{display:block}.ph-app .index-filters{display:flex;flex-wrap:wrap}.ph-app .index-filters label{flex:1 1 120px}
 .ph-app .index-row>strong{font-size:20px;white-space:normal;max-width:9ch}
 .ph-app .settings-grid,.ph-app .login-layout{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){.ph-app *{transition:none!important;scroll-behavior:auto!important}}

/* Painted timber grain from the approved mock, static and deliberately subtle. */
.ph-front,.ph-board{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='300'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.0035 .42' numOctaves='2' seed='3'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  1.6 0 0 0 -.78'/%3E%3C/filter%3E%3Cfilter id='b'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.005 .3' numOctaves='2' seed='9'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  1.6 0 0 0 -.74'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='.12'/%3E%3Crect width='100%25' height='100%25' filter='url(%23b)' opacity='.15'/%3E%3C/svg%3E");background-size:600px 300px}

/* Keep reading and controls on the approved body rhythm, including older panes. */
.ph-app :is(button,.button),.ph-mark,.ph-counts,.ph-find address,.ph-app .ph-tabs a,.ph-pin{line-height:1.55}
.ph-app .ph-the{font-size:25px;line-height:1.25}
.ph-app .eyebrow,.ph-app .eyebrow span{font-size:12.8px!important;line-height:1.55}
.ph-app .pub-layout p{max-width:64ch}
.ph-app .pub-layout{grid-template-columns:minmax(0,1fr) 300px}
.ph-app .national-empty p,.ph-app .national-ledger>p{max-width:64ch}
.ph-app .national-columns{margin-top:var(--s6);margin-bottom:var(--s6)}
.ph-app .national-counties{padding:var(--s5) 0}
.ph-app .index-pagination{padding:var(--s3) 0;margin:0;min-height:44px}
.ph-app .ph-region-header{margin-bottom:var(--s4)}
.ph-region-tools .index-filters{padding:0}
.ph-region-tools .index-filters label{font-size:12.8px;line-height:1.55;text-transform:uppercase;font-weight:800}
.ph-app .ph-region-header .ph-board{min-height:112px}
@media(max-width:719px){.ph-app .ph-the{font-size:12.8px}.ph-app .pub-layout{grid-template-columns:minmax(0,1fr)}.ph-app .ph-region-header .ph-board{min-height:92px}}

.ph-app .snug-scene{box-shadow:none}
.ph-app .ph-region-header .ph-board{min-height:88px}
.ph-app .shell{padding-bottom:var(--s5)}
.ph-home-index-panel{display:flex;flex-direction:column;justify-content:space-between;gap:var(--s5);min-height:224px}
.ph-app .ph-home-indices{margin-top:var(--s6);margin-bottom:var(--s5)}
.ph-app .ph-home-front .ph-board{min-height:192px}
.ph-home-front .ph-pane{min-height:224px}
.ph-home-counties>summary{min-height:44px;font-weight:700}
@media(max-width:719px){.ph-app .ph-home-front .ph-board{min-height:120px}.ph-home-front .ph-pane{min-height:0}.ph-home-index-panel{min-height:192px}}
.ph-app footer{padding-top:var(--s6)}
.ph-app .pub-layout .snug-scene:not(:has(.snug-item)){display:none}
.pub-page .ph-fascia>.ph-board{min-height:166px}.pub-page .ph-fascia:has(.ph-name-long)>.ph-board{min-height:192px}@media(max-width:719px){.pub-page .ph-fascia>.ph-board{min-height:92px}.pub-page .ph-fascia:has(.ph-name-long)>.ph-board{min-height:148px}}

@media(max-width:719px){.ph-pin{max-width:none;white-space:nowrap}}
/* Retained menu/premises services load their own older CSS after the app. */
body.ph-app :is(.pubhub-menu-gallery,.pubhub-premises){background:var(--paper);color:var(--ink);border-color:var(--rule);border-radius:0;padding:var(--s5)}
body.ph-app :is(.pubhub-menu-gallery,.pubhub-premises) a{color:var(--ink);display:inline-flex;align-items:center;min-height:44px;font-size:16px}
body.ph-app :is(.pubhub-menu-gallery,.pubhub-premises) :is(dt,dd,div,th,td){border-color:var(--rule)}
body.ph-app .pub-layout .panel p{color:var(--ink)}
