@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:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px 60px;text-align:center}.site-name{font-family:Fraunces,serif;font-size:clamp(72px,14vw,140px);font-weight:200;color:var(--ink);letter-spacing:-4px;line-height:.9;margin-bottom:32px}.site-name em{font-style:italic;color:var(--accent);font-weight:300}.hero-desc{font-size:clamp(14px,2vw,16px);color:var(--ink-light);line-height:1.9;max-width:480px;margin-bottom:48px}.hero-desc strong{color:var(--ink);font-weight:400}.scroll-hint{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--border-dark);font-size:11px;letter-spacing:.1em;animation:float 2.5s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--border-dark),transparent)}.tools-section{position:relative;z-index:1;padding:0 24px 120px;max-width:960px;margin:0 auto}.section-eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-light);font-family:Fraunces,serif;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--border)}.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.tool-card{background:var(--paper);border:1px solid var(--border);border-radius:20px;padding:32px 28px 28px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:14px;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:20px}.tool-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 12px 40px #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:38px;font-weight:300;color:var(--ink);letter-spacing:-1px;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:12px;color:var(--ink-light);letter-spacing:.06em;position:relative}.tool-desc{font-size:14px;color:var(--ink-light);line-height:1.75;position:relative}.tool-tags{display:flex;flex-wrap:wrap;gap:6px;position:relative;min-height:44px;align-content:flex-end}.tag{padding:3px 10px;border:1px solid var(--border);border-radius:20px;font-size:11px;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 120px;text-align:center}.phil-title{font-family:Fraunces,serif;font-size:clamp(28px,5vw,42px);font-weight:300;line-height:1.3;margin-bottom:24px;color:var(--ink)}.phil-title em{font-style:italic;color:var(--accent)}.phil-body{font-size:15px;color:var(--ink-light);line-height:2;margin-bottom:40px}.divider{width:1px;height:60px;background:linear-gradient(to bottom,var(--border),transparent);margin:0 auto 40px}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)}.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)}.squish-stage{display:grid;grid-template-columns:280px 1fr;gap:24px;margin-top:24px;align-items:stretch}.squish-info{background:var(--paper);border:1px solid var(--border);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:14px;font-size:13px}.info-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;font-size:13px}.info-key{color:var(--ink-light)}.info-val{color:var(--ink);font-family:Fraunces,serif;font-weight:500;text-align:right}.info-arrow{color:var(--border);font-size:12px}.badge-green{display:inline-block;background:var(--green-soft);color:var(--green);border-radius:6px;padding:3px 10px;font-size:12px;font-family:Fraunces,serif;font-weight:500;white-space:nowrap}.info-divider{border:none;border-top:1px solid var(--border);margin:4px 0}.info-caption{font-size:11px;color:var(--ink-light);letter-spacing:.04em;margin-bottom:-2px}.info-quality{display:flex;align-items:baseline;justify-content:space-between}.info-quality .quality-label{font-size:13px;color:var(--ink);font-weight:500;min-width:0}.info-quality .quality-val{font-family:Fraunces,serif;font-size:20px;font-weight:500;color:var(--accent);min-width:36px;text-align:right}.squish-info input[type=range]{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--border);border-radius:2px;outline:none;cursor:pointer;margin:0}.squish-info input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;transition:transform .2s;border:2px solid var(--bg);box-shadow:0 1px 4px #00000026}.squish-info input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.squish-info input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--bg)}.info-hint{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-light);letter-spacing:.03em;opacity:.75;margin-top:-4px}.repick-btn{margin-top:4px;padding:10px 14px;background:none;border:1px solid var(--border);border-radius:8px;font-size:12px;cursor:pointer;color:var(--ink);font-family:inherit;transition:all .2s;text-align:center}.repick-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.download-active-btn{padding:12px 14px;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}.download-active-btn:hover{background:var(--accent);transform:translateY(-1px)}.squish-canvas{position:relative;background:#f0f0f0;border:1px solid var(--border);border-radius:14px;overflow:hidden;min-height:420px;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;background-image:linear-gradient(45deg,#e8e8e8 25%,transparent 25%),linear-gradient(-45deg,#e8e8e8 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e8e8e8 75%),linear-gradient(-45deg,transparent 75%,#e8e8e8 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0}.compare-layer{display:block;max-width:100%;max-height:70vh;width:auto;height:auto;object-fit:contain;pointer-events:none}.compare-compressed{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:auto;height:auto;max-width:100%;max-height:70vh;object-fit:contain}.compare-divider{position:absolute;top:0;bottom:0;width:2px;background:#fffffff2;box-shadow:0 0 0 1px #0000001f,0 0 12px #00000040;cursor:ew-resize;z-index:3;transform:translate(-50%)}.compare-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;background:var(--bg);border:1px solid var(--border);box-shadow:0 2px 10px #0000002e;cursor:ew-resize;display:flex;align-items:center;justify-content:center;font-family:JetBrains Mono,Courier New,monospace;font-size:13px;color:var(--ink);font-weight:600;letter-spacing:-1px;padding:0 0 1px;transition:transform .15s;touch-action:none}.compare-handle:hover{transform:translate(-50%,-50%) scale(1.1)}.compare-handle:active{transform:translate(-50%,-50%) scale(.95)}.badge-corner{position:absolute;top:14px;z-index:4;background:var(--bg);color:var(--ink);border:1px solid var(--border);border-radius:6px;padding:4px 12px;font-size:12px;font-family:inherit;font-weight:500;letter-spacing:.02em;box-shadow:0 1px 4px #0000000f;pointer-events:none}.badge-corner.left{left:14px}.badge-corner.right{right:14px;background:var(--green-soft);color:var(--green);border-color:var(--green-soft);display:inline-flex;align-items:center;gap:4px}.squish-thumbs{display:flex;gap:8px;align-items:center;margin-top:16px;flex-wrap:wrap}.squish-thumb{width:48px;height:48px;border-radius:8px;object-fit:cover;border:2px solid var(--border);cursor:pointer;flex-shrink:0;transition:all .2s;background:var(--paper);animation:thumbPop .32s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:calc(var(--idx, 0) * .06s)}.squish-thumb:hover{transform:translateY(-2px)}.squish-thumb.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.squish-thumbs .download-all{margin-left:auto;margin-top:0;width:auto;padding:8px 14px;font-size:12px;animation:thumbPop .32s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:calc(var(--squish-thumb-count, 6) * .06s)}@keyframes thumbPop{0%{opacity:0;transform:translateY(8px) scale(.86)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:.95}}.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:thumbPop .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}@media (max-width: 700px){.squish-stage{grid-template-columns:1fr;gap:16px}.squish-canvas{min-height:280px;max-height:60vh}.compare-handle{width:52px;height:52px}.badge-corner{font-size:11px;padding:3px 10px}.squish-thumb{width:44px;height:44px}.tag{padding:5px 12px;font-size:12px}.dropzone{padding:40px 20px}}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.erasing{opacity:0;transform:translate(-8px)}.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}}: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}}
