/* Shared tool surfaces and motion extend the original Fidel Tools theme. */
:root{--ease:cubic-bezier(.22,1,.36,1)}html{scroll-behavior:smooth}main{max-width:1320px}.workspace-layout{grid-template-columns:242px minmax(0,1fr);align-items:start}.sidebar{position:sticky;top:16px;padding-top:0;max-height:calc(100vh - 32px);overflow:auto;scrollbar-width:thin;padding-right:4px}.search-label{font-size:14px;font-weight:600;display:block;margin:0 0 9px 3px}.tool-search{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);padding:10px 12px;border-radius:9px;margin-bottom:18px}.tool-search span{font-size:24px;color:var(--green)}.tool-search input{border:0;outline:0;min-width:0;width:100%;font-size:14px;background:transparent}.tool-search:focus-within{outline:2px solid var(--green)}.nav-group{margin-top:17px}.nav-group-title{font-size:12px;letter-spacing:1.4px;font-weight:700;color:var(--muted);margin:0 10px 7px}.tool-link{padding:10px 12px;margin-bottom:3px;font-size:14px;transition:background .2s,transform .3s var(--ease),border-color .2s}.tool-link small{font-size:12px}.tool-link:hover{transform:translateX(3px)}.tool-link .nav-icon{font-size:20px}.tool-link.active{box-shadow:inset 3px 0 var(--green)}.motion-toggle{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--muted);font-size:12px;padding:8px 11px;margin:20px 10px 10px}.panel{min-width:0;transform-origin:50% 0}.panel-enter{animation:panel-reveal .48s var(--ease) both}.panel h2{line-height:1.35}.segmented,.keyboard-modes{display:flex;gap:4px;border-radius:9px;background:#eef3ed;padding:4px;margin:22px 0}.segmented button,.keyboard-modes button{border:0;background:transparent;border-radius:6px;padding:10px 13px;font-size:14px;color:var(--muted);flex:1;transition:background .25s,color .25s,box-shadow .25s}.segmented button[aria-pressed=true],.keyboard-modes button[aria-pressed=true]{color:var(--green);background:#fff;box-shadow:0 2px 6px #163c2310;font-weight:600}.compact{width:260px;max-width:100%;margin:16px 0}.extra-keyboard{margin-top:12px}.extra-keyboard:empty{display:none}.extra-keyboard button{min-width:36px;min-height:38px}.keyboard-label{flex-wrap:wrap}.button,.letter-keys button,.families button,.utility-keys button{transition:transform .25s var(--ease),background .2s,box-shadow .2s}.button:active,.letter-keys button:active,.families button:active,.utility-keys button:active{transform:scale(.95)}.button:hover{box-shadow:0 5px 14px #0d554621}.button.secondary{background:#fff;color:var(--green);border-color:#bdd0c3}.button.secondary:hover{background:var(--mint)}.button:disabled{opacity:.5;transform:none;box-shadow:none}.tool-form label,.field-label{display:block;font-size:14px;font-weight:600;margin-bottom:9px}.tool-form input:not([type=checkbox]):not([type=range]),.tool-form select,.tool-form textarea{width:100%;min-width:0;border:1px solid #ccd9ce;border-radius:8px;background:#fcfdfa;color:var(--ink);padding:13px;font-size:16px;line-height:1.5}.tool-form textarea{resize:vertical;min-height:120px;font-family:'DM Sans','Noto Sans Ethiopic',sans-serif}.tool-form input:focus,.tool-form select:focus,.tool-form textarea:focus{outline:2px solid #66937a;outline-offset:1px}.tool-form input[type=range]{width:100%;accent-color:var(--green)}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field-grid.three{grid-template-columns:1fr 2fr 1.4fr}.stack{display:grid;gap:20px}.muted,.tool-note{color:var(--muted);font-size:14px;line-height:1.7}.tool-note{margin:20px 0 0}.tool-note a,.source-link{color:var(--green);text-decoration:underline;text-underline-offset:3px}.result-surface{background:#edf4ea;border:1px solid #d7e5d7;border-radius:12px;padding:25px;margin-top:25px;overflow-wrap:anywhere}.result-surface strong.big-result{display:block;color:var(--green);font-size:clamp(28px,4vw,46px);line-height:1.6;font-weight:600;margin:6px 0}.result-surface .section-label{margin-bottom:5px;color:var(--green)}.result-surface p{font-size:14px;line-height:1.7;margin:6px 0;color:var(--muted)}.result-actions{display:flex;gap:10px;margin-top:17px;flex-wrap:wrap}.error-message{min-height:0}.error-message:empty{display:none}.example-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px;align-items:center;font-size:12px;color:var(--muted)}.example-chips button{font-size:14px;color:var(--green);border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 12px}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:20px}.metric{border:1px solid var(--line);background:#fcfdfb;padding:16px;border-radius:9px;min-width:0}.metric span{display:block;font-size:12px;color:var(--muted);line-height:1.5}.metric strong{display:block;color:var(--green);font-size:23px;margin-top:7px;overflow-wrap:anywhere}.metric small{font-size:12px;color:var(--muted)}.table-scroll{overflow:auto;margin-top:20px}.data-table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}.data-table th{background:var(--mint);color:var(--green);font-weight:600}.data-table th,.data-table td{padding:13px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table tr.active-band{background:#f5f8ef}.data-table td:last-child{text-align:right}.details-block{border-top:1px solid var(--line);padding-top:18px;margin-top:24px}.details-block summary{color:var(--green);cursor:pointer;font-size:14px;font-weight:600}.resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.resource-card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:22px;display:block;transition:transform .3s var(--ease),border-color .2s,box-shadow .3s}.resource-card:hover{transform:translateY(-4px);border-color:#8ba993;box-shadow:0 8px 25px #17452b0c}.resource-card h3{font-size:18px;line-height:1.4}.resource-card p{font-size:14px;color:var(--muted);line-height:1.7}.resource-card .card-icon{margin-bottom:15px}.resources-strip{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.resources-strip a{font-size:14px;color:var(--green);text-decoration:underline;text-underline-offset:3px}.numeral-reference{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:17px}.numeral-reference div{text-align:center;background:#f5f8f1;border-radius:7px;padding:12px 5px}.numeral-reference strong{display:block;font-size:26px;color:var(--green);font-family:'Noto Sans Ethiopic',sans-serif}.numeral-reference span{font-size:12px;color:var(--muted)}
/* Calendar: two animated date cards and a usable calendar grid. */
.calendar-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;position:relative;margin-top:28px;perspective:1000px}.date-card{padding:22px 25px;border-radius:13px;position:relative;overflow:hidden;min-width:0;transform-origin:50% 0}.ethiopic-card{background:var(--green);color:#fff}.gregorian-card{background:#f3f6ed;color:var(--deep);border:1px solid #dfe6d6}.date-card-label{font-size:12px;font-weight:600;letter-spacing:1.4px;display:flex;justify-content:space-between;gap:8px}.date-card-label>span{font-size:11px;opacity:.65;letter-spacing:0}.date-card-day{display:block;font-size:clamp(52px,6vw,76px);font-weight:500;line-height:1.15;letter-spacing:-3px;margin:20px 0 4px;font-variant-numeric:tabular-nums}.date-card-month{font-size:20px;font-weight:500}.date-card-secondary{font-size:14px;opacity:.7;margin-top:9px}.date-card-year{position:absolute;right:24px;bottom:23px;font-size:23px;opacity:.65;font-variant-numeric:tabular-nums}.calendar-bridge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:6px solid #fff;background:#e7efdf;border-radius:50%;color:var(--green);height:44px;width:44px;display:grid;place-items:center;font-size:22px;z-index:1}.date-flip{animation:date-turn .65s var(--ease) both}.date-flip:nth-child(3){animation-delay:70ms}.conversion-caption{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--muted);font-size:14px;margin:7px 0 24px}.conversion-caption p{font-size:14px}.conversion-caption .text-button{white-space:nowrap;color:var(--green)}.month-explorer{border:1px solid var(--line);border-radius:12px;padding:22px}.month-topline{display:flex;justify-content:space-between;align-items:center;gap:10px}.month-topline .section-label{font-size:11px}.month-topline h3{font-size:22px;margin:7px 0 0}.month-actions{display:flex;gap:7px}.icon-button{display:grid;place-items:center;width:37px;height:37px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--green);font-size:26px}.icon-button:disabled{opacity:.3;cursor:default}.weekday-labels,.month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekday-labels{text-align:center;font-size:12px;color:var(--muted);padding:5px 0 13px}.month-days button{min-height:53px;background:#fafcf7;border:1px solid transparent;border-radius:7px;color:#2f483b;display:flex;align-items:center;justify-content:center;gap:7px;font-size:16px;transition:background .2s,transform .3s var(--ease)}.month-days button small{font-size:11px;color:#8a9889;align-self:flex-end;padding-bottom:9px}.month-days button:hover:enabled{background:#e7eee0;transform:translateY(-2px)}.month-days button[aria-pressed=true]{background:var(--green);color:#fff;box-shadow:0 3px 12px #0d554625}.month-days button[aria-pressed=true] small{color:#cadcd1}.month-days button.is-today{border-color:#b59548}.month-days button:disabled{opacity:.25}.month-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--muted);padding-top:18px}.month-legend span{display:flex;align-items:center;gap:5px}.month-legend i{display:inline-block;width:9px;height:9px;border-radius:2px}.legend-selected{background:var(--green)}.legend-today{border:1px solid #b59548}.month-legend span:last-child{margin-left:auto}.year-insight{margin-top:23px}.year-insight>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}.year-insight strong{font-weight:500;color:var(--green)}.year-track{height:5px;margin-top:10px;border-radius:4px;background:#ecf1e8;overflow:hidden}.year-track span{display:block;background:#b8994e;height:100%;transition:width .8s var(--ease)}.month-enter{animation:month-in .35s var(--ease)}
/* OCR, ASCII, and puzzle workspaces. */
.drop-zone{border:1.5px dashed #b7cdbb;border-radius:12px;background:#f8fbf4;text-align:center;padding:26px;position:relative}.drop-zone.dragging{border-color:var(--green);background:#e8f3e3}.drop-zone label{cursor:pointer;display:block;font-size:16px;font-weight:600;color:var(--green)}.drop-zone input{margin-top:16px;font-size:14px;max-width:100%}.drop-zone small{display:block;font-size:12px;color:var(--muted);margin-top:10px}.ocr-preview{display:block;max-height:270px;max-width:100%;object-fit:contain;margin:20px auto;border:1px solid var(--line);border-radius:6px}.progress-wrap{margin-top:20px}.progress-wrap progress{width:100%;height:8px;accent-color:var(--green)}.progress-wrap p{font-size:14px;color:var(--muted)}.ocr-output{margin-top:24px}.ocr-output textarea{font-family:'Noto Sans Ethiopic',sans-serif;font-size:18px;min-height:180px}.ascii-display{overflow:auto;background:#153c32;border-radius:12px;padding:25px;margin-top:24px;max-height:600px}.ascii-display pre{font-family:Consolas,'Courier New',monospace;font-size:9px;line-height:1;letter-spacing:0;color:#ddedd9;margin:0;white-space:pre;font-variant-ligatures:none}.ascii-controls{margin-top:19px;display:flex;justify-content:space-between;align-items:center;gap:10px}.ascii-controls span{font-size:12px;color:var(--muted)}.puzzle-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:25px;align-items:start}.puzzle-board{width:100%;aspect-ratio:1;position:relative;background:#e3ebdf;border:8px solid #e3ebdf;border-radius:15px;outline-offset:5px;touch-action:manipulation;box-shadow:inset 0 2px 8px #1c3c1910}.puzzle-tile{position:absolute;width:calc(33.3333% - 6px);height:calc(33.3333% - 6px);left:calc(var(--col)*33.3333% + 3px);top:calc(var(--row)*33.3333% + 3px);background:var(--green);color:#fff;border:0;border-radius:9px;box-shadow:0 3px 0 #083d31,0 5px 8px #1c442514;transition:left .25s var(--ease),top .25s var(--ease),background .2s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:32px;font-weight:500}.puzzle-tile.word-tile{font-size:clamp(16px,1.5vw,24px);font-family:'Noto Sans Ethiopic',sans-serif}.puzzle-tile small{font-family:'DM Sans',sans-serif;font-size:10px;opacity:.7}.puzzle-tile.can-move{background:#236b51}.puzzle-tile.can-move:hover{background:#337c5e}.puzzle-board.complete .puzzle-tile{background:#a88332;box-shadow:0 3px 0 #876720;animation:tile-celebrate .6s var(--ease)}.puzzle-target h3{font-size:15px;margin:0 0 12px}.target-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.target-grid span{background:#eff4e9;border:1px solid #dfe7d9;display:grid;place-items:center;aspect-ratio:1;border-radius:5px;font-size:12px;color:var(--green);min-width:0}.target-grid.words{grid-template-columns:1fr}.target-grid.words span{aspect-ratio:auto;display:flex;justify-content:space-between;padding:8px 9px;gap:8px;font-size:14px}.puzzle-stats{display:flex;gap:24px;padding:18px 0;align-items:center}.puzzle-stats span{font-size:12px;color:var(--muted)}.puzzle-stats strong{display:block;font-size:23px;color:var(--green);font-variant-numeric:tabular-nums;margin-top:4px}.puzzle-status{font-size:15px;color:var(--green);min-height:24px;line-height:1.6}.birthday-line{display:flex;align-items:center;gap:16px;padding:20px;background:#f8f3e5;border:1px solid #ecdfbb;border-radius:10px;margin-top:20px}.birthday-line>span{font-size:30px;color:#ab8235}.birthday-line p{margin:0;font-size:14px;line-height:1.7}.birthday-line strong{display:block;color:#6e5624}.phone-details{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:18px}.phone-details dt{font-size:12px;color:var(--muted)}.phone-details dd{font-size:17px;color:var(--green);margin:6px 0 0;overflow-wrap:anywhere}.feature-card{transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}.feature-card:hover{transform:translateY(-6px);box-shadow:0 10px 30px #173c2610}.header .brand-mark{transition:transform .55s var(--ease)}.header .brand:hover .brand-mark{transform:rotate(-8deg)}.reveal{animation:card-appear .7s var(--ease) both}.reveal:nth-child(2){animation-delay:60ms}.reveal:nth-child(3){animation-delay:120ms}
@keyframes panel-reveal{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes date-turn{from{opacity:.3;transform:rotateX(-16deg) translateY(10px)}to{opacity:1;transform:rotateX(0) translateY(0)}}@keyframes month-in{from{opacity:.4;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes card-appear{from{opacity:0;transform:translateY(17px)}to{opacity:1;transform:translateY(0)}}@keyframes tile-celebrate{0%,100%{transform:scale(1)}50%{transform:scale(.92)}}
@media(max-width:1050px){.workspace-layout{grid-template-columns:215px minmax(0,1fr);gap:20px}.puzzle-layout{grid-template-columns:minmax(0,1fr) 150px}.puzzle-tile.word-tile{font-size:17px}.date-card{padding:19px}.date-card-year{right:17px;font-size:20px}.date-card-month{font-size:18px}.phone-details{grid-template-columns:1fr}.metrics{gap:8px}.metric{padding:12px}.metric strong{font-size:20px}}
@media(max-width:720px){.workspace-layout{display:block}.sidebar{position:static;max-height:none;display:block;overflow:visible;padding:0}.search-label{font-size:14px}.tool-search{margin-bottom:12px}#tool-navigation{display:flex;gap:7px;overflow:auto;padding:2px 2px 10px;margin-bottom:13px;scrollbar-width:thin}.nav-group{display:contents}.nav-group-title{display:none}.tool-link{flex:0 0 auto;white-space:nowrap;padding:10px 13px;display:flex;gap:8px;min-height:44px}.tool-link small{display:none}.motion-toggle{margin:0 0 15px;font-size:12px}.tool-link.active{box-shadow:none}.calendar-pair{gap:14px}.date-card{padding:17px}.date-card-label{font-size:10px;letter-spacing:1px}.date-card-label>span{font-size:10px}.date-card-day{font-size:56px;margin:16px 0 5px}.date-card-month{font-size:17px}.date-card-year{position:static;display:block;font-size:20px;margin-top:10px}.calendar-bridge{width:36px;height:36px;border-width:4px;font-size:18px}.date-card-secondary{font-size:13px}.month-explorer{padding:16px 12px}.month-topline h3{font-size:19px}.month-days,.weekday-labels{gap:4px}.month-days button{min-height:43px;gap:2px;flex-direction:column;font-size:15px}.month-days button small{align-self:auto;padding:0;font-size:10px}.month-legend{gap:10px;font-size:11px}.month-legend span:last-child{margin-left:0}.conversion-caption{align-items:flex-start;flex-wrap:wrap;gap:0}.conversion-caption p{margin:7px 0 0}.conversion-caption .text-button{padding:8px 0}.year-insight>div:first-child{flex-wrap:wrap}.keyboard-modes button{font-size:13px;padding:10px 6px}.field-grid{grid-template-columns:1fr}.field-grid.three{grid-template-columns:.8fr 1.5fr 1fr;gap:9px}.field-grid.three input,.field-grid.three select{padding:11px 5px}.metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.metric{padding:12px 9px}.metric strong{font-size:20px}.metric span{font-size:11px}.result-surface{padding:19px}.resource-grid{grid-template-columns:1fr}.puzzle-layout{grid-template-columns:1fr}.puzzle-target{max-width:none}.target-grid{max-width:170px}.target-grid.words{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}.puzzle-tile.word-tile{font-size:23px}.puzzle-board{max-width:380px;margin:auto}.puzzle-stats{gap:22px}.ascii-display{padding:17px 10px}.ascii-controls{flex-wrap:wrap}.phone-details{grid-template-columns:1fr}.tool-note{font-size:13px}.intro{margin-bottom:24px}.panel-heading .pill{white-space:nowrap}.drop-zone{padding:22px 14px}}
html.reduce-motion *,html.reduce-motion *::before,html.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html.reduce-motion{scroll-behavior:auto}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
