@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--ink:#243e35;--paper:#f7f4ec;--muted:#68766c;--line:#d9ddd0;--green:#294d43;--clay:#a85637}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px 'DM Sans',sans-serif}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #bd784b;outline-offset:3px}.brand{display:flex;align-items:center;gap:12px;font:24px Georgia,serif}.brand b{font-weight:400;background:var(--green);color:var(--paper);padding:7px 12px;border-radius:18px 18px 5px 5px}.brand small{display:block;font:8px 'DM Sans',sans-serif;letter-spacing:2px;margin-top:6px}main{max-width:1050px;margin:auto;padding:0 24px}.hero{display:flex;align-items:center;justify-content:space-between;padding:45px 0 34px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700}.hero h1{font:64px/.99 'Libre Caslon Display',Georgia,serif;margin:17px 0;letter-spacing:-1px}.hero h1 em{color:#8c6249}.hero p:not(.eyebrow){line-height:1.8;color:var(--muted)}.hero-art{width:300px}.games{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.games button{display:flex;gap:18px;align-items:center;text-align:left;border:1px solid #c7d2c4;border-radius:12px;padding:24px;background:#e3e9dc;color:var(--ink)}.games button:last-child{background:#efe0cf;border-color:#ddc6ae}.games button[aria-pressed=true]{box-shadow:0 0 0 2px var(--green),0 7px 0 #284d4310}.games button strong{display:block;font:31px 'Libre Caslon Display',Georgia,serif}.games small{font-size:11px;display:block;margin-top:6px}.card-symbol{font:19px Georgia,serif;border:1px solid currentColor;min-width:56px;min-height:58px;display:flex;align-items:center;justify-content:center;gap:3px;border-radius:8px;transform:rotate(-6deg)}.card-symbol span{font-size:13px}.card-arrow{margin-left:auto;font-size:22px}.game-shell{background:#fffdf8;border:1px solid var(--line);border-radius:14px;padding:26px 38px 34px;box-shadow:0 10px 35px #243e3505}.toolbar{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:19px;font-size:11px}.toolbar>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.badge{padding:5px 9px;background:#ecece0;border-radius:20px;font-size:10px}.text-button{border:0;background:none;color:var(--green);padding:8px 0;text-decoration:underline;text-underline-offset:5px;font-size:12px}.game-head{display:flex;justify-content:space-between;align-items:center;margin-top:25px}h2{font:43px 'Libre Caslon Display',Georgia,serif;margin:5px 0}.game-head .eyebrow{color:var(--muted);margin:0}.help{border:1px solid #a6b39e;border-radius:50%;width:34px;height:34px;background:none;color:var(--ink)}#instruction{max-width:700px;line-height:1.8;color:var(--muted);font-size:14px;margin:12px 0}details{font-size:12px;padding:6px 0 22px}summary{cursor:pointer;color:var(--green)}#example-content{background:#edf0e5;border-left:3px solid #8fa17d;padding:15px;line-height:1.8;margin-top:12px}#board{margin-top:12px}.weave-row{display:grid;grid-template-columns:120px 1fr 120px;align-items:center;gap:20px;padding:21px 0;border-bottom:1px solid var(--line)}.word-anchor{font-size:15px;letter-spacing:2px;font-weight:700;text-align:center}.word-anchor small{display:block;font-size:8px;font-weight:400;letter-spacing:1px;color:var(--muted);margin-bottom:7px}.link-form{text-align:center;min-width:0}.letter-boxes{display:flex;gap:5px;justify-content:center}.letter-boxes input,.letter-boxes .fixed-letter{width:39px;height:46px;border:1px solid #aabb9f;border-bottom:3px solid #839678;border-radius:5px;text-align:center;font-size:21px;font-weight:600;background:#f6f7ee;color:var(--ink);text-transform:uppercase;padding:0;min-width:0}.letter-boxes input:focus{background:#fff;box-shadow:0 3px 12px #294d4320}.fixed-letter{display:grid;place-items:center;background:#dee8d4!important}.link-form button{font-size:11px;margin-top:10px;padding:7px 16px}.phrase-answer{font-size:10px;color:var(--muted);margin:10px 0 0;line-height:1.7}.row-message{font-size:11px;color:var(--clay);line-height:1.6;margin:8px 0 0}.primary,.secondary{border:1px solid #9ead92;border-radius:24px;padding:12px 20px;background:transparent;color:var(--green);font-size:12px;min-height:42px}.primary{background:var(--green);color:white;border-color:var(--green)}.actions{display:flex;gap:8px;flex-wrap:wrap}#status{min-height:28px;margin:19px 0 10px;line-height:1.7;font-size:13px;color:var(--clay)}.route-map{display:grid;grid-template-columns:1fr 35px 1fr 35px 1fr;align-items:center;text-align:center;background:linear-gradient(120deg,#e7eddf,#f0e3d3);padding:22px;border-radius:10px}.route-map small{display:block;font-size:9px;letter-spacing:1px;margin-bottom:9px}.route-map strong{font-size:24px;letter-spacing:3px}.route-map .visited{color:#486d39}.route-map>span{font-size:24px;color:#8d9d83}.current-panel{margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:15px}.current-panel small{font-size:10px;letter-spacing:1px;display:block}.current-word{display:flex;gap:5px;margin-top:9px}.current-word span{border-radius:4px;background:#294d43;color:#fff;width:38px;height:43px;display:grid;place-items:center;font-size:23px}.current-panel p{font-size:12px;line-height:1.7;color:var(--muted);max-width:240px;margin:0}.journey{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:15px 0}.journey span{font-size:12px;padding:6px 8px;background:#e9eddf;border-radius:4px;letter-spacing:1px}.journey b{font-size:12px;font-weight:400;color:#9ba591}.shelf-heading{display:flex;align-items:center;justify-content:space-between;margin:20px 0 12px}.shelf-heading h3{font-size:13px;margin:0}.shelf-heading span{font-size:10px;color:var(--muted)}.word-shelf{display:grid;grid-template-columns:repeat(8,1fr);gap:7px}.word-shelf button{min-height:48px;border:1px solid #d5dbcd;border-bottom:3px solid #c7cdbd;border-radius:6px;background:#f0f0e6;font-size:12px;letter-spacing:1px;color:var(--ink);padding:7px 2px}.word-shelf button.current{background:#294d43;color:white}.word-shelf button.possible{background:#dce7cf;border-color:#6e875b}.word-shelf button:disabled{opacity:.65}.move-input{display:flex;gap:10px;align-items:center;margin-top:15px}.move-input input{width:140px;padding:12px;border:1px solid #b3bea9;border-radius:5px;background:#fffdf8;text-transform:uppercase;letter-spacing:3px;font-size:16px}.caption{font-size:11px;color:var(--muted);line-height:1.7}#result:not(:empty){background:#e7eddf;border-radius:10px;padding:25px;margin-top:24px}#result h3{font:32px 'Libre Caslon Display',Georgia,serif;margin:0 0 10px}#result p{font-size:13px;line-height:1.8}#result button{margin:5px 8px 0 0}.under{display:flex;justify-content:space-between;gap:35px;padding:38px 0}.under h3{font:32px 'Libre Caslon Display',Georgia,serif;margin:13px 0}.under p{font-size:12px;color:var(--muted);line-height:1.9}.daily-note{border-left:1px solid var(--line);padding:10px 0 0 35px;min-width:270px}.daily-note>span{display:block;font-size:30px;color:#a96f4e;margin-bottom:10px}.daily-note strong{font-size:13px}dialog{width:min(640px,calc(100% - 24px));max-height:85vh;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:28px;color:var(--ink)}dialog::backdrop{background:#1d392e88}dialog>p{font-size:13px;line-height:1.8}.close{float:right;border:0;background:none;font-size:28px;color:var(--ink)}.filters{display:flex;gap:15px;margin:20px 0}.filters label{flex:1;font-size:11px}.filters select{display:block;width:100%;padding:10px;margin-top:6px;background:#fffdf8;border:1px solid var(--line);border-radius:5px;font-size:12px}#library-list{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}#library-list button{padding:16px 10px;border:1px solid var(--line);border-radius:7px;background:#fffdf8;text-align:left;color:var(--ink);font-size:12px}#library-list small{display:block;margin-top:8px;color:var(--muted);font-size:10px}#rules-content{font-size:14px;line-height:1.9;margin-bottom:22px}.skip{position:absolute;top:-60px}.skip:focus{top:0}.new-day{background:#efdfc8;padding:12px;border-radius:6px}@media(max-width:850px){.word-shelf{grid-template-columns:repeat(4,1fr)}.weave-row{grid-template-columns:90px 1fr 90px;gap:8px}.hero-art{width:230px}.letter-boxes input,.letter-boxes .fixed-letter{width:32px;height:40px;font-size:18px}.game-shell{padding:25px}.games button{padding:19px;gap:12px}.games button strong{font-size:28px}}@media(max-width:600px){.brand{font-size:20px}main{padding:0 17px}.hero{padding:28px 0 25px;position:relative}.hero h1{font-size:48px}.hero p:not(.eyebrow){font-size:13px}.hero-art{position:absolute;right:-5px;top:5px;width:120px;opacity:.24;pointer-events:none}.hero .eyebrow{font-size:8px}.games{gap:10px}.games button{padding:17px 12px;display:block;position:relative}.card-symbol{display:none}.games button strong{font-size:27px}.games small{font-size:9px;line-height:1.6;max-width:110px}.card-arrow{position:absolute;right:10px;top:12px;font-size:14px}.game-shell{padding:20px 15px}.toolbar{font-size:10px;gap:8px;align-items:flex-start}.toolbar .text-button{font-size:10px;white-space:nowrap}.game-head{margin-top:20px}h2{font-size:38px}#instruction{font-size:13px}.weave-row{grid-template-columns:1fr 1fr;gap:12px;padding:20px 0}.word-anchor{font-size:14px}.word-anchor:first-child{text-align:left}.word-anchor:last-child{text-align:right}.link-form{grid-row:2;grid-column:1/-1}.letter-boxes input,.letter-boxes .fixed-letter{width:34px;height:43px;font-size:20px}.letter-boxes{gap:5px}.route-map{padding:17px 8px;grid-template-columns:1fr 20px 1fr 20px 1fr}.route-map strong{font-size:17px;letter-spacing:2px}.route-map small{font-size:8px}.current-panel{align-items:flex-start;padding:15px;flex-direction:column}.current-panel p{max-width:none}.current-word span{width:39px;height:43px}.word-shelf{gap:6px}.word-shelf button{font-size:12px}.under{display:block;padding:30px 0}.daily-note{border-left:0;border-top:1px solid var(--line);padding:20px 0 0;margin-top:20px}.daily-note>span{float:left;margin:0 15px 0 0}.under h3{font-size:29px}#library-list{grid-template-columns:repeat(2,1fr)}.move-input input{width:120px}.shelf-heading span{font-size:9px}dialog{padding:22px}.primary,.secondary{padding:11px 14px}.word-anchor small{font-size:8px}.game-head .eyebrow{font-size:8px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s,box-shadow .15s}.fixed-letter{animation:arrive .25s ease-out}@keyframes arrive{from{transform:translateY(4px);opacity:.5}to{transform:none;opacity:1}}}

.letter-boxes input,.letter-boxes .fixed-letter{flex-shrink:1;min-width:0}.word-shelf button:hover:not(:disabled){background:#e0e7d5;border-color:#7f9570}
