:root{color-scheme:light;--ink:#233c32;--muted:#5a695c;--paper:#fbf9f2;--sage:#dce7d9;--line:#ccd4c6;--green:#2e5740;--orange:#c0572f;font-family:Georgia,'Times New Roman',serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}a{color:var(--green)}button,input,textarea,select{font:inherit}button,input,select,textarea,summary{touch-action:manipulation}button{min-height:44px;border:1px solid var(--green);padding:11px 16px;border-radius:6px;background:#fffdf7;color:var(--green);cursor:pointer;font-family:Arial,sans-serif;font-size:.9rem;font-weight:700}button:hover:not(:disabled){background:var(--sage)}button:disabled{opacity:.52;cursor:not-allowed}button.primary{background:var(--green);color:white;width:100%;display:flex;justify-content:space-between;margin-top:20px}button.primary:hover{background:#213f2e}button.secondary{width:100%;margin-top:8px;border-color:var(--line)}:focus-visible{outline:3px solid var(--orange);outline-offset:4px}.skip{position:absolute;left:18px;top:-100px;background:#fff;padding:12px;z-index:10}.skip:focus{top:15px}.site-header{display:flex;align-items:center;justify-content:space-between;padding:24px 0;border-bottom:1px solid var(--line);max-width:1200px;margin:0 auto}.brand{font-size:1.35rem;font-weight:bold;text-decoration:none;display:flex;align-items:center;gap:10px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;background:var(--green);color:white;width:32px;height:36px;border-radius:50% 50% 3px 3px;font-size:1rem}.site-header nav{display:flex;gap:26px;font:14px Arial,sans-serif}.site-header nav a{text-underline-offset:5px}main{max-width:1200px;margin:auto}.intro{padding:62px 0 40px;max-width:770px}.eyebrow,.guide article>span{font:700 11px Arial,sans-serif;letter-spacing:2px;color:var(--muted)}h1{font-size:clamp(3rem,7vw,5rem);font-weight:400;line-height:1.04;letter-spacing:-3px;margin:20px 0}.lede{font-size:1.15rem;line-height:1.6;max-width:630px;color:var(--muted)}.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;font:12px Arial,sans-serif}.pills span{border:1px solid var(--line);padding:8px 11px;border-radius:20px}.workspace{display:grid;grid-template-columns:350px minmax(0,1fr);gap:32px;align-items:start}.settings{background:#edf1e6;border:1px solid var(--line);padding:26px;border-radius:12px}.section-title{display:flex;gap:12px;align-items:center;margin-bottom:25px}.section-title h2{font-size:1.2rem;margin:0;font-weight:400}.step{font:12px Arial,sans-serif;border:1px solid var(--line);padding:7px;border-radius:50%;color:var(--muted)}label{display:block;font:700 13px Arial,sans-serif;margin:18px 0 8px}.optional{font-weight:400;color:var(--muted);float:right}input,textarea,select{width:100%;min-width:0;border:1px solid #9da99a;background:#fffdf7;color:var(--ink);border-radius:5px;padding:11px;font:14px/1.5 Arial,sans-serif;min-height:44px}textarea{resize:vertical;max-height:500px;min-height:180px;letter-spacing:1px}.hint,.note{font:12px/1.65 Arial,sans-serif;color:#4e5e50;margin:0 0 10px}.note{margin:20px 0 0;border-top:1px solid var(--line);padding-top:18px}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.result{min-width:0;padding-top:18px}#status{font:14px/1.6 Arial,sans-serif;color:var(--muted);min-height:44px}.print-controls{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.sheet{padding:30px;background:white;border:1px solid var(--line);box-shadow:0 5px 0 #eaece2;border-radius:3px;margin:24px 0;color:#24372c;overflow-wrap:anywhere}.sheet-top{display:flex;justify-content:space-between;gap:16px;font:9px Arial,sans-serif;letter-spacing:1.5px;color:#647061;border-bottom:1px solid #ddd;padding-bottom:18px}.sheet-brand{font-weight:700}.sheet h2{font-size:1.7rem;font-weight:400;margin:22px 0 10px}.sheet-detail{font:12px/1.6 Arial,sans-serif;margin:0 0 16px}.grid-scroll{overflow-x:auto;padding:4px 0 10px}.letter-grid{border-collapse:collapse;table-layout:fixed;margin:0 auto;width:100%;font-family:'Courier New',monospace;text-align:center;font-weight:bold;line-height:1.3;min-width:230px}.letter-grid td{width:5%;padding:6px 2px;font-size:19px;border:1px solid #e3e6de}.letter-grid.grid-15{min-width:325px}.letter-grid.grid-20{min-width:420px}.letter-grid.grid-20 td{font-size:16px;padding:5px 1px}.letter-grid caption{font:11px/1.6 Arial,sans-serif;padding:0 0 12px;color:var(--muted)}.letter-grid .answer-cell{background:#d9e4d3;text-decoration:underline;text-underline-offset:3px;color:#16351e}.sheet h3{font:700 12px Arial,sans-serif;margin-top:22px}.word-list{padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 15px;font:700 13px/1.5 Arial,sans-serif;letter-spacing:.4px}.sheet-note{font:11px/1.7 Arial,sans-serif;color:var(--muted);border-top:1px solid #ddd;margin:22px 0 0;padding-top:12px}.key-list{padding-left:20px;font:12px/1.8 Arial,sans-serif}.answer-details summary{padding:16px 0;min-height:44px;cursor:pointer;font:700 14px Arial,sans-serif}.warning{background:#fff0de;border:1px solid #bc8b53;color:#57391e;padding:16px;border-radius:6px;font:13px/1.6 Arial,sans-serif;overflow-wrap:anywhere}.warning h3{margin:0}.warning ul{padding-left:20px}.guide{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;border-top:1px solid var(--line);padding:44px 0;margin-top:64px}.guide h2{font-size:1.5rem;font-weight:400}.guide p{color:var(--muted);font-size:.95rem;line-height:1.65}footer{border-top:1px solid var(--line);max-width:1200px;margin:auto;padding:25px 0;display:flex;gap:20px;justify-content:space-between;color:var(--muted);font:12px/1.6 Arial,sans-serif}.document{max-width:760px;padding:60px 0}.document h1{font-size:3rem;letter-spacing:-1px}.document h2{margin-top:32px}.document p,.document li{line-height:1.8;color:#435347}.document ul{padding-left:22px}[hidden]{display:none!important}@media(max-width:1250px){main,.site-header,footer{margin-left:24px;margin-right:24px}}@media(max-width:900px){.workspace{grid-template-columns:300px minmax(0,1fr);gap:20px}.settings{padding:20px}.field-pair{grid-template-columns:1fr}.sheet{padding:20px}.word-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.site-header{padding:20px 0;gap:12px}.site-header nav{gap:14px;font-size:12px}.brand{font-size:1.1rem}.intro{padding:36px 0}.workspace{grid-template-columns:1fr}.field-pair{grid-template-columns:1fr 1fr}.guide{grid-template-columns:1fr;gap:16px;margin-top:38px;padding:30px 0}.guide h2{margin:12px 0}.result{padding-top:12px}footer{display:block}.sheet{padding:16px}.sheet-top{font-size:8px}main,.site-header,footer{margin-left:16px;margin-right:16px}}@media print{@page{size:auto;margin:12mm}html,body{background:white;color:black;font-family:Arial,sans-serif}body>*{display:none!important}body>main{display:block!important;max-width:none;margin:0}main>*{display:none!important}main>.workspace{display:block!important;margin:0}.workspace>*{display:none!important}.workspace>.result{display:block!important;padding:0}.result>*{display:none!important}.result>#output:not([hidden]){display:block!important}#output[hidden]{display:none!important}#output>*{display:none!important}#output>.puzzle-sheet{display:block!important}body.print-key #output>.puzzle-sheet{display:none!important}body.print-key #output>.answer-details{display:block!important}body.print-key .answer-details>summary{display:none!important}body.print-key .answer-details>.key-sheet{display:block!important}.answer-details::details-content{display:block!important;content-visibility:visible!important}.sheet{box-shadow:none;border:0;border-radius:0;margin:0;padding:0}.sheet h2{font-size:20pt;margin-top:14px}.sheet-top{padding-bottom:10px}.grid-scroll{overflow:visible;padding:0}.letter-grid,.letter-grid.grid-15,.letter-grid.grid-20{min-width:0;width:100%;max-width:175mm;break-inside:avoid}.letter-grid td,.letter-grid.grid-20 td{font-size:11pt;padding:3px 0;color:black}.letter-grid.grid-20 td{font-size:10pt;padding:2px 0}.letter-grid .answer-cell{color:black;background:#ddd!important;text-decoration:underline;font-weight:900;print-color-adjust:exact;-webkit-print-color-adjust:exact}.word-list{font-size:10pt;gap:5px 15px;grid-template-columns:repeat(3,minmax(0,1fr))}.word-list li,.key-list li{break-inside:avoid}.key-list{font-size:9pt;line-height:1.5;columns:2;column-gap:20px}.sheet-note{font-size:8pt}.sheet-detail{font-size:9pt}.sheet-top{font-size:8pt}}
