
:root{--ink:#2b2420;--muted:#6f655e;--line:#e6dfd6;--paper:#fbf8f3;--card:#ffffff;--brand:#7a1f1f;--brand-dark:#5a1414;--brand-ink:#ffffff;--gold:#b8892b;--accent:#f4ece0}
@media (prefers-color-scheme:dark){:root{--ink:#eee7de;--muted:#b5aba1;--line:#3a332e;--paper:#1b1715;--card:#24201d;--brand:#9e3a35;--brand-dark:#7a2a26;--accent:#2e2723}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 Georgia,'Iowan Old Style','Palatino Linotype',serif}
a{color:var(--brand)}img{max-width:100%;display:block}
.preview{background:var(--gold);color:#fff;text-align:center;font:600 13px/1.4 system-ui,sans-serif;padding:6px 16px}
header{background:var(--card);border-bottom:1px solid var(--line)}
.bar{max-width:1120px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand img{height:44px;width:auto;background:#fff;border-radius:4px;padding:2px}
.brand b{font-size:22px;letter-spacing:.02em}
nav{display:flex;gap:6px 16px;flex-wrap:wrap;flex:1;font:15px system-ui,sans-serif}nav a{text-decoration:none;color:var(--ink)}@media (max-width:700px){nav{flex-basis:100%;font-size:15px}.brand b{font-size:20px}}nav a:hover{color:var(--brand)}
.cartlink{font:15px system-ui,sans-serif;color:var(--muted)}
main{max-width:1120px;margin:0 auto;padding:28px 16px 64px}
h1{font-size:34px;line-height:1.2;margin:0 0 6px}h2{font-size:22px;margin:36px 0 12px}
.lede{color:var(--muted);margin:0 0 24px;font-size:18px}
.prose{max-width:720px}.prose h2{margin-top:32px}.prose ul{padding-left:22px}.prose li{margin:6px 0}.draftnote{background:#f9eeda;border-left:4px solid var(--gold);padding:10px 14px;font:15px system-ui,sans-serif;color:#2b2420}.footlinks{display:flex;flex-wrap:wrap;gap:18px;margin:14px 0 10px}.footlinks a{color:var(--brand);font:600 14px system-ui,sans-serif}
.authcols{columns:3 240px;column-gap:40px;padding-left:0;list-style:none;margin:20px 0 0}.authcols li{break-inside:avoid;padding:7px 0;border-bottom:1px solid var(--line)}.authcols a{text-decoration:none;font-size:18px}.authcols a:hover{text-decoration:underline}.authcols span{color:var(--muted);font:14px system-ui,sans-serif}
.prose:has(.support){max-width:none}nav a.donate{font-weight:700;color:var(--brand)}.support{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.supportimg{width:100%;height:auto;border-radius:6px}.support .cta{margin:8px 0 4px}@media (max-width:820px){.support{grid-template-columns:1fr;gap:24px}}
.hsearch{display:flex;align-items:center;margin-left:auto;border:1px solid var(--line);border-radius:6px;background:var(--paper);overflow:hidden}.hsearch input{border:0;background:transparent;font:15px system-ui,sans-serif;color:var(--ink);padding:9px 10px;width:300px;min-height:40px}header nav{order:3;flex-basis:100%;border-top:1px solid var(--line);padding-top:10px;margin-top:-2px}header .bar{row-gap:10px}.hsearch input:focus{outline:none}.hsearch:focus-within{border-color:var(--brand)}.hsearch button{border:0;background:var(--brand);color:#fff;min-height:40px;min-width:42px;cursor:pointer;display:flex;align-items:center;justify-content:center}@media (max-width:700px){.hsearch{order:4;flex-basis:100%;margin-left:0}.hsearch input{width:100%;flex:1}header nav{border-top:0;padding-top:0}.cartlink{margin-left:auto}}.bigsearch{display:flex;gap:10px;max-width:640px;margin:16px 0 8px}.bigsearch input{flex:1;min-width:0;font:17px system-ui,sans-serif;padding:12px 14px;border:1px solid var(--line);border-radius:6px;min-height:50px;background:var(--card);color:var(--ink)}.bigsearch .btn{border:0;cursor:pointer}.form{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:640px;margin:16px 0}.form label{display:flex;flex-direction:column;gap:5px;font:600 14px system-ui,sans-serif}.form .wide{grid-column:1/-1}.form input,.form textarea,.form select{font:16px system-ui,sans-serif;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);min-height:44px}.form textarea{min-height:120px}@media (max-width:600px){.form{grid-template-columns:1fr}}
.sotd{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:8px;padding:20px 24px;margin:0 0 40px}.sotdhead{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}.sotdhead .kicker{margin:0}.sotdhead a{font:600 15px system-ui,sans-serif}.sotd h2{margin:10px 0 2px}.sotd h2 a{color:var(--ink);text-decoration:none}.sotd h2 a:hover{color:var(--brand)}.sotd article+article{border-top:1px solid var(--line);margin-top:16px;padding-top:6px}.sotdtag{font-style:italic;color:var(--muted);margin:0 0 8px}.sotdref{background:var(--accent);padding:10px 14px;border-radius:6px}.sotdbooks{font:15px system-ui,sans-serif}.feast{display:grid;grid-template-columns:64px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid var(--line);scroll-margin-top:16px}.feast h3{margin:0}.feastdate,.sainttile{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--brand);color:#fff;border-radius:8px;height:64px;font:600 13px system-ui,sans-serif;text-transform:uppercase}.feastdate b,.sainttile b{font:700 24px Georgia,serif}.sainttile{height:auto;aspect-ratio:2/3;border-radius:3px}.sainttile b{font-size:44px}.feast.today{background:var(--accent);margin:0 -12px;padding:18px 12px;border-radius:8px}.todaytag{background:var(--gold);color:#fff;font:600 12px system-ui,sans-serif;border-radius:12px;padding:3px 9px;margin-left:10px;vertical-align:middle}.feast details{font:15px system-ui,sans-serif;margin:6px 0}.feast summary{cursor:pointer;color:var(--brand)}
.copy{margin:8px 0 0;font:13px system-ui,sans-serif;color:var(--muted);flex-basis:100%}
.monthgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin:18px 0 36px}.monthgrid a{display:flex;flex-direction:column;gap:2px;background:var(--brand);color:#fff;text-decoration:none;border-radius:8px;padding:16px 18px}.monthgrid a:hover{background:var(--brand-dark)}.monthgrid b{font:700 20px Georgia,serif}.monthgrid span{font:14px system-ui,sans-serif;opacity:.85}.monthgrid a.thismonth{box-shadow:inset 0 0 0 3px var(--gold);background:var(--brand-dark)}.uplist{display:grid;gap:10px}.upitem{display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:center;text-decoration:none;color:var(--ink);padding:8px;border-radius:8px}.upitem:hover,.upitem.today{background:var(--accent)}.upitem i{color:var(--muted)}.monthnav{gap:6px}.monthnav .opt{padding:10px 10px}.monthhead{display:grid;grid-template-columns:1fr 280px;gap:32px;align-items:end}.enccard{display:grid;grid-template-columns:112px 1fr;grid-template-rows:auto auto auto;column-gap:14px;align-content:end;text-decoration:none;color:var(--ink);font:14px/1.4 system-ui,sans-serif;margin-bottom:8px}.enccard img{grid-row:1/4;width:112px;border-radius:3px;box-shadow:0 6px 18px rgba(0,0,0,.25)}.enccard i{font:600 15px Georgia,serif;font-style:normal;align-self:end}.enccard b{color:var(--brand)}.enccard:hover span{color:var(--brand)}@media (max-width:640px){.monthhead{grid-template-columns:1fr}.enccard{display:none}}.monthpager{display:flex;justify-content:space-between;gap:12px;margin-top:28px}
.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:36px 0 8px;flex-wrap:wrap}.pnums{display:flex;gap:6px;flex-wrap:wrap}.pnums a{min-width:40px;min-height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;text-decoration:none;font:15px system-ui,sans-serif;color:var(--ink)}.pnums a[aria-current]{background:var(--brand);border-color:var(--brand);color:#fff}h1 .pg{font-size:.55em;color:var(--muted);font-weight:normal}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:22px}.grid.books{--g:56px;column-gap:var(--g);row-gap:30px;clip-path:inset(-30px -14px -30px -14px)}.books .tile{position:relative;container-type:inline-size}.books .tile::before{content:"";position:absolute;top:0;left:calc(-1*var(--g));width:var(--g);height:150cqw;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 120' fill='none' stroke='%23b8892b' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M12 50 C12 40 5 37 5 28 C5 19 13 17 15 22 C17 27 11 30 9.5 26'/%3E%3Cpath d='M12 50 C12 42 19 40 19 32'/%3E%3Cpath d='M12 70 C12 80 19 83 19 92 C19 101 11 103 9 98 C7 93 13 90 14.5 94'/%3E%3Cpath d='M12 70 C12 78 5 80 5 88'/%3E%3Cpath d='M12 6 V14 M12 106 V114' stroke-width='1'/%3E%3Ccircle cx='12' cy='3' r='1.3' fill='%23b8892b' stroke='none'/%3E%3Ccircle cx='12' cy='117' r='1.3' fill='%23b8892b' stroke='none'/%3E%3Cpath d='M12 53 L16 60 L12 67 L8 60 Z' fill='%23b8892b' stroke='none'/%3E%3C/svg%3E") center/18px auto no-repeat;opacity:.85}.books .tile:has(.gphoto)::before{height:100cqw}@media (max-width:600px){.grid.books{--g:34px;clip-path:inset(-30px -6px -30px -6px)}.books .tile::before{background-size:13px auto}}.grid4{grid-template-columns:repeat(4,1fr);gap:28px}@media (max-width:700px){.grid4{grid-template-columns:repeat(2,1fr);gap:18px}}
.tile{text-decoration:none;color:var(--ink)}.tile img{width:100%;aspect-ratio:2/3;object-fit:contain;object-position:50% 100%;border-radius:0;box-shadow:none;background:none;filter:drop-shadow(0 3px 6px rgba(0,0,0,.22))}.tile img.gphoto,.cover img.gphoto{aspect-ratio:1/1;object-fit:cover;filter:none;box-shadow:0 2px 10px rgba(0,0,0,.18);border-radius:6px;height:auto;transition:opacity .2s}.dsample{margin:22px auto 8px;max-width:620px}.dsample img{display:block;width:100%;height:auto;border-radius:4px;box-shadow:0 8px 26px rgba(0,0,0,.22)}.dsample figcaption,.dpages figcaption{font:14px system-ui,sans-serif;color:var(--muted);text-align:center;margin-top:10px}.dpages{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:26px auto 8px;max-width:540px}.dpages img{width:100%;height:auto;border:1px solid var(--line);box-shadow:0 4px 14px rgba(0,0,0,.14);background:#fff}.dpages figure{margin:0}.dlist{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;padding:0;list-style:none;margin:18px 0}.dlist li{flex:0 1 calc((100% - 28px)/3);box-sizing:border-box;min-width:240px;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:6px;padding:16px 18px;font:15px/1.5 system-ui,sans-serif}.dlist b{display:block;font:700 18px Georgia,serif;color:var(--brand);margin-bottom:4px}.prose:has(.dsample){max-width:none}@media (max-width:640px){.dpages{gap:10px}.dlist li{flex-basis:100%;min-width:0}}.prose ul.dlist{margin-left:0;padding-left:0}.dlist li{margin:0}.offers{list-style:none;margin:12px 0 0;padding:10px 14px;border-left:3px solid var(--gold);background:var(--accent);border-radius:0 6px 6px 0;font:14px/1.5 system-ui,sans-serif}.offers b{color:var(--brand)}.phcap{font:14px system-ui,sans-serif;color:var(--muted);text-align:center;margin:8px 0 0}.thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.thumbs button{padding:0;border:2px solid transparent;border-radius:6px;background:none;cursor:pointer;width:64px}.thumbs button.on{border-color:var(--brand)}.thumbs img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px;box-shadow:none}
.tile .t{font-size:15px;line-height:1.3;margin-top:10px}.tile .a{font:13px system-ui,sans-serif;color:var(--muted)}.tile .p{font:600 14px system-ui,sans-serif;margin-top:2px}
.buy{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:40px;align-items:start}
@media (max-width:760px){.buy{grid-template-columns:1fr}.buy .cover{max-width:280px}}
.cover img{border-radius:3px;box-shadow:0 4px 18px rgba(0,0,0,.22)}.cover img[hidden],[data-edpanel][hidden]{display:none}.authorhead .desc{max-width:720px}
.sub{font-size:19px;color:var(--muted);margin:0 0 8px}.by{font:16px system-ui,sans-serif;margin:0 0 20px}
.opts{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 16px}
.opt{font:15px system-ui,sans-serif;border:1px solid var(--brand);background:var(--brand);color:var(--brand-ink);border-radius:6px;padding:10px 14px;cursor:pointer;min-height:44px}
.opt:hover{background:var(--brand-dark)}.opt[aria-pressed=true]{background:var(--brand-dark);border-color:var(--gold);box-shadow:inset 0 0 0 2px var(--gold)}
.opt small{display:block;color:rgba(255,255,255,.82);font-size:13px}
.label{font:600 13px system-ui,sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.price{font:600 28px system-ui,sans-serif;margin:6px 0 14px}
.cta{font:600 16px system-ui,sans-serif;background:var(--brand);color:var(--brand-ink);border:0;border-radius:6px;padding:14px 22px;min-height:48px;cursor:pointer}.cta:hover{filter:brightness(1.12)}
.note{font:13px system-ui,sans-serif;color:var(--muted);margin-top:8px}
dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:4px 18px;font:15px system-ui,sans-serif;margin:24px 0}dl.facts dt{color:var(--muted)}dl.facts dd{margin:0}
.desc p{margin:0 0 14px}
.look{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory}
.look button{flex:0 0 auto;border:1px solid var(--line);padding:0;background:#fff;cursor:zoom-in;scroll-snap-align:start}
.look img{height:220px;width:auto}
dialog{border:0;padding:0;background:transparent;max-width:min(92vw,700px)}dialog::backdrop{background:rgba(0,0,0,.75)}
dialog img{max-height:86vh;width:auto;margin:auto;background:#fff}
.dlgbar{display:flex;justify-content:space-between;gap:8px;margin-top:8px}.dlgbar button{font:15px system-ui,sans-serif;padding:10px 16px;border-radius:6px;border:0;min-height:44px}
ul.inside{padding-left:20px;margin:0}
.authorhead{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.authorhead img{width:140px;border-radius:6px}
.hero{background:linear-gradient(180deg,var(--accent),var(--paper));border-bottom:1px solid var(--line)}
.hero .in{max-width:1120px;margin:0 auto;padding:48px 16px 44px;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
@media (max-width:820px){.hero .in{grid-template-columns:1fr;padding:32px 16px}.fan{display:none}}
.kicker{font:600 13px system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 10px}
.hero h1{font-size:44px;margin:0 0 16px}@media (max-width:820px){.hero h1{font-size:34px}}
.hero p{font-size:19px;margin:0 0 14px;max-width:38em}.sig{font-style:italic;color:var(--muted)}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.btn{display:inline-flex;align-items:center;min-height:48px;padding:0 22px;border-radius:6px;font:600 16px system-ui,sans-serif;text-decoration:none;background:var(--brand);color:var(--brand-ink)}
.btn:hover{background:var(--brand-dark)}
.fan{position:relative;height:380px}.fan img{position:absolute;width:52%;border-radius:3px;box-shadow:0 10px 30px rgba(0,0,0,.28);top:20px}
.fan img,.fan .ad{transition:left .9s ease,top .9s ease,transform .9s ease}.fan .pl{left:2%;transform:rotate(-7deg);top:40px;z-index:1}.fan .pc{left:24%;top:20px;transform:none;z-index:3}.fan .pr{left:46%;transform:rotate(7deg);top:40px;z-index:2}.fan .back{z-index:0}
.fan .ad{position:absolute;width:52%;aspect-ratio:3/4;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.28);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 22px;box-sizing:border-box;
 padding:22px 18px;box-sizing:border-box;text-decoration:none;font-family:system-ui,sans-serif;border:3px solid #c9a24a;outline:1px solid rgba(255,255,255,.25);outline-offset:-9px}
.ad .ad-k{font:600 12px system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;opacity:.9}.ad .ad-big{font:700 46px/1 Georgia,'Times New Roman',serif;margin:14px 0 12px;letter-spacing:.01em}.ad .ad-big.sm{font-size:34px;margin:8px 0 10px}
.ad .ad-s{font-size:14px;line-height:1.35;max-width:15em;opacity:.95}.ad .ad-c{margin-top:16px;font:600 14px system-ui,sans-serif;border-bottom:1px solid currentColor;padding-bottom:1px}
.ad-books{background:radial-gradient(circle at 50% 30%,#22386b,#13213f);color:#f3e2b3}.ad-books .ad-big{color:#e9c46a}
.ad-ship{background:radial-gradient(circle at 50% 30%,#8e2a2a,#5a1414);color:#f6e7c1}.ad-ship .ad-big{color:#f3d27a;font-size:39px}
.ad-gift{background:radial-gradient(circle at 50% 30%,#fffaf0,#efe3c8);color:#5a1414;border-color:#7a1f1f}.ad-gift .ad-big{color:#7a1f1f}
.ad .ad-mini{display:flex;align-items:center;gap:8px;background:#7a1f1f;color:#f6e7c1;border-radius:8px;padding:8px 12px;margin-top:12px;box-shadow:0 4px 10px rgba(0,0,0,.2)}
.fan .ad .ad-mini img{position:static;width:30px;height:auto;background:#fff;border-radius:3px;padding:2px;box-shadow:none;transform:none;transition:none}.ad .ad-mini b{font:700 15px Georgia,serif}
.fan .ad:focus-visible{outline:3px solid var(--brand);outline-offset:3px}
@media (max-width:820px){.fan{display:block !important;height:auto;max-width:330px;margin:10px auto 0}.fan .ad{position:relative;width:100%;left:0 !important;top:0 !important;transform:none !important;aspect-ratio:auto;min-height:250px;display:none}.fan .ad.pc{display:flex}}
@media (prefers-reduced-motion: reduce){.fan img,.fan .ad{transition:none}}
.centerbtn{text-align:center;margin:36px 0 8px}
.greet{text-align:center;margin:0 0 10px;color:var(--brand)}.greet p{margin:0 0 6px;font-size:16px;line-height:1.3}
.greet .g-hi{display:block;font:600 22px Georgia,'Times New Roman',serif}.greet .g-dt{display:block;font:14px system-ui,sans-serif;color:var(--muted)}
.greet .g-it .g-hi{font-style:italic;font-size:19px}
@media (max-width:820px){.fancol{order:-1}.greet{margin:0}}
main.home{padding-top:8px}
.signup{background:var(--brand);color:#fff;border-radius:10px;padding:32px 28px;margin:44px 0 8px;display:grid;grid-template-columns:1fr 1.1fr;gap:24px;align-items:center}
@media (max-width:760px){.signup{grid-template-columns:1fr;padding:24px 18px}}
.signup h2{margin:0 0 8px;color:#fff}.signup p{margin:0;opacity:.92}
.signup form{display:flex;gap:10px;flex-wrap:wrap}
.signup input{flex:1 1 180px;min-height:48px;border-radius:6px;border:0;padding:0 14px;font:16px system-ui,sans-serif;color:#2b2420}
.signup button{min-height:48px;border-radius:6px;border:0;padding:0 22px;font:600 16px system-ui,sans-serif;background:var(--brand-dark);color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.85);cursor:pointer}
.signup button[disabled]{opacity:.6;cursor:not-allowed}
.signup .fine{flex-basis:100%;font:13px system-ui,sans-serif;opacity:.85;margin-top:2px}
.footsign{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.footsign input{min-height:44px;border:1px solid var(--line);border-radius:6px;padding:0 12px;font:15px system-ui,sans-serif;flex:1 1 200px;max-width:320px}
.footsign button{min-height:44px;border-radius:6px;border:0;padding:0 16px;font:600 15px system-ui,sans-serif;background:var(--brand);color:#fff}.footsign button[disabled]{opacity:.55;cursor:not-allowed}
.coverbtn{position:relative;border:0;padding:0;background:none;cursor:zoom-in;display:block;width:100%}
.coverbtn[hidden],.lookbtn[hidden]{display:none}.lookbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:14px;min-height:48px;border-radius:6px;border:0;background:var(--brand);color:var(--brand-ink);font:600 16px system-ui,sans-serif;cursor:pointer}.lookbtn:hover{background:var(--brand-dark)}.lookbadge{position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.72);color:#fff;font:600 14px system-ui,sans-serif;padding:8px 12px;border-radius:20px}
.lookin{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.lookin p{color:var(--muted);font:15px system-ui,sans-serif;max-width:30em;margin:0}
.closedbook{position:relative;border:0;padding:0;background:none;cursor:pointer;width:150px;perspective:600px}
.closedbook img{width:150px;border-radius:2px 6px 6px 2px;box-shadow:6px 6px 0 -2px #e9e1d4,6px 6px 0 -1px #cbbfae,10px 14px 24px rgba(0,0,0,.3);transform:rotateY(-14deg);transform-origin:left;transition:transform .35s}
.closedbook:hover img{transform:rotateY(-26deg)}.closedbook span{display:block;margin-top:12px;font:600 15px system-ui,sans-serif;color:var(--brand)}
dialog.bookdlg{max-width:none;width:100vw;height:100vh;max-height:none;margin:0;padding:24px 12px;background:transparent}
dialog.bookdlg::backdrop{background:radial-gradient(ellipse at center,#4a3a2e 0%,#1d1612 75%)}
.bookwrap{display:flex;justify-content:center;align-items:center;height:calc(100% - 64px)}
.flip{margin:0 auto}.flip .page{background:#fff;overflow:hidden}.flip .page img{width:100%;height:100%;object-fit:contain;background:#fff;display:block}
.flip .blankpage{background:#fdfcf9}
.flip .endpage{display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;font:17px Georgia,serif;color:#2b2420;background:#fbf8f3}
.bookdlg .dlgbar{justify-content:center;align-items:center;gap:12px;margin-top:12px}.bookdlg .dlgbar button{background:#fff;color:#2b2420;cursor:pointer}
.bookdlg .pg{color:#fff;font:14px system-ui,sans-serif;min-width:120px;text-align:center}.flip{box-shadow:0 18px 50px rgba(0,0,0,.45)}@media (max-width:600px){.bookdlg .dlgbar{gap:6px}.bookdlg .dlgbar button{padding:10px 12px}}
.rowhead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:40px 0 14px}.rowhead h2{margin:0}
.rowhead a{font:600 15px system-ui,sans-serif;text-decoration:none;white-space:nowrap}
a.opt{text-decoration:none}a.opt[aria-pressed=true]{background:var(--brand-dark);border-color:var(--gold);box-shadow:inset 0 0 0 2px var(--gold);color:#fff}
.fjlogo img{width:100%;height:auto;display:block}.fjlogo.big{display:block;max-width:440px}.fjlogo.mid{display:block;max-width:300px}
.fjhero{grid-template-columns:1fr minmax(260px,440px) !important;align-items:start}.fjhero>.fjlock{order:2}@media (max-width:820px){.fjhero{grid-template-columns:1fr !important}.fjhero>.fjlock{order:0}.fjlogo.big{max-width:320px}}
.fjlock{max-width:440px}.hero h1.fjgs{margin:0 0 0 45%;text-align:center;color:#6e1f1f;font-size:2.1rem;letter-spacing:.04em;line-height:1.1}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:820px){.fjlock{max-width:320px}.hero h1.fjgs{font-size:1.6rem}}
@media (prefers-color-scheme:dark){.fjgs{color:#e8c9a8}}
.fjmark{float:right;width:200px;margin:0 0 12px 24px}.fjmark~[data-buy],.fjmark~.grid,.fjmark~.rowhead{clear:both}@media (max-width:600px){.fjmark{width:130px;margin-left:12px}}.fjband{margin-top:56px}
@media (prefers-color-scheme:dark){.fjlogo{background:#fbf8f3;border-radius:10px;padding:8px}}
footer{border-top:1px solid var(--line);background:var(--card);font:14px system-ui,sans-serif;color:var(--muted)}
footer .bar{display:block;padding:24px 16px}

.cartw{display:grid;grid-template-columns:1fr 340px;gap:36px;align-items:start}@media (max-width:860px){.cartw{grid-template-columns:1fr}}
.cline{display:grid;grid-template-columns:72px 1fr auto;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);align-items:start}
.cline img{width:72px;height:auto;border-radius:3px;background:var(--card)}.cline .gcthumb{width:72px;aspect-ratio:1.6;border-radius:6px;background:#7a1f1f center/cover}
.cline .nm{font-weight:700}.cline .nm a{color:inherit;text-decoration:none}.cline .fm{color:var(--muted);font:14px system-ui,sans-serif;margin-top:2px}
.cline .qty{display:flex;align-items:center;gap:6px;margin-top:10px;font:15px system-ui,sans-serif}
.cline .qty button{min-width:36px;min-height:36px;border:1px solid var(--line);background:var(--card);border-radius:6px;cursor:pointer;color:var(--ink);font-size:18px}
.cline .rm{border:0;background:none;color:var(--brand);font:14px system-ui,sans-serif;cursor:pointer;padding:6px 0;margin-left:10px;text-decoration:underline}
.cline .lp{font:600 16px system-ui,sans-serif;text-align:right;white-space:nowrap}
.sumbox{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:20px;position:sticky;top:16px}
.sumbox dl{display:grid;grid-template-columns:1fr auto;gap:8px 12px;margin:0;font:15px system-ui,sans-serif}.sumbox dd{margin:0;text-align:right}
.sumbox .tot{font-weight:700;font-size:18px;border-top:1px solid var(--line);padding-top:10px}.sumbox .cta{width:100%;margin-top:16px;text-align:center;display:block;box-sizing:border-box}
.sumbox .tip{font:14px system-ui,sans-serif;color:var(--muted);margin-top:12px}
.empty{padding:30px 0;font-size:18px}
.co fieldset{border:0;padding:0;margin:0 0 26px}.co legend{font:700 20px Georgia,serif;margin-bottom:6px;padding:0}
.co .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.co .row3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
@media (max-width:600px){.co .row,.co .row3{grid-template-columns:1fr}}
.co label{display:flex;flex-direction:column;gap:5px;font:600 14px system-ui,sans-serif;margin-top:12px}
.co input,.co select{font:16px system-ui,sans-serif;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);min-height:46px;box-sizing:border-box;width:100%}
.co .gcrow{display:flex;gap:8px;margin-top:12px}.co .gcrow input{flex:1;text-transform:uppercase}.co .gcrow button{white-space:nowrap}
.co .msg{font:14px system-ui,sans-serif;margin-top:8px;min-height:1.2em}.co .msg.bad{color:#b3261e}.co .msg.ok{color:#2e6b2e}
.co .fine{font:14px system-ui,sans-serif;color:var(--muted)}
#pay{margin-top:16px;min-height:50px}#pay .cta{width:100%}
.btn2{font:600 15px system-ui,sans-serif;border:1px solid var(--brand);color:var(--brand);background:transparent;border-radius:6px;padding:10px 16px;cursor:pointer;min-height:46px}
.dl{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 18px}.dl a{display:inline-block}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:14px 18px;border-radius:8px;font:15px system-ui,sans-serif;
 box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:50;display:flex;gap:14px;align-items:center;max-width:calc(100vw - 32px);box-sizing:border-box}
.toast a{color:var(--paper);font-weight:700}
.opt[disabled]{opacity:.4;cursor:not-allowed}.cta[disabled]{opacity:.5;cursor:not-allowed}
.donate-amts{margin:14px 0}
.price s.was{color:var(--muted);font-weight:400;font-size:.8em;margin-right:4px}
