/* Luckform 0.2 — utilitarian directory system. Sora served via Google Fonts. */
:root{--lf-ink:#151519;--lf-muted:#74747b;--lf-line:#e9e9ed;--lf-surface:#fff;--lf-soft:#f8f8fa;--lf-accent:#8d6ae6}
html{scroll-padding-top:84px}
body{background:#fff;color:var(--lf-ink);font-family:Sora,Inter,system-ui,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}
a{color:#4438a8}
.container{width:min(1150px,calc(100% - 52px));margin-inline:auto}
.header{background:rgba(255,255,255,.97);border-bottom:1px solid var(--lf-line);box-shadow:none}
.header-inner{min-height:75px;flex-wrap:nowrap}
.brand{font-family:Sora,Inter,system-ui,sans-serif;font-size:25px;font-weight:600;letter-spacing:-1.5px;gap:0;color:#111116}
.brand:hover{color:#111116}
.brand-period{color:#a17ff0}
.header .nav{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.header .nav a{font-family:inherit;color:#686872;font-size:12px;font-weight:600;border-radius:8px;padding:9px 12px}
.header .nav a:hover,.header .nav a[aria-current=page]{background:#f5f3fa;color:#151519}
.lf-directory{min-height:calc(100vh - 182px)}
.lf-top{padding:55px 0 34px;border-bottom:1px solid #efeff1}
.lf-topline{display:flex;gap:11px;align-items:center;font-size:10px;font-weight:700;color:#898991;letter-spacing:1.4px}
.lf-status-dot{height:7px;width:7px;background:#c2a5f9;border-radius:50%}
.lf-topline-rule{height:1px;width:31px;background:#dfdfe3}
.lf-top h1{font-size:clamp(38px,5vw,58px);font-weight:700;letter-spacing:-2.5px;line-height:1.08;margin:19px 0 29px;color:#151519}
.lf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.lf-search{display:flex;align-items:center;gap:11px;width:min(435px,100%);height:49px;border:1px solid #dedee5;background:#fff;border-radius:11px;padding:0 14px;transition:border-color .16s,box-shadow .16s}
.lf-search:focus-within{border-color:#9b86c7;box-shadow:0 0 0 3px #9b86c723}
.lf-search svg{width:18px;height:18px;flex:none;stroke:#797985;stroke-width:2;fill:none;stroke-linecap:round}
.lf-search input{min-width:0;flex:1;height:100%;padding:0;border:0;outline:0;font-family:inherit;font-size:13px;background:transparent;color:#19191d}
.lf-search input::placeholder{color:#a2a2aa}
.lf-key-hint{border:1px solid #e7e7ec;padding:1px 7px;border-radius:6px;color:#a1a1ac;font:500 12px ui-monospace,monospace}
.lf-filterbar{display:flex;gap:6px;flex-wrap:wrap}
.lf-filter{font-family:inherit;font-weight:600;border:1px solid transparent;background:transparent;color:#85858d;border-radius:8px;padding:9px 13px;min-height:37px;font-size:12px;cursor:pointer}
.lf-filter.active{background:#17171b;color:#fff}
.lf-filter:hover:not(.active){color:#111;border-color:#e2e2e8}
.lf-tool-section{padding:26px 0 70px}
.lf-sectionbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 19px}
.lf-sectionbar h2{font-size:15px;letter-spacing:-.4px;font-weight:700;margin:0}
.lf-sectionbar p{font-size:12px;font-weight:500;color:#898992;margin:0}
.lf-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.lf-card{min-width:0;min-height:255px;display:flex;flex-direction:column;align-items:flex-start;padding:24px 23px 21px;border:1px solid #e8e8ed;border-radius:15px;background:#fff;text-decoration:none;color:#18181c;transition:transform .16s,border-color .16s,box-shadow .16s;position:relative}
.lf-card:hover{transform:translateY(-3px);border-color:#d4c9ed;box-shadow:0 14px 35px #34304e10;color:#18181c}
.lf-card:focus-visible{outline:3px solid #9b88f2;outline-offset:3px}
.lf-card[hidden]{display:none!important}
.lf-icon{height:52px;width:52px;border-radius:13px;display:grid;place-items:center;margin-bottom:19px}
.lf-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.lf-icon .lf-glyph{font-size:30px;line-height:1}
.lf-purple{background:#efe9ff;color:#6c4bbf}.lf-pink{background:#ffe8f2;color:#d75c94}.lf-orange{background:#fff0d9;color:#bd7627}.lf-blue{background:#e8f1ff;color:#367cb7}.lf-green{background:#e4f7ef;color:#248466}
.lf-card-label{font-size:9px;font-weight:700;letter-spacing:1.25px;color:#92929d;margin-bottom:5px}
.lf-card-title{display:flex;gap:8px;align-items:center;justify-content:space-between;width:100%;font-size:16px;letter-spacing:-.5px;font-weight:700;line-height:1.35}
.lf-link-arrow{font-family:system-ui,sans-serif;font-size:18px;color:#a5a5ab;font-weight:500;transition:color .16s,transform .16s}
.lf-card:hover .lf-link-arrow{color:#222;transform:translate(2px,-2px)}
.lf-card-description{margin:9px 0 18px;font-size:12px;font-weight:400;color:#787883;line-height:1.7;min-height:40px}
.lf-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}
.lf-tags span{font-size:9px;font-weight:600;border:1px solid #eeeeef;color:#83838a;background:#fafafa;padding:5px 8px;border-radius:5px}
.lf-noresults{text-align:center;padding:75px 12px;color:#38383e}
.lf-noresults[hidden]{display:none}
.lf-noresults p{color:#777}
.lf-noresults button{border:1px solid #222;border-radius:8px;padding:9px 13px;background:#fff;color:#16161b;font-weight:600}
/* Functional tool pages */
.lf-page{max-width:850px;margin-inline:auto;padding-top:36px}
.lf-page-top{margin-bottom:25px}
.lf-page-top .breadcrumbs{font-size:12px}
.lf-page h1{font-size:clamp(30px,4.5vw,43px);font-weight:700;letter-spacing:-1.6px;margin:13px 0 8px}
.lf-page-lead{color:#74747e;font-size:13px;line-height:1.75;max-width:690px;margin:0}
.lf-tool-panel{border:1px solid #e6e6eb;border-radius:16px;background:#fff;padding:25px;margin-bottom:18px;box-shadow:0 8px 24px #15151505}
.lf-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.lf-field{display:flex;flex-direction:column;gap:8px}
.lf-field label{font-weight:650;font-size:12px;color:#29292e}
.lf-field input,.lf-field select{height:44px;border:1px solid #d9d9e1;border-radius:9px;padding:0 12px;min-width:0;width:100%;background:#fff;color:#17171b;font-family:inherit;font-size:13px}
.lf-field input[type=file]{height:auto;padding:12px}
.lf-field small{font-size:11px;color:#888893}
.lf-inline{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.lf-panel-title{font-weight:700;font-size:15px;margin:0 0 18px}
.lf-primary-btn,.lf-secondary-btn{padding:10px 16px;min-height:42px;border-radius:9px;font-family:inherit;font-weight:650;font-size:12px;cursor:pointer;text-decoration:none;display:inline-grid;place-items:center}
.lf-primary-btn{border:1px solid #1c1c21;background:#1c1c21;color:#fff}.lf-primary-btn:hover{background:#3c3b45;color:white}
.lf-secondary-btn{border:1px solid #dadade;background:#fff;color:#222}.lf-secondary-btn:hover{background:#f5f5f7;color:#222}
.lf-notice{background:#f9f8fc;border-radius:9px;padding:14px;color:#666674;font-size:12px;line-height:1.7;margin-top:20px}
.lf-status{font-size:12px;color:#686874;margin-top:15px;min-height:20px}
.lf-error{color:#ad2e3b}.lf-ok{color:#167a57}
.lf-resultbox{background:#f8f7fb;border:1px solid #ece9f2;border-radius:12px;padding:21px}
.lf-result-label{font-size:11px;color:#777481;display:block;margin-bottom:7px}
.lf-result-number{font-size:clamp(27px,5vw,42px);font-weight:700;letter-spacing:-1.7px;line-height:1.2;font-variant-numeric:tabular-nums;color:#1b1a22}
.lf-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:15px}
.lf-detail{border:1px solid #ececf0;border-radius:10px;padding:13px}
.lf-detail span{display:block;color:#888;font-size:10px;margin-bottom:5px}
.lf-detail strong{font-size:15px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.lf-calculator{max-width:450px;margin:0 auto}
.lf-calc-screen{height:112px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:8px;padding:19px;border:1px solid #e8e8ed;background:#f8f8fa;border-radius:13px;margin-bottom:13px;overflow:hidden}
.lf-calc-expression{font-family:ui-monospace,monospace;font-size:12px;color:#818189;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:17px}
.lf-calc-output{font-size:clamp(25px,5vw,35px);font-weight:700;letter-spacing:-1px;max-width:100%;overflow:auto;white-space:nowrap;font-variant-numeric:tabular-nums}
.lf-calc-pad{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.lf-calc-pad button{border:1px solid #e6e6ed;border-radius:10px;background:#fff;color:#202027;font-family:inherit;font-size:17px;font-weight:600;height:60px}
.lf-calc-pad button[data-action=op]{background:#f5f3fa;color:#7351ae}
.lf-calc-pad button[data-action=clear]{background:#fff0f1;color:#b3475d}
.lf-calc-pad button[data-action=equals]{background:#18181d;color:#fff;grid-column:span 2}
.lf-calc-pad button:hover{filter:brightness(.97);border-color:#c4bddb}
.lf-image-preview{width:100%;max-width:340px;max-height:240px;object-fit:contain;margin-top:16px;border:1px solid #eee;border-radius:10px;background:repeating-conic-gradient(#eee 0% 25%,#fff 0% 50%) 50%/18px 18px}
.lf-range-row{display:flex;gap:10px;align-items:center}.lf-range-row input{flex:1}.lf-range-row output{width:40px;text-align:right;font-weight:700}
.footer{border-top:1px solid #eeeeef;background:#fff;margin-top:45px}
.footer p{font-size:11px;color:#85858e}.footer-links a{font-size:11px;font-weight:600}
@media(max-width:1050px){.lf-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lf-toolbar{align-items:flex-start}.lf-filterbar{width:100%}}
@media(max-width:690px){.container{width:calc(100% - 32px)}.header-inner{min-height:67px;gap:10px;flex-wrap:wrap;padding-top:13px;padding-bottom:10px}.brand{font-size:23px}.header .nav{width:100%;justify-content:flex-start;gap:3px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap}.header .nav a{font-size:11px;padding:6px 9px}.lf-top{padding:35px 0 24px}.lf-top h1{font-size:41px;letter-spacing:-1.9px;margin:18px 0 22px}.lf-search{max-width:none;width:100%}.lf-filterbar{gap:2px}.lf-filter{padding:8px 11px}.lf-tool-grid{grid-template-columns:1fr;gap:12px}.lf-card{min-height:212px;padding:20px}.lf-icon{height:45px;width:45px;margin-bottom:13px}.lf-card-description{min-height:0}.lf-tool-section{padding-top:21px}.lf-page{padding-top:25px}.lf-tool-panel{padding:18px}.lf-input-grid{grid-template-columns:1fr;gap:15px}.lf-detail-grid{grid-template-columns:1fr 1fr}.lf-result-number{font-size:30px}.lf-calc-pad button{height:55px}}
@media(prefers-reduced-motion:reduce){.lf-card,.lf-link-arrow{transition:none!important}.lf-card:hover{transform:none!important}}

[hidden]{display:none!important}
