.fnc{display:flex;flex-direction:column;gap:1.75rem;padding:2.5rem;background:#090912;border-radius:28px;border:1.5px solid rgba(192,38,211,.3);color:#f0f0ff;max-width:860px;margin:2rem auto;box-shadow:0 0 60px #c026d314,0 0 120px #06b6d40a,inset 0 0 40px #c026d308;transition:box-shadow .4s ease}.fnc:hover{box-shadow:0 0 80px #c026d31f,0 0 160px #06b6d40f,inset 0 0 60px #c026d30d}.fnc__mode-switcher{display:flex;background:#0f0f1e;border-radius:14px;padding:5px;gap:5px;border:1px solid rgba(255,255,255,.06);align-self:center}.fnc__mode-btn{flex:1;padding:.65rem 1.75rem;border-radius:10px;border:none;background:transparent;color:#f0f0ff73;font-size:.9rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:all .25s ease}.fnc__mode-btn--active{background:linear-gradient(135deg,#c026d3,#7c3aed);color:#fff;box-shadow:0 4px 20px #c026d366}.fnc__mode-btn:not(.fnc__mode-btn--active):hover{color:#d946ef;background:#c026d314}.fnc__calibration-bar{display:flex;flex-direction:column;gap:.75rem;background:#0f0f1e;padding:1.1rem 1.4rem;border-radius:18px;border:1px solid rgba(6,182,212,.15)}.fnc__cal-main{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.fnc__cal-info{font-size:.78rem;color:#f0f0ff73;line-height:1.5;margin:0}.fnc__cal-info strong{color:#06b6d4}.fnc__cal-label{font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#06b6d4;white-space:nowrap}.fnc__cal-presets{display:flex;gap:.5rem}.fnc__cal-preset{background:transparent;border:1px solid rgba(6,182,212,.3);color:#f0f0ff80;padding:.35rem .85rem;border-radius:99px;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .2s}.fnc__cal-preset--active{background:#06b6d426;border-color:#06b6d4;color:#06b6d4}.fnc__cal-preset:not(.fnc__cal-preset--active):hover{border-color:#06b6d4;color:#06b6d4}.fnc__cal-custom{width:80px;background:#090912;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.3rem .6rem;color:#fff;font-size:.85rem;font-weight:700;text-align:center}.fnc__cal-custom:focus{outline:none;border-color:#06b6d4}.fnc__cal-unit{font-size:.78rem;color:#f0f0ff59;font-weight:600}.fnc__main-panel{display:flex;flex-direction:column;gap:1.5rem}.fnc__main-panel--hidden{display:none}.fnc__input-zone{display:flex;flex-direction:column;gap:.5rem}.fnc__input-label{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#c026d3}.fnc__input-row{display:flex;align-items:center;gap:.75rem}.fnc__big-input{flex:1;background:#0f0f1e;border:2px solid rgba(192,38,211,.3);border-radius:14px;padding:1.1rem 1.4rem;color:#fff;font-size:2rem;font-weight:900;font-variant-numeric:tabular-nums;transition:all .3s ease;-webkit-appearance:none;-moz-appearance:textfield;appearance:none}.fnc__big-input::-webkit-outer-spin-button,.fnc__big-input::-webkit-inner-spin-button{-webkit-appearance:none}.fnc__big-input:focus{outline:none;border-color:#c026d3;background:#140b1e;box-shadow:0 0 0 4px #c026d31f}.fnc__big-unit{font-size:1.2rem;font-weight:700;color:#f0f0ff59}.fnc__play-btn{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#c026d3,#7c3aed);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;box-shadow:0 4px 20px #c026d366}.fnc__play-btn:hover{transform:scale(1.1);box-shadow:0 6px 28px #c026d38c}.fnc__play-btn:active{transform:scale(.95)}.fnc__result-hero{text-align:center;padding:2rem;background:radial-gradient(ellipse at center,rgba(192,38,211,.08) 0%,transparent 70%),#0f0f1e;border-radius:20px;border:1px solid rgba(192,38,211,.2);display:flex;flex-direction:column;align-items:center;gap:.5rem}.fnc__note-name{font-size:4rem;font-weight:900;color:#e879f9;line-height:1;letter-spacing:-.02em;text-shadow:0 0 40px rgba(232,121,249,.5)}.fnc__note-freq{font-size:.95rem;color:#f0f0ff73;font-weight:500}.fnc__copy-hero{display:flex;align-items:center;gap:.5rem;background:#c026d326;border:1px solid rgba(192,38,211,.35);color:#e879f9;padding:.5rem 1.2rem;border-radius:99px;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .2s;margin-top:.5rem}.fnc__copy-hero:hover{background:#c026d340;transform:translateY(-1px)}.fnc__copy-hero--done{background:#10b98133;border-color:#10b981;color:#10b981}.fnc__tuner{background:#0f0f1e;border-radius:16px;padding:1.25rem 1.5rem;border:1px solid rgba(255,255,255,.06)}.fnc__tuner-track{position:relative;height:8px;background:linear-gradient(90deg,#1e3a5f,#10b981 48% 52%,#5c1a40);border-radius:99px;margin-bottom:.5rem}.fnc__tuner-center-mark{position:absolute;top:-4px;left:50%;transform:translate(-50%);width:2px;height:16px;background:#fff6;border-radius:1px}.fnc__tuner-needle{position:absolute;top:-6px;left:50%;width:4px;height:20px;border-radius:2px;background:#c026d3;transform:translate(-50%);transition:left .15s ease,background .2s;box-shadow:0 0 8px #c026d3cc}.fnc__tuner-needle--perfect{background:#10b981;box-shadow:0 0 12px #10b981e6}.fnc__tuner-needle--sharp{background:#f59e0b;box-shadow:0 0 8px #f59e0bcc}.fnc__tuner-needle--flat{background:#06b6d4;box-shadow:0 0 8px #06b6d4cc}.fnc__tuner-labels{display:flex;justify-content:space-between;font-size:.65rem;color:#f0f0ff4d;font-weight:700;letter-spacing:.05em;margin-top:.35rem}.fnc__tuner-label-center{color:#10b981}.fnc__cents-value{text-align:center;font-size:.82rem;font-weight:700;color:#f0f0ff80;margin-top:.5rem;letter-spacing:.04em}.fnc__harmonics{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:.85rem}.fnc__harmonic-card{background:#0f0f1e;border-radius:14px;padding:1rem;border:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;transition:border-color .2s}.fnc__harmonic-card--main{border-color:#c026d34d;background:radial-gradient(circle at center,rgba(192,38,211,.06),transparent 80%),#0f0f1e}.fnc__harmonic-label{font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#f0f0ff59}.fnc__harmonic-value{font-size:1rem;font-weight:800;color:#f0f0ff;font-variant-numeric:tabular-nums}.fnc__copy-small{background:transparent;border:1px solid rgba(255,255,255,.1);color:#f0f0ff59;width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.fnc__copy-small:hover{border-color:#c026d3;color:#e879f9;background:#c026d31a}.fnc__copy-small--done{border-color:#10b981;color:#10b981;background:#10b9811a}.fnc__note-selector{background:#0f0f1e;border-radius:16px;padding:1.25rem;border:1px solid rgba(192,38,211,.2)}.fnc__note-dropdowns{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.fnc__select-group{display:flex;flex-direction:column;gap:.5rem}.fnc__select-label{font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#c026d3}.fnc__select{background:#090912;border:1.5px solid rgba(192,38,211,.25);border-radius:12px;padding:.85rem 1rem;color:#f0f0ff;font-size:1rem;font-weight:700;cursor:pointer;-webkit-appearance:none;appearance:none;transition:border-color .2s}.fnc__text-input{width:100%;background:#090912;border:2px solid rgba(192,38,211,.3);border-radius:12px;padding:1rem;color:#fff;font-size:1.5rem;font-weight:800;margin-bottom:1rem;transition:all .3s}.fnc__text-input:focus{outline:none;border-color:#c026d3;box-shadow:0 0 0 4px #c026d326}.fnc__select:focus{outline:none;border-color:#c026d3;box-shadow:0 0 0 3px #c026d31f}.fnc__play-row{display:flex;justify-content:center}.fnc__play-full-btn{display:flex;align-items:center;gap:.6rem;padding:.85rem 2rem;background:linear-gradient(135deg,#c026d3,#7c3aed);border:none;border-radius:99px;color:#fff;font-size:.95rem;font-weight:800;cursor:pointer;letter-spacing:.04em;transition:all .2s;box-shadow:0 4px 20px #c026d366}.fnc__play-full-btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px #c026d38c}.fnc__play-full-btn:active{transform:translateY(0)}.fnc__piano-section{display:flex;flex-direction:column;gap:.75rem}.fnc__piano-label{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#f0f0ff4d;text-align:center}.fnc__piano{display:flex;justify-content:center;gap:0;background:#06060e;border-radius:16px;padding:1.25rem 1rem .5rem;border:1px solid rgba(255,255,255,.05);overflow-x:auto;touch-action:none}.fnc__piano-octave{display:flex;position:relative}.fnc__piano-octave-label{position:absolute;bottom:-1.5rem;left:50%;transform:translate(-50%);font-size:.6rem;font-weight:700;color:#f0f0ff33;white-space:nowrap;letter-spacing:.06em}.fnc__key{border:none;cursor:pointer;position:relative;transition:background .12s,transform .08s,box-shadow .12s;flex-shrink:0}.fnc__key--white{width:36px;height:120px;background:linear-gradient(180deg,#e8e8f0,#fff);border-radius:0 0 6px 6px;border:1px solid rgba(0,0,0,.2);margin:0 1px;z-index:1;display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px}.fnc__key--white:hover{background:linear-gradient(180deg,#d8b4fe,#ede9fe)}.fnc__key--white.fnc__key--active{background:linear-gradient(180deg,#c026d3,#e879f9);box-shadow:0 0 16px #c026d3b3;transform:translateY(2px)}.fnc__key--black{position:absolute;right:-13px;top:0;width:24px;height:74px;background:linear-gradient(180deg,#1a1a2e,#0d0d1a);border-radius:0 0 5px 5px;border:1px solid rgba(192,38,211,.2);z-index:2;box-shadow:0 4px 10px #0009}.fnc__key--black:hover{background:linear-gradient(180deg,#4c1d95,#2e1065)}.fnc__key--black.fnc__key--active{background:linear-gradient(180deg,#c026d3,#7c3aed);box-shadow:0 0 14px #c026d3cc}.fnc__key-label{font-size:.52rem;font-weight:700;color:#00000059;letter-spacing:.04em;pointer-events:none}.fnc__history-section{background:#0f0f1e;border-radius:16px;padding:1.25rem;border:1px solid rgba(255,255,255,.06)}.fnc__history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.85rem}.fnc__history-title{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#f0f0ff66}.fnc__history-clear{background:transparent;border:1px solid rgba(255,255,255,.1);color:#f0f0ff4d;padding:.25rem .75rem;border-radius:99px;font-size:.72rem;font-weight:700;cursor:pointer;transition:all .2s}.fnc__history-clear:hover{border-color:#c026d380;color:#e879f9}.fnc__history-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.fnc__history-recall{width:100%;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:.6rem 1rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:all .2s;color:inherit}.fnc__history-recall:hover{background:#c026d314;border-color:#c026d34d}.fnc__history-hz{font-size:.88rem;font-weight:700;color:#f0f0ffb3;font-variant-numeric:tabular-nums}.fnc__history-note{font-size:.88rem;font-weight:800;color:#e879f9}.fnc__history-empty{text-align:center;font-size:.8rem;color:#f0f0ff33;padding:.75rem 0;font-weight:600}@media(max-width:768px){.fnc{padding:1.25rem;gap:1.25rem;border-radius:20px;margin:1rem}.fnc__note-name{font-size:3rem}.fnc__big-input{font-size:1.5rem;padding:.9rem 1rem}.fnc__harmonics{grid-template-columns:1fr}.fnc__harmonic-card{flex-direction:row;justify-content:space-between;text-align:left}.fnc__key--white{width:28px;height:90px}.fnc__key--black{width:18px;height:56px;right:-10px}.fnc__calibration-bar{gap:.5rem}.fnc__cal-presets{flex-wrap:wrap}}@media(max-width:480px){.fnc{padding:.85rem;gap:1rem;margin:.5rem}.fnc__mode-btn{padding:.55rem 1rem;font-size:.82rem}.fnc__note-name{font-size:2.5rem}.fnc__piano{padding:1rem .5rem .25rem}.fnc__key--white{width:24px;height:80px}.fnc__key--black{width:16px;height:50px;right:-8px}.fnc__note-dropdowns{grid-template-columns:1fr}}
