*,:after,:before{box-sizing:border-box}#root,body,html{height:100%}:root{--bg:#f8fafc;--bg-elev:#f1f5f9;--surface:#ffffff94;--surface-2:#ffffff47;--border:#3a43502e;--text:#0e1525;--text-muted:#607085;--accent:#1ea4b8;--accent-ink:#00353d;--blur:16px;--radius:18px;--radius-sm:12px;--radius-lg:26px;--shadow:0 10px 30px #03050726;--ring:#2a6df4b3;--dur-fast:150ms;--dur:220ms;--dur-slow:360ms;--ease:cubic-bezier(.2,.8,.2,1);--fs-0:12px;--fs-1:14px;--fs-2:16px;--fs-3:18px;--fs-4:22px;--fs-5:28px;--fs-6:36px}body[data-theme=dark],html[data-theme=dark]{--bg:#14171f;--bg-elev:#181c25;--surface:#ffffff0f;--surface-2:#ffffff1a;--border:#f9fafb26;--text:#f1f5f9;--text-muted:#a6b0bf;--accent:#38c6dc;--accent-ink:#00353d;--shadow:0 12px 32px #03040773;--ring:#2ad9f4cc}body[data-theme=hc],html[data-theme=hc]{--bg:#fff;--bg-elev:#fff;--surface:#fff;--surface-2:#fff;--border:#1a1a1a;--text:#000;--text-muted:#262626;--accent:#0041c2;--accent-ink:#fff;--blur:0px;--ring:#a38800}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0ms;--dur:0ms;--dur-slow:0ms}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(1200px 600px at 20% -10%,#f1f5f9,#0000 60%),radial-gradient(900px 500px at 100% 0,#1ea4b81a,#0000 50%),#f8fafc;background:radial-gradient(1200px 600px at 20% -10%,var(--bg-elev),#0000 60%),radial-gradient(900px 500px at 100% 0,#1ea4b81a,#0000 50%),var(--bg);color:#0e1525;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;transition:background-color .36s cubic-bezier(.2,.8,.2,1),color .22s cubic-bezier(.2,.8,.2,1),background .36s cubic-bezier(.2,.8,.2,1);transition:background-color var(--dur-slow) var(--ease),color var(--dur) var(--ease),background var(--dur-slow) var(--ease)}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Courier New,monospace}::selection{background:color-mix(in oklab,#1ea4b8,#fff 65%);background:color-mix(in oklab,var(--accent),#fff 65%);color:#0e1525;color:var(--text)}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:color-mix(in oklab,#1ea4b8,#000 30%);background:color-mix(in oklab,var(--accent),#000 30%);background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-track{background:#0000}:where(a,button,input,textarea,select,[tabindex]:not([tabindex="-1"])):focus-visible{border-radius:12px;border-radius:var(--radius-sm);box-shadow:0 0 0 2px #f8fafc,0 0 0 4px #2a6df4b3;box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--ring);outline:none;transition:box-shadow .15s cubic-bezier(.2,.8,.2,1);transition:box-shadow var(--dur-fast) var(--ease)}.container{margin:0 auto;padding:24px 0;width:min(1100px,92vw)}.stack{grid-gap:16px;display:grid;gap:16px}.stack-lg{grid-gap:24px;display:grid;gap:24px}.glass{backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(var(--blur)) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.2);background:#ffffff94;background:var(--surface);border:1px solid #3a43502e;border:1px solid var(--border);border-radius:18px;border-radius:var(--radius);box-shadow:0 10px 30px #03050726;box-shadow:var(--shadow)}.card{composes:glass;padding:16px}.card-lg{composes:glass;border-radius:26px;border-radius:var(--radius-lg);padding:24px}.hover-lift{transform:translateY(0);transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s cubic-bezier(.2,.8,.2,1);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.hover-lift:hover{box-shadow:0 14px 36px #0304072e;transform:translateY(-2px)}.button{-webkit-appearance:none;appearance:none;backdrop-filter:blur(12px);backdrop-filter:blur(calc(var(--blur)*.75));-webkit-backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(calc(var(--blur)*.75));background:#ffffff94;background:var(--surface);border:1px solid #3a43502e;border:1px solid var(--border);border-radius:12px;color:#0e1525;color:var(--text);cursor:pointer;font-size:16px;font-size:var(--fs-2);padding:10px 14px;transition:background .22s cubic-bezier(.2,.8,.2,1),border-color .22s cubic-bezier(.2,.8,.2,1),transform .22s cubic-bezier(.2,.8,.2,1);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.button:hover{border-color:color-mix(in oklab,#1ea4b8,#000 20%);border-color:color-mix(in oklab,var(--accent),#000 20%);transform:translateY(-1px)}.button:active{transform:translateY(0)}.button-primary{background:linear-gradient(180deg,color-mix(in oklab,#1ea4b8,#fff 8%),color-mix(in oklab,#1ea4b8,#000 6%));background:linear-gradient(180deg,color-mix(in oklab,var(--accent),#fff 8%),color-mix(in oklab,var(--accent),#000 6%));border:1px solid color-mix(in oklab,#1ea4b8,#000 25%);border:1px solid color-mix(in oklab,var(--accent),#000 25%);color:#00353d;color:var(--accent-ink)}.button-primary:hover{filter:brightness(1.05)}.button-ghost{background:#0000;border-color:#0000;color:#0e1525;color:var(--text)}body[data-theme=hc] .button,html[data-theme=hc] .button{border-width:2px}.input,.select,.textarea{backdrop-filter:blur(8px);backdrop-filter:blur(calc(var(--blur)*.5));-webkit-backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(calc(var(--blur)*.5));background:#ffffff94;background:var(--surface);border:1px solid #3a43502e;border:1px solid var(--border);border-radius:12px;color:#0e1525;color:var(--text);font-size:16px;font-size:var(--fs-2);padding:10px 12px;transition:border-color .22s cubic-bezier(.2,.8,.2,1),background .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s cubic-bezier(.2,.8,.2,1);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur) var(--ease);width:100%}.input::placeholder,.textarea::placeholder{color:#607085;color:var(--text-muted)}.input:focus,.select:focus,.textarea:focus{border-color:color-mix(in oklab,#1ea4b8,#000 20%);border-color:color-mix(in oklab,var(--accent),#000 20%);box-shadow:0 0 0 2px #f8fafc,0 0 0 4px #2a6df4b3;box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--ring)}.badge{background:#ffffff47;background:var(--surface-2);color:#0e1525;color:var(--text);font-size:14px;font-size:var(--fs-1);gap:6px;padding:6px 10px}.badge,.theme-toggle{align-items:center;border:1px solid #3a43502e;border:1px solid var(--border);border-radius:999px;display:inline-flex}.theme-toggle{backdrop-filter:blur(16px);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(var(--blur));background:#ffffff94;background:var(--surface);gap:8px;padding:6px 8px}.switch{--w:46px;--h:26px;background:#ffffff47;background:var(--surface-2);border:1px solid #3a43502e;border:1px solid var(--border);border-radius:999px;height:var(--h);position:relative;transition:background .22s cubic-bezier(.2,.8,.2,1),border-color .22s cubic-bezier(.2,.8,.2,1);transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);width:var(--w)}.switch:after{background:color-mix(in oklab,#1ea4b8,#fff 12%);background:color-mix(in oklab,var(--accent),#fff 12%);border-radius:50%;content:"";height:18px;left:4px;position:absolute;top:50%;transform:translateY(-50%);transition:left .22s cubic-bezier(.2,.8,.2,1),background .22s cubic-bezier(.2,.8,.2,1);transition:left var(--dur) var(--ease),background var(--dur) var(--ease);width:18px}.switch[data-on=true]:after{background:#1ea4b8;background:var(--accent);left:calc(var(--w) - 22px)}h1,h2,h3{line-height:1.15;margin:0 0 8px}h1{font-size:clamp(28px,3.6vw,36px);font-size:clamp(28px,3.6vw,var(--fs-6))}h2{font-size:clamp(22px,2.6vw,28px);font-size:clamp(22px,2.6vw,var(--fs-5))}h3{font-size:clamp(18px,2.2vw,22px);font-size:clamp(18px,2.2vw,var(--fs-4))}p{color:#0e1525;color:var(--text);font-size:16px;font-size:var(--fs-2);line-height:1.6}.fade-in{animation:fadeIn .36s cubic-bezier(.2,.8,.2,1) forwards;animation:fadeIn var(--dur-slow) var(--ease) forwards;opacity:0}.slide-up{animation:slideUp .22s cubic-bezier(.2,.8,.2,1) forwards;animation:slideUp var(--dur) var(--ease) forwards;opacity:0;transform:translateY(6px)}@keyframes slideUp{to{opacity:1;transform:translateY(0)}}@media print{body{background:#fff!important;color:#000!important}}.landing-wrapper{display:flex;flex-direction:column}.landing-header{--pill-h:44px;--pill-px:18px;--pill-gap:14px;align-items:center;backdrop-filter:blur(var(--blur)) saturate(1.1);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.1);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow);display:flex;justify-content:space-between;padding:clamp(12px,2.4vw,20px) clamp(16px,4vw,50px);position:-webkit-sticky;position:sticky;top:0;z-index:10}.logo{color:var(--text);font-size:1.6rem;font-weight:800;letter-spacing:.2px}.landing-header nav ul{align-items:center;display:flex;gap:var(--pill-gap);list-style:none;margin:0;padding:0}.landing-header nav ul li a{color:var(--text);font-size:.98rem;font-weight:600;opacity:.9;text-decoration:none;transition:opacity var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease)}.landing-header nav ul li a:hover{color:color-mix(in oklab,var(--accent),var(--text) 20%);opacity:1;transform:translateY(-1px)}.landing-header nav ul li>button{margin-top:-2px}.landing-header nav ul li button,.profile-trigger{align-items:center;-webkit-appearance:none;appearance:none;backdrop-filter:blur(calc(var(--blur)*.6));-webkit-backdrop-filter:blur(calc(var(--blur)*.6));background:linear-gradient(180deg,color-mix(in oklab,var(--accent),#fff 10%),color-mix(in oklab,var(--accent),#000 6%));border:1px solid color-mix(in oklab,var(--accent),#000 25%);border-radius:999px;box-shadow:var(--shadow);color:var(--accent-ink);cursor:pointer;display:inline-flex;font-weight:700;gap:10px;height:var(--pill-h);justify-content:center;padding:0 var(--pill-px);transition:filter var(--dur) var(--ease),transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}.landing-header nav ul li button:hover,.profile-trigger:hover{border-color:color-mix(in oklab,var(--accent),#000 30%);filter:brightness(1.05);transform:translateY(-1px)}.profile-pic{border-radius:999px;box-shadow:0 0 0 2px color-mix(in oklab,var(--accent),#fff 35%);height:28px;object-fit:cover;width:28px}.username{font-size:.92rem;font-weight:700}.chev,.username{color:var(--accent-ink)}.chev{font-size:12px;opacity:.9}.profile-container{display:inline-block;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin-left:var(--pill-gap);position:relative}.dropdown-menu{animation:fadeIn var(--dur) var(--ease);backdrop-filter:blur(var(--blur)) saturate(1.05);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.05);background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);min-width:180px;padding:6px 0;position:absolute;right:0;top:calc(100% + 8px);z-index:1000}.dropdown-item{background:#0000;border:none;color:var(--text);cursor:pointer;font-size:14px;padding:10px 14px;text-align:left;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease);width:100%}.dropdown-item:hover{background:var(--surface-2);color:var(--text)}.hero-section{background:radial-gradient(900px 400px at 100% 0,color-mix(in oklab,var(--accent),#0000 90%),#0000 60%),#0000;display:flex;flex-wrap:wrap;gap:clamp(16px,3vw,32px);justify-content:space-between;padding:clamp(40px,8vw,80px) clamp(16px,4vw,50px) clamp(24px,6vw,60px)}.hero-text{backdrop-filter:blur(var(--blur)) saturate(1.1);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);flex:1 1 450px;max-width:560px;padding:clamp(16px,3vw,28px)}.hero-text h1{color:var(--text);font-size:clamp(2rem,4.8vw,3rem);letter-spacing:-.3px;margin-bottom:14px}.hero-text p{color:var(--text-muted);font-size:clamp(1rem,2.2vw,1.15rem);line-height:1.65;margin-bottom:20px}.primary-btn{backdrop-filter:blur(calc(var(--blur)*.5));-webkit-backdrop-filter:blur(calc(var(--blur)*.5));background:linear-gradient(180deg,color-mix(in oklab,var(--accent),#fff 8%),color-mix(in oklab,var(--accent),#000 6%));border:1px solid color-mix(in oklab,var(--accent),#000 25%);border-radius:12px;box-shadow:var(--shadow);color:var(--accent-ink);cursor:pointer;font-size:1rem;font-weight:700;padding:12px 20px;transition:filter var(--dur) var(--ease),transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}.primary-btn:hover{border-color:color-mix(in oklab,var(--accent),#000 30%);filter:brightness(1.06);transform:translateY(-1px)}.primary-btn:active{transform:translateY(0)}.hero-image img{animation:float 3s ease-in-out infinite;background:var(--surface-2);border-radius:var(--radius);filter:drop-shadow(0 10px 26px hsla(220 40% 2%/.18));padding:10px;width:clamp(240px,26vw,340px)}.about-section,.usecase-section{backdrop-filter:blur(var(--blur)) saturate(1.05);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.05);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin:18px auto;padding:clamp(30px,6vw,60px) clamp(16px,4vw,50px);width:min(1100px,92vw)}.about-section h2,.usecase-section h2{color:var(--text);font-size:clamp(1.5rem,3.4vw,2rem);margin-bottom:12px}.about-section p,.usecase-section ul{color:var(--text-muted);font-size:1.05rem;line-height:1.75}.usecase-section ul{margin:0;padding-left:20px}.usecase-section li{margin:6px 0}.landing-footer{background:var(--bg-elev);border-top:1px solid var(--border);color:var(--text);font-size:.95rem;padding:26px 16px;text-align:center}.landing-footer a{border-bottom:1px dashed #0000;color:var(--accent);text-decoration:none;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.landing-footer a:hover{border-bottom-color:initial}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.hero-section{flex-direction:column;text-align:center}.landing-header,.landing-header nav ul{flex-direction:column;gap:10px}}body[data-theme=hc] .about-section,body[data-theme=hc] .dropdown-menu,body[data-theme=hc] .landing-header,body[data-theme=hc] .usecase-section,html[data-theme=hc] .about-section,html[data-theme=hc] .dropdown-menu,html[data-theme=hc] .hero-text,html[data-theme=hc] .landing-header,html[data-theme=hc] .usecase-section{backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}body[data-theme=hc] .about-section,body[data-theme=hc] .dropdown-menu,body[data-theme=hc] .landing-header,body[data-theme=hc] .usecase-section,html[data-theme=hc] .about-section,html[data-theme=hc] .dropdown-menu,html[data-theme=hc] .landing-header,html[data-theme=hc] .usecase-section{border-width:2px}.landing-header nav ul li :where(button):not(.profile-trigger){position:relative;top:-9px}@media (max-width:768px){.landing-header nav ul li :where(button):not(.profile-trigger){top:-9px}}.hero-image{display:none!important}@media (min-width:769px){.hero-image{display:block!important}}.landing-header nav ul li:not(:has(.profile-container)) :where(button):not(.profile-trigger){position:static!important;top:0!important}.ocr-container{backdrop-filter:blur(var(--blur)) saturate(1.05);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.05);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin:clamp(24px,6vw,50px) auto;padding:clamp(20px,4vw,36px);width:min(1100px,92vw)}.ocr-container h1{color:var(--text);font-size:clamp(20px,3.4vw,28px);letter-spacing:-.2px;margin-bottom:22px;text-align:center}.content-container{grid-gap:clamp(14px,3vw,24px);display:grid;gap:clamp(14px,3vw,24px);grid-template-columns:1fr 1fr}@media (max-width:860px){.content-container{grid-template-columns:1fr}}.result-container,.upload-section{backdrop-filter:blur(calc(var(--blur)*.75)) saturate(1.05);-webkit-backdrop-filter:blur(calc(var(--blur)*.75)) saturate(1.05);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:280px;padding:clamp(14px,2.4vw,20px)}.upload-section{align-items:center;display:flex;flex-direction:column;gap:12px;text-align:center}input[type=file]{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.custom-file-upload{align-items:center;backdrop-filter:blur(calc(var(--blur)*.5));-webkit-backdrop-filter:blur(calc(var(--blur)*.5));background:linear-gradient(180deg,color-mix(in oklab,var(--accent),#fff 8%),color-mix(in oklab,var(--accent),#000 6%));border:1px solid color-mix(in oklab,var(--accent),#000 25%);border-radius:12px;box-shadow:var(--shadow);color:var(--accent-ink);cursor:pointer;display:inline-flex;gap:8px;justify-content:center;padding:12px 20px;transition:filter var(--dur) var(--ease),transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}.custom-file-upload:hover{border-color:color-mix(in oklab,var(--accent),#000 30%);filter:brightness(1.06);transform:translateY(-1px)}.ocr-container button{-webkit-appearance:none;appearance:none;backdrop-filter:blur(calc(var(--blur)*.5));-webkit-backdrop-filter:blur(calc(var(--blur)*.5));background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);color:var(--text);cursor:pointer;font-size:16px;font-weight:700;padding:10px 18px;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease),filter var(--dur) var(--ease)}.ocr-container button:hover{border-color:color-mix(in oklab,var(--accent),#000 22%);filter:brightness(1.02);transform:translateY(-1px)}.ocr-container button:active{transform:translateY(0)}.ocr-container button:disabled{cursor:not-allowed;opacity:.55}.ocr-container .primary-action{background:linear-gradient(180deg,color-mix(in oklab,var(--accent),#fff 10%),color-mix(in oklab,var(--accent),#000 6%));border:1px solid color-mix(in oklab,var(--accent),#000 25%);color:var(--accent-ink)}.ocr-container .primary-action:hover{border-color:color-mix(in oklab,var(--accent),#000 30%);filter:brightness(1.06)}.copy-button{background:linear-gradient(180deg,color-mix(in oklab,var(--accent),#fff 18%),color-mix(in oklab,var(--accent),#000 2%));border:1px solid color-mix(in oklab,var(--accent),#000 20%);color:var(--accent-ink)}.copy-button:hover{filter:brightness(1.05)}.image-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0304072e;margin-bottom:10px;max-height:220px;max-width:100%;object-fit:cover;padding:6px}.result-container h2{color:var(--text);font-size:clamp(16px,2.6vw,18px);margin-bottom:10px;text-align:center}.result-container p{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:inset 0 2px 6px #0304070f;color:var(--text);line-height:1.6;min-height:220px;overflow-y:auto;padding:14px;white-space:pre-wrap}.result-container p::-webkit-scrollbar{width:10px}.result-container p::-webkit-scrollbar-thumb{background:color-mix(in oklab,var(--accent),#000 30%);background-clip:padding-box;border:2px solid #0000;border-radius:999px}.result-container p::-webkit-scrollbar-track{background:#0000}.typing-title{animation:caretBlink var(--dur-slow) step-end infinite;border-right:2px solid var(--text);display:inline-block;overflow:hidden;white-space:nowrap}@keyframes caretBlink{50%{border-color:#0000}}body[data-theme=hc] .ocr-container,body[data-theme=hc] .result-container,body[data-theme=hc] .upload-section,html[data-theme=hc] .image-preview,html[data-theme=hc] .ocr-container,html[data-theme=hc] .result-container,html[data-theme=hc] .upload-section{backdrop-filter:none;-webkit-backdrop-filter:none;border-width:2px;box-shadow:none}@media (prefers-reduced-motion:reduce){.custom-file-upload:hover,.ocr-container button:hover{transform:none}.typing-title{animation:none}}.App{min-height:100dvh;text-align:center}.App,.App-header{display:flex;flex-direction:column}.App-header{align-items:center;background:radial-gradient(800px 400px at 80% 10%,color-mix(in oklab,var(--accent),#0000 88%),#0000 60%),#0000;color:var(--text);font-size:calc(10px + 2vmin);gap:18px;justify-content:center;min-height:100vh;padding:clamp(24px,4vw,48px)}.App-header .hero-card{backdrop-filter:blur(var(--blur)) saturate(1.15);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.15);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:clamp(20px,3.2vw,32px);width:min(920px,92vw)}.App-logo{filter:drop-shadow(0 6px 18px hsla(220 40% 2%/.15));height:clamp(80px,16vw,160px);pointer-events:none;will-change:transform}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (prefers-reduced-motion:no-preference){.App-logo.floaty{animation:App-logo-spin 20s linear infinite,floatPulse 6s var(--ease) infinite alternate}}@keyframes floatPulse{0%{transform:translateY(0) rotate(0deg) scale(1)}to{transform:translateY(-4px) rotate(0deg) scale(1.02)}}.App-link{border-bottom:1px dashed #0000;color:var(--accent);text-decoration:none;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),filter var(--dur) var(--ease)}.App-link:hover{border-bottom-color:initial;filter:brightness(1.05)}body[data-theme=hc] .App-link,html[data-theme=hc] .App-link{border-bottom:none;text-decoration:underline}.app-row{grid-gap:clamp(12px,2vw,20px);display:grid;gap:clamp(12px,2vw,20px);grid-template-columns:repeat(12,1fr);margin:0 auto;width:min(1100px,92vw)}.app-panel{backdrop-filter:blur(var(--blur)) saturate(1.1);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);grid-column:1/-1;padding:clamp(14px,2.2vw,22px);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.app-panel:hover{box-shadow:0 14px 36px #0304072e;transform:translateY(-2px)}.theme-dock{align-items:center;backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));background:var(--surface);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow);display:inline-flex;gap:8px;inset:auto 16px 16px auto;padding:6px 8px;position:fixed;z-index:50}@media (min-width:1100px){.theme-dock{inset:auto 24px 24px auto}}.theme-btn{-webkit-appearance:none;appearance:none;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--text);cursor:pointer;font-size:12px;padding:6px 10px;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease),filter var(--dur) var(--ease)}.theme-btn:hover{transform:translateY(-1px)}.theme-btn:hover,.theme-btn[aria-pressed=true]{border-color:color-mix(in oklab,var(--accent),#000 25%)}.theme-btn[aria-pressed=true]{background:linear-gradient(180deg,color-mix(in oklab,var(--accent),#fff 8%),color-mix(in oklab,var(--accent),#000 6%));color:var(--accent-ink)}.hint{color:var(--text-muted);font-size:12px}.badge-soft{align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text);display:inline-flex;font-size:12px;gap:6px;padding:6px 10px}body[data-theme=hc] .app-panel,html[data-theme=hc] .app-panel{backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}html[data-theme=hc] .theme-dock{box-shadow:none}@media (prefers-reduced-motion:reduce){.app-panel:hover,.theme-btn:hover{transform:none}}.bg-bounce{bottom:36px;filter:saturate(1.1);left:6vw;opacity:.14;pointer-events:none;position:fixed;width:clamp(200px,22vw,360px);z-index:0}.bg-bounce__img{animation:bgBounce 2.8s cubic-bezier(.25,.65,.35,1) infinite;display:block;height:auto;transform-origin:center bottom;width:100%;will-change:transform}.bg-bounce__shadow{animation:bgSquish 2.8s cubic-bezier(.25,.65,.35,1) infinite;background:radial-gradient(ellipse at center,#00000047 0,#0000002e 35%,#0000 70%);bottom:22px;filter:blur(6px);height:clamp(18px,2.6vw,30px);left:calc(6vw + 12px);opacity:.55;pointer-events:none;position:fixed;width:clamp(160px,18vw,300px);z-index:0}@keyframes bgBounce{0%,to{transform:translateY(0) scale(1)}35%,50%{transform:translateY(-22vh) scale(1.02)}90%{transform:translateY(0) scale(.98)}}@keyframes bgSquish{0%,to{opacity:.55;transform:scaleX(1) scaleY(1)}50%{opacity:.35;transform:scaleX(.85) scaleY(.9)}90%{opacity:.65;transform:scaleX(1.18) scaleY(.6)}}@media (prefers-reduced-motion:reduce){.bg-bounce__img,.bg-bounce__shadow{animation:none}}body[data-theme=hc] .bg-bounce,html[data-theme=hc] .bg-bounce{display:none}
/*# sourceMappingURL=main.74dfc29c.css.map*/