@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,200;0,9..144,300;0,9..144,500;1,9..144,200;1,9..144,300&family=Noto+Serif+SC:wght@300;400;500&family=Noto+Sans+Mono:wght@400&display=swap";.hero{position:sticky;top:0;z-index:100;min-height:0;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--bg);border-bottom:1px solid var(--border)}.site-name{font-family:Fraunces,serif;font-size:28px;font-weight:200;color:var(--ink);letter-spacing:-1px;line-height:1;white-space:nowrap}.site-name em{font-style:italic;color:var(--accent);font-weight:300}.hero-desc,.scroll-hint{display:none}.category-pills{display:flex;gap:8px;padding:16px 0 20px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.category-pills::-webkit-scrollbar{display:none}.category-pill{padding:7px 16px;border-radius:20px;border:1px solid var(--border);background:none;font-size:13px;font-family:inherit;color:var(--ink-light);cursor:pointer;white-space:nowrap;transition:all .2s}.category-pill:hover{border-color:var(--accent);color:var(--accent)}.category-pill.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.tools-section{position:relative;z-index:1;padding:0 24px 80px;max-width:960px;margin:0 auto}.section-eyebrow,.category-section{display:none}.category-section.visible{display:block}.category-title{display:none}.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.tool-card{background:var(--paper);border:1px solid var(--border);border-radius:16px;padding:24px 22px 20px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:10px;transition:all .28s ease;position:relative;overflow:hidden;height:100%}.tool-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-soft);opacity:0;transition:opacity .28s;border-radius:16px}.tool-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 24px #2c241714}.tool-card:hover:before{opacity:.25}.card-top{display:flex;align-items:flex-start;justify-content:space-between;position:relative}.tool-name{font-family:Fraunces,serif;font-size:30px;font-weight:300;color:var(--ink);letter-spacing:-.5px;line-height:1}.tool-name em{font-style:italic;color:var(--accent)}.tool-arrow{font-size:18px;color:var(--border-dark);transition:transform .2s,color .2s;margin-top:4px}.tool-card:hover .tool-arrow{transform:translate(3px,-3px);color:var(--accent)}.tool-zh{font-size:11px;color:var(--ink-light);letter-spacing:.06em;position:relative}.tool-desc{font-size:13px;color:var(--ink-light);line-height:1.7;position:relative}.tool-tags{display:flex;flex-wrap:wrap;gap:5px;position:relative;min-height:20px;align-content:flex-end}.tag{padding:2px 8px;border:1px solid var(--border);border-radius:12px;font-size:10px;color:var(--ink-light);letter-spacing:.04em;transition:all .2s}.tool-card:hover .tag{border-color:var(--accent);color:var(--accent)}.philosophy{position:relative;z-index:1;max-width:640px;margin:0 auto;padding:0 24px 60px;text-align:center}.phil-title{font-family:Fraunces,serif;font-size:clamp(22px,4vw,32px);font-weight:300;line-height:1.3;margin-bottom:16px;color:var(--ink)}.phil-title em{font-style:italic;color:var(--accent)}.phil-body{font-size:14px;color:var(--ink-light);line-height:1.9;margin-bottom:32px}.divider{width:1px;height:40px;background:linear-gradient(to bottom,var(--border),transparent);margin:0 auto 32px}footer{position:relative;z-index:1;border-top:1px solid var(--border);padding:32px 24px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ink-light);max-width:960px;margin:0 auto;flex-wrap:wrap;gap:12px}.footer-logo{font-family:Fraunces,serif;font-size:18px;font-weight:300;color:var(--ink)}.footer-logo em{font-style:italic;color:var(--accent)}@media (max-width: 700px){.hero{padding:12px 16px}.site-name{font-size:22px}.tools-section{padding:0 16px 60px}.tools-grid{grid-template-columns:1fr;gap:10px}.tool-card{padding:20px 18px 16px}.tool-name{font-size:26px}.category-pills{padding:12px 0 16px}}.dropzone{background:var(--paper);border:2px dashed var(--border);border-radius:16px;padding:56px 32px;text-align:center;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.dropzone:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-soft);opacity:0;transition:opacity .3s}.dropzone.drag-over{border-color:var(--accent);border-style:solid}.dropzone.drag-over:after{opacity:.3}.drop-icon{font-size:44px;margin-bottom:16px;display:block;transition:transform .3s}.dropzone:hover .drop-icon{transform:scale(1.1) rotate(-5deg)}.drop-title{font-family:Fraunces,serif;font-size:22px;font-weight:300;color:var(--ink);margin-bottom:8px}.drop-sub{font-size:13px;color:var(--ink-light);line-height:1.6}.drop-input{display:none}.pick-btn{display:inline-block;margin-top:20px;padding:10px 28px;background:var(--ink);color:var(--bg);border-radius:40px;font-size:13px;font-family:inherit;border:none;cursor:pointer;transition:all .2s;letter-spacing:.03em}.pick-btn:hover{background:var(--accent);transform:translateY(-1px)}.result-list{display:flex;flex-direction:column;gap:10px;margin-top:20px}.result-card{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;background:var(--paper);border:1px solid var(--border);border-radius:12px;padding:14px 18px;animation:cardSlideIn .3s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:calc(var(--idx, 0) * .06s)}.result-name{font-size:13px;font-weight:500;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-sizes{display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap}.result-orig{color:var(--ink-light);text-decoration:line-through;opacity:.6}.result-arrow{color:var(--border);font-size:11px}.result-compressed{color:var(--ink);font-family:Fraunces,serif;font-weight:500}.result-badge{display:inline-block;background:var(--green-soft);color:var(--green);border-radius:6px;padding:3px 10px;font-size:11px;font-family:Fraunces,serif;font-weight:500;white-space:nowrap}.result-download{padding:7px 14px;background:none;border:1px solid var(--border);border-radius:8px;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink);transition:all .2s;white-space:nowrap}.result-download:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.result-actions{display:flex;gap:8px;margin-top:16px;justify-content:center}.repick-btn{padding:10px 20px;background:none;border:1px solid var(--border);border-radius:8px;font-size:12px;cursor:pointer;color:var(--ink);font-family:inherit;transition:all .2s}.repick-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.download-all-btn{padding:10px 20px;background:var(--ink);color:var(--bg);border:none;border-radius:8px;font-size:12px;font-family:inherit;cursor:pointer;transition:all .2s;letter-spacing:.02em}.download-all-btn:hover{background:var(--accent)}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.squish-errors{background:#b0604c0f;border:1px solid rgba(176,96,76,.22);border-radius:12px;padding:14px 18px;margin-top:16px;display:flex;flex-direction:column;gap:10px;font-size:12px;animation:cardSlideIn .4s cubic-bezier(.34,1.56,.64,1) backwards}.squish-errors-title{color:var(--ink);font-weight:500;letter-spacing:.02em}.squish-errors-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.squish-error-chip{display:flex;align-items:center;gap:10px;padding:4px 8px;background:var(--paper);border-radius:6px;font-size:12px}.squish-error-name{color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.squish-error-reason{color:#b0604cd9;font-size:11px;font-family:Fraunces,serif;font-style:italic}.squish-errors-retry{align-self:flex-start;padding:6px 14px;background:none;border:1px solid rgba(176,96,76,.3);border-radius:6px;color:var(--ink);font-size:12px;font-family:inherit;cursor:pointer;transition:all .2s}.squish-errors-retry:hover{background:#b0604c1f;border-color:#b0604c80}@keyframes pulse{0%,to{opacity:.6}50%{opacity:.95}}@media (max-width: 600px){.dropzone{padding:40px 20px}.result-card{grid-template-columns:1fr;gap:8px}.result-sizes{justify-content:flex-start}}body.tool-page{display:flex;flex-direction:column;align-items:center;padding:40px 20px 80px}.wrap{position:relative;z-index:1;width:100%;max-width:640px}header.tool-header{text-align:center;margin-bottom:48px;position:relative}header.tool-header.tint-header,header.tool-header.comb-header{margin-bottom:40px}.logo{font-family:Fraunces,serif;font-size:52px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.logo span{color:var(--accent);font-style:italic}.tagline{margin-top:10px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.tool-says{margin-top:24px;padding:16px 20px;background:var(--paper);border-radius:12px;border:1px solid var(--border);font-size:14px;color:var(--ink);line-height:1.7;min-height:56px;position:relative;transition:all .3s}.tool-says:before{content:attr(data-name);display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;font-family:Fraunces,serif}.says-text{transition:opacity .25s;display:block}.says-text.processing{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}footer.tool-footer{margin-top:60px;text-align:center;font-size:12px;color:var(--ink-light);line-height:1.8}footer.tool-footer .sep{color:var(--border)}.color-stage{border-radius:16px;height:160px;background:var(--current);transition:background .4s ease;position:relative;overflow:hidden;margin-bottom:4px;cursor:pointer}.color-stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.12) 0%,transparent 60%)}.stage-label{position:absolute;bottom:16px;left:20px;color:#ffffffd9;font-family:Fraunces,serif;font-size:28px;font-weight:300;letter-spacing:1px;text-shadow:0 1px 8px rgba(0,0,0,.2);z-index:1;transition:color .3s}.copy-hint{position:absolute;bottom:20px;right:20px;font-size:11px;color:#fff9;z-index:1;letter-spacing:.06em}.input-row{display:flex;gap:10px;margin-bottom:16px;align-items:center}.color-picker-wrap{position:relative;width:48px;height:48px;flex-shrink:0;border-radius:10px;overflow:hidden;border:2px solid var(--border);cursor:pointer;transition:border-color .2s}.color-picker-wrap:hover{border-color:var(--accent)}input[type=color]{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;width:calc(100% + 16px);height:calc(100% + 16px);border:none;cursor:pointer;opacity:0}.color-swatch{width:100%;height:100%;background:var(--current);transition:background .3s}.text-input{flex:1;background:var(--paper);border:1px solid var(--border);border-radius:10px;padding:12px 16px;font-size:15px;font-family:Fraunces,serif;color:var(--ink);outline:none;transition:border-color .2s,background .2s;letter-spacing:.04em}.text-input:focus{border-color:var(--accent)}.text-input::placeholder{color:var(--ink-light);font-size:13px}.text-input.invalid{border-color:#c44;background:#fdf5f5}.text-input.invalid:focus{border-color:#c44}.text-input-wrap{flex:1;position:relative;min-width:0}.text-input-wrap .text-input{width:100%;padding-right:36px}.input-status{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:15px;font-weight:700;pointer-events:none;line-height:1;font-family:system-ui,sans-serif}.input-status.valid{color:#3a7a4a}.input-status.invalid{color:#c44}.formats-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:20px}.format-card{background:var(--paper);border:1px solid var(--border);border-radius:12px;padding:14px 14px 12px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}.format-card:hover{border-color:var(--accent);transform:translateY(-2px)}.format-card.copied{border-color:#3a7a4a}.format-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-light);margin-bottom:6px}.format-value{font-family:Fraunces,serif;font-size:14px;color:var(--ink);word-break:break-all;line-height:1.3}.copy-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#d4ead9;display:flex;align-items:center;justify-content:center;font-size:12px;color:#3a7a4a;opacity:0;transition:opacity .2s;border-radius:12px}.format-card.copied .copy-flash{opacity:1}.section-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-light);margin-bottom:12px;font-family:Fraunces,serif}.palette-block{margin-bottom:20px}.palette-row{display:flex;gap:6px;height:56px}.swatch{flex:1;border-radius:8px;cursor:pointer;position:relative;transition:transform .2s,flex .3s;overflow:hidden}.swatch:hover{transform:translateY(-4px);flex:1.4}.swatch-tip{position:absolute;bottom:0;left:0;right:0;background:#0000004d;color:#fff;font-size:9px;text-align:center;padding:3px 0;opacity:0;transition:opacity .2s;letter-spacing:.04em}.swatch:hover .swatch-tip{opacity:1}.shades-row{display:flex;gap:0;height:48px;border-radius:10px;overflow:hidden}.shade{flex:1;cursor:pointer;transition:flex .2s;position:relative}.shade:hover{flex:1.8}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.anim{animation:fadeIn .4s ease forwards}@media (max-width: 700px){.color-stage{height:120px;border-radius:12px}.stage-label{font-size:22px;bottom:12px;left:16px}.formats-grid{grid-template-columns:1fr 1fr;gap:8px}.format-card{padding:12px}.format-value{font-size:13px}.palette-row{height:48px}.swatch{min-width:0}.shades-row{height:40px;overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.shade{min-width:28px;flex:0 0 28px}.shade:hover{flex:0 0 42px}.input-row{flex-wrap:wrap}}.options-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.opt-chip{display:flex;align-items:center;gap:6px;padding:7px 14px;background:var(--paper);border:1px solid var(--border);border-radius:20px;font-size:12px;color:var(--ink-light);cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.opt-chip.active{background:var(--ink);border-color:var(--ink);color:var(--bg)}.opt-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--border);transition:background .2s;flex-shrink:0}.opt-chip.active .dot{background:var(--accent)}.editor-wrap{position:relative;margin-bottom:12px}textarea{width:100%;min-height:220px;background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:20px;font-size:14px;font-family:"Noto Serif SC",serif;color:var(--ink);line-height:1.8;outline:none;resize:vertical;transition:border-color .2s}textarea:focus{border-color:var(--accent)}textarea::placeholder{color:var(--ink-light);font-size:13px;line-height:1.7}.char-count{position:absolute;bottom:12px;right:16px;font-size:11px;color:var(--border);pointer-events:none;font-family:Fraunces,serif}.action-row{display:flex;gap:10px;margin-bottom:16px}.btn-comb{flex:1;padding:14px;background:var(--ink);color:var(--bg);border:none;border-radius:12px;font-size:14px;font-family:inherit;cursor:pointer;transition:all .2s;letter-spacing:.02em}.btn-comb:hover{background:var(--accent);transform:translateY(-1px)}.btn-clear{padding:14px 20px;background:none;border:1px solid var(--border);border-radius:12px;font-size:13px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.btn-clear:hover{border-color:var(--ink);color:var(--ink)}.result-wrap{display:flex;flex-direction:column;gap:12px;animation:fadeUp .35s ease forwards}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.result-box{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:20px;font-size:14px;line-height:1.8;color:var(--ink);white-space:pre-wrap;word-break:break-word}.stats-row{display:flex;gap:8px;flex-wrap:wrap}.stat-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;font-size:12px}.stat-pill.removed{background:var(--accent-soft);color:var(--accent)}.stat-pill.neutral{background:#ebe6dc;color:var(--ink-light)}.btn-copy{width:100%;padding:13px;background:none;border:1px solid var(--border);border-radius:12px;font-size:13px;font-family:inherit;cursor:pointer;color:var(--ink);transition:all .2s;letter-spacing:.02em}.btn-copy:hover,.btn-copy.copied{background:var(--green-soft);border-color:var(--green);color:var(--green)}.wrap.comb-wrap{max-width:680px}@media (max-width: 700px){.opt-chip{padding:10px 16px;min-height:44px;font-size:13px}.action-row{flex-direction:column;gap:8px}.btn-comb,.btn-clear{width:100%;text-align:center;min-height:48px}textarea{min-height:180px;padding:16px;font-size:15px}.btn-copy{min-height:48px}}:root{--bubble: #b8cfe0;--bubble-deep: #6fa3d8;--bubble-light: #eae4d8}.pace-wrap{position:relative;z-index:1;width:100%;max-width:480px;min-height:calc(100vh - 120px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 0}.pace-header{width:100%;display:flex;align-items:center;justify-content:space-between;margin-bottom:40px}.pace-logo{font-family:Fraunces,serif;font-size:28px;font-weight:300;color:var(--ink);letter-spacing:-.5px}.pace-logo em{font-style:italic;color:var(--accent)}.pace-tagline-hint{font-size:12px;color:var(--ink-light);letter-spacing:.04em;text-align:right;max-width:240px;line-height:1.5}.pace-bubble-wrap{position:relative;width:280px;height:280px;margin-bottom:36px;cursor:pointer}canvas#bubbleCanvas{width:280px;height:280px;border-radius:50%;display:block}.pace-bubble-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;gap:4px}.pace-bubble-status{font-family:Fraunces,serif;font-size:13px;font-weight:300;color:var(--ink-light);letter-spacing:.08em;text-transform:uppercase;transition:opacity .5s}.pace-bubble-hint{font-size:12px;color:var(--border-dark);letter-spacing:.04em;transition:opacity .5s}.pace-duration-row{display:flex;gap:8px;margin-bottom:28px;flex-wrap:wrap;justify-content:center}.pace-dur-btn{padding:7px 16px;border-radius:20px;border:1px solid var(--border);background:var(--bg);font-size:13px;font-family:inherit;color:var(--ink-light);cursor:pointer;transition:all .2s}.pace-dur-btn:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.pace-dur-btn:disabled{opacity:.5;cursor:not-allowed}.pace-dur-btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.pace-controls{display:flex;gap:12px;margin-bottom:32px}.pace-btn-main{padding:12px 36px;border-radius:40px;background:var(--ink);color:var(--bg);border:none;font-size:14px;font-family:inherit;cursor:pointer;transition:all .25s;letter-spacing:.03em;min-width:120px}.pace-btn-main:hover{background:var(--accent);transform:translateY(-1px)}.pace-btn-reset{padding:12px 20px;border-radius:40px;background:none;color:var(--ink-light);border:1px solid var(--border);font-size:13px;font-family:inherit;cursor:pointer;transition:all .2s}.pace-btn-reset:hover{border-color:var(--ink);color:var(--ink)}.pace-says{width:100%;min-height:52px}.pace-done-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#f5f0e8eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;display:none;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;padding:40px}.pace-done-overlay.show{display:flex}.pace-done-emoji{font-size:56px;animation:gentleBounce 2s ease-in-out infinite}@keyframes gentleBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.pace-done-title{font-family:Fraunces,serif;font-size:32px;font-weight:300;color:var(--ink);letter-spacing:-.5px}.pace-done-title em{font-style:italic;color:var(--accent)}.pace-done-msg{font-size:15px;color:var(--ink-light);line-height:1.8;max-width:320px}.pace-done-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px}.pace-btn-again{padding:12px 28px;border-radius:40px;background:var(--ink);color:var(--bg);border:none;font-size:14px;font-family:inherit;cursor:pointer;transition:all .2s}.pace-btn-again:hover{background:var(--accent)}.pace-btn-dismiss{padding:12px 24px;border-radius:40px;background:none;color:var(--ink-light);border:1px solid var(--border);font-size:13px;font-family:inherit;cursor:pointer;transition:all .2s}.pace-btn-dismiss:hover{border-color:var(--ink);color:var(--ink)}@media (max-width: 700px){.pace-wrap{padding:24px 16px;min-height:calc(100vh - 80px)}.pace-bubble-wrap{width:min(280px,70vw);height:min(280px,70vw)}canvas#bubbleCanvas{width:min(280px,70vw);height:min(280px,70vw)}.pace-header{flex-direction:column;gap:8px;margin-bottom:28px}.pace-tagline-hint{text-align:center;max-width:none}.pace-dur-btn{min-height:44px;padding:10px 18px;font-size:14px}.pace-btn-main{min-height:48px;padding:14px 40px}.pace-btn-reset{min-height:48px;padding:14px 24px}.pace-done-title{font-size:26px}.pace-done-overlay{padding:32px 20px;padding-bottom:env(safe-area-inset-bottom,32px)}.pace-btn-again,.pace-btn-dismiss{min-height:48px;width:100%}}.veil-dropzone{border:1.5px dashed var(--border-dark);border-radius:20px;padding:52px 32px;text-align:center;cursor:pointer;transition:all .35s;position:relative;overflow:hidden;margin-bottom:24px;background:var(--paper)}.veil-dropzone:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 0%,rgba(200,90,42,.08),transparent 70%);opacity:0;transition:opacity .35s}.veil-dropzone.drag-over{border-color:var(--mint);border-style:solid;background:var(--mint-soft);animation:drop-breathe 1.6s ease-in-out infinite}.veil-dropzone.drag-over:before{opacity:1;background:radial-gradient(ellipse at 50% 0%,rgba(112,168,144,.18),transparent 70%)}.veil-dropzone.drag-over:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;border:2px solid var(--mint);pointer-events:none;animation:drop-ripple 1.4s ease-out infinite}@keyframes drop-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.006)}}@keyframes drop-ripple{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}.veil-drop-icon{font-size:36px;margin-bottom:16px;display:block;transition:transform .3s,opacity .3s;opacity:.7}.veil-dropzone:hover .veil-drop-icon{transform:scale(1.08);opacity:1}.veil-drop-title{font-family:Fraunces,serif;font-size:22px;font-weight:400;color:var(--ink);margin-bottom:8px;letter-spacing:-.3px}.veil-drop-sub{font-size:13px;color:var(--ink-light);line-height:1.7}.veil-pick-btn{display:inline-block;margin-top:20px;padding:10px 28px;background:var(--ink);color:var(--bg);border-radius:40px;font-size:13px;font-family:inherit;border:none;cursor:pointer;transition:all .2s;letter-spacing:.03em}.veil-pick-btn:hover{background:var(--accent);transform:translateY(-1px)}.veil-drop-input{display:none}.veil-error-banner{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;margin-bottom:20px;background:var(--paper);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:12px;animation:veil-rise .4s cubic-bezier(.22,1,.36,1) forwards}.veil-error-icon{font-size:20px;line-height:1;flex-shrink:0;margin-top:2px}.veil-error-body{flex:1;min-width:0}.veil-error-title{font-size:13px;font-weight:500;color:var(--ink);margin-bottom:4px;letter-spacing:.01em}.veil-error-text{font-size:12px;color:var(--ink-light);line-height:1.5}.veil-error-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.veil-error-retry{padding:6px 14px;background:var(--accent);color:var(--bg);border:none;border-radius:16px;font-size:12px;font-family:inherit;cursor:pointer;transition:all .2s;letter-spacing:.02em}.veil-error-retry:hover{transform:translateY(-1px);filter:brightness(1.05)}.veil-error-dismiss{width:44px;height:44px;padding:0;background:none;border:1px solid var(--border-dark);border-radius:50%;font-size:18px;line-height:1;color:var(--ink-light);cursor:pointer;font-family:inherit;transition:all .2s;flex-shrink:0}.veil-error-dismiss:hover{border-color:var(--ink);color:var(--ink)}.veil-results{display:flex;flex-direction:column;gap:20px}.veil-card{background:var(--paper);border:1px solid var(--border);border-radius:20px;overflow:hidden;animation:veil-rise .45s cubic-bezier(.22,1,.36,1) forwards;opacity:0}@keyframes veil-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.veil-card-preview-wrap{position:relative;overflow:hidden}.veil-card-preview{width:100%;height:220px;object-fit:cover;display:block;background:var(--bg);border-bottom:1px solid var(--border)}.veil-card-curtain{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.05) 30%,rgba(255,255,255,.85) 50%,rgba(255,255,255,.05) 70%,transparent 100%);transform:translate(-100%);animation:curtain-sweep .6s cubic-bezier(.4,0,.2,1) forwards;pointer-events:none}@keyframes curtain-sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.veil-card-body{padding:20px 22px 22px}.veil-card-filename{font-size:12px;color:var(--ink-light);margin-bottom:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.04em;font-family:Noto Sans Mono,monospace}.veil-exif-section{margin-bottom:18px}.veil-exif-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-light);font-family:Fraunces,serif;margin-bottom:10px}.veil-exif-rows{display:flex;flex-direction:column;gap:6px}.veil-exif-row{display:flex;align-items:flex-start;gap:10px;padding:9px 12px;border-radius:8px;background:var(--bg);border:1px solid var(--border);font-size:13px;line-height:1.5;color:var(--ink);transition:opacity .6s ease,transform .6s ease}.veil-exif-row .veil-exif-icon{font-size:14px;flex-shrink:0;margin-top:1px}.veil-exif-row .veil-exif-key{font-size:11px;color:var(--ink-light);white-space:nowrap;min-width:64px;margin-top:1px}.veil-exif-row .veil-exif-val{color:var(--ink);flex:1;word-break:break-all}.veil-exif-row.gps-row{background:var(--accent-soft);border-color:#c85a2a33}.veil-exif-row.gps-row .veil-exif-val{color:var(--accent)}.veil-exif-row.time-row{border-color:#c85a2a26}.veil-exif-row.time-row .veil-exif-val{color:var(--accent)}.veil-no-exif{padding:12px 14px;border-radius:8px;background:var(--green-soft);border:1px solid rgba(58,122,74,.2);font-size:13px;color:var(--green)}.veil-map-link{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:11px;color:var(--accent);cursor:pointer;letter-spacing:.04em;opacity:.85;transition:opacity .2s;background:none;border:none;padding:0;font-family:inherit}.veil-map-link:hover{opacity:1}.veil-card-diagnostic{font-size:13px;line-height:1.7;color:var(--ink-light);padding:12px 14px;margin-top:16px;background:var(--paper);border-left:2px solid var(--accent);border-radius:0 6px 6px 0;font-style:italic;font-family:Fraunces,serif}.veil-card-actions{display:flex;gap:8px;margin-top:18px}.veil-btn-download{flex:1;padding:12px 16px;background:var(--ink);color:var(--bg);border:none;border-radius:10px;font-size:13px;font-family:inherit;cursor:pointer;transition:all .2s;letter-spacing:.02em}.veil-btn-download:hover{background:var(--accent);transform:translateY(-1px)}.veil-btn-secondary{padding:12px 16px;background:none;border:1px solid var(--border-dark);border-radius:10px;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.veil-btn-secondary:hover{border-color:var(--ink);color:var(--ink)}@media (max-width: 700px){.veil-dropzone{padding:36px 20px}.veil-drop-title{font-size:18px}.veil-card-preview{height:180px}.veil-card-body{padding:16px 18px 18px}.veil-exif-row .veil-exif-key{min-width:52px;font-size:10px}.veil-exif-row{font-size:12px;padding:8px 10px}.veil-card-actions{flex-direction:column;gap:6px}.veil-btn-download,.veil-btn-secondary{width:100%;text-align:center;min-height:48px}.veil-error-banner{flex-wrap:wrap}.veil-error-actions{width:100%;justify-content:flex-end}}.zone-page{max-width:920px;margin:0 auto;padding:56px 28px 80px}.zone-header{text-align:center;margin-bottom:36px}.zone-logo{font-family:Fraunces,Georgia,serif;font-size:56px;font-weight:600;letter-spacing:-.02em;color:var(--ink);margin:0 0 8px;line-height:1.1}.zone-logo em{font-style:italic;color:var(--accent)}.zone-tagline{font-family:Fraunces,Georgia,serif;font-size:18px;font-style:italic;color:var(--ink-light);margin:0 0 12px}.zone-subtitle{font-size:14.5px;color:var(--ink-light);max-width:520px;margin:0 auto;line-height:1.7}.zone-source{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:20px 24px;margin-bottom:28px}.zone-source-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 18px}.zone-source-label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-light);margin-bottom:6px;font-weight:600}.zone-source-group{display:flex;flex-direction:column;flex:0 0 auto}.zone-input,.zone-select{font-family:inherit;font-size:15px;padding:8px 12px;background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--ink);transition:border-color .2s,background .2s;min-width:120px}.zone-input:focus,.zone-select:focus{outline:none;border-color:var(--accent);background:var(--paper)}.zone-select{min-width:220px;cursor:pointer}.zone-now-btn{font-family:inherit;font-size:14px;padding:9px 18px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:8px;cursor:pointer;transition:background .2s,transform .1s;font-weight:500}.zone-now-btn:hover{background:var(--accent);border-color:var(--accent)}.zone-now-btn:active{transform:translateY(1px)}.zone-live{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-light);margin-left:auto}.zone-live-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 #c85a2a80;animation:zoneLivePulse 2.4s ease-out infinite}.zone-live-paused .zone-live-dot{background:var(--ink-light);animation:none}@keyframes zoneLivePulse{0%{box-shadow:0 0 #c85a2a80}70%{box-shadow:0 0 0 10px #c85a2a00}to{box-shadow:0 0 #c85a2a00}}.zone-quick{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:8px}.zone-quick-label{font-size:12px;color:var(--ink-light);margin-right:4px;letter-spacing:.04em}.zone-quick-btn{font-family:inherit;font-size:13px;padding:8px 14px;min-height:44px;background:var(--bg);border:1px solid var(--line);border-radius:999px;color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s,color .2s}.zone-quick-btn:hover{background:var(--paper);border-color:var(--accent);color:var(--accent)}.zone-quick-btn.is-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.zone-slider{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}.zone-time-slider{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--line);border-radius:3px;outline:none;cursor:pointer}.zone-time-slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--ink);border:3px solid var(--paper);box-shadow:0 1px 4px #0003;cursor:grab;transition:background .2s,transform .15s}.zone-time-slider::-webkit-slider-thumb:hover{background:var(--accent);transform:scale(1.15)}.zone-time-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.05)}.zone-time-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--ink);border:3px solid var(--paper);box-shadow:0 1px 4px #0003;cursor:grab}.zone-slider-ticks{display:flex;justify-content:space-between;margin-top:6px;font-size:11px;color:var(--ink-light);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.zone-targets{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}.target-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px 26px;display:grid;grid-template-columns:1fr auto;gap:12px 24px;align-items:center;transition:background 1.5s ease;animation:riseUp .7s cubic-bezier(.16,1,.3,1) backwards;position:relative}.target-card.no-anim{animation:none}@keyframes riseUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.target-card.is-night{background:linear-gradient(135deg,#1c2238,#2a2540);border-color:#1c2238;color:#e8e4d8}.target-card.is-night .target-time,.target-card.is-night .target-emoji{color:#f3eede}.target-card.is-night .target-name,.target-card.is-night .target-meta,.target-card.is-night .target-offset,.target-card.is-night .target-rel,.target-card.is-night .target-remove,.target-card.is-night .target-copy{color:#b8b3a3}.target-card.is-night .target-remove:hover,.target-card.is-night .target-copy:hover{color:#f3eede}.target-card.is-night .work-tag,.target-card.is-night .sleep-tag{background:#ffffff14;color:#d8d2c1}.target-card.is-dawn{box-shadow:inset 0 2px 12px -4px #f0c67459;border-color:#f0c6744d}.target-card.is-dusk{box-shadow:inset 0 2px 12px -4px #d490604d;border-color:#d4906040}.target-main{display:flex;flex-direction:column;gap:4px}.target-header{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-light)}.target-emoji{font-size:18px;line-height:1}.target-name{font-weight:500;color:var(--ink)}.target-offset{font-size:12px;color:var(--ink-light);margin-left:6px;font-variant-numeric:tabular-nums}.target-time-row{display:flex;align-items:center;gap:12px}.target-time{font-family:Fraunces,Georgia,serif;font-size:32px;font-weight:500;color:var(--ink);letter-spacing:-.01em;line-height:1.1;font-variant-numeric:tabular-nums}.day-circle{flex-shrink:0}.target-date{font-size:13px;color:var(--ink-light);margin-top:2px;font-variant-numeric:tabular-nums}.target-meta{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-light)}.target-diff{font-style:italic}.target-rel{font-size:12px;color:var(--ink-light);font-variant-numeric:tabular-nums;opacity:.8}.target-tags{display:flex;gap:6px}.work-tag,.sleep-tag{font-size:11px;letter-spacing:.05em;padding:3px 9px;border-radius:999px;background:var(--bg);color:var(--ink-light);font-weight:500}.target-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.target-actions{display:flex;align-items:center;gap:4px}.target-remove,.target-copy{background:none;border:none;font-size:18px;line-height:1;color:var(--ink-light);cursor:pointer;padding:8px 10px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;transition:background .2s,color .2s}.target-remove:hover,.target-copy:hover{background:var(--bg);color:var(--accent)}.target-copy.is-copied{color:#4a8a5a}.zone-bottom{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}.zone-add{display:flex;align-items:center;justify-content:center;gap:10px;background:transparent;border:1px dashed var(--line);border-radius:14px;padding:16px;font-family:inherit;font-size:14px;color:var(--ink-light);cursor:pointer;transition:border-color .2s,color .2s,background .2s;width:100%}.zone-add:hover{border-color:var(--accent);color:var(--accent);background:var(--paper)}.zone-add.is-disabled{opacity:.45;cursor:default}.zone-add.is-disabled:hover{border-color:var(--line);color:var(--ink-light);background:transparent}.zone-picker-wrap{display:flex;gap:8px;align-items:center}.zone-picker{flex:1;font-family:inherit;font-size:14px;padding:10px 14px;background:var(--paper);border:1px solid var(--accent);border-radius:8px;color:var(--ink);cursor:pointer;outline:none}.zone-picker-cancel{font-family:inherit;font-size:13px;padding:8px 14px;background:none;border:1px solid var(--line);border-radius:8px;color:var(--ink-light);cursor:pointer;transition:border-color .2s}.zone-picker-cancel:hover{border-color:var(--accent);color:var(--accent)}.zone-reset{font-family:inherit;font-size:12px;background:none;border:none;color:var(--ink-light);cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color .2s;align-self:center}.zone-reset:hover{color:var(--accent)}.zone-overlap{padding:10px 16px;border-radius:8px;font-family:inherit;font-size:13px;font-style:normal;margin-bottom:14px;line-height:1.5}.zone-overlap-perfect{background:#3a7a4a14;border:1px solid rgba(58,122,74,.2);color:#3a7a4a}.zone-overlap-sleeping{background:#c85a2a0f;border:1px solid rgba(200,90,42,.15);color:#a06030}.zone-says{margin-top:28px;padding:22px 26px;background:var(--paper);border-left:3px solid var(--accent);border-radius:6px;font-family:Fraunces,Georgia,serif;font-size:15.5px;font-style:italic;line-height:1.7;color:var(--ink);min-height:60px}.zone-says-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.zone-says-label{font-size:11px;font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:600;font-family:inherit}.zone-copy-actions{display:flex;align-items:center;gap:8px;font-style:normal}.zone-copy-toggle{display:flex;background:var(--bg);border-radius:999px;padding:2px;gap:0}.zone-copy-opt{font-family:inherit;font-size:11px;padding:6px 12px;min-height:36px;background:none;border:none;border-radius:999px;color:var(--ink-light);cursor:pointer;transition:background .2s,color .2s;font-style:normal;white-space:nowrap}.zone-copy-opt.is-active{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px #0000000f}.zone-copy-opt:hover:not(.is-active){color:var(--ink)}.zone-copy-all{font-family:inherit;font-size:12px;padding:4px 12px;background:none;border:1px solid var(--line);border-radius:999px;color:var(--ink-light);cursor:pointer;transition:border-color .2s,color .2s;font-style:normal}.zone-copy-all:hover{border-color:var(--accent);color:var(--accent)}.zone-says-msg{display:inline}.zone-says-msg .mention{font-style:normal;font-weight:600;color:var(--accent)}.zone-footer{margin-top:36px;text-align:center;font-size:12px;color:var(--ink-light);font-style:italic;font-family:Fraunces,Georgia,serif}@media (max-width: 700px){.zone-page{padding:32px 16px 60px}.zone-logo{font-size:42px}.zone-source-row{flex-direction:column;align-items:stretch}.zone-source-group,.zone-select,.zone-input{width:100%}.zone-live{margin-left:0}.target-card{grid-template-columns:1fr}.target-side{flex-direction:row;align-items:center;justify-content:space-between;width:100%}.target-time{font-size:28px}.zone-says-header{flex-direction:column;align-items:flex-start}.zone-quick{gap:6px}.zone-quick-btn{min-height:44px;padding:8px 14px}}.loan-wrap{position:relative;z-index:1;width:100%;max-width:580px}.loan-header{text-align:center;margin-bottom:40px;position:relative}.loan-logo{font-family:Fraunces,serif;font-size:52px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.loan-logo em{font-style:italic;color:var(--accent)}.loan-tagline{margin-top:10px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.loan-type-block .loan-slider-top{margin-bottom:12px}.loan-type-buttons{display:flex;gap:8px;flex-wrap:wrap}.loan-type-btn{flex:1;min-width:0;padding:7px 12px;border-radius:20px;border:1px solid var(--border);background:none;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s;min-height:44px;text-align:center}.loan-type-btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.loan-type-btn:hover:not(.active){border-color:var(--accent);color:var(--accent)}.loan-inputs-stack{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.loan-slider-block{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:18px 20px}.loan-slider-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.loan-slider-label{font-size:13px;color:var(--ink-light)}.loan-slider-val{font-family:Fraunces,serif;font-size:22px;font-weight:300;color:var(--ink);letter-spacing:-.3px}.loan-slider-val .unit{font-size:13px;color:var(--ink-light);margin-left:3px}input[type=range].loan-range{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--border);border-radius:2px;outline:none;cursor:pointer}input[type=range].loan-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--ink);cursor:pointer;transition:transform .15s;border:3px solid var(--bg);box-shadow:0 0 0 1px var(--border)}input[type=range].loan-range::-webkit-slider-thumb:hover{transform:scale(1.15);background:var(--accent)}input[type=range].loan-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--ink);cursor:pointer;border:3px solid var(--bg);box-shadow:0 0 0 1px var(--border)}.loan-slider-row{display:flex;align-items:center;gap:10px}.loan-slider-row .loan-range{flex:1}.loan-step-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:none;font-size:16px;font-family:inherit;color:var(--ink-light);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;line-height:1}.loan-step-btn:hover{border-color:var(--accent);color:var(--accent)}.loan-step-btn:active{background:var(--accent);color:var(--bg)}.loan-slider-val input.loan-input-field{font-family:Fraunces,serif;font-size:22px;font-weight:300;color:var(--ink);letter-spacing:-.3px;border:none;background:none;text-align:right;width:80px;outline:none;padding:0;-moz-appearance:textfield}.loan-slider-val input.loan-input-field::-webkit-inner-spin-button,.loan-slider-val input.loan-input-field::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.loan-slider-val input.loan-input-field:focus{border-bottom:1px solid var(--accent)}.loan-slider-range{display:flex;justify-content:space-between;font-size:11px;color:var(--border);margin-top:6px;font-family:Fraunces,serif}.loan-result-block{background:var(--paper);border:1px solid var(--border);border-radius:16px;padding:26px 24px 22px;margin-bottom:16px}.loan-monthly-row{display:flex;align-items:baseline;gap:10px;margin-bottom:24px;flex-wrap:wrap}.loan-monthly-label{font-size:13px;color:var(--ink-light)}.loan-monthly-amount{font-family:Fraunces,serif;font-size:52px;font-weight:200;color:var(--ink);letter-spacing:-2px;line-height:1;transition:color .3s}.loan-monthly-unit{font-size:16px;color:var(--ink-light)}.loan-summary-pills{display:flex;gap:10px;margin-bottom:22px;flex-wrap:wrap}.loan-pill{flex:1;min-width:120px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--bg)}.loan-pill-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-light);font-family:Fraunces,serif;margin-bottom:5px}.loan-pill-val{font-family:Fraunces,serif;font-size:18px;font-weight:300;color:var(--ink)}.loan-pill.interest .loan-pill-val{color:var(--accent)}.loan-bar-section{margin-bottom:4px}.loan-bar-label-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--ink-light);margin-bottom:6px}.loan-bar-track{height:10px;border-radius:5px;background:var(--border);overflow:hidden;margin-bottom:12px}.loan-bar-fill{height:100%;border-radius:5px;background:linear-gradient(to right,var(--green) 0%,var(--green) var(--principal-pct),var(--accent) var(--principal-pct),var(--accent) 100%);transition:all .5s ease}.loan-bar-legend{display:flex;gap:16px;font-size:11px;color:var(--ink-light)}.loan-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px;vertical-align:middle}.loan-amort-toggle{width:100%;padding:10px;background:none;border:1px solid var(--border);border-radius:10px;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s;margin-bottom:10px;text-align:center;min-height:44px}.loan-amort-toggle:hover{border-color:var(--ink);color:var(--ink)}.loan-amort-table-wrap{display:none;overflow:hidden;border:1px solid var(--border);border-radius:10px;margin-bottom:16px;max-height:300px;overflow-y:auto}.loan-amort-table-wrap.show{display:block}.loan-amort-table{width:100%;border-collapse:collapse;font-size:12px}.loan-amort-table th{padding:8px 10px;text-align:left;background:var(--ink);color:var(--bg);font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:400;position:sticky;top:0}.loan-amort-table td{padding:8px 10px;border-bottom:1px solid var(--border);color:var(--ink)}.loan-amort-table tr:last-child td{border-bottom:none}.loan-amort-table tr:nth-child(2n) td{background:#ddd5c526}.loan-amort-table .interest-cell{color:var(--accent)}.loan-amort-table .balance-cell{color:var(--ink-light)}.loan-disclaimer{margin-top:18px;font-size:11px;color:var(--ink-light);text-align:center;line-height:1.7;opacity:.7}.loan-header-actions{display:flex;justify-content:flex-end;align-items:center;margin-top:20px;gap:8px}.loan-export-group{display:flex;gap:6px}.loan-export-btn{font-family:inherit;font-size:11px;padding:6px 14px;background:var(--paper);border:1px solid var(--border);color:var(--ink-light);border-radius:20px;cursor:pointer;transition:all .2s ease;white-space:nowrap;min-height:36px}.loan-export-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.loan-export-btn:disabled{opacity:.6;cursor:not-allowed;animation:loan-btn-pulse 1.5s infinite ease-in-out}@keyframes loan-btn-pulse{0%{opacity:.5}50%{opacity:.9}to{opacity:.5}}.loan-pdf-target{position:fixed;left:-9999px;top:0;width:794px;background:#fff;color:#2c2417;padding:56px 64px;box-sizing:border-box;font-family:"Noto Serif SC",Georgia,serif;line-height:1.5}.loan-pdf-target *{color:#2c2417}.loan-pdf-header{border-bottom:2px solid #2c2417;padding-bottom:12px;margin-bottom:24px}.loan-pdf-title{font-size:22px;font-weight:600;letter-spacing:-.3px}.loan-pdf-meta{display:flex;justify-content:space-between;font-size:11px;color:#7a6e5f;margin-top:6px}.loan-pdf-grid{display:flex;gap:12px;margin-bottom:24px}.loan-pdf-card{flex:1;background:#faf7f2;border:1px solid #ddd5c5;border-radius:6px;padding:12px}.loan-pdf-card.highlight{background:#c85a2a0f;border-color:#c85a2a}.loan-pdf-card-label{font-size:10px;color:#7a6e5f;letter-spacing:.05em;margin-bottom:4px}.loan-pdf-card-value{font-size:16px;font-weight:600}.loan-pdf-bill{background:#fcfbfa;border:1px solid #ddd5c5;padding:16px;border-radius:6px;margin-bottom:24px}.loan-pdf-bill-row{display:flex;justify-content:space-between;font-size:13px;margin:6px 0}.loan-pdf-bill-row.accent{color:#c85a2a}.loan-pdf-bill-line{height:1px;background:#ddd5c5;margin:10px 0}.loan-pdf-bill-total{font-size:16px;font-weight:600}.loan-pdf-advisor{background:#c85a2a0d;border-left:3px solid #c85a2a;padding:14px 16px;border-radius:0 6px 6px 0;font-size:13px;line-height:1.6;margin-bottom:28px;font-style:italic}.loan-pdf-advisor-label{font-weight:600;font-style:normal;margin-bottom:4px;color:#c85a2a}.loan-pdf-table-title{font-size:14px;font-weight:600;margin-bottom:10px}.loan-pdf-table{width:100%;border-collapse:collapse;font-size:11px}.loan-pdf-table th{background:#2c2417;color:#faf7f2;padding:7px 10px;text-align:left;font-weight:400}.loan-pdf-table td{padding:7px 10px;border-bottom:1px solid #ddd5c5}.loan-pdf-table tr{page-break-inside:avoid;break-inside:avoid}.loan-pdf-table tr:nth-child(2n) td{background:#ddd5c51a}.loan-pdf-table .text-accent{color:#c85a2a}.loan-pdf-footer{margin-top:28px;font-size:9px;color:#7a6e5f;text-align:center;border-top:1px solid #ddd5c5;padding-top:10px}@media (max-width: 700px){.loan-wrap{padding:0 4px}.loan-logo,.loan-monthly-amount{font-size:40px}.loan-slider-block{padding:14px 16px}.loan-result-block{padding:20px 16px 18px}.loan-pill{min-width:100px;padding:10px 12px}.loan-step-btn{width:40px;height:40px;font-size:18px}.loan-slider-val input.loan-input-field{font-size:18px;width:70px}.loan-pill-val{font-size:16px}.loan-amort-table{font-size:11px}.loan-amort-table th,.loan-amort-table td{padding:6px 8px}.loan-header-actions,.loan-export-group{justify-content:center}.loan-type-buttons{gap:6px}.loan-type-btn{font-size:11px;padding:6px 8px;min-height:40px}.loan-export-btn{font-size:12px;padding:8px 16px;min-height:44px}}.pct-wrap{position:relative;z-index:1;width:100%;max-width:580px}.pct-header{text-align:center;margin-bottom:40px;position:relative}.pct-logo{font-family:Fraunces,serif;font-size:52px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.pct-logo em{font-style:italic;color:var(--accent)}.pct-tagline{margin-top:10px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.pct-mode-tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.pct-mode-tab{padding:7px 16px;border-radius:20px;border:1px solid var(--border);background:none;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s;min-height:44px}.pct-mode-tab.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.pct-mode-tab:hover:not(.active){border-color:var(--accent);color:var(--accent)}.pct-inputs-card{display:flex;flex-direction:column;gap:0;margin-bottom:20px}.pct-input-block{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:18px 20px}.pct-input-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.pct-input-label{font-size:13px;color:var(--ink-light)}.pct-numeric-box{display:flex;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:4px 12px;transition:all .25s cubic-bezier(.4,0,.2,1)}.pct-numeric-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.pct-direct-input{border:none;background:none;outline:none;font-family:Fraunces,serif;font-size:16px;font-weight:500;color:var(--ink);width:65px;text-align:right;padding-right:6px;-moz-appearance:textfield}.pct-direct-input::-webkit-inner-spin-button,.pct-direct-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pct-numeric-unit{font-size:13px;color:var(--ink-light);margin-left:2px;flex-shrink:0}.pct-slider-row{display:flex;align-items:center;gap:10px}.pct-slider-row .pct-range{flex:1}.pct-step-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:none;font-size:16px;font-family:inherit;color:var(--ink-light);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;line-height:1}.pct-step-btn:hover{border-color:var(--accent);color:var(--accent)}.pct-step-btn:active{background:var(--accent);color:var(--bg)}input[type=range].pct-range{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--border);border-radius:2px;outline:none;cursor:pointer}input[type=range].pct-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--ink);cursor:pointer;transition:transform .15s;border:3px solid var(--bg);box-shadow:0 0 0 1px var(--border)}input[type=range].pct-range::-webkit-slider-thumb:hover{transform:scale(1.15);background:var(--accent)}input[type=range].pct-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--ink);cursor:pointer;border:3px solid var(--bg);box-shadow:0 0 0 1px var(--border)}.pct-slider-range{display:flex;justify-content:space-between;font-size:11px;color:var(--border);margin-top:6px;font-family:Fraunces,serif}.pct-intercalary-zone{display:flex;justify-content:center;align-items:center;padding:6px 0}.pct-swap-btn{background:var(--paper);border:1px solid var(--border);color:var(--ink-light);width:30px;height:30px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;box-shadow:0 2px 8px #2c24170d;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.pct-swap-btn:hover{border-color:var(--accent);color:var(--accent);transform:rotate(180deg);box-shadow:0 4px 12px #c85a2a1a}.pct-swap-btn:active{transform:rotate(180deg) scale(.9)}.pct-result-block{background:var(--paper);border:1px solid var(--border);border-radius:16px;padding:26px 24px 22px;margin-bottom:16px}.pct-result-primary{display:flex;align-items:baseline;gap:10px;margin-bottom:20px;flex-wrap:wrap;cursor:copy;position:relative;padding:12px 16px;border-radius:12px;background:transparent;transition:all .2s ease}.pct-result-primary:hover{background:#ddd5c540}.pct-result-primary-label{font-size:13px;color:var(--ink-light)}.pct-result-primary-value{font-family:Fraunces,serif;font-size:52px;font-weight:200;color:var(--ink);letter-spacing:-2px;line-height:1;transition:color .3s}.pct-result-primary-unit{font-size:16px;color:var(--ink-light)}.pct-copy-indicator{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--ink-light);opacity:0;transition:opacity .2s;pointer-events:none}.pct-result-primary:hover .pct-copy-indicator{opacity:.6}.pct-copy-indicator.show{opacity:1;color:var(--accent);font-weight:500}.pct-result-block.pct-copied .pct-result-primary-value{color:var(--accent)}.pct-result-pills{display:flex;gap:10px;flex-wrap:wrap}.pct-pill{flex:1;min-width:120px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--bg)}.pct-pill-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-light);font-family:Fraunces,serif;margin-bottom:5px}.pct-pill-val{font-family:Fraunces,serif;font-size:18px;font-weight:300;color:var(--ink)}.pct-pill.accent .pct-pill-val{color:var(--accent)}.pct-disclaimer{margin-top:18px;font-size:11px;color:var(--ink-light);text-align:center;line-height:1.7;opacity:.7}@media (max-width: 700px){.pct-wrap{padding:0 4px}.pct-logo,.pct-result-primary-value{font-size:40px}.pct-input-block{padding:14px 16px}.pct-result-block{padding:20px 16px 18px}.pct-step-btn{width:40px;height:40px;font-size:18px}.pct-direct-input{font-size:14px;width:55px}.pct-numeric-box{padding:4px 8px}.pct-swap-btn{width:36px;height:36px;font-size:15px}.pct-pill{min-width:100px;padding:10px 12px}.pct-pill-val{font-size:16px}.pct-copy-indicator{display:none}}.base-wrap{position:relative;z-index:1;width:100%;max-width:580px}.base-header{text-align:center;margin-bottom:40px;position:relative}.base-logo{font-family:Fraunces,serif;font-size:52px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.base-logo em{font-style:italic;color:var(--accent)}.base-tagline{margin-top:10px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.bases-grid{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.base-card{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:16px 18px;transition:border-color .2s;position:relative}.base-card.active{border-color:var(--accent)}.base-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.base-badge{font-family:Fraunces,serif;font-size:11px;font-weight:500;padding:3px 10px;border-radius:20px;letter-spacing:.06em;flex-shrink:0}.base-badge.bin{background:var(--blue-soft);color:var(--blue)}.base-badge.oct{background:var(--green-soft);color:var(--green)}.base-badge.dec{background:var(--accent-soft);color:var(--accent)}.base-badge.hex{background:var(--purple-soft);color:var(--purple)}.base-name{font-size:12px;color:var(--ink-light)}.base-input-wrap{position:relative}.base-input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px 48px 12px 14px;font-family:Noto Sans Mono,monospace;font-size:18px;color:var(--ink);outline:none;transition:border-color .2s;letter-spacing:.06em}.base-input:focus{border-color:var(--accent)}.base-input::placeholder{color:var(--border);font-size:15px}.base-input.error{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.base-copy-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:14px;color:var(--border);transition:color .2s;padding:4px}.base-copy-btn:hover{color:var(--ink)}.base-copy-btn.done{color:var(--green)}.base-bit-groups{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;font-family:Noto Sans Mono,monospace;font-size:12px}.base-bit-group{display:flex;gap:1px}.base-bit{width:18px;height:22px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;transition:all .2s}.base-bit.one{background:var(--blue-soft);color:var(--blue)}.base-bit.zero{background:#ebe6dc;color:var(--border)}.base-says{padding:14px 18px;background:var(--paper);border-radius:12px;border:1px solid var(--border);font-size:14px;color:var(--ink);line-height:1.75;min-height:52px;margin-bottom:16px}.base-says:before{content:attr(data-name);display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:5px;font-family:Fraunces,serif}.base-says .says-text{transition:opacity .25s}.base-ref-section{margin-top:4px}.base-ref-toggle{width:100%;padding:10px;background:none;border:1px solid var(--border);border-radius:10px;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s;text-align:center}.base-ref-toggle:hover{border-color:var(--ink);color:var(--ink)}.base-ref-wrap{display:none;margin-top:10px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.base-ref-wrap.show{display:block}.base-ref-table{width:100%;border-collapse:collapse;font-size:12px}.base-ref-table th{padding:8px 10px;text-align:left;background:var(--ink);color:var(--bg);font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:400}.base-ref-table td{padding:7px 10px;border-bottom:1px solid var(--border);font-family:Noto Sans Mono,monospace;font-size:12px}.base-ref-table tr:last-child td{border-bottom:none}.base-ref-table tr:nth-child(2n) td{background:#ddd5c526}.base-ref-table .bin-cell{color:var(--blue)}.base-ref-table .oct-cell{color:var(--green)}.base-ref-table .dec-cell{color:var(--accent)}.base-ref-table .hex-cell{color:var(--purple)}@keyframes base-flash{0%{background:var(--green-soft)}to{background:var(--bg)}}.base-flash{animation:base-flash .4s ease}.base-disclaimer{margin-top:18px;font-size:11px;color:var(--ink-light);text-align:center;line-height:1.7;opacity:.7}@media (max-width: 700px){.base-wrap{padding:0 4px}.base-logo{font-size:40px}.base-card{padding:14px 16px}.base-input{font-size:16px;padding:10px 42px 10px 12px}.base-bit{width:16px;height:20px;font-size:10px}}.json-wrap{position:relative;z-index:1;width:100%;max-width:760px}.json-header{text-align:center;margin-bottom:36px;position:relative}.json-logo{font-family:Fraunces,serif;font-size:52px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.json-logo em{font-style:italic;color:var(--accent)}.json-tagline{margin-top:10px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.json-toolbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;align-items:center}.json-tool-btn{padding:7px 16px;border-radius:20px;border:1px solid var(--border);background:none;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s;white-space:nowrap}.json-tool-btn:hover{border-color:var(--ink);color:var(--ink)}.json-tool-btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.json-tool-btn.primary:hover{background:var(--accent);border-color:var(--accent)}.json-tool-btn.success{background:var(--green-soft);color:var(--green);border-color:var(--green)}.json-indent-row{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:12px;color:var(--ink-light)}.json-indent-btn{width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:none;font-size:13px;cursor:pointer;color:var(--ink-light);transition:all .2s;display:flex;align-items:center;justify-content:center;font-family:Fraunces,serif}.json-indent-btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.json-custom-indent{display:flex;align-items:center}.json-custom-input{width:42px;height:28px;border-radius:6px;border:1px solid var(--accent);background:var(--bg);font-size:13px;font-family:Noto Sans Mono,monospace;color:var(--ink);text-align:center;outline:none;padding:0;-moz-appearance:textfield}.json-custom-input::-webkit-outer-spin-button,.json-custom-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.json-custom-input:focus{border-color:var(--accent);background:var(--accent-soft)}.json-editor-area{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.json-pane{background:var(--paper);border:1px solid var(--border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;min-height:360px}.json-pane-header{padding:10px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--bg);flex-shrink:0}.json-pane-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-light);font-family:Fraunces,serif}.json-pane-actions{display:flex;gap:6px}.json-pane-btn{background:none;border:none;font-size:12px;cursor:pointer;color:var(--border);transition:color .2s;padding:2px 6px;border-radius:4px;font-family:inherit}.json-pane-btn:hover{color:var(--ink);background:var(--border)}.json-pane-btn.done{color:var(--green)}.json-textarea{flex:1;border:none;outline:none;resize:none;background:transparent;font-family:Noto Sans Mono,monospace;font-size:13px;line-height:1.7;color:var(--ink);padding:16px;-moz-tab-size:2;tab-size:2}.json-textarea::placeholder{color:var(--border);font-size:12px;line-height:1.6}.json-output-body{flex:1;overflow:auto;padding:16px;font-family:Noto Sans Mono,monospace;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-all}.jk{color:var(--purple)}.js{color:var(--green)}.jn{color:var(--blue)}.jb{color:var(--accent)}.jz,.jp{color:var(--ink-light)}.json-error-banner{background:var(--accent-soft);border-top:1px solid var(--accent);padding:10px 14px;font-size:12px;color:var(--accent);font-family:Noto Sans Mono,monospace;line-height:1.5;display:none;flex-shrink:0}.json-error-banner.show{display:block}.json-status-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:8px 14px;background:var(--paper);border:1px solid var(--border);border-radius:10px;font-size:11px;color:var(--ink-light);margin-bottom:12px;font-family:Noto Sans Mono,monospace}.json-stat-item{display:flex;align-items:center;gap:4px}.json-stat-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.json-stat-dot.valid{background:var(--green)}.json-stat-dot.invalid{background:var(--accent)}.json-stat-dot.empty{background:var(--border)}.json-mobile-tabs{display:none;gap:8px;margin-bottom:12px}.json-mobile-tab{flex:1;padding:8px;border-radius:10px;border:1px solid var(--border);background:none;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s;text-align:center}.json-mobile-tab.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}@media (max-width: 700px){.json-wrap{padding:0 4px}.json-logo{font-size:40px}.json-mobile-tabs{display:flex}.json-editor-area{grid-template-columns:1fr}.json-pane.output-pane{display:none}.json-pane.output-pane.show{display:flex}.json-pane.input-pane.hide{display:none}}.age-wrap{position:relative;z-index:1;width:100%;max-width:520px}.age-header{text-align:center;margin-bottom:40px;position:relative}.age-logo{font-family:Fraunces,serif;font-size:52px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.age-logo em{font-style:italic;color:var(--accent)}.age-tagline{margin-top:10px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.age-input-block{background:var(--paper);border:1px solid var(--border);border-radius:16px;padding:22px 22px 18px;margin-bottom:14px}.age-input-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-light);font-family:Fraunces,serif;margin-bottom:12px;display:block}.age-date-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.age-date-input{flex:1;min-width:160px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:15px;font-family:inherit;color:var(--ink);outline:none;transition:border-color .2s}.age-date-input:focus{border-color:var(--accent)}.age-today-btn{padding:12px 16px;background:none;border:1px solid var(--border);border-radius:10px;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s;white-space:nowrap}.age-today-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.age-hero{background:var(--paper);border:1px solid var(--border);border-radius:20px;padding:32px 28px 24px;text-align:center;margin-bottom:14px;display:none}.age-hero.show{display:block;animation:ageFadeUp .4s ease}@keyframes ageFadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.age-years{font-family:Fraunces,serif;font-size:88px;font-weight:200;color:var(--ink);letter-spacing:-4px;line-height:1;margin-bottom:4px}.age-precise{font-size:15px;color:var(--ink-light);margin-bottom:24px;line-height:1.6}.age-precise strong{color:var(--ink);font-weight:400}.age-year-progress-wrap{margin-bottom:20px}.age-year-progress-label{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-light);margin-bottom:6px;font-family:Fraunces,serif}.age-year-track{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.age-year-fill{height:100%;border-radius:3px;background:var(--accent);transition:width .6s cubic-bezier(.34,1.56,.64,1)}.age-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.age-stat-card{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:16px 18px;animation:ageFadeUp .4s ease forwards;opacity:0}.age-stat-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-light);font-family:Fraunces,serif;margin-bottom:6px}.age-stat-val{font-family:Fraunces,serif;font-size:26px;font-weight:300;color:var(--ink);letter-spacing:-.5px;line-height:1}.age-stat-unit{font-size:12px;color:var(--ink-light);margin-top:3px}.age-birthday-block{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:18px 20px;margin-bottom:14px;display:none}.age-birthday-block.show{display:block;animation:ageFadeUp .4s ease}.age-bday-row{display:flex;align-items:center;justify-content:space-between}.age-bday-left{flex:1}.age-bday-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-light);font-family:Fraunces,serif;margin-bottom:6px}.age-bday-days{font-family:Fraunces,serif;font-size:36px;font-weight:300;color:var(--accent);letter-spacing:-1px;line-height:1}.age-bday-date{font-size:13px;color:var(--ink-light);margin-top:4px}.age-bday-today{font-family:Fraunces,serif;font-size:22px;color:var(--accent);font-style:italic}.age-clear-btn{padding:12px 16px;background:none;border:1px solid var(--border);border-radius:10px;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s;white-space:nowrap}.age-clear-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.age-heartbeat-note{font-size:11px;color:var(--ink-light);text-align:center;margin-top:-6px;margin-bottom:14px;opacity:.6;letter-spacing:.02em}.age-copy-btn{display:block;width:100%;padding:14px;margin-top:4px;margin-bottom:14px;background:var(--paper);border:1px solid var(--border);border-radius:12px;font-size:13px;font-family:inherit;cursor:pointer;color:var(--ink);transition:all .2s;text-align:center}.age-copy-btn:hover,.age-copy-btn.copied{border-color:var(--accent);color:var(--accent)}@media (max-width: 700px){.age-wrap{padding:0 4px}.age-logo{font-size:40px}.age-years{font-size:64px;letter-spacing:-2px}.age-stat-val{font-size:22px}.age-date-row{flex-direction:column;align-items:stretch}.age-clear-btn,.age-today-btn{width:100%;text-align:center}}.count-wrap{position:relative;z-index:1;width:100%;max-width:580px}.count-header{text-align:center;margin-bottom:36px;position:relative}.count-logo{font-family:Fraunces,serif;font-size:52px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.count-logo em{font-style:italic;color:var(--accent)}.count-tagline{margin-top:10px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.count-limit-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.count-limit-label{font-size:12px;color:var(--ink-light);white-space:nowrap}.count-limit-presets{display:flex;gap:6px;flex-wrap:wrap}.count-limit-btn{padding:5px 12px;border-radius:20px;border:1px solid var(--border);background:none;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.count-limit-btn:hover{border-color:var(--accent);color:var(--accent)}.count-limit-btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.count-limit-input{width:80px;padding:5px 10px;border:1px solid var(--border);border-radius:20px;font-size:12px;font-family:inherit;background:var(--paper);color:var(--ink);outline:none;text-align:center;transition:border-color .2s}.count-limit-input:focus{border-color:var(--accent)}.count-limit-progress{height:3px;background:var(--border);border-radius:2px;overflow:hidden;margin-bottom:14px;display:none}.count-limit-progress.show{display:block}.count-limit-bar{height:100%;border-radius:2px;background:var(--green);transition:width .3s ease,background .3s}.count-limit-bar.warn{background:var(--accent)}.count-toolbar{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.count-tool-btn{padding:7px 14px;border-radius:20px;border:1px solid var(--border);background:none;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.count-tool-btn:hover{border-color:var(--ink);color:var(--ink)}.count-tool-btn.done{background:var(--green-soft);border-color:var(--green);color:var(--green)}.count-editor-wrap{position:relative;margin-bottom:12px;transition:border-color .2s}.count-editor-wrap.drag-over{border-color:var(--accent)}.count-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#ffffffd9;border:2px dashed var(--accent);border-radius:14px;font-size:14px;font-family:Fraunces,serif;color:var(--accent);pointer-events:none}.count-textarea{width:100%;min-height:260px;background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:20px 20px 44px;font-size:15px;font-family:"Noto Serif SC",serif;color:var(--ink);line-height:1.8;outline:none;resize:vertical;transition:border-color .2s}.count-textarea:focus{border-color:var(--accent)}.count-textarea::placeholder{color:var(--border);font-size:14px}.count-textarea.over-limit{border-color:var(--accent)}.count-textarea.pasted-flash{border-color:var(--green);box-shadow:0 0 0 2px #2e7d3226}.count-float-count{position:absolute;bottom:14px;right:16px;font-family:Fraunces,serif;font-size:13px;color:var(--ink-light);pointer-events:none;transition:color .2s}.count-float-count.over{color:var(--accent)}.count-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.count-stat-card{background:var(--paper);border:1px solid var(--border);border-radius:12px;padding:14px 14px 12px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.count-stat-card:active{transform:scale(.97)}.count-stat-card.copied{border-color:var(--green);box-shadow:0 0 0 2px #2e7d3226}.count-stat-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-light);font-family:Fraunces,serif;margin-bottom:5px}.count-stat-val{font-family:Fraunces,serif;font-size:24px;font-weight:300;color:var(--ink);letter-spacing:-.3px;line-height:1}.count-read-block{background:var(--paper);border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}.count-read-item{display:flex;flex-direction:column;gap:3px;flex:1;min-width:80px}.count-read-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-light);font-family:Fraunces,serif}.count-read-val{font-family:Fraunces,serif;font-size:18px;font-weight:300;color:var(--ink)}.count-read-sep{width:1px;height:32px;background:var(--border);flex-shrink:0}@media (max-width: 700px){.count-wrap{padding:0 4px}.count-logo{font-size:40px}.count-stats-grid{grid-template-columns:1fr 1fr}.count-stat-val{font-size:20px}.count-limit-row{flex-direction:column;align-items:stretch}.count-limit-presets{justify-content:center}}.sci-wrap{position:relative;z-index:1;width:100%;max-width:400px}.sci-header{text-align:center;margin-bottom:28px;position:relative}.sci-logo{font-family:Fraunces,serif;font-size:48px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.sci-logo em{font-style:italic;color:var(--accent)}.sci-tagline{margin-top:8px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.sci-display{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:16px 20px;margin-bottom:14px;min-height:88px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;overflow:hidden}.sci-expr{font-size:13px;color:var(--ink-light);margin-bottom:6px;word-break:break-all;min-height:18px;text-align:right;width:100%}.sci-result{font-family:Fraunces,serif;font-size:38px;font-weight:300;color:var(--ink);letter-spacing:-1px;word-break:break-all;line-height:1.1;text-align:right;width:100%}.sci-angle-row{display:flex;gap:6px;margin-bottom:14px;justify-content:center}.sci-angle-btn{padding:5px 16px;border-radius:16px;border:1px solid var(--border);background:none;font-size:11px;font-family:Fraunces,serif;letter-spacing:.08em;cursor:pointer;color:var(--ink-light);transition:all .2s}.sci-angle-btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.sci-keypad{display:flex;flex-direction:column;gap:6px}.sci-row{display:grid;gap:6px}.sci-func-row,.sci-special-row,.sci-main-row{grid-template-columns:repeat(5,1fr)}.sci-btn{border:1px solid var(--border);border-radius:10px;background:var(--paper);font-family:Fraunces,serif;font-size:15px;color:var(--ink);cursor:pointer;transition:all .12s;min-height:46px;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.sci-btn:active{transform:scale(.95)}.sci-btn.func{font-size:12px;color:var(--ink-light);background:var(--bg);min-height:38px}.sci-btn.func:hover{border-color:var(--accent);color:var(--accent)}.sci-btn.func:active{background:var(--accent);color:var(--bg)}.sci-btn.special{font-size:14px;color:var(--ink-light);min-height:38px}.sci-btn.special:hover{border-color:var(--accent);color:var(--accent)}.sci-btn.special:active{background:var(--accent);color:var(--bg)}.sci-btn.digit{font-size:18px;font-weight:400}.sci-btn.digit:hover{background:var(--accent-soft)}.sci-btn.digit:active{background:var(--accent);color:var(--bg)}.sci-btn.digit.zero{grid-column:span 1}.sci-btn.op{font-size:18px;color:var(--accent);font-weight:400}.sci-btn.op:hover{background:var(--accent-soft)}.sci-btn.op:active{background:var(--accent);color:var(--bg)}.sci-btn.clear{color:var(--ink-light);font-size:14px;background:var(--bg)}.sci-btn.clear:hover{border-color:var(--accent);color:var(--accent)}.sci-btn.clear:active{background:var(--accent);color:var(--bg)}.sci-btn.clear.span2{font-size:13px}.sci-btn.equals{background:var(--ink);color:var(--bg);border-color:var(--ink);font-size:22px;font-weight:500}.sci-btn.equals:hover{background:var(--accent);border-color:var(--accent)}.sci-history{margin-top:14px;display:flex;flex-direction:column;gap:3px}.sci-history-item{font-size:12px;color:var(--ink-light);text-align:right;padding:4px 8px;border-radius:6px;cursor:pointer;transition:background .15s;font-family:Fraunces,serif}.sci-history-item:hover{background:var(--accent-soft);color:var(--ink)}@media (max-width: 700px){.sci-wrap{padding:0 4px}.sci-logo{font-size:40px}.sci-result{font-size:32px}.sci-btn{min-height:50px}.sci-btn.digit{font-size:20px}.sci-btn.func{font-size:11px;min-height:40px}.sci-btn.special{min-height:40px}.sci-btn.equals{font-size:24px}}.random-wrap{position:relative;z-index:1;width:100%;max-width:480px}.random-header{text-align:center;margin-bottom:32px;position:relative}.random-logo{font-family:Fraunces,serif;font-size:48px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.random-logo em{font-style:italic;color:var(--accent)}.random-tagline{margin-top:8px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.random-mode-tabs{display:flex;gap:8px;margin-bottom:20px}.random-mode-tab{flex:1;padding:10px 0;border-radius:12px;border:1px solid var(--border);background:none;font-size:14px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.random-mode-tab.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.random-mode-tab:hover:not(.active){border-color:var(--accent);color:var(--accent)}.random-presets{margin-bottom:16px}.random-presets-label{display:block;font-size:11px;color:var(--ink-light);letter-spacing:.05em;margin-bottom:8px}.random-presets-row{display:flex;gap:8px;flex-wrap:wrap}.random-preset-pill{padding:6px 14px;border-radius:16px;border:1px solid var(--border);background:none;font-size:12px;font-family:Fraunces,serif;cursor:pointer;color:var(--ink-light);transition:all .2s}.random-preset-pill:hover{border-color:var(--accent);color:var(--accent)}.random-preset-pill.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.random-controls{margin-bottom:20px}.random-input-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.random-input-block{display:flex;flex-direction:column;gap:6px}.random-label{font-size:11px;color:var(--ink-light);letter-spacing:.05em}.random-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-family:Fraunces,serif;font-size:16px;color:var(--ink);background:var(--paper);outline:none;text-align:center;transition:border-color .2s;box-sizing:border-box}.random-input:focus{border-color:var(--accent)}.random-type-row{display:flex;align-items:center;gap:12px;margin-bottom:14px}.random-type-btns{display:flex;gap:6px}.random-type-btn{padding:6px 14px;border-radius:16px;border:1px solid var(--border);background:none;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.random-type-btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.random-gen-btn{width:100%;padding:12px;border-radius:12px;border:none;background:var(--ink);color:var(--bg);font-family:Fraunces,serif;font-size:15px;cursor:pointer;transition:all .2s}.random-gen-btn:hover{background:var(--accent)}.random-results{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:20px}.random-results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.random-results-label{font-size:12px;color:var(--ink-light)}.random-results-actions{display:flex;gap:8px}.random-action-btn{padding:4px 10px;border-radius:12px;border:1px solid var(--border);background:none;font-size:11px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.random-action-btn:hover{border-color:var(--accent);color:var(--accent)}.random-results-grid{display:flex;flex-wrap:wrap;gap:8px}.random-result-item{position:relative;padding:6px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;font-family:Fraunces,serif;font-size:15px;color:var(--ink);cursor:pointer;transition:all .2s;animation:randomFadeIn .3s ease}.random-result-item:hover{border-color:var(--accent)}.random-result-item.copied{border-color:#22c55e;background:#f0fdf4}.random-result-check{position:absolute;top:-4px;right:-4px;width:16px;height:16px;background:#22c55e;color:#fff;border-radius:50%;font-size:9px;display:flex;align-items:center;justify-content:center;animation:randomPopIn .2s ease}@keyframes randomFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.random-list-section{margin-bottom:20px}.random-list-input{width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:14px;font-family:inherit;font-size:14px;color:var(--ink);background:var(--paper);outline:none;resize:vertical;min-height:140px;line-height:1.6;transition:border-color .2s;box-sizing:border-box;margin-bottom:12px}.random-list-input:focus{border-color:var(--accent)}.random-list-input::placeholder{color:var(--ink-light);opacity:.6}.random-list-result{margin-top:16px;padding:20px;background:var(--paper);border:2px solid var(--accent);border-radius:14px;text-align:center;animation:randomPopIn .4s ease}.random-list-result-text{font-family:Fraunces,serif;font-size:24px;font-weight:500;color:var(--accent)}.random-list-history{margin-top:16px}.random-list-history-label{display:block;font-size:11px;color:var(--ink-light);letter-spacing:.05em;margin-bottom:8px}.random-list-history-items{display:flex;flex-wrap:wrap;gap:6px}.random-list-history-item{padding:4px 10px;background:var(--paper);border:1px solid var(--border);border-radius:8px;font-size:12px;color:var(--ink-light)}.random-quick-section{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.random-quick-card{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:20px;text-align:center}.random-quick-label{font-size:12px;color:var(--ink-light);margin-bottom:12px}.random-quick-btn{padding:10px 24px;border-radius:20px;border:1px solid var(--border);background:none;font-size:14px;font-family:Fraunces,serif;cursor:pointer;color:var(--ink);transition:all .2s}.random-quick-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.random-quick-btn:active:not(:disabled){background:var(--accent);color:var(--bg)}.random-quick-btn:disabled{opacity:.6;cursor:not-allowed}.random-quick-btn.flipping{border-color:var(--accent);color:var(--accent)}.random-coin-area{height:64px;display:flex;align-items:center;justify-content:center;margin-top:12px;perspective:200px}.random-coin{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Fraunces,serif;font-size:14px;font-weight:500;transition:background .3s,color .3s;background:var(--border);color:var(--ink-light)}.random-coin.animate{animation:coinFlip 1.5s ease-out}.random-coin.heads{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#78350f;box-shadow:0 2px 8px #fbbf2466}.random-coin.tails{background:linear-gradient(135deg,#94a3b8,#64748b);color:#1e293b;box-shadow:0 2px 8px #94a3b866}@keyframes coinFlip{0%{transform:rotateX(0) scale(1)}25%{transform:rotateX(270deg) scale(1.1)}50%{transform:rotateX(540deg) scale(1)}75%{transform:rotateX(810deg) scale(1.1)}to{transform:rotateX(1080deg) scale(1)}}.random-dice-controls{display:flex;flex-direction:column;align-items:center;gap:10px}.random-dice-count-btns{display:flex;gap:4px}.random-dice-count-btn{width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:none;font-size:12px;font-family:Fraunces,serif;cursor:pointer;color:var(--ink-light);transition:all .2s;display:flex;align-items:center;justify-content:center}.random-dice-count-btn:hover{border-color:var(--accent);color:var(--accent)}.random-dice-count-btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.random-dice-results{margin-top:12px;display:flex;flex-direction:column;align-items:center;gap:6px}.random-dice-faces{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.random-dice-face{font-size:32px;line-height:1;animation:randomPopIn .3s ease}.random-dice-sum{font-family:Fraunces,serif;font-size:14px;color:var(--ink-light)}.random-dice-copy{padding:4px 10px;border-radius:12px;border:1px solid var(--border);background:none;font-size:11px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.random-dice-copy:hover{border-color:var(--accent);color:var(--accent)}.random-dice-copy.copied{border-color:#22c55e;color:#22c55e}@keyframes randomPopIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@media (max-width: 700px){.random-wrap{padding:0 4px}.random-logo{font-size:40px}.random-input-row{grid-template-columns:1fr}.random-input{font-size:18px;padding:12px}.random-quick-section{grid-template-columns:1fr}.random-result-item{font-size:14px}.random-presets-row{flex-wrap:wrap}.random-dice-face{font-size:28px}}.snowball-wrap{position:relative;z-index:1;width:100%;max-width:580px}.snowball-header{text-align:center;margin-bottom:32px;position:relative}.snowball-logo{font-family:Fraunces,serif;font-size:52px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.snowball-logo em{font-style:italic;color:var(--accent)}.snowball-tagline{margin-top:10px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.snowball-presets{margin-bottom:20px}.snowball-presets-label{display:block;font-size:11px;color:var(--ink-light);letter-spacing:.05em;margin-bottom:8px}.snowball-presets-row{display:flex;gap:8px;flex-wrap:wrap}.snowball-preset-pill{padding:7px 14px;border-radius:16px;border:1px solid var(--border);background:none;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.snowball-preset-pill:hover{border-color:var(--accent);color:var(--accent)}.snowball-preset-pill.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.snowball-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.snowball-slider-block{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:16px}.snowball-slider-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.snowball-slider-label{font-size:12px;color:var(--ink-light);letter-spacing:.05em}.snowball-numeric-box{display:flex;align-items:center;gap:4px}.snowball-direct-input{width:80px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;font-family:Fraunces,serif;font-size:14px;color:var(--ink);background:var(--bg);outline:none;text-align:right;transition:border-color .2s;box-sizing:border-box}.snowball-direct-input:focus{border-color:var(--accent)}.snowball-numeric-unit{font-size:12px;color:var(--ink-light);min-width:24px}.snowball-slider-row{display:flex;align-items:center;gap:8px}.snowball-step-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:none;font-size:14px;cursor:pointer;color:var(--ink-light);transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.snowball-step-btn:hover{border-color:var(--accent);color:var(--accent)}.snowball-range{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border);border-radius:2px;outline:none}.snowball-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--ink);cursor:pointer;transition:background .2s}.snowball-range::-webkit-slider-thumb:hover{background:var(--accent)}.snowball-slider-range{display:flex;justify-content:space-between;margin-top:6px;font-size:10px;color:var(--ink-light);opacity:.6}.snowball-freq-section{margin-bottom:20px}.snowball-freq-label{display:block;font-size:12px;color:var(--ink-light);letter-spacing:.05em;margin-bottom:8px}.snowball-freq-btns{display:flex;gap:6px;flex-wrap:wrap}.snowball-freq-btn{padding:7px 14px;border-radius:16px;border:1px solid var(--border);background:none;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.snowball-freq-btn:hover{border-color:var(--accent);color:var(--accent)}.snowball-freq-btn.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.snowball-growth-bar{margin-bottom:20px}.snowball-growth-bar-track{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--border)}.snowball-growth-bar-principal{background:var(--ink);transition:width .5s ease;min-width:2px}.snowball-growth-bar-interest{background:var(--accent);transition:width .5s ease;min-width:0}.snowball-growth-bar-legend{display:flex;justify-content:space-between;margin-top:8px;font-size:11px;color:var(--ink-light)}.snowball-growth-legend-item{display:flex;align-items:center;gap:6px}.snowball-growth-dot{width:8px;height:8px;border-radius:50%}.snowball-growth-dot.principal{background:var(--ink)}.snowball-growth-dot.interest{background:var(--accent)}.snowball-result-block{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:20px;margin-bottom:16px}.snowball-result-primary{text-align:center;margin-bottom:16px;cursor:pointer;transition:opacity .2s}.snowball-result-primary:hover{opacity:.8}.snowball-result-primary-label{display:block;font-size:12px;color:var(--ink-light);margin-bottom:4px}.snowball-result-primary-value{font-family:Fraunces,serif;font-size:32px;font-weight:500;color:var(--ink);line-height:1.2}.snowball-copy-indicator{display:block;font-size:11px;color:var(--ink-light);margin-top:6px;min-height:16px;transition:color .2s;opacity:0}.snowball-copy-indicator.show{opacity:1;color:var(--accent)}.snowball-result-pills{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.snowball-pill{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px 8px;text-align:center;cursor:pointer;transition:all .2s;position:relative}.snowball-pill:hover{border-color:var(--accent)}.snowball-pill.accent{border-color:var(--accent);background:#ff7f500d}.snowball-pill-label{font-size:10px;color:var(--ink-light);margin-bottom:4px;letter-spacing:.03em}.snowball-pill-val{font-family:Fraunces,serif;font-size:14px;font-weight:500;color:var(--ink)}.snowball-pill.accent .snowball-pill-val{color:var(--accent)}.snowball-pill-check{position:absolute;top:-4px;right:-4px;width:16px;height:16px;background:#22c55e;color:#fff;border-radius:50%;font-size:9px;display:flex;align-items:center;justify-content:center}.snowball-milestones{margin-bottom:16px}.snowball-milestones-label{display:block;font-size:11px;color:var(--ink-light);letter-spacing:.05em;margin-bottom:8px}.snowball-milestones-list{display:flex;gap:8px}.snowball-milestone{flex:1;background:var(--paper);border:1px solid var(--border);border-radius:10px;padding:10px;text-align:center}.snowball-milestone-year{display:block;font-size:10px;color:var(--ink-light);margin-bottom:4px}.snowball-milestone-amount{font-family:Fraunces,serif;font-size:13px;font-weight:500;color:var(--accent)}@media (max-width: 700px){.snowball-wrap{padding:0 4px}.snowball-logo{font-size:40px}.snowball-result-primary-value{font-size:26px}.snowball-result-pills{grid-template-columns:1fr}.snowball-freq-btns{flex-wrap:wrap}.snowball-direct-input{width:60px;font-size:13px}.snowball-milestones-list{flex-direction:column}.snowball-presets-row{flex-wrap:wrap}}.unit-wrap{position:relative;z-index:1;width:100%;max-width:580px}.unit-header{text-align:center;margin-bottom:32px}.unit-logo{font-family:Fraunces,serif;font-size:52px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.unit-logo em{font-style:italic;color:var(--accent)}.unit-tagline{margin-top:10px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.unit-categories{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.unit-cat-pill{padding:7px 16px;border-radius:16px;border:1px solid var(--border);background:none;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.unit-cat-pill:hover{border-color:var(--accent);color:var(--accent)}.unit-cat-pill.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.unit-input-section{margin-bottom:20px}.unit-input-label{display:block;font-size:11px;color:var(--ink-light);letter-spacing:.05em;margin-bottom:8px}.unit-input-row{display:flex;align-items:center;gap:8px}.unit-input{flex:1;padding:12px 14px;border:1px solid var(--border);border-radius:12px;font-family:Fraunces,serif;font-size:20px;color:var(--ink);background:var(--paper);outline:none;transition:border-color .2s}.unit-input:focus{border-color:var(--accent)}.unit-input-symbol{font-size:14px;color:var(--ink-light);min-width:36px}.unit-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-bottom:20px}.unit-result-card{background:var(--paper);border:1px solid var(--border);border-radius:12px;padding:14px 12px;text-align:center;cursor:pointer;transition:all .2s;position:relative}.unit-result-card:hover{border-color:var(--accent)}.unit-result-card.current{border-color:var(--accent);background:#c85a2a0a}.unit-result-name{font-size:11px;color:var(--ink-light);margin-bottom:2px}.unit-result-symbol{font-size:10px;color:var(--border-dark);margin-bottom:6px}.unit-result-value{font-family:Fraunces,serif;font-size:16px;font-weight:500;color:var(--ink);word-break:break-all}.unit-result-card.current .unit-result-value{color:var(--accent)}.unit-result-check{position:absolute;top:-4px;right:-4px;width:18px;height:18px;background:#22c55e;color:#fff;border-radius:50%;font-size:10px;display:flex;align-items:center;justify-content:center}@media (max-width: 700px){.unit-wrap{padding:0 4px}.unit-logo{font-size:40px}.unit-results{grid-template-columns:repeat(2,1fr)}.unit-input{font-size:18px}}.roi-wrap{position:relative;z-index:1;width:100%;max-width:580px}.roi-header{text-align:center;margin-bottom:32px}.roi-logo{font-family:Fraunces,serif;font-size:52px;font-weight:500;color:var(--ink);letter-spacing:-1px;line-height:1}.roi-logo em{font-style:italic;color:var(--accent)}.roi-tagline{margin-top:10px;font-size:13px;color:var(--ink-light);letter-spacing:.05em}.roi-hint{margin-top:6px;font-size:11px;color:var(--ink-light);opacity:.5;letter-spacing:.03em}.roi-presets{margin-bottom:20px}.roi-presets-label{display:block;font-size:11px;color:var(--ink-light);letter-spacing:.05em;margin-bottom:8px}.roi-presets-row{display:flex;gap:8px;flex-wrap:wrap}.roi-preset-pill{padding:7px 14px;border-radius:16px;border:1px solid var(--border);background:none;font-size:12px;font-family:inherit;cursor:pointer;color:var(--ink-light);transition:all .2s}.roi-preset-pill:hover{border-color:var(--accent);color:var(--accent)}.roi-preset-pill.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.roi-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.roi-slider-block{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:16px}.roi-slider-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.roi-slider-label{font-size:12px;color:var(--ink-light);letter-spacing:.05em}.roi-numeric-box{display:flex;align-items:center;gap:4px}.roi-direct-input{width:80px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;font-family:Fraunces,serif;font-size:14px;color:var(--ink);background:var(--bg);outline:none;text-align:right;transition:border-color .2s;box-sizing:border-box}.roi-direct-input:focus{border-color:var(--accent)}.roi-numeric-unit{font-size:12px;color:var(--ink-light);min-width:24px}.roi-slider-row{display:flex;align-items:center;gap:8px}.roi-step-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:none;font-size:14px;cursor:pointer;color:var(--ink-light);transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.roi-step-btn:hover{border-color:var(--accent);color:var(--accent)}.roi-range{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--border);border-radius:2px;outline:none}.roi-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--ink);cursor:pointer;transition:background .2s}.roi-range::-webkit-slider-thumb:hover{background:var(--accent)}.roi-slider-range{display:flex;justify-content:space-between;margin-top:6px;font-size:10px;color:var(--ink-light);opacity:.6}.roi-results{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}.roi-result-card{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:16px;text-align:center;cursor:pointer;transition:all .2s;position:relative}.roi-result-card:hover{border-color:var(--accent)}.roi-result-card.primary{grid-column:1 / -1}.roi-result-card.primary.negative{border-color:#dc2626;background:#dc26260a}.roi-result-card.primary.negative .roi-result-value{color:#dc2626}.roi-result-card.primary.positive .roi-result-value{color:var(--green)}.roi-result-card.accent{border-color:var(--accent);background:#c85a2a0a}.roi-result-label{font-size:11px;color:var(--ink-light);margin-bottom:4px;letter-spacing:.03em}.roi-result-value{font-family:Fraunces,serif;font-size:20px;font-weight:500;color:var(--ink)}.roi-result-card.primary .roi-result-value{font-size:28px}.roi-result-card.accent .roi-result-value{color:var(--accent)}.roi-result-value.negative{color:#dc2626}.roi-result-check{position:absolute;top:-4px;right:-4px;width:18px;height:18px;background:#22c55e;color:#fff;border-radius:50%;font-size:10px;display:flex;align-items:center;justify-content:center}@media (max-width: 700px){.roi-wrap{padding:0 4px}.roi-logo{font-size:40px}.roi-results{grid-template-columns:1fr}.roi-direct-input{width:60px;font-size:13px}}.case-wrap{position:relative;z-index:1;width:100%;max-width:680px}.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.case-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 14px 12px;background:var(--paper);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left;overflow:hidden}.case-card:hover{border-color:var(--accent)}.case-card.empty{cursor:default;opacity:.5}.case-card.copied{border-color:var(--green);background:var(--green-soft)}.case-card-label{font-size:11px;color:var(--ink-light);letter-spacing:.03em;flex-shrink:0}.case-card.copied .case-card-label{color:var(--green)}.case-card-preview{font-family:Fraunces,serif;font-size:13px;color:var(--ink);line-height:1.4;word-break:break-all;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.case-card.empty .case-card-preview{color:var(--border);font-style:italic}.case-card-check{position:absolute;top:8px;right:8px;width:18px;height:18px;background:var(--green);color:#fff;border-radius:50%;font-size:10px;display:flex;align-items:center;justify-content:center;animation:caseCheckIn .2s ease}@keyframes caseCheckIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.case-clear-row{display:flex;justify-content:center;margin-bottom:8px}@media (max-width: 700px){.case-grid{grid-template-columns:repeat(2,1fr);gap:6px}.case-card{padding:12px;min-height:72px}.case-card-preview{font-size:12px}}@media (max-width: 420px){.case-grid{grid-template-columns:1fr}}.b64-wrap{position:relative;z-index:1;width:100%;max-width:680px}.b64-detect{display:flex;align-items:center;gap:6px;padding:8px 14px;margin-bottom:12px;background:var(--paper);border:1px solid var(--border);border-radius:10px;font-size:12px;color:var(--ink-light);letter-spacing:.03em;animation:b64FadeIn .25s ease}.b64-detect-icon{font-size:14px}@keyframes b64FadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.b64-results{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}.b64-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;background:var(--paper);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;text-align:left;overflow:hidden;min-height:100px}.b64-card:hover{border-color:var(--accent)}.b64-card.primary{border-color:var(--accent);background:#c85a2a0a}.b64-card.copied{border-color:var(--green);background:var(--green-soft)}.b64-card-label{font-size:11px;color:var(--ink-light);letter-spacing:.05em;font-family:Fraunces,serif;flex-shrink:0}.b64-card.primary .b64-card-label{color:var(--accent)}.b64-card.copied .b64-card-label{color:var(--green)}.b64-card-text{font-family:Fraunces,serif;font-size:13px;color:var(--ink);line-height:1.5;word-break:break-all;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;flex:1;width:100%}.b64-card:not(.primary) .b64-card-text{color:var(--ink-light);opacity:.6}.b64-card-check{position:absolute;top:10px;right:10px;width:18px;height:18px;background:var(--green);color:#fff;border-radius:50%;font-size:10px;display:flex;align-items:center;justify-content:center;animation:b64CheckIn .2s ease}@keyframes b64CheckIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.b64-clear-row{display:flex;justify-content:center;margin-bottom:8px}@media (max-width: 700px){.b64-card{padding:14px;min-height:80px}.b64-card-text{font-size:12px}}@media (max-width: 420px){.b64-results{grid-template-columns:1fr}}.pick-dropzone{background:var(--paper);border:2px dashed var(--border);border-radius:16px;padding:56px 32px;text-align:center;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.pick-dropzone:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-soft);opacity:0;transition:opacity .3s}.pick-dropzone.drag-over{border-color:var(--accent);border-style:solid}.pick-dropzone.drag-over:after{opacity:.3}.pick-drop-icon{font-size:44px;margin-bottom:16px;display:block;transition:transform .3s}.pick-dropzone:hover .pick-drop-icon{transform:scale(1.1) rotate(-5deg)}.pick-drop-title{font-family:Fraunces,serif;font-size:22px;font-weight:300;color:var(--ink);margin-bottom:8px}.pick-drop-sub{font-size:13px;color:var(--ink-light);line-height:1.6}.pick-drop-input{display:none}.pick-select-btn{display:inline-block;margin-top:20px;padding:10px 28px;background:var(--ink);color:var(--bg);border-radius:40px;font-size:13px;font-family:inherit;border:none;cursor:pointer;transition:all .2s;letter-spacing:.03em}.pick-select-btn:hover{background:var(--accent);transform:translateY(-1px)}.pick-image-area{position:relative;display:inline-block;max-width:100%;border-radius:12px;overflow:hidden;cursor:crosshair;background:repeating-conic-gradient(#e8e4dc,#e8e4dc 25%,#f5f0e8 0%,#f5f0e8 50%) 50% / 16px 16px}.pick-image-area canvas{display:block;max-width:100%;max-height:70vh}.pick-magnifier{position:fixed;top:100px;left:24px;width:180px;height:220px;background:var(--paper);border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 20px #0000001f;z-index:100;overflow:hidden;display:flex;flex-direction:column}.pick-mag-canvas{width:180px;height:180px;image-rendering:pixelated;image-rendering:crisp-edges}.pick-mag-info{padding:6px 10px;text-align:center;font-size:12px;font-family:Noto Sans Mono,monospace;color:var(--ink);border-top:1px solid var(--border);min-height:34px;display:flex;align-items:center;justify-content:center}.pick-color-bar{margin-top:20px;background:var(--paper);border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;gap:20px;align-items:flex-start;animation:pickSlideUp .3s cubic-bezier(.34,1.56,.64,1)}.pick-swatch{width:80px;height:80px;border-radius:10px;flex-shrink:0;border:1px solid var(--border);transition:background-color .15s}.pick-values{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.pick-value-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}.pick-value-card:hover{border-color:var(--accent)}.pick-value-card .pick-val-label{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-light);margin-bottom:4px}.pick-value-card .pick-val-text{display:block;font-size:13px;font-family:Noto Sans Mono,monospace;color:var(--ink);word-break:break-all}.pick-value-card .pick-val-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--green-soft);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;opacity:0;transition:opacity .2s;pointer-events:none}.pick-value-card .pick-val-flash.show{opacity:1}.pick-send-btn{margin-top:14px;padding:10px 20px;background:var(--accent);color:var(--bg);border:none;border-radius:8px;font-size:13px;font-family:inherit;cursor:pointer;transition:all .2s;letter-spacing:.02em}.pick-send-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #c85a2a4d}@keyframes pickSlideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 700px){.pick-magnifier{top:auto;bottom:16px;left:16px;width:140px;height:174px}.pick-mag-canvas{width:140px;height:140px}.pick-color-bar{flex-direction:column;align-items:stretch}.pick-swatch{width:100%;height:48px}.pick-values{grid-template-columns:1fr}}:root{--bg: #f5f0e8;--paper: #faf7f2;--ink: #2c2417;--ink-light: #7a6e5f;--accent: #c85a2a;--accent-soft: #f0d5c8;--green: #3a7a4a;--green-soft: #d4ead9;--mint: #70a890;--mint-soft: #e3f0e9;--border: #ddd5c5;--border-dark: #c8bfae;--blue: #4a6a9a;--blue-soft: #d8e2f0;--purple: #6b4f8a;--purple-soft: #ede6f5}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--ink);font-family:"Noto Serif SC",serif;min-height:100vh;overflow-x:hidden;-webkit-tap-highlight-color:transparent}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.045'/%3E%3C/svg%3E");pointer-events:none;z-index:0}.lang-toggle{position:fixed;top:28px;right:32px;z-index:100;background:none;border:1px solid var(--border);border-radius:20px;padding:10px 18px;min-height:44px;font-size:12px;cursor:pointer;color:var(--ink-light);font-family:inherit;transition:all .2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lang-toggle:hover{background:var(--paper);color:var(--ink)}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .6s ease}.fade-in.visible{opacity:1;transform:translateY(0)}@media (max-width: 700px){.lang-toggle{top:12px;right:12px;padding:8px 14px;min-height:40px;font-size:11px}}
