@font-face{font-family:Atkinson;src:url("../fonts/atkinson-hyperlegible-400.woff2") format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Atkinson;src:url("../fonts/atkinson-hyperlegible-700.woff2") format("woff2");font-weight:700;font-display:swap}*{box-sizing:border-box}:root{font:17px Atkinson,system-ui,sans-serif;color:#111;background:#123d73}.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}.catalog-notice{margin:16px 0;padding:14px;border:4px solid #111;background:#ffe447;font-weight:700}.catalog-notice[hidden]{display:none}#catalog-machine[hidden]{display:none} body{width:min(100% - 20px,1180px);margin:0 auto 30px;background-color:#1759a6;background-image:radial-gradient(rgb(255 255 255/18%) 1.5px,transparent 1.5px);background-size:10px 10px}button,input,select{font:inherit}button,a{font-weight:700}.catalog-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:14px 0 25px;padding:16px 20px;border:5px solid #111;background:#ffe447;box-shadow:8px 8px #bd1e2b;transform:rotate(-.25deg)}.catalog-head>div:last-child{display:grid;justify-items:end;gap:9px}.catalog-head p{max-width:560px;margin:0;text-align:right}.catalog-head a{padding:6px 11px;border:3px solid #111;color:#fff;background:#bd1e2b;box-shadow:3px 3px #111;text-decoration:none;text-transform:uppercase}.catalog-mark{display:flex;align-items:center;min-width:340px;margin:0;font-weight:700;line-height:.9;transform:skew(-4deg) rotate(-2deg)}.catalog-mark span{z-index:1;padding:7px 9px 5px;border:4px solid #111;color:#fff;background:#bd1e2b;box-shadow:4px 4px #111;font-size:1.05rem;transform:rotate(-6deg)}.catalog-mark strong{margin-left:-4px;color:#1759a6;font-size:2.75rem;letter-spacing:-.08em;text-shadow:3px 3px #fff,6px 6px #111;-webkit-text-stroke:2px #111}.size-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:15px}.size-switch button,.filters input,.filters select,.step-controls button,.family-nav button{min-height:44px;border:3px solid #111;color:#111;background:#fff7df;box-shadow:4px 4px #111}.size-switch button{min-width:0;padding:10px;font-size:1.05rem;overflow-wrap:anywhere}.size-switch button.active{color:#fff;background:#bd1e2b}.size-switch b{margin-left:7px;padding:2px 6px;color:#111;background:#ffe447}.catalog-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.catalog-summary div{padding:10px 14px;border:4px solid #111;background:#fff;box-shadow:5px 5px #111}.catalog-summary span{display:block;color:#37424c;font-size:.72rem;font-weight:700}.catalog-summary strong{display:block;font-size:1.5rem}.catalog-explain{margin:14px 0;padding:10px 13px;border:3px solid #111;background:#ffe447}.filters{display:grid;grid-template-columns:1.2fr .8fr .7fr 1fr;gap:9px;margin-bottom:15px;padding:12px;border:4px solid #111;background:#fff7df;box-shadow:6px 6px #bd1e2b}.filters label{display:grid;gap:4px;font-size:.76rem;font-weight:700}.filters input,.filters select{width:100%;padding:6px;box-shadow:none}.catalog-body{display:grid;grid-template-columns:285px minmax(0,1fr);gap:14px}.family-index{height:720px;overflow:auto;border:4px solid #111;background:#fff7df;box-shadow:6px 6px #111}.family-index button{display:grid;grid-template-columns:1fr auto;width:100%;padding:8px 9px;border:0;border-bottom:2px solid #111;color:#111;background:#fff;text-align:left;cursor:pointer}.family-index button:nth-child(odd){background:#fff7df}.family-index button:hover,.family-index button.active{color:#fff;background:#1759a6}.family-index button span{grid-column:1/-1;color:#4f5962;font-size:.72rem}.family-index button:hover span,.family-index button.active span{color:#fff}.family-index button em{font-style:normal}.family-index #no-results{padding:10px}.list-pages{position:sticky;bottom:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:5px;padding:7px;border-top:3px solid #111;background:#ffe447}.list-pages[hidden]{display:none}.list-pages button{min-height:44px;padding:4px;border:2px solid #111;background:#fff}.list-pages span{text-align:center;font-size:.7rem;font-weight:700}.family-detail{display:grid;grid-template-columns:380px minmax(0,1fr);gap:18px;min-height:720px;padding:14px;border:5px solid #111;background:#fff;box-shadow:8px 8px #bd1e2b}.family-detail.aggregate{grid-template-columns:minmax(0,1fr)}.drawing canvas{display:block;width:360px;height:360px;border:5px solid #111;background:#123d73;image-rendering:pixelated}.piece-key{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0}.piece-key>span{display:flex;align-items:center;gap:5px;padding:3px 6px;border:2px solid #111;background:#fff7df;font-size:.7rem;font-weight:700}.step-controls{display:grid;grid-template-columns:44px minmax(80px,1fr) 44px 70px;gap:6px;align-items:center}.step-controls button,.family-nav button{padding:5px;background:#ffe447}.step-controls input{width:100%}#step-label{margin:7px 0 0;font-weight:700}.family-data{min-width:0}.material{display:inline-block;margin:0 0 6px;padding:4px 8px;border:3px solid #111;color:#fff;background:#bd1e2b;font-size:.75rem;font-weight:700;text-transform:uppercase;transform:rotate(-2deg)}.family-data .family-title{margin:0 0 9px;font-size:2rem;overflow-wrap:anywhere}.family-data h3{margin:15px 0 6px;font-size:.95rem;text-transform:uppercase}.badges{display:flex;flex-wrap:wrap;gap:5px}.badges span{padding:3px 7px;border:2px solid #111;background:#ffe447;font-size:.72rem}.recipe{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.recipe li{display:flex;align-items:center;gap:7px;padding:5px 9px;border:3px solid #111;background:#fff7df;font-weight:700}.recipe li span{display:grid}.recipe li small{font-size:.68rem;font-weight:400}.family-data dl{margin:13px 0}.family-data dl div{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-top:2px dotted #111}.family-data dd{margin:0;text-align:right;font-weight:700}.order{display:grid;gap:5px;margin:0;padding-left:28px}.order li{display:list-item;padding:5px 7px;border:0;background:#fff7df}.order li .piece-shape{margin-right:8px;vertical-align:middle}.order li::marker{font-weight:700}.family-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}footer{margin-top:18px;padding:10px;border:3px solid #111;background:#ffe447;text-align:center;font-size:.78rem}@media(max-width:950px){.catalog-body{grid-template-columns:220px minmax(0,1fr)}.family-detail{grid-template-columns:320px minmax(0,1fr)}.drawing canvas{width:300px;height:300px}}@media(max-width:760px){body{width:min(100% - 8px,620px)}.catalog-head{padding:11px}.catalog-mark{min-width:240px}.catalog-mark strong{font-size:2rem}.catalog-head p{display:none}.catalog-summary{grid-template-columns:repeat(3,1fr)}.filters{grid-template-columns:1fr 1fr}.catalog-body{grid-template-columns:1fr}.family-index{height:280px}.family-detail{grid-template-columns:1fr;min-height:0}.drawing canvas{width:min(360px,100%);height:auto}}@media(max-width:430px){.catalog-head{gap:8px}.catalog-mark{min-width:0}.catalog-mark span{padding:5px;border-width:3px;font-size:.75rem}.catalog-mark strong{font-size:1.55rem;text-shadow:2px 2px #fff,4px 4px #111;-webkit-text-stroke:1px #111}.catalog-head a{padding:5px 7px;font-size:.68rem;text-align:center}.size-switch{gap:7px}.catalog-summary{gap:5px}.catalog-summary div{padding:7px;border-width:3px}.catalog-summary strong{font-size:1.15rem}.catalog-explain{font-size:.86rem}.filters{grid-template-columns:1fr}.family-detail{padding:8px}.step-controls{grid-template-columns:40px minmax(60px,1fr) 40px 60px}.piece-key span{font-size:.66rem}}
.catalog-head nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.construction-score{margin:10px 0 14px;padding:11px;border:4px solid #111;background:#ffe447;box-shadow:5px 5px #bd1e2b}.construction-score>span{display:block;font-size:.72rem;font-weight:700}.construction-score>strong{display:block;margin:2px 0 8px;color:#1759a6;font-size:2.3rem;line-height:1}.construction-score dl{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;margin:0}.construction-score dl div{padding:4px 0;border-top:2px dotted #111}.construction-score p{margin:8px 0 0;font-size:.76rem;line-height:1.3}@media(max-width:430px){.catalog-head nav{display:grid;gap:5px}.construction-score dl{grid-template-columns:1fr}.construction-score>strong{font-size:1.9rem}}
.catalog-explain p{margin:3px 0}
.arrangement-data{margin:9px 0;border:3px solid #111;background:#fff7df}.arrangement-data summary{padding:7px;font-weight:700;cursor:pointer}.arrangement-scroll{max-width:100%;overflow:auto;padding:0 7px 7px}.arrangement-data table{width:100%;border-collapse:collapse;font-size:.72rem}.arrangement-data caption{padding:4px;text-align:left}.arrangement-data th,.arrangement-data td{min-width:3.2rem;padding:4px;border:1px solid #111;text-align:center}.arrangement-data th{background:#ffe447}

.piece-shape {
  --piece-color: #d7dce2;
  display: inline-grid;
  grid-template-columns: repeat(4, 8px);
  grid-template-rows: repeat(2, 8px);
  flex: none;
  width: 35px;
  height: 18px;
  gap: 1px;
  place-content: center;
}

.piece-shape i {
  width: 8px;
  height: 8px;
  border: 1px solid #111;
  background: var(--piece-color);
}

.piece-shape--I i:nth-child(1) { grid-area: 2 / 1; }
.piece-shape--I i:nth-child(2) { grid-area: 2 / 2; }
.piece-shape--I i:nth-child(3) { grid-area: 2 / 3; }
.piece-shape--I i:nth-child(4) { grid-area: 2 / 4; }
.piece-shape--J i:nth-child(1) { grid-area: 1 / 1; }
.piece-shape--J i:nth-child(2) { grid-area: 2 / 1; }
.piece-shape--J i:nth-child(3) { grid-area: 2 / 2; }
.piece-shape--J i:nth-child(4) { grid-area: 2 / 3; }
.piece-shape--L i:nth-child(1) { grid-area: 1 / 3; }
.piece-shape--L i:nth-child(2) { grid-area: 2 / 1; }
.piece-shape--L i:nth-child(3) { grid-area: 2 / 2; }
.piece-shape--L i:nth-child(4) { grid-area: 2 / 3; }
.piece-shape--O i:nth-child(1) { grid-area: 1 / 2; }
.piece-shape--O i:nth-child(2) { grid-area: 1 / 3; }
.piece-shape--O i:nth-child(3) { grid-area: 2 / 2; }
.piece-shape--O i:nth-child(4) { grid-area: 2 / 3; }
.piece-shape--S i:nth-child(1) { grid-area: 1 / 2; }
.piece-shape--S i:nth-child(2) { grid-area: 1 / 3; }
.piece-shape--S i:nth-child(3) { grid-area: 2 / 1; }
.piece-shape--S i:nth-child(4) { grid-area: 2 / 2; }
.piece-shape--T i:nth-child(1) { grid-area: 1 / 2; }
.piece-shape--T i:nth-child(2) { grid-area: 2 / 1; }
.piece-shape--T i:nth-child(3) { grid-area: 2 / 2; }
.piece-shape--T i:nth-child(4) { grid-area: 2 / 3; }
.piece-shape--Z i:nth-child(1) { grid-area: 1 / 1; }
.piece-shape--Z i:nth-child(2) { grid-area: 1 / 2; }
.piece-shape--Z i:nth-child(3) { grid-area: 2 / 2; }
.piece-shape--Z i:nth-child(4) { grid-area: 2 / 3; }

@media print {
  :root,
  body {
    color: #111;
    background: #fff;
  }

  body {
    width: 100%;
    margin: 0;
  }

  .catalog-head,
  .catalog-summary div,
  .catalog-explain,
  .family-detail,
  .construction-score,
  footer {
    box-shadow: none;
    transform: none;
  }

  .catalog-head nav,
  .size-switch,
  .filters,
  .family-index,
  .step-controls,
  .family-nav {
    display: none !important;
  }

  .catalog-body {
    display: block;
  }

  .family-detail {
    min-height: 0;
    break-inside: auto;
  }

  .arrangement-data > summary {
    display: none;
  }

  .arrangement-data > .arrangement-scroll {
    display: block !important;
    overflow: visible;
  }

  .family-data h2,
  .family-data h3 {
    break-after: avoid-page;
  }
}
