:root{color-scheme:light;--ink:#2a1650;--muted:#675d7a;--accent:#d3106f;--pink:#e5177b;--highlight:#ffc933;--violet:#5a2ca0;--paper:#fff8ee;--line:#eadfea;--wash:#f6eefb;font-family:ui-rounded,"Avenir Next",Avenir,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--paper);color:var(--ink)}a{color:inherit}.topbar{min-height:72px;max-width:1200px;margin:auto;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand,.footer-brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-size:23px;font-weight:900;letter-spacing:-1.2px;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:11px;background:var(--highlight);font-size:20px}.top-tools{display:flex;align-items:center;gap:16px}.home-link{font-size:12px;font-weight:800;text-decoration:none}.top-tools select{max-width:180px;padding:8px 10px;border:1px solid #d6c8dc;border-radius:8px;background:white;color:var(--ink);font:inherit;font-size:12px;font-weight:800}.intro,.work-area{max-width:1200px;margin:0 auto;padding-left:28px;padding-right:28px}.intro{padding-top:38px;padding-bottom:22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr);gap:28px;align-items:center}.eyebrow{font-size:11px;letter-spacing:1.4px;font-weight:900;color:var(--accent)}.intro h1{font-size:clamp(38px,5vw,58px);line-height:1.04;letter-spacing:-2.2px;margin:12px 0;overflow-wrap:anywhere}.intro-copy>p{max-width:640px;color:var(--muted);font-size:15px;line-height:1.65}.local-note{padding:10px 12px;border-left:4px solid var(--highlight);background:#fffdf8;font-size:12px!important}.hero-art{display:grid;place-items:center}.hero-art img{width:min(100%,380px);height:auto}.work-area{padding-top:16px;padding-bottom:56px;display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:30px;align-items:start}.form-panel,.preview-column{min-width:0}.form-panel h2{font-size:23px;letter-spacing:-.5px;margin:0 0 14px}
form{min-width:0;background:#fff;border:2px solid var(--ink);border-radius:16px;padding:20px;box-shadow:6px 6px 0 var(--highlight)}.group{border:0;margin:0 0 16px;padding:0;min-width:0}.group legend{padding:0;margin:0 0 8px;font-size:12px;font-weight:850}.field{display:grid;gap:6px;margin:0 0 13px;min-width:0}.field>span{font-size:12px;font-weight:800}.field input{width:100%;min-width:0;border:1px solid #cfc3d8;border-radius:8px;background:#fffdfa;padding:11px;color:var(--ink);font:inherit;font-size:14px;line-height:1.45}.count-field{margin-bottom:16px}.count-note{margin:-6px 0 16px;padding:9px 11px;border-left:4px solid var(--accent);background:#fdebf4;color:#8c0d4c;font-size:13px;font-weight:700;line-height:1.4}.count-field input{max-width:130px;font-size:20px;font-weight:900;padding:7px 11px}.type-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.type-option{position:relative;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:9px;min-height:44px;padding:10px;border:2px solid var(--line);border-radius:12px;cursor:pointer}.type-option:has(input:checked){border-color:var(--ink);background:var(--wash)}.type-text{display:grid;gap:2px;min-width:0}.type-text strong{font-size:14px;line-height:1.2}.type-text small,.check-text small{color:var(--muted);font-size:12px;line-height:1.35}input[type=radio],input[type=checkbox]{flex:none;width:18px;height:18px;margin:0;accent-color:var(--accent)}.ball{display:grid;place-items:center;flex:none;width:46px;height:46px;border:2.5px solid var(--ink);border-radius:50%;font-size:16px;font-weight:900;font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 5px #fff}.ball-pink{background:#fff;outline:6px solid var(--pink);outline-offset:-6px}.ball-yellow{background:#fff;outline:6px solid var(--highlight);outline-offset:-6px}.page-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.page-option{display:grid;grid-template-columns:auto auto;justify-content:center;align-items:center;justify-items:center;gap:7px 6px;min-height:44px;padding:8px;border:2px solid var(--line);border-radius:12px;cursor:pointer}.page-option:has(input:checked){border-color:var(--ink);background:var(--wash)}.page-option b{font-size:15px;font-weight:900}.mini{grid-column:1/-1;order:3;display:grid;gap:2px;width:30px;height:42px;padding:3px;border:1.5px solid var(--ink);border-radius:2px;background:#fff}.mini i{display:block;min-height:0;background:var(--violet);border-radius:1px}.mini-2{grid-template-rows:1fr 1fr}.mini-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.mini-6{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr 1fr}.fixed-note{margin:0 0 16px;padding:10px 12px;border-left:4px solid var(--highlight);background:var(--wash);color:var(--ink);font-size:13px;line-height:1.45}.check{display:flex;align-items:flex-start;gap:10px;min-height:44px;margin:0 0 16px;padding:10px;border:2px solid var(--line);border-radius:12px;cursor:pointer}.check:has(input:checked){border-color:var(--ink);background:var(--wash)}.check input{margin-top:1px}.check-text{display:grid;gap:2px;min-width:0}.check-text strong{font-size:14px}.form-actions,.preview-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.button{border:2px solid var(--ink);border-radius:9px;padding:11px 15px;font:inherit;font-size:13px;font-weight:900;cursor:pointer;box-shadow:3px 3px 0 var(--ink)}.button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.primary{background:var(--highlight);color:var(--ink)}.accent{background:var(--accent);color:#fff}.quiet{background:#fff;color:var(--ink);box-shadow:none}.quiet:active{box-shadow:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.stage a:focus-visible,.stage button:focus-visible{outline-color:#fff}
.stage{background:var(--ink);border-radius:18px;padding:18px;color:#fff;box-shadow:6px 6px 0 var(--pink)}.preview-head{justify-content:space-between;margin-bottom:8px}.preview-head h2{margin:0;font-size:23px;letter-spacing:-.5px;color:var(--highlight)}.stage .primary{border-color:var(--highlight);box-shadow:3px 3px 0 var(--pink)}.summary{margin:0 0 14px;min-height:22px;font-size:15px;font-weight:850;line-height:1.4}.summary.problem{color:var(--highlight)}.preview-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:240px}.preview90{grid-template-columns:minmax(0,1fr);min-height:0}.preview-note{margin:12px 0 0;color:#ddd3ec;font-size:12px;line-height:1.5}
.card{min-width:0;display:grid;gap:7px;align-content:start;padding:10px;background:#fff;border:2px solid var(--highlight);border-radius:12px;color:var(--ink);overflow-wrap:anywhere;word-break:normal}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.card-title{min-width:0;font-size:16px;font-weight:900;line-height:1.12;letter-spacing:-.2px}.medium .card-title{font-size:14px}.long .card-title{font-size:12px}.card-no{flex:none;font-size:11px;font-weight:800;color:var(--muted);white-space:nowrap}.letters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));justify-items:center}.letters span{display:grid;place-items:center;width:min(32px,84%);aspect-ratio:1;border-radius:50%;background:var(--pink);color:#fff;font-size:16px;font-weight:900;line-height:1}.letters span:nth-child(2n){background:var(--highlight);color:var(--ink)}.letters span:nth-child(3){background:var(--violet);color:#fff}.numbers{display:grid;border:2px solid var(--ink);border-radius:6px;overflow:hidden}.card75 .numbers{grid-template-columns:repeat(5,minmax(0,1fr))}.card90 .numbers{grid-template-columns:repeat(9,minmax(0,1fr))}.cell{position:relative;display:grid;place-items:center;align-self:stretch;min-width:0;aspect-ratio:1;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);font-size:21px;font-weight:850;line-height:1;font-variant-numeric:tabular-nums}.card75 .cell:nth-child(5n),.card90 .cell:nth-child(9n){border-right:0}.card75 .cell:nth-last-child(-n+5),.card90 .cell:nth-last-child(-n+9){border-bottom:0}.card90 .cell{font-size:22px}.blank{background:var(--wash)}.free{padding:2px;background:var(--highlight);font-size:11px;font-weight:900;text-align:center;line-height:1.05;overflow-wrap:anywhere}.free.medium{font-size:9.5px}.free.long{font-size:8px}.card-foot{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:10px;color:var(--muted)}.card-line{min-width:0;font-weight:700;line-height:1.25}.card-credit{flex:none;margin-left:auto;font-size:9px;white-space:nowrap}.card-foot.medium .card-line{font-size:.9em}.card-foot.long .card-line{font-size:.82em}.ticket-head{flex-wrap:wrap;align-items:baseline;gap:2px 8px}.ticket-head .card-title{flex:1 1 60%}.ticket-head .card-no{order:1}.ticket-head .card-line{order:2;flex:1 1 60%;font-size:10px;line-height:1.25;color:var(--muted)}.ticket-head .card-credit{order:3;color:var(--muted)}
.explain{max-width:1200px;margin:0 auto;padding:30px 28px 54px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px}.explain h2{margin:0 0 10px;font-size:23px;letter-spacing:-.5px}.explain p{margin:0;color:#4e4560;font-size:14px;line-height:1.65}.faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}.faq h3{margin:0 0 5px;font-size:14px;line-height:1.35}.document{display:none}footer{max-width:1200px;margin:auto;padding:18px 28px 25px;border-top:1px solid var(--line);display:flex;align-items:center;gap:18px;flex-wrap:wrap;color:#6f6680;font-size:11px}footer .footer-brand{font-size:16px;color:var(--ink)}footer span{margin-left:auto}footer span span{margin:0}.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}
@media(max-width:1000px){.type-options{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.topbar{padding:12px 18px}.top-tools{gap:10px}.home-link{font-size:11px}.intro,.work-area{padding-left:18px;padding-right:18px}.intro{padding-top:28px;padding-bottom:12px;grid-template-columns:1fr;gap:8px}.intro h1{font-size:42px;letter-spacing:-1.6px}.intro-copy>p{font-size:14px}.hero-art{order:-1}.hero-art img{width:min(100%,300px)}.work-area{padding-top:12px;padding-bottom:42px;grid-template-columns:minmax(0,1fr);gap:28px}form{padding:16px}footer{padding:17px 18px}.footer-brand{width:100%}footer span{margin:0}.field input,.top-tools select{font-size:16px}.field input{min-height:44px}.button,.top-tools select{min-height:44px}.button{font-size:14px}.count-field input{font-size:20px}.preview-cards{grid-template-columns:minmax(0,1fr);min-height:0}.preview75 .card:nth-child(n+3){display:none}.cell{font-size:25px}.card90 .cell{font-size:16px}.free{font-size:14px}.free.medium{font-size:12px}.free.long{font-size:10px}.card-title{font-size:18px}.explain{padding:26px 18px 42px;grid-template-columns:minmax(0,1fr);gap:22px}.faq{grid-template-columns:minmax(0,1fr)}.stage{padding:14px}.check,.page-option,.type-option{min-height:48px}}
@media(max-width:430px){.topbar{padding-left:13px;padding-right:13px}.brand{font-size:20px}.brand-mark{width:29px;height:29px}.top-tools{gap:7px}.home-link{display:none}.top-tools select{max-width:150px;padding:7px 6px}.intro,.work-area{padding-left:14px;padding-right:14px}.intro h1{font-size:36px}form{padding:14px}.stage{padding:12px;margin-right:3px}form{margin-right:3px;box-shadow:3px 3px 0 var(--highlight)}.stage{box-shadow:3px 3px 0 var(--pink)}.card{padding:8px}.card90{padding:6px}.preview-head{gap:8px}.preview-head h2{font-size:20px}}
/* A4 portrait with a real 15 mm page margin. Chrome and Safari both repeat it on every page; padding on the document does not. */
@page{size:A4 portrait;margin:15mm}
/* Safari on macOS prints a CSS mm about 7 % larger than Chrome, while page width and margins stay true. So every card takes its width in percent and its height from aspect-ratio, its rows are proportions, and a sheet only uses about 90 % of the page height: the page count cannot depend on the browser or on the text. WebKit clips the last fraction of a millimetre on the right, which would cut the card border, so sheets are inset a little on both sides. */
@media print{html,body{width:auto!important;min-width:0!important;margin:0!important;padding:0!important;background:#fff!important;color:#000!important;font-size:10pt;overflow:visible!important}*{box-sizing:border-box}.topbar,.intro,.work-area,.explain,footer,.doc-credit{display:none!important}main{display:block!important;margin:0!important;padding:0!important}.document{display:block!important;width:100%!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important;color:#120a24}
.sheet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3.4%;padding:0 .6mm;row-gap:4mm;align-content:start;break-after:page;break-inside:avoid}.sheet:last-child{break-after:auto}
.card{display:grid;gap:0;align-content:stretch;width:100%;min-height:0;padding:1.6%;background:#fff;border:.5pt solid #8a8494;border-radius:2mm;color:#120a24;overflow:hidden;break-inside:avoid}.card-head{align-items:center;min-height:0;padding:0 .6mm;gap:2mm}.card-title{font-weight:800;line-height:1.08}.card-no{font-weight:700;color:#120a24}.letters{min-height:0;align-items:center}.letters span{width:auto;height:84%;aspect-ratio:1;background:none!important;color:#120a24!important;border:1.2pt solid #120a24;font-weight:800}.numbers{min-height:0;border:1.5pt solid #120a24;border-radius:0}.cell{aspect-ratio:auto;min-height:0;border-right:.75pt solid #120a24;border-bottom:.75pt solid #120a24;font-weight:700}.blank{background:none}.free{background:none;padding:.5mm;font-weight:800}.free::before{content:"";position:absolute;inset:7%;border:.9pt dashed #120a24;border-radius:50%}.card-foot{align-items:center;min-height:0;padding:0 .6mm;color:#3a3348}.card-line{font-weight:700;line-height:1.1}.card-credit{color:#5b5468}
.card75{grid-template-rows:minmax(0,var(--head)) minmax(0,var(--letters)) minmax(0,var(--grid)) minmax(0,var(--foot))}.card75 .numbers{grid-template-rows:repeat(5,minmax(0,1fr))}
.per-1{grid-template-columns:minmax(0,1fr)}.per-1 .card{aspect-ratio:180/228;--head:14fr;--letters:23fr;--grid:183fr;--foot:8fr}.per-1 .card-title{font-size:26pt}.per-1 .medium .card-title{font-size:21pt}.per-1 .long .card-title{font-size:16pt}.per-1 .card-no{font-size:12pt}.per-1 .letters span{font-size:30pt}.per-1 .cell{font-size:46pt}.per-1 .free{font-size:17pt}.per-1 .free.medium{font-size:14pt}.per-1 .free.long{font-size:12pt}.per-1 .card-foot{font-size:10pt}.per-1 .card-credit{font-size:8pt}
.per-2{grid-template-columns:minmax(0,72%);justify-content:center;row-gap:10mm}.per-2 .card{aspect-ratio:130/112;--head:10fr;--letters:14fr;--grid:82fr;--foot:6fr}.per-2 .card-title{font-size:15pt}.per-2 .medium .card-title{font-size:13pt}.per-2 .long .card-title{font-size:10pt}.per-2 .card-no{font-size:9pt}.per-2 .letters span{font-size:17pt}.per-2 .cell{font-size:28pt}.per-2 .free{font-size:11pt}.per-2 .free.medium{font-size:9.5pt}.per-2 .free.long{font-size:8pt}.per-2 .card-foot{font-size:8pt}.per-2 .card-credit{font-size:6.5pt}
.per-4 .card{aspect-ratio:87/114;--head:9.5fr;--letters:14fr;--grid:85fr;--foot:5.5fr}.per-4 .card-title{font-size:12.5pt}.per-4 .medium .card-title{font-size:10.5pt}.per-4 .long .card-title{font-size:8pt}.per-4 .card-no{font-size:8pt}.per-4 .letters span{font-size:15pt}.per-4 .cell{font-size:24pt}.per-4 .free{font-size:9pt}.per-4 .free.medium{font-size:7.5pt}.per-4 .free.long{font-size:6pt}.per-4 .card-foot{font-size:6.5pt}.per-4 .card-credit{font-size:5.5pt}
.per-6 .card{aspect-ratio:87/76.5;--head:8fr;--letters:9fr;--grid:54fr;--foot:5.5fr}.per-6 .card-title{font-size:10.5pt}.per-6 .medium .card-title{font-size:9pt}.per-6 .long .card-title{font-size:6.5pt}.per-6 .card-no{font-size:7.5pt}.per-6 .letters span{font-size:10.5pt;border-width:1pt}.per-6 .cell{font-size:17pt}.per-6 .free{font-size:8pt}.per-6 .free.medium{font-size:6.5pt}.per-6 .free.long{font-size:5.5pt}.per-6 .free::before{inset:4% 12%;border-width:.75pt}.per-6 .card-foot{font-size:6pt}.per-6 .card-credit{font-size:5.5pt}
.per-ticket{grid-template-columns:minmax(0,1fr);row-gap:4mm}.per-ticket .card{aspect-ratio:180/36;grid-template-rows:minmax(0,6.6fr) minmax(0,29.4fr);padding:.5% .9% .9%}.card90 .numbers{grid-template-rows:repeat(3,minmax(0,1fr))}.ticket-head{flex-wrap:nowrap;align-items:center;gap:2.5mm;padding:0 .6mm}.ticket-head .card-title{flex:0 1 auto;max-width:47%;font-size:10pt}.ticket-head.medium .card-title{font-size:8.5pt}.ticket-head.long .card-title{font-size:7pt}.ticket-head .card-line{order:0;flex:1 1 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:6.5pt;line-height:1.1;color:#3a3348;text-align:center}.ticket-head .card-no{order:0;flex:none;margin-left:auto;font-size:8pt}.ticket-head .card-credit{order:0;flex:none;margin:0;font-size:5.5pt;color:#5b5468}.per-ticket .cell{font-size:19pt}
.caller{display:grid;grid-template-columns:minmax(0,1fr);aspect-ratio:180/236;grid-template-rows:minmax(0,17fr) minmax(0,13fr) minmax(0,200fr) minmax(0,6fr);gap:0;color:#120a24}.caller-head{display:flex;align-items:baseline;justify-content:space-between;gap:6mm;min-height:0}.caller-head strong{min-width:0;font-size:24pt;font-weight:800;line-height:1.08;overflow-wrap:anywhere}.caller-head.medium strong{font-size:19pt}.caller-head.long strong{font-size:15pt}.caller-label{flex:none;font-size:11pt;font-weight:700}.caller-howto{margin:0;min-height:0;font-size:9pt;line-height:1.3;color:#3a3348}.caller-grid{display:grid;min-height:0;border:1.5pt solid #120a24}.caller75 .caller-grid{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:minmax(0,1.3fr) repeat(15,minmax(0,1fr))}.caller90 .caller-grid{grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr))}.caller-letter,.caller-number{display:grid;place-items:center;min-height:0;border-right:.75pt solid #120a24;border-bottom:.75pt solid #120a24;font-variant-numeric:tabular-nums}.caller-letter{font-size:15pt;font-weight:800;border-bottom-width:1.5pt}.caller-number{font-size:14pt;font-weight:700}.caller90 .caller-number{font-size:17pt}.caller75 .caller-grid>:nth-child(5n),.caller90 .caller-grid>:nth-child(10n){border-right:0}.caller75 .caller-grid>:nth-last-child(-n+5),.caller90 .caller-grid>:nth-last-child(-n+10){border-bottom:0}.caller-foot{display:flex;align-items:center;justify-content:space-between;gap:6mm;margin:0;min-height:0;font-size:7.5pt;color:#3a3348}.caller-foot .card-credit{margin-left:auto;font-size:7pt}.caller-line{min-width:0;font-weight:700}}
