Commit
·
04d6418
1
Parent(s):
eebfb83
forst
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitignore +3 -0
- Docerfile +13 -0
- app.py +97 -0
- requirements.txt +9 -0
- static/cnn/assets/index-BEq7Hmcz.js +0 -0
- static/cnn/assets/index-BkrFbvbF.css +1 -0
- static/cnn/index.html +14 -0
- static/main/404.html +1 -0
- static/main/_next/static/chunks/341.e4d77ac9f3ffcdef.js +1 -0
- static/main/_next/static/chunks/402-c1d85a20a96ae214.js +1 -0
- static/main/_next/static/chunks/436-4434bdf56ece092d.js +0 -0
- static/main/_next/static/chunks/472.a3826d29d6854395.js +1 -0
- static/main/_next/static/chunks/4bd1b696-585f188d732414ff.js +0 -0
- static/main/_next/static/chunks/684-98bea1a58a90994f.js +0 -0
- static/main/_next/static/chunks/874-15a3df30cc819263.js +1 -0
- static/main/_next/static/chunks/953-3efb90282c9a4140.js +0 -0
- static/main/_next/static/chunks/app/_not-found/page-c8335b631b2ba02c.js +1 -0
- static/main/_next/static/chunks/app/cnn-explained/page-5d0af436c38dac16.js +1 -0
- static/main/_next/static/chunks/app/diagnosis-steps/page-dec8e1c2f150ea13.js +1 -0
- static/main/_next/static/chunks/app/layout-1282207399fa10f1.js +1 -0
- static/main/_next/static/chunks/app/page-c468fa91873bdb5d.js +1 -0
- static/main/_next/static/chunks/app/predict/page-872f04091926ad1a.js +1 -0
- static/main/_next/static/chunks/app/real-world/page-5fd4bb9e1212308f.js +1 -0
- static/main/_next/static/chunks/framework-286ccde78f2899f1.js +0 -0
- static/main/_next/static/chunks/main-a3bab0006c571eac.js +0 -0
- static/main/_next/static/chunks/main-app-dc518554d77a2eae.js +1 -0
- static/main/_next/static/chunks/pages/_app-92f2aae776f86b9c.js +1 -0
- static/main/_next/static/chunks/pages/_error-764831a58efd9a1a.js +1 -0
- static/main/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
- static/main/_next/static/chunks/webpack-192c331ddd84790e.js +1 -0
- static/main/_next/static/css/ce70925ddb507bf6.css +3 -0
- static/main/_next/static/mDISYaUQpvXufxGEtni62/_buildManifest.js +1 -0
- static/main/_next/static/mDISYaUQpvXufxGEtni62/_ssgManifest.js +1 -0
- static/main/_next/static/media/26a46d62cd723877-s.woff2 +0 -0
- static/main/_next/static/media/55c55f0601d81cf3-s.woff2 +0 -0
- static/main/_next/static/media/581909926a08bbc8-s.woff2 +0 -0
- static/main/_next/static/media/8e9860b6e62d6359-s.woff2 +0 -0
- static/main/_next/static/media/97e0cb1ae144a2a9-s.woff2 +0 -0
- static/main/_next/static/media/df0a9ae256c0569c-s.woff2 +0 -0
- static/main/_next/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
- static/main/cnn-explained.html +0 -0
- static/main/cnn-explained.txt +20 -0
- static/main/diagnosis-steps.html +1 -0
- static/main/diagnosis-steps.txt +20 -0
- static/main/five.jpeg +0 -0
- static/main/index.html +1 -0
- static/main/index.txt +20 -0
- static/main/placeholder-logo.png +0 -0
- static/main/placeholder-logo.svg +1 -0
- static/main/placeholder-user.jpg +0 -0
.gitignore
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
env
|
| 2 |
+
__pycache__
|
| 3 |
+
oral_cancer_model.h5
|
Docerfile
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM python:3.12.1
|
| 2 |
+
|
| 3 |
+
RUN useradd -m -u 1000 user
|
| 4 |
+
USER user
|
| 5 |
+
ENV PATH="/home/user/.local/bin:$PATH"
|
| 6 |
+
|
| 7 |
+
WORKDIR /app
|
| 8 |
+
|
| 9 |
+
COPY --chown=user ./requirements.txt requirements.txt
|
| 10 |
+
RUN pip install --no-cache-dir --upgrade -r requirements.txt
|
| 11 |
+
|
| 12 |
+
COPY --chown=user . /app
|
| 13 |
+
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
|
app.py
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from fastapi import FastAPI, File, UploadFile, HTTPException
|
| 2 |
+
from fastapi.staticfiles import StaticFiles
|
| 3 |
+
from fastapi.middleware.cors import CORSMiddleware
|
| 4 |
+
import tensorflow as tf
|
| 5 |
+
from tensorflow import keras
|
| 6 |
+
import numpy as np
|
| 7 |
+
from PIL import Image
|
| 8 |
+
import io
|
| 9 |
+
from huggingface_hub import hf_hub_download
|
| 10 |
+
|
| 11 |
+
app = FastAPI(title="Medical Image Classification API", version="1.0.0")
|
| 12 |
+
|
| 13 |
+
# Add CORS middleware
|
| 14 |
+
app.add_middleware(
|
| 15 |
+
CORSMiddleware,
|
| 16 |
+
allow_origins=["*"], # Configure this appropriately for production
|
| 17 |
+
allow_credentials=True,
|
| 18 |
+
allow_methods=["*"],
|
| 19 |
+
allow_headers=["*"],
|
| 20 |
+
)
|
| 21 |
+
|
| 22 |
+
weights_path = hf_hub_download(
|
| 23 |
+
repo_id="Rahul-Samedavar/OralCancer_Predictor",
|
| 24 |
+
filename="weights.h5",
|
| 25 |
+
)
|
| 26 |
+
|
| 27 |
+
# Load model
|
| 28 |
+
base_model = tf.keras.applications.DenseNet121(
|
| 29 |
+
input_shape=(224, 224, 3),
|
| 30 |
+
include_top=False,
|
| 31 |
+
weights='imagenet'
|
| 32 |
+
)
|
| 33 |
+
base_model.trainable = False
|
| 34 |
+
|
| 35 |
+
model = keras.models.Sequential()
|
| 36 |
+
model.add(base_model)
|
| 37 |
+
model.add(keras.layers.BatchNormalization())
|
| 38 |
+
model.add(keras.layers.Flatten())
|
| 39 |
+
model.add(keras.layers.Dense(1024, activation=tf.nn.relu, kernel_regularizer=keras.regularizers.l2(0.01)))
|
| 40 |
+
model.add(keras.layers.Dropout(.3))
|
| 41 |
+
model.add(keras.layers.Dense(2, activation=tf.nn.softmax))
|
| 42 |
+
model.load_weights(weights_path)
|
| 43 |
+
|
| 44 |
+
class_names = ['Normal', 'OSCC']
|
| 45 |
+
|
| 46 |
+
def preprocess_image(image_bytes: bytes) -> np.ndarray:
|
| 47 |
+
"""Preprocess image for model prediction"""
|
| 48 |
+
image = Image.open(io.BytesIO(image_bytes)).convert('RGB')
|
| 49 |
+
image = image.resize((224, 224))
|
| 50 |
+
img_array = np.array(image) / 255.0
|
| 51 |
+
return np.expand_dims(img_array, axis=0)
|
| 52 |
+
|
| 53 |
+
@app.post("/predict")
|
| 54 |
+
async def predict(image: UploadFile = File(...)):
|
| 55 |
+
"""Predict medical condition from uploaded image"""
|
| 56 |
+
|
| 57 |
+
# Validate file type
|
| 58 |
+
if not image.content_type.startswith('image/'):
|
| 59 |
+
raise HTTPException(status_code=400, detail="File must be an image")
|
| 60 |
+
|
| 61 |
+
try:
|
| 62 |
+
# Read image bytes
|
| 63 |
+
img_bytes = await image.read()
|
| 64 |
+
|
| 65 |
+
# Preprocess image
|
| 66 |
+
processed_image = preprocess_image(img_bytes)
|
| 67 |
+
|
| 68 |
+
# Make prediction
|
| 69 |
+
predictions = model.predict(processed_image)[0]
|
| 70 |
+
predicted_class = class_names[np.argmax(predictions)]
|
| 71 |
+
|
| 72 |
+
# Format confidence scores
|
| 73 |
+
confidence = {
|
| 74 |
+
class_names[i]: float(f"{predictions[i]:.4f}")
|
| 75 |
+
for i in range(len(class_names))
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
return {
|
| 79 |
+
"predicted_class": predicted_class,
|
| 80 |
+
"confidence_scores": confidence
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
except Exception as e:
|
| 84 |
+
raise HTTPException(status_code=500, detail=f"Error processing image: {str(e)}")
|
| 85 |
+
|
| 86 |
+
|
| 87 |
+
app.mount("/", StaticFiles(directory="static/main", html=True), name="main")
|
| 88 |
+
app.mount("/cnn/", StaticFiles(directory="static/cnn", html=True), name="cnn")
|
| 89 |
+
|
| 90 |
+
@app.get("/health")
|
| 91 |
+
async def health():
|
| 92 |
+
"""Health check endpoint"""
|
| 93 |
+
return {"status": "healthy"}
|
| 94 |
+
|
| 95 |
+
if __name__ == "__main__":
|
| 96 |
+
import uvicorn
|
| 97 |
+
uvicorn.run(app, host="0.0.0.0", port=8000)
|
requirements.txt
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
tensorflow
|
| 2 |
+
numpy
|
| 3 |
+
fastapi
|
| 4 |
+
uvicorn
|
| 5 |
+
pillow
|
| 6 |
+
flask_cors
|
| 7 |
+
huggingface
|
| 8 |
+
python-multipart
|
| 9 |
+
huggingface_hub
|
static/cnn/assets/index-BEq7Hmcz.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
static/cnn/assets/index-BkrFbvbF.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-left-16{left:-4rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/3{left:33.333333%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-\[10\%\]{left:10%}.left-\[15\%\]{left:15%}.left-\[35\%\]{left:35%}.left-\[40\%\]{left:40%}.left-\[40px\]{left:40px}.left-\[50\%\]{left:50%}.left-\[65\%\]{left:65%}.left-\[80px\]{left:80px}.right-0{right:0}.right-\[15\%\]{right:15%}.right-\[5\%\]{right:5%}.top-0{top:0}.top-1\/2{top:50%}.top-1\/3{top:33.333333%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-\[-24px\]{top:-24px}.top-\[120px\]{top:120px}.top-\[240px\]{top:240px}.-z-10{z-index:-10}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-1\/2{height:50%}.h-1\/3{height:33.333333%}.h-1\/4{height:25%}.h-12{height:3rem}.h-3\/4{height:75%}.h-4{height:1rem}.h-5{height:1.25rem}.h-\[280px\]{height:280px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[80px\]{height:80px}.h-\[calc\(37\.5\%\)\]{height:37.5%}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-12{width:3rem}.w-2\/3{width:66.666667%}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-\[70\%\]{width:70%}.w-\[75\%\]{width:75%}.w-\[80\%\]{width:80%}.w-\[80px\]{width:80px}.w-\[calc\(37\.5\%\)\]{width:37.5%}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-6xl{max-width:72rem}.max-w-\[150px\]{max-width:150px}.max-w-\[200px\]{max-width:200px}.max-w-\[250px\]{max-width:250px}.max-w-\[280px\]{max-width:280px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[500px\]{max-width:500px}.max-w-\[550px\]{max-width:550px}.max-w-\[600px\]{max-width:600px}.max-w-\[800px\]{max-width:800px}.flex-1{flex:1 1 0%}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[-1deg\]{--tw-rotate: -1deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[-2deg\]{--tw-rotate: -2deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[1deg\]{--tw-rotate: 1deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-150{--tw-scale-x: 1.5;--tw-scale-y: 1.5;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-8{grid-template-rows:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[1px\]{gap:1px}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.border{border-width:1px}.border-2{border-width:2px}.border-b-2{border-bottom-width:2px}.border-l-2{border-left-width:2px}.border-r-2{border-right-width:2px}.border-t-2{border-top-width:2px}.border-blue-700{--tw-border-opacity: 1;border-color:rgb(29 78 216 / var(--tw-border-opacity))}.border-blue-800\/50{border-color:#1e40af80}.border-cyan-400{--tw-border-opacity: 1;border-color:rgb(34 211 238 / var(--tw-border-opacity))}.border-cyan-400\/20{border-color:#22d3ee33}.border-cyan-800\/50{border-color:#155e7580}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity))}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity))}.border-pink-500\/40{border-color:#ec489966}.border-purple-400{--tw-border-opacity: 1;border-color:rgb(192 132 252 / var(--tw-border-opacity))}.border-purple-500\/40{border-color:#a855f766}.border-purple-700{--tw-border-opacity: 1;border-color:rgb(126 34 206 / var(--tw-border-opacity))}.border-teal-400{--tw-border-opacity: 1;border-color:rgb(45 212 191 / var(--tw-border-opacity))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.bg-blue-500\/60{background-color:#3b82f699}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity))}.bg-blue-600\/30{background-color:#2563eb4d}.bg-blue-900\/60{background-color:#1e3a8a99}.bg-blue-900\/70{background-color:#1e3a8ab3}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity))}.bg-gray-800\/60{background-color:#1f293799}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-gray-900\/30{background-color:#1118274d}.bg-gray-900\/50{background-color:#11182780}.bg-gray-900\/60{background-color:#11182799}.bg-gray-900\/70{background-color:#111827b3}.bg-gray-900\/80{background-color:#111827cc}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity))}.bg-pink-500\/20{background-color:#ec489933}.bg-pink-600\/30{background-color:#db27774d}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity))}.bg-purple-600\/30{background-color:#9333ea4d}.bg-purple-900\/60{background-color:#581c8799}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.bg-red-500\/60{background-color:#ef444499}.bg-red-900\/60{background-color:#7f1d1d99}.bg-teal-600\/30{background-color:#0d94884d}.bg-teal-600\/50{background-color:#0d948880}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--tw-gradient-stops))}.from-blue-400{--tw-gradient-from: #60a5fa var(--tw-gradient-from-position);--tw-gradient-to: rgb(96 165 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500\/30{--tw-gradient-from: rgb(59 130 246 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-600{--tw-gradient-from: #2563eb var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-900\/30{--tw-gradient-from: rgb(30 58 138 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 58 138 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-400{--tw-gradient-from: #22d3ee var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 211 238 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-900{--tw-gradient-from: #312e81 var(--tw-gradient-from-position);--tw-gradient-to: rgb(49 46 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from: #ec4899 var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 72 153 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-teal-500{--tw-gradient-from: #14b8a6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(20 184 166 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-blue-500{--tw-gradient-to: #3b82f6 var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to: #2563eb var(--tw-gradient-to-position)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-pink-600{--tw-gradient-to: #db2777 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.to-purple-900{--tw-gradient-to: #581c87 var(--tw-gradient-to-position)}.to-purple-900\/30{--tw-gradient-to: rgb(88 28 135 / .3) var(--tw-gradient-to-position)}.to-red-500{--tw-gradient-to: #ef4444 var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to: #dc2626 var(--tw-gradient-to-position)}.to-teal-500{--tw-gradient-to: #14b8a6 var(--tw-gradient-to-position)}.to-teal-600{--tw-gradient-to: #0d9488 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pl-4{padding-left:1rem}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.5rem\]{font-size:.5rem}.text-\[10px\]{font-size:10px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-blue-200{--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity))}.text-blue-300{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-green-300{--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity))}.text-pink-300{--tw-text-opacity: 1;color:rgb(249 168 212 / var(--tw-text-opacity))}.text-purple-200{--tw-text-opacity: 1;color:rgb(233 213 255 / var(--tw-text-opacity))}.text-purple-300{--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity))}.text-purple-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity))}.text-red-200{--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity))}.text-teal-300{--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-blue-500\/50{--tw-shadow-color: rgb(59 130 246 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-cyan-500\/50{--tw-shadow-color: rgb(6 182 212 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-green-500\/50{--tw-shadow-color: rgb(34 197 94 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-pink-500\/50{--tw-shadow-color: rgb(236 72 153 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-purple-500\/50{--tw-shadow-color: rgb(168 85 247 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-purple-900\/10{--tw-shadow-color: rgb(88 28 135 / .1);--tw-shadow: var(--tw-shadow-colored)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-cyan-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity))}.ring-red-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity))}.ring-offset-1{--tw-ring-offset-width: 1px}.ring-offset-gray-900{--tw-ring-offset-color: #111827}.ring-offset-transparent{--tw-ring-offset-color: transparent}.blur-md{--tw-blur: blur(12px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity))}@media (min-width: 768px){.md\:left-\[160px\]{left:160px}.md\:left-\[80px\]{left:80px}.md\:flex{display:flex}.md\:h-\[500px\]{height:500px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}}@media (min-width: 1024px){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:flex-row{flex-direction:row}}
|
static/cnn/index.html
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8" />
|
| 5 |
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
| 6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
+
<title>CNN Visual Walkthrough Infographic</title>
|
| 8 |
+
<script type="module" crossorigin src="/assets/index-BEq7Hmcz.js"></script>
|
| 9 |
+
<link rel="stylesheet" crossorigin href="/assets/index-BkrFbvbF.css">
|
| 10 |
+
</head>
|
| 11 |
+
<body>
|
| 12 |
+
<div id="root"></div>
|
| 13 |
+
</body>
|
| 14 |
+
</html>
|
static/main/404.html
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/ce70925ddb507bf6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-192c331ddd84790e.js"/><script src="/_next/static/chunks/4bd1b696-585f188d732414ff.js" async=""></script><script src="/_next/static/chunks/684-98bea1a58a90994f.js" async=""></script><script src="/_next/static/chunks/main-app-dc518554d77a2eae.js" async=""></script><script src="/_next/static/chunks/436-4434bdf56ece092d.js" async=""></script><script src="/_next/static/chunks/874-15a3df30cc819263.js" async=""></script><script src="/_next/static/chunks/953-3efb90282c9a4140.js" async=""></script><script src="/_next/static/chunks/app/layout-1282207399fa10f1.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>AI in Oral Cancer Diagnosis</title><meta name="description" content="Early detection through intelligent imaging"/><meta name="generator" content="v0.dev"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_e8ce0c bg-gray-50 text-gray-900 dark:bg-gray-950 dark:text-gray-100 min-h-screen flex flex-col"><script>((e,t,r,n,o,i,a,s)=>{let l=document.documentElement,u=["light","dark"];function c(t){var r;(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&i?o.map(e=>i[e]||e):o;r?(l.classList.remove(...n),l.classList.add(i&&i[t]?i[t]:t)):l.setAttribute(e,t)}),r=t,s&&u.includes(r)&&(l.style.colorScheme=r)}if(n)c(n);else try{let e=localStorage.getItem(t)||r,n=a&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(n)}catch(e){}})("class","theme","dark",null,["light","dark"],null,true,true)</script><nav class="fixed top-0 w-full z-50 transition-all duration-300 bg-transparent"><div class="container mx-auto px-4"><div class="flex items-center justify-between h-16"><a class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500" href="/">AI-OralCancer</a><div class="hidden md:flex items-center space-x-6"><a class="transition-colors hover:text-purple-400 text-gray-300" href="/">Home</a><a class="transition-colors hover:text-purple-400 text-gray-300" href="/real-world">Real-World</a><a class="transition-colors hover:text-purple-400 text-gray-300" href="/predict">Predict</a><a class="transition-colors hover:text-purple-400 text-gray-300" href="/diagnosis-steps">Diagnosis Steps</a><a class="transition-colors hover:text-purple-400 text-gray-300" href="/cnn-explained">CNN Explained</a><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border hover:bg-accent hover:text-accent-foreground h-10 w-10 bg-transparent border-gray-700" type="button" id="radix-«R19db»" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span class="sr-only">Toggle theme</span></button></div><div class="flex md:hidden items-center space-x-4"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border hover:bg-accent hover:text-accent-foreground h-10 w-10 bg-transparent border-gray-700" type="button" id="radix-«Rtdb»" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span class="sr-only">Toggle theme</span></button><button class="text-gray-300 hover:text-white focus:outline-none"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div></div></div></nav><main class="flex-grow"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div></main><footer class="bg-gray-900 py-12 border-t border-gray-800"><div class="container mx-auto px-4"><div class="flex flex-col md:flex-row justify-between items-center"><div class="mb-6 md:mb-0"><h2 class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500">AI-OralCancer</h2><p class="text-gray-400 mt-2 max-w-md">Advancing early detection of oral cancer through artificial intelligence and deep learning technologies.</p></div><div class="flex space-x-6"><a target="_blank" rel="noopener noreferrer" class="text-gray-400 hover:text-white transition-colors" href="https://github.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github h-6 w-6"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg><span class="sr-only">GitHub</span></a><a target="_blank" rel="noopener noreferrer" class="text-gray-400 hover:text-white transition-colors" href="https://twitter.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-twitter h-6 w-6"><path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"></path></svg><span class="sr-only">Twitter</span></a><a target="_blank" rel="noopener noreferrer" class="text-gray-400 hover:text-white transition-colors" href="https://linkedin.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-linkedin h-6 w-6"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect width="4" height="12" x="2" y="9"></rect><circle cx="4" cy="4" r="2"></circle></svg><span class="sr-only">LinkedIn</span></a></div></div><div class="border-t border-gray-800 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center"><p class="text-gray-500 text-sm">© <!-- -->2025<!-- --> AI-OralCancer. All rights reserved.</p><div class="flex space-x-6 mt-4 md:mt-0"><a class="text-gray-500 hover:text-gray-300 text-sm" href="#">Privacy Policy</a><a class="text-gray-500 hover:text-gray-300 text-sm" href="#">Terms of Service</a><a class="text-gray-500 hover:text-gray-300 text-sm" href="#">Contact</a></div></div></div></footer><script src="/_next/static/chunks/webpack-192c331ddd84790e.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9304,[\"436\",\"static/chunks/436-4434bdf56ece092d.js\",\"874\",\"static/chunks/874-15a3df30cc819263.js\",\"953\",\"static/chunks/953-3efb90282c9a4140.js\",\"177\",\"static/chunks/app/layout-1282207399fa10f1.js\"],\"ThemeProvider\"]\n3:I[3658,[\"436\",\"static/chunks/436-4434bdf56ece092d.js\",\"874\",\"static/chunks/874-15a3df30cc819263.js\",\"953\",\"static/chunks/953-3efb90282c9a4140.js\",\"177\",\"static/chunks/app/layout-1282207399fa10f1.js\"],\"default\"]\n4:I[7555,[],\"\"]\n5:I[1295,[],\"\"]\n6:I[6874,[\"436\",\"static/chunks/436-4434bdf56ece092d.js\",\"874\",\"static/chunks/874-15a3df30cc819263.js\",\"953\",\"static/chunks/953-3efb90282c9a4140.js\",\"177\",\"static/chunks/app/layout-1282207399fa10f1.js\"],\"\"]\n7:I[9665,[],\"OutletBoundary\"]\na:I[9665,[],\"ViewportBoundary\"]\nc:I[9665,[],\"MetadataBoundary\"]\ne:I[6614,[],\"\"]\n:HL[\"/_next/static/css/ce70925ddb507bf6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"mDISYaUQpvXufxGEtni62\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ce70925ddb507bf6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__className_e8ce0c bg-gray-50 text-gray-900 dark:bg-gray-950 dark:text-gray-100 min-h-screen flex flex-col\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"dark\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-grow\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"footer\",null,{\"className\":\"bg-gray-900 py-12 border-t border-gray-800\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto px-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col md:flex-row justify-between items-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-6 md:mb-0\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500\",\"children\":\"AI-OralCancer\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 mt-2 max-w-md\",\"children\":\"Advancing early detection of oral cancer through artificial intelligence and deep learning technologies.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex space-x-6\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"https://github.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-github h-6 w-6\",\"children\":[[\"$\",\"path\",\"tonef\",{\"d\":\"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4\"}],[\"$\",\"path\",\"9comsn\",{\"d\":\"M9 18c-4.51 2-5-2-7-2\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"GitHub\"}]]}],[\"$\",\"$L6\",null,{\"href\":\"https://twitter.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-twitter h-6 w-6\",\"children\":[[\"$\",\"path\",\"pff0z6\",{\"d\":\"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"Twitter\"}]]}],[\"$\",\"$L6\",null,{\"href\":\"https://linkedin.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-linkedin h-6 w-6\",\"children\":[[\"$\",\"path\",\"c2jq9f\",{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"}],[\"$\",\"rect\",\"mk3on5\",{\"width\":\"4\",\"height\":\"12\",\"x\":\"2\",\"y\":\"9\"}],[\"$\",\"circle\",\"bt5ra8\",{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"LinkedIn\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"border-t border-gray-800 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-gray-500 text-sm\",\"children\":[\"© \",2025,\" AI-OralCancer. All rights reserved.\"]}],[\"$\",\"div\",null,{\"className\":\"flex space-x-6 mt-4 md:mt-0\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"#\",\"className\":\"text-gray-500 hover:text-gray-300 text-sm\",\"children\":\"Privacy Policy\"}],[\"$\",\"$L6\",null,{\"href\":\"#\",\"className\":\"text-gray-500 hover:text-gray-300 text-sm\",\"children\":\"Terms of Service\"}],[\"$\",\"$L6\",null,{\"href\":\"#\",\"className\":\"text-gray-500 hover:text-gray-300 text-sm\",\"children\":\"Contact\"}]]}]]}]]}]}]]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"$undefined\",null,[\"$\",\"$L7\",null,{\"children\":[\"$L8\",\"$L9\",null]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$1\",\"kaJjFpEbsCTZbnOrM_G-P\",{\"children\":[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],null]}],[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n8:null\n"])</script><script>self.__next_f.push([1,"9:null\nd:[[\"$\",\"title\",\"0\",{\"children\":\"AI in Oral Cancer Diagnosis\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Early detection through intelligent imaging\"}],[\"$\",\"meta\",\"2\",{\"name\":\"generator\",\"content\":\"v0.dev\"}]]\n"])</script></body></html>
|
static/main/_next/static/chunks/341.e4d77ac9f3ffcdef.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[341],{303:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AmpStateContext",{enumerable:!0,get:function(){return r}});let r=n(4252)._(n(4232)).default.createContext({})},3776:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let r=n(4232),o=r.useLayoutEffect,l=r.useEffect;function a(e){let{headManager:t,reduceComponentsToState:n}=e;function a(){if(t&&t.mountedInstances){let o=r.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(n(o,e))}}return o(()=>{var n;return null==t||null==(n=t.mountedInstances)||n.add(e.children),()=>{var n;null==t||null==(n=t.mountedInstances)||n.delete(e.children)}}),o(()=>(t&&(t._pendingUpdate=a),()=>{t&&(t._pendingUpdate=a)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},5679:(e,t,n)=>{var r=n(9034);Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{default:function(){return y},defaultHead:function(){return p}});let o=n(4252),l=n(8365),a=n(7876),i=l._(n(4232)),d=o._(n(3776)),s=n(303),u=n(8831),c=n(6807);function p(e){void 0===e&&(e=!1);let t=[(0,a.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,a.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===i.default.Fragment?e.concat(i.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}n(6079);let h=["name","httpEquiv","charSet","itemProp"];function m(e,t){let{inAmpMode:n}=t;return e.reduce(f,[]).reverse().concat(p(n).reverse()).filter(function(){let e=new Set,t=new Set,n=new Set,r={};return o=>{let l=!0,a=!1;if(o.key&&"number"!=typeof o.key&&o.key.indexOf("$")>0){a=!0;let t=o.key.slice(o.key.indexOf("$")+1);e.has(t)?l=!1:e.add(t)}switch(o.type){case"title":case"base":t.has(o.type)?l=!1:t.add(o.type);break;case"meta":for(let e=0,t=h.length;e<t;e++){let t=h[e];if(o.props.hasOwnProperty(t)){if("charSet"===t)n.has(t)?l=!1:n.add(t);else{let e=o.props[t],n=r[t]||new Set;("name"!==t||!a)&&n.has(e)?l=!1:(n.add(e),r[t]=n)}}}}return l}}()).reverse().map((e,t)=>{let o=e.key||t;if(r.env.__NEXT_OPTIMIZE_FONTS&&!n&&"link"===e.type&&e.props.href&&["https://fonts.googleapis.com/css","https://use.typekit.net/"].some(t=>e.props.href.startsWith(t))){let t={...e.props||{}};return t["data-href"]=t.href,t.href=void 0,t["data-optimized-fonts"]=!0,i.default.cloneElement(e,t)}return i.default.cloneElement(e,{key:o})})}let y=function(e){let{children:t}=e,n=(0,i.useContext)(s.AmpStateContext),r=(0,i.useContext)(u.HeadManagerContext);return(0,a.jsx)(d.default,{reduceComponentsToState:m,headManager:r,inAmpMode:(0,c.isInAmpMode)(n),children:t})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6079:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},6807:(e,t)=>{function n(e){let{ampFirst:t=!1,hybrid:n=!1,hasQuery:r=!1}=void 0===e?{}:e;return t||n&&r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isInAmpMode",{enumerable:!0,get:function(){return n}})},9341:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let r=n(4252),o=n(7876),l=r._(n(4232)),a=r._(n(5679)),i={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function d(e){let{req:t,res:n,err:r}=e;return{statusCode:n&&n.statusCode?n.statusCode:r?r.statusCode:404,hostname:window.location.hostname}}let s={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{lineHeight:"48px"},h1:{display:"inline-block",margin:"0 20px 0 0",paddingRight:23,fontSize:24,fontWeight:500,verticalAlign:"top"},h2:{fontSize:14,fontWeight:400,lineHeight:"28px"},wrap:{display:"inline-block"}};class u extends l.default.Component{render(){let{statusCode:e,withDarkMode:t=!0}=this.props,n=this.props.title||i[e]||"An unexpected error has occurred";return(0,o.jsxs)("div",{style:s.error,children:[(0,o.jsx)(a.default,{children:(0,o.jsx)("title",{children:e?e+": "+n:"Application error: a client-side exception has occurred"})}),(0,o.jsxs)("div",{style:s.desc,children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}"+(t?"@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}":"")}}),e?(0,o.jsx)("h1",{className:"next-error-h1",style:s.h1,children:e}):null,(0,o.jsx)("div",{style:s.wrap,children:(0,o.jsxs)("h2",{style:s.h2,children:[this.props.title||e?n:(0,o.jsxs)(o.Fragment,{children:["Application error: a client-side exception has occurred"," ",!!this.props.hostname&&(0,o.jsxs)(o.Fragment,{children:["while loading ",this.props.hostname]})," ","(see the browser console for more information)"]}),"."]})})]})]})}}u.displayName="ErrorPage",u.getInitialProps=d,u.origGetInitialProps=d,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}}]);
|
static/main/_next/static/chunks/402-c1d85a20a96ae214.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[402],{901:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RouterContext",{enumerable:!0,get:function(){return n}});let n=r(8229)._(r(2115)).default.createContext(null)},1154:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(9946).A)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},1193:(e,t)=>{function r(e){var t;let{config:r,src:n,width:i,quality:o}=e,l=o||(null==(t=r.qualities)?void 0:t.reduce((e,t)=>Math.abs(t-75)<Math.abs(e-75)?t:e))||75;return r.path+"?url="+encodeURIComponent(n)+"&w="+i+"&q="+l+(n.startsWith("/_next/static/media/"),"")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}}),r.__next_img_default=!0;let n=r},1469:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return u},getImageProps:function(){return a}});let n=r(8229),i=r(8883),o=r(3063),l=n._(r(1193));function a(e){let{props:t}=(0,i.getImgProps)(e,{defaultLoader:l.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let u=o.Image},2464:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AmpStateContext",{enumerable:!0,get:function(){return n}});let n=r(8229)._(r(2115)).default.createContext({})},3063:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Image",{enumerable:!0,get:function(){return _}});let n=r(8229),i=r(6966),o=r(5155),l=i._(r(2115)),a=n._(r(7650)),u=n._(r(5564)),s=r(8883),d=r(5840),f=r(6752);r(3230);let c=r(901),p=n._(r(1193)),g=r(6654),m={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function h(e,t,r,n,i,o,l){let a=null==e?void 0:e.src;e&&e["data-loaded-src"]!==a&&(e["data-loaded-src"]=a,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),null==r?void 0:r.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}(null==n?void 0:n.current)&&n.current(e)}}))}function b(e){return l.use?{fetchPriority:e}:{fetchpriority:e}}let y=(0,l.forwardRef)((e,t)=>{let{src:r,srcSet:n,sizes:i,height:a,width:u,decoding:s,className:d,style:f,fetchPriority:c,placeholder:p,loading:m,unoptimized:y,fill:v,onLoadRef:_,onLoadingCompleteRef:w,setBlurComplete:j,setShowAltText:O,sizesInput:x,onLoad:P,onError:S,...C}=e,E=(0,l.useCallback)(e=>{e&&(S&&(e.src=e.src),e.complete&&h(e,p,_,w,j,y,x))},[r,p,_,w,j,S,y,x]),M=(0,g.useMergedRef)(t,E);return(0,o.jsx)("img",{...C,...b(c),loading:m,width:u,height:a,decoding:s,"data-nimg":v?"fill":"1",className:d,style:f,sizes:i,srcSet:n,src:r,ref:M,onLoad:e=>{h(e.currentTarget,p,_,w,j,y,x)},onError:e=>{O(!0),"empty"!==p&&j(!0),S&&S(e)}})});function v(e){let{isAppRouter:t,imgAttributes:r}=e,n={as:"image",imageSrcSet:r.srcSet,imageSizes:r.sizes,crossOrigin:r.crossOrigin,referrerPolicy:r.referrerPolicy,...b(r.fetchPriority)};return t&&a.default.preload?(a.default.preload(r.src,n),null):(0,o.jsx)(u.default,{children:(0,o.jsx)("link",{rel:"preload",href:r.srcSet?void 0:r.src,...n},"__nimg-"+r.src+r.srcSet+r.sizes)})}let _=(0,l.forwardRef)((e,t)=>{let r=(0,l.useContext)(c.RouterContext),n=(0,l.useContext)(f.ImageConfigContext),i=(0,l.useMemo)(()=>{var e;let t=m||n||d.imageConfigDefault,r=[...t.deviceSizes,...t.imageSizes].sort((e,t)=>e-t),i=t.deviceSizes.sort((e,t)=>e-t),o=null==(e=t.qualities)?void 0:e.sort((e,t)=>e-t);return{...t,allSizes:r,deviceSizes:i,qualities:o}},[n]),{onLoad:a,onLoadingComplete:u}=e,g=(0,l.useRef)(a);(0,l.useEffect)(()=>{g.current=a},[a]);let h=(0,l.useRef)(u);(0,l.useEffect)(()=>{h.current=u},[u]);let[b,_]=(0,l.useState)(!1),[w,j]=(0,l.useState)(!1),{props:O,meta:x}=(0,s.getImgProps)(e,{defaultLoader:p.default,imgConf:i,blurComplete:b,showAltText:w});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(y,{...O,unoptimized:x.unoptimized,placeholder:x.placeholder,fill:x.fill,onLoadRef:g,onLoadingCompleteRef:h,setBlurComplete:_,setShowAltText:j,sizesInput:e.sizes,ref:t}),x.priority?(0,o.jsx)(v,{isAppRouter:!r,imgAttributes:O}):null]})});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4416:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(9946).A)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},5029:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}});let n=r(2115),i=n.useLayoutEffect,o=n.useEffect;function l(e){let{headManager:t,reduceComponentsToState:r}=e;function l(){if(t&&t.mountedInstances){let i=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(i,e))}}return i(()=>{var r;return null==t||null==(r=t.mountedInstances)||r.add(e.children),()=>{var r;null==t||null==(r=t.mountedInstances)||r.delete(e.children)}}),i(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),o(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},5100:(e,t)=>{function r(e){let{widthInt:t,heightInt:r,blurWidth:n,blurHeight:i,blurDataURL:o,objectFit:l}=e,a=n?40*n:t,u=i?40*i:r,s=a&&u?"viewBox='0 0 "+a+" "+u+"'":"";return"%3Csvg xmlns='http://www.w3.org/2000/svg' "+s+"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='"+(s?"none":"contain"===l?"xMidYMid":"cover"===l?"xMidYMid slice":"none")+"' style='filter: url(%23b);' href='"+o+"'/%3E%3C/svg%3E"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImageBlurSvg",{enumerable:!0,get:function(){return r}})},5564:(e,t,r)=>{var n=r(9538);Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return h},defaultHead:function(){return c}});let i=r(8229),o=r(6966),l=r(5155),a=o._(r(2115)),u=i._(r(5029)),s=r(2464),d=r(2830),f=r(7544);function c(e){void 0===e&&(e=!1);let t=[(0,l.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function p(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===a.default.Fragment?e.concat(a.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}r(3230);let g=["name","httpEquiv","charSet","itemProp"];function m(e,t){let{inAmpMode:r}=t;return e.reduce(p,[]).reverse().concat(c(r).reverse()).filter(function(){let e=new Set,t=new Set,r=new Set,n={};return i=>{let o=!0,l=!1;if(i.key&&"number"!=typeof i.key&&i.key.indexOf("$")>0){l=!0;let t=i.key.slice(i.key.indexOf("$")+1);e.has(t)?o=!1:e.add(t)}switch(i.type){case"title":case"base":t.has(i.type)?o=!1:t.add(i.type);break;case"meta":for(let e=0,t=g.length;e<t;e++){let t=g[e];if(i.props.hasOwnProperty(t)){if("charSet"===t)r.has(t)?o=!1:r.add(t);else{let e=i.props[t],r=n[t]||new Set;("name"!==t||!l)&&r.has(e)?o=!1:(r.add(e),n[t]=r)}}}}return o}}()).reverse().map((e,t)=>{let i=e.key||t;if(n.env.__NEXT_OPTIMIZE_FONTS&&!r&&"link"===e.type&&e.props.href&&["https://fonts.googleapis.com/css","https://use.typekit.net/"].some(t=>e.props.href.startsWith(t))){let t={...e.props||{}};return t["data-href"]=t.href,t.href=void 0,t["data-optimized-fonts"]=!0,a.default.cloneElement(e,t)}return a.default.cloneElement(e,{key:i})})}let h=function(e){let{children:t}=e,r=(0,a.useContext)(s.AmpStateContext),n=(0,a.useContext)(d.HeadManagerContext);return(0,l.jsx)(u.default,{reduceComponentsToState:m,headManager:n,inAmpMode:(0,f.isInAmpMode)(r),children:t})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5840:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{VALID_LOADERS:function(){return r},imageConfigDefault:function(){return n}});let r=["default","imgix","cloudinary","akamai","custom"],n={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:void 0,unoptimized:!1}},6654:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=r(2115);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=o(e,n)),t&&(i.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6752:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ImageConfigContext",{enumerable:!0,get:function(){return o}});let n=r(8229)._(r(2115)),i=r(5840),o=n.default.createContext(i.imageConfigDefault)},6766:(e,t,r)=>{r.d(t,{default:()=>i.a});var n=r(1469),i=r.n(n)},7544:(e,t)=>{function r(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isInAmpMode",{enumerable:!0,get:function(){return r}})},8883:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getImgProps",{enumerable:!0,get:function(){return a}}),r(3230);let n=r(5100),i=r(5840);function o(e){return void 0!==e.default}function l(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function a(e,t){var r,a;let u,s,d,{src:f,sizes:c,unoptimized:p=!1,priority:g=!1,loading:m,className:h,quality:b,width:y,height:v,fill:_=!1,style:w,overrideSrc:j,onLoad:O,onLoadingComplete:x,placeholder:P="empty",blurDataURL:S,fetchPriority:C,decoding:E="async",layout:M,objectFit:R,objectPosition:z,lazyBoundary:k,lazyRoot:I,...A}=e,{imgConf:D,showAltText:N,blurComplete:T,defaultLoader:L}=t,U=D||i.imageConfigDefault;if("allSizes"in U)u=U;else{let e=[...U.deviceSizes,...U.imageSizes].sort((e,t)=>e-t),t=U.deviceSizes.sort((e,t)=>e-t),n=null==(r=U.qualities)?void 0:r.sort((e,t)=>e-t);u={...U,allSizes:e,deviceSizes:t,qualities:n}}if(void 0===L)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let F=A.loader||L;delete A.loader,delete A.srcSet;let B="__next_img_default"in F;if(B){if("custom"===u.loader)throw Object.defineProperty(Error('Image with src "'+f+'" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=F;F=t=>{let{config:r,...n}=t;return e(n)}}if(M){"fill"===M&&(_=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[M];e&&(w={...w,...e});let t={responsive:"100vw",fill:"100vw"}[M];t&&!c&&(c=t)}let G="",q=l(y),W=l(v);if((a=f)&&"object"==typeof a&&(o(a)||void 0!==a.src)){let e=o(f)?f.default:f;if(!e.src)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!e.height||!e.width)throw Object.defineProperty(Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received "+JSON.stringify(e)),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(s=e.blurWidth,d=e.blurHeight,S=S||e.blurDataURL,G=e.src,!_){if(q||W){if(q&&!W){let t=q/e.width;W=Math.round(e.height*t)}else if(!q&&W){let t=W/e.height;q=Math.round(e.width*t)}}else q=e.width,W=e.height}}let X=!g&&("lazy"===m||void 0===m);(!(f="string"==typeof f?f:G)||f.startsWith("data:")||f.startsWith("blob:"))&&(p=!0,X=!1),u.unoptimized&&(p=!0),B&&!u.dangerouslyAllowSVG&&f.split("?",1)[0].endsWith(".svg")&&(p=!0);let H=l(b),V=Object.assign(_?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:R,objectPosition:z}:{},N?{}:{color:"transparent"},w),$=T||"empty"===P?null:"blur"===P?'url("data:image/svg+xml;charset=utf-8,'+(0,n.getImageBlurSvg)({widthInt:q,heightInt:W,blurWidth:s,blurHeight:d,blurDataURL:S||"",objectFit:V.objectFit})+'")':'url("'+P+'")',J=$?{backgroundSize:V.objectFit||"cover",backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:$}:{},Y=function(e){let{config:t,src:r,unoptimized:n,width:i,quality:o,sizes:l,loader:a}=e;if(n)return{src:r,srcSet:void 0,sizes:void 0};let{widths:u,kind:s}=function(e,t,r){let{deviceSizes:n,allSizes:i}=e;if(r){let e=/(^|\s)(1?\d?\d)vw/g,t=[];for(let n;n=e.exec(r);n)t.push(parseInt(n[2]));if(t.length){let e=.01*Math.min(...t);return{widths:i.filter(t=>t>=n[0]*e),kind:"w"}}return{widths:i,kind:"w"}}return"number"!=typeof t?{widths:n,kind:"w"}:{widths:[...new Set([t,2*t].map(e=>i.find(t=>t>=e)||i[i.length-1]))],kind:"x"}}(t,i,l),d=u.length-1;return{sizes:l||"w"!==s?l:"100vw",srcSet:u.map((e,n)=>a({config:t,src:r,quality:o,width:e})+" "+("w"===s?e:n+1)+s).join(", "),src:a({config:t,src:r,quality:o,width:u[d]})}}({config:u,src:f,unoptimized:p,width:q,quality:H,sizes:c,loader:F});return{props:{...A,loading:X?"lazy":m,fetchPriority:C,width:q,height:W,decoding:E,className:h,style:{...V,...J},sizes:Y.sizes,srcSet:Y.srcSet,src:j||Y.src},meta:{unoptimized:p,priority:g,placeholder:P,fill:_}}}},9869:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(9946).A)("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]])}}]);
|
static/main/_next/static/chunks/436-4434bdf56ece092d.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
static/main/_next/static/chunks/472.a3826d29d6854395.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[472],{472:(e,t,l)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let u=l(4252),n=l(7876),a=u._(l(4232)),o=l(2746);async function r(e){let{Component:t,ctx:l}=e;return{pageProps:await (0,o.loadGetInitialProps)(t,l)}}class s extends a.default.Component{render(){let{Component:e,pageProps:t}=this.props;return(0,n.jsx)(e,{...t})}}s.origGetInitialProps=r,s.getInitialProps=r,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}}]);
|
static/main/_next/static/chunks/4bd1b696-585f188d732414ff.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
static/main/_next/static/chunks/684-98bea1a58a90994f.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
static/main/_next/static/chunks/874-15a3df30cc819263.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[874],{2757:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{formatUrl:function(){return u},formatWithValidation:function(){return a},urlObjectKeys:function(){return l}});let r=n(6966)._(n(8859)),o=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:n}=e,u=e.protocol||"",l=e.pathname||"",a=e.hash||"",i=e.query||"",f=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?f=t+e.host:n&&(f=t+(~n.indexOf(":")?"["+n+"]":n),e.port&&(f+=":"+e.port)),i&&"object"==typeof i&&(i=String(r.urlQueryToSearchParams(i)));let s=e.search||i&&"?"+i||"";return u&&!u.endsWith(":")&&(u+=":"),e.slashes||(!u||o.test(u))&&!1!==f?(f="//"+(f||""),l&&"/"!==l[0]&&(l="/"+l)):f||(f=""),a&&"#"!==a[0]&&(a="#"+a),s&&"?"!==s[0]&&(s="?"+s),""+u+f+(l=l.replace(/[?#]/g,encodeURIComponent))+(s=s.replace("#","%23"))+a}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function a(e){return u(e)}},6654:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let r=n(2115);function o(e,t){let n=(0,r.useRef)(null),o=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=n.current;e&&(n.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(n.current=u(e,r)),t&&(o.current=u(t,r))},[e,t])}function u(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6874:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return h}});let r=n(8229),o=n(5155),u=r._(n(2115)),l=n(2757),a=n(5227),i=n(9818),f=n(6654),s=n(9991),c=n(5929);n(3230);let p=n(4930);function d(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}let h=u.default.forwardRef(function(e,t){let n,r;let{href:l,as:h,children:y,prefetch:g=null,passHref:m,replace:b,shallow:P,scroll:E,onClick:_,onMouseEnter:v,onTouchStart:O,legacyBehavior:j=!1,...C}=e;n=y,j&&("string"==typeof n||"number"==typeof n)&&(n=(0,o.jsx)("a",{children:n}));let N=u.default.useContext(a.AppRouterContext),T=!1!==g,S=null===g?i.PrefetchKind.AUTO:i.PrefetchKind.FULL,{href:M,as:x}=u.default.useMemo(()=>{let e=d(l);return{href:e,as:h?d(h):e}},[l,h]);j&&(r=u.default.Children.only(n));let k=j?r&&"object"==typeof r&&r.ref:t,A=u.default.useCallback(e=>(T&&null!==N&&(0,p.mountLinkInstance)(e,M,N,S),()=>{(0,p.unmountLinkInstance)(e)}),[T,M,N,S]),w={ref:(0,f.useMergedRef)(A,k),onClick(e){j||"function"!=typeof _||_(e),j&&r.props&&"function"==typeof r.props.onClick&&r.props.onClick(e),N&&!e.defaultPrevented&&!function(e,t,n,r,o,l,a){let{nodeName:i}=e.currentTarget;!("A"===i.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e))&&(e.preventDefault(),u.default.startTransition(()=>{let e=null==a||a;"beforePopState"in t?t[o?"replace":"push"](n,r,{shallow:l,scroll:e}):t[o?"replace":"push"](r||n,{scroll:e})}))}(e,N,M,x,b,P,E)},onMouseEnter(e){j||"function"!=typeof v||v(e),j&&r.props&&"function"==typeof r.props.onMouseEnter&&r.props.onMouseEnter(e),N&&T&&(0,p.onNavigationIntent)(e.currentTarget)},onTouchStart:function(e){j||"function"!=typeof O||O(e),j&&r.props&&"function"==typeof r.props.onTouchStart&&r.props.onTouchStart(e),N&&T&&(0,p.onNavigationIntent)(e.currentTarget)}};return(0,s.isAbsoluteUrl)(x)?w.href=x:j&&!m&&("a"!==r.type||"href"in r.props)||(w.href=(0,c.addBasePath)(x)),j?u.default.cloneElement(r,w):(0,o.jsx)("a",{...C,...w,children:n})});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8859:(e,t)=>{function n(e){let t={};for(let[n,r]of e.entries()){let e=t[n];void 0===e?t[n]=r:Array.isArray(e)?e.push(r):t[n]=[e,r]}return t}function r(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[n,o]of Object.entries(e))if(Array.isArray(o))for(let e of o)t.append(n,r(e));else t.set(n,r(o));return t}function u(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];for(let t of n){for(let n of t.keys())e.delete(n);for(let[n,r]of t.entries())e.append(n,r)}return e}Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{assign:function(){return u},searchParamsToUrlQuery:function(){return n},urlQueryToSearchParams:function(){return o}})},9991:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{DecodeError:function(){return h},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return m},NormalizeError:function(){return y},PageNotFoundError:function(){return g},SP:function(){return p},ST:function(){return d},WEB_VITALS:function(){return n},execOnce:function(){return r},getDisplayName:function(){return i},getLocationOrigin:function(){return l},getURL:function(){return a},isAbsoluteUrl:function(){return u},isResSent:function(){return f},loadGetInitialProps:function(){return c},normalizeRepeatedSlashes:function(){return s},stringifyError:function(){return P}});let n=["CLS","FCP","FID","INP","LCP","TTFB"];function r(e){let t,n=!1;return function(){for(var r=arguments.length,o=Array(r),u=0;u<r;u++)o[u]=arguments[u];return n||(n=!0,t=e(...o)),t}}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>o.test(e);function l(){let{protocol:e,hostname:t,port:n}=window.location;return e+"//"+t+(n?":"+n:"")}function a(){let{href:e}=window.location,t=l();return e.substring(t.length)}function i(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function s(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function c(e,t){let n=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await c(t.Component,t.ctx)}:{};let r=await e.getInitialProps(t);if(n&&f(n))return r;if(!r)throw Object.defineProperty(Error('"'+i(e)+'.getInitialProps()" should resolve to an object. But found "'+r+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return r}let p="undefined"!=typeof performance,d=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class h extends Error{}class y extends Error{}class g extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class m extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function P(e){return JSON.stringify({message:e.message,stack:e.stack})}}}]);
|
static/main/_next/static/chunks/953-3efb90282c9a4140.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
static/main/_next/static/chunks/app/_not-found/page-c8335b631b2ba02c.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[492],{3632:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let l=r(5155),n=r(6395);function o(){return(0,l.jsx)(n.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3868:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return r(3632)}])},6395:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return o}}),r(8229);let l=r(5155);r(2115);let n={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};function o(e){let{status:t,message:r}=e;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("title",{children:t+": "+r}),(0,l.jsx)("div",{style:n.error,children:(0,l.jsxs)("div",{children:[(0,l.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,l.jsx)("h1",{className:"next-error-h1",style:n.h1,children:t}),(0,l.jsx)("div",{style:n.desc,children:(0,l.jsx)("h2",{style:n.h2,children:r})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{var t=t=>e(e.s=t);e.O(0,[441,684,358],()=>t(3868)),_N_E=e.O()}]);
|
static/main/_next/static/chunks/app/cnn-explained/page-5d0af436c38dac16.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[607],{3052:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(9946).A)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},8508:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>L});var r=s(5155),a=s(2115);let l=e=>{let{title:t,children:s,description:l,panelNumber:i}=e,[n,d]=(0,a.useState)(!1),o=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=new IntersectionObserver(e=>{let[t]=e;t.isIntersecting&&d(!0)},{root:null,rootMargin:"0px",threshold:.3});return o.current&&e.observe(o.current),()=>{o.current&&e.unobserve(o.current)}},[]),(0,r.jsxs)("section",{ref:o,className:"min-h-screen py-16 px-4 md:px-8 flex flex-col justify-center transition-opacity duration-1000 ease-in-out ".concat(n?"opacity-100":"opacity-0"),children:[(0,r.jsx)("div",{className:"relative",children:(0,r.jsx)("div",{className:"absolute -left-16 top-2 hidden md:flex items-center justify-center w-12 h-12 rounded-full bg-gradient-to-r from-blue-600 to-purple-600 text-white font-bold text-xl",children:i})}),(0,r.jsx)("h2",{className:"text-3xl md:text-4xl font-bold mb-6 text-transparent bg-clip-text bg-gradient-to-r from-cyan-400 to-blue-500",children:t}),(0,r.jsx)("p",{className:"mb-8 text-gray-300 max-w-2xl",children:l}),(0,r.jsx)("div",{className:"bg-gray-800 border border-gray-700 rounded-xl p-6 shadow-lg shadow-purple-900/10",children:s})]})},i=e=>{let{children:t,color:s="from-blue-500 to-purple-500",className:a=""}=e;return(0,r.jsxs)("div",{className:"relative ".concat(a),children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-gradient-to-r opacity-50 blur-md ${color} rounded-lg -z-10"}),(0,r.jsx)("div",{className:"relative bg-gray-800 border border-gray-700 rounded-lg p-4 z-10",children:t})]})};var n=s(9946);let d=(0,n.A)("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]),o=(0,n.A)("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]),c=()=>(0,r.jsx)(l,{title:"Input Image",description:"The CNN process begins with a raw input image. For our example, we'll use a handwritten digit '5'. The image is represented as a matrix of pixel values.",panelNumber:1,children:(0,r.jsxs)("div",{className:"flex flex-col md:flex-row gap-8 items-center justify-center",children:[(0,r.jsx)(i,{color:"from-blue-500 to-cyan-500",className:"flex-1 grid_box",children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("img",{src:"five.jpeg",alt:"Handwritten digit 5",className:"w-full max-w-[300px] mx-auto rounded-lg border border-cyan-800/50"}),(0,r.jsx)("div",{className:"absolute inset-0 grid grid-cols-8 grid-rows-8 pointer-events-none opacity-30",children:Array(64).fill(0).map((e,t)=>(0,r.jsx)("div",{className:"border border-cyan-400/20"},t))}),(0,r.jsxs)("div",{className:"absolute top-2 left-2 flex items-center gap-2 bg-gray-900/70 p-2 rounded-lg border border-gray-700",children:[(0,r.jsx)(d,{size:16,className:"text-cyan-400"}),(0,r.jsx)("span",{className:"text-xs text-cyan-400",children:"Raw Input Image"})]})]})}),(0,r.jsxs)("div",{className:"flex-1 flex flex-col gap-4",children:[(0,r.jsx)("h3",{className:"text-xl font-semibold text-gray-100",children:"Digital Representation"}),(0,r.jsx)("p",{className:"text-gray-300 text-sm",children:"Computers see images as arrays of numbers. Each pixel is represented as a value between 0 (black) and 255 (white) for grayscale images."}),(0,r.jsxs)("div",{className:"mt-4 bg-gray-900 rounded-lg p-4 border border-gray-700",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,r.jsx)(o,{size:16,className:"text-blue-400"}),(0,r.jsx)("span",{className:"text-xs text-blue-400",children:"Matrix Representation"})]}),(0,r.jsxs)("div",{className:"text-xs font-mono text-gray-400 overflow-auto",children:["[",(0,r.jsx)("br",{}),"\xa0\xa0[0, 0, 0, 0, 0, 0, 0, 0],",(0,r.jsx)("br",{}),"\xa0\xa0[0, 0, 110, 190, 253, 70, 0, 0],",(0,r.jsx)("br",{}),"\xa0\xa0[0, 0, 191, 40, 0, 191, 0, 0],",(0,r.jsx)("br",{}),"\xa0\xa0[0, 0, 160, 0, 0, 120, 0, 0],",(0,r.jsx)("br",{}),"\xa0\xa0[0, 0, 127, 195, 210, 20, 0, 0],",(0,r.jsx)("br",{}),"\xa0\xa0[0, 0, 0, 0, 40, 173, 0, 0],",(0,r.jsx)("br",{}),"\xa0\xa0[0, 0, 75, 60, 20, 230, 0, 0],",(0,r.jsx)("br",{}),"\xa0\xa0[0, 0, 90, 230, 180, 35, 0, 0]",(0,r.jsx)("br",{}),"]"]})]})]})]})}),x=e=>{let{size:t,data:s,highlightPosition:a=null,className:l="",colorIntensity:i=!1}=e,n=s||Array(t).fill(0).map(()=>Array(t).fill(0).map(()=>.8*Math.random()));return(0,r.jsx)("div",{className:"grid gap-[1px] ".concat(l),style:{gridTemplateColumns:"repeat(".concat(t,", 1fr)")},children:n.map((e,t)=>e.map((e,s)=>{let l=(null==a?void 0:a.x)===s&&(null==a?void 0:a.y)===t,n="bg-gray-800";if(i){if(e>0){n="bg-blue-900/60";let t=Math.max(20,Math.min(80,100*e));n="bg-blue-500/".concat(Math.floor(t))}else if(e<0){n="bg-red-900/60";let t=Math.max(20,Math.min(80,100*Math.abs(e)));n="bg-red-500/".concat(Math.floor(t))}}return(0,r.jsx)("div",{className:"\n aspect-square ".concat(n," border ").concat("border-gray-700"," flex items-center justify-center text-[0.5rem] text-gray-400\n ").concat(l?"ring-2 ring-cyan-500 ring-offset-1 ring-offset-transparent z-10":"","\n "),children:e.toFixed(1)},"".concat(t,"-").concat(s))}))})},m=(0,n.A)("ScanSearch",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]]),p=(0,n.A)("MoveRight",[["path",{d:"M18 8L22 12L18 16",key:"1r0oui"}],["path",{d:"M2 12H22",key:"1m8cig"}]]),h=()=>{let[e,t]=(0,a.useState)({x:0,y:0}),[s,n]=(0,a.useState)(!0);return(0,a.useEffect)(()=>{if(!s)return;let e=setInterval(()=>{t(e=>{let t=e.x+1>5?0:e.x+1,s=0===t?e.y+1>5?0:e.y+1:e.y;return{x:t,y:s}})},800);return()=>clearInterval(e)},[s]),(0,r.jsx)(l,{title:"Convolution Operation",description:"The convolution operation slides a filter (kernel) across the input image to detect features like edges, textures, or patterns.",panelNumber:2,children:(0,r.jsxs)("div",{className:"flex flex-col lg:flex-row gap-8 items-center",children:[(0,r.jsxs)("div",{className:"flex-1 flex flex-col items-center",children:[(0,r.jsx)("h3",{className:"text-xl font-semibold text-gray-100 mb-4",children:"Kernel Sliding"}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("div",{className:"grid grid-cols-8 grid-rows-8 w-[320px] h-[320px] gap-[1px]",children:Array(64).fill(0).map((t,s)=>{let a=s%8,l=Math.floor(s/8),i=a>=e.x&&a<e.x+3&&l>=e.y&&l<e.y+3;return(0,r.jsx)("div",{className:"\n aspect-square flex items-center justify-center\n ".concat(i?"bg-purple-600/30 border border-purple-400":"bg-gray-800 border border-gray-700","\n ")},s)})}),(0,r.jsx)("div",{className:"absolute w-[120px] h-[120px] border-2 border-cyan-400 rounded-md shadow-lg shadow-cyan-500/50 transition-all duration-300 pointer-events-none",style:{top:"".concat(40*e.y,"px"),left:"".concat(40*e.x,"px")},children:(0,r.jsx)("div",{className:"absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-cyan-400",children:(0,r.jsx)(m,{size:24})})})]}),(0,r.jsx)("button",{className:"mt-4 px-4 py-2 bg-blue-600 hover:bg-blue-700 rounded-md text-sm",onClick:()=>n(!s),children:s?"Pause Animation":"Resume Animation"})]}),(0,r.jsx)("div",{className:"hidden lg:flex items-center justify-center",children:(0,r.jsx)(p,{size:40,className:"text-gray-500"})}),(0,r.jsx)("div",{className:"flex-1 flex flex-col items-center",children:(0,r.jsxs)("div",{className:"flex gap-8 items-start",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-xl font-semibold text-gray-100 mb-4",children:"Kernel/Filter"}),(0,r.jsx)(i,{color:"from-purple-500 to-blue-500",className:"max-w-[150px]",children:(0,r.jsx)("div",{className:"grid grid-cols-3 gap-1",children:[[-1,-1,-1],[-1,8,-1],[-1,-1,-1]].flat().map((e,t)=>(0,r.jsx)("div",{className:"aspect-square flex items-center justify-center bg-gray-900 text-sm font-mono",children:e},t))})}),(0,r.jsx)("p",{className:"mt-2 text-sm text-gray-400 max-w-[150px]",children:"Edge detection filter"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-xl font-semibold text-gray-100 mb-4",children:"Feature Map"}),(0,r.jsx)(i,{color:"from-blue-500 to-teal-500",className:"max-w-[200px]",children:(0,r.jsx)(x,{size:6,highlightPosition:e.x<6&&e.y<6?{x:e.x,y:e.y}:null})}),(0,r.jsx)("p",{className:"mt-2 text-sm text-gray-400 max-w-[200px]",children:"Resulting feature map from convolution operation"})]})]})})]})})},u=(0,n.A)("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]),g=()=>{let e=[[.5,-.3,.8,-.7,.2,.9],[-.6,.4,-.2,.5,-.8,.1],[.7,-.5,.3,-.9,.2,-.4],[-.1,.6,-.3,.8,-.5,.2],[.9,-.2,.4,-.7,.3,-.6],[-.8,.1,-.5,.3,-.9,.7]],t=e.map(e=>e.map(e=>Math.max(0,e)));return(0,r.jsxs)(l,{title:"ReLU Activation",description:"The Rectified Linear Unit (ReLU) introduces non-linearity to the network by converting all negative values to zero, allowing the network to learn complex patterns.",panelNumber:3,children:[(0,r.jsxs)("div",{className:"flex flex-col lg:flex-row items-center justify-center gap-6",children:[(0,r.jsxs)("div",{className:"flex-1 flex flex-col items-center",children:[(0,r.jsx)("h3",{className:"text-xl font-semibold text-gray-100 mb-4",children:"Before ReLU"}),(0,r.jsx)(i,{color:"from-red-500 to-blue-500",className:"w-full max-w-[280px]",children:(0,r.jsx)(x,{size:6,data:e,colorIntensity:!0})}),(0,r.jsx)("p",{className:"mt-3 text-sm text-gray-400 max-w-[280px] text-center",children:"Feature map contains both positive and negative values"})]}),(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-4",children:[(0,r.jsxs)("div",{className:"relative px-8",children:[(0,r.jsx)(u,{size:40,className:"text-purple-500"}),(0,r.jsx)("div",{className:"absolute top-[-24px] left-1/2 transform -translate-x-1/2 bg-purple-900/60 px-3 py-1 rounded-md border border-purple-700",style:{width:"9rem",textAlign:"center"},children:(0,r.jsx)("code",{className:"text-xs text-purple-200",children:"f(x) = max(0, x)"})})]}),(0,r.jsxs)("div",{className:"mt-4 bg-gray-900 rounded-lg p-3 border border-gray-700",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)("div",{className:"w-4 h-4 bg-red-500/60 rounded-sm mr-2"}),(0,r.jsx)("span",{className:"text-xs text-gray-300",children:"Negative values"})]}),(0,r.jsxs)("div",{className:"flex items-center mt-1",children:[(0,r.jsx)("div",{className:"w-4 h-4 bg-blue-500/60 rounded-sm mr-2"}),(0,r.jsx)("span",{className:"text-xs text-gray-300",children:"Positive values"})]})]})]}),(0,r.jsxs)("div",{className:"flex-1 flex flex-col items-center",children:[(0,r.jsx)("h3",{className:"text-xl font-semibold text-gray-100 mb-4",children:"After ReLU"}),(0,r.jsx)(i,{color:"from-blue-500 to-cyan-500",className:"w-full max-w-[280px]",children:(0,r.jsx)(x,{size:6,data:t,colorIntensity:!0})}),(0,r.jsx)("p",{className:"mt-3 text-sm text-gray-400 max-w-[280px] text-center",children:"Negative values are replaced with zeros, introducing non-linearity"})]})]}),(0,r.jsxs)("div",{className:"mt-12 p-4 bg-gray-900/50 rounded-lg border border-gray-700",children:[(0,r.jsx)("h4",{className:"text-lg font-semibold text-blue-300 mb-2",children:"Why Non-Linearity Matters"}),(0,r.jsx)("p",{className:"text-gray-300 text-sm",children:"Without non-linear activation functions like ReLU, the neural network would only be able to learn linear relationships in the data, significantly limiting its ability to solve complex problems. ReLU enables the network to model more complex functions while being computationally efficient."})]})]})};var b=s(8832);let f=()=>{let e=[[.5,.8,.2,.9,.3,.7],[.4,0,.5,.1,.6,0],[.7,.3,.2,0,.4,.1],[0,.6,.8,.2,0,.5],[.9,.4,.3,0,.2,.8],[.1,0,.3,.7,0,.4]],[t,s]=(0,a.useState)({x:0,y:0}),[n,d]=(0,a.useState)(!0),[o,c]=(0,a.useState)({x:0,y:0});(0,a.useEffect)(()=>{if(!n)return;let e=setInterval(()=>{s(e=>{let t=e.x+2>4?0:e.x+2,s=0===t?e.y+2>4?0:e.y+2:e.y;return c({x:Math.floor(t/2),y:Math.floor(s/2)}),{x:t,y:s}})},1e3);return()=>clearInterval(e)},[n]);let x=()=>Math.max(e[t.y][t.x],e[t.y][t.x+1],e[t.y+1][t.x],e[t.y+1][t.x+1]);return(0,r.jsx)(l,{title:"Pooling Layer",description:"Pooling reduces the spatial dimensions of the feature maps, preserving the most important information while reducing computation and preventing overfitting.",panelNumber:4,children:(0,r.jsxs)("div",{className:"flex flex-col lg:flex-row items-center justify-center gap-8",children:[(0,r.jsxs)("div",{className:"flex-1 flex flex-col items-center",children:[(0,r.jsx)("h3",{className:"text-xl font-semibold text-gray-100 mb-4",children:"Max Pooling (2\xd72 Window)"}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("div",{className:"grid grid-cols-6 gap-[1px] w-full max-w-[300px]",children:e.flat().map((e,s)=>{let a=s%6,l=Math.floor(s/6),i=a>=t.x&&a<t.x+2&&l>=t.y&&l<t.y+2,n=i&&e===x();return(0,r.jsx)("div",{className:"\n aspect-square flex items-center justify-center text-xs font-mono\n ".concat(i?n?"bg-teal-600/50 border border-teal-400 text-white":"bg-purple-600/30 border border-purple-400":"bg-gray-800 border border-gray-700 text-gray-400","\n "),children:e.toFixed(1)},s)})}),(0,r.jsx)("div",{className:"absolute border-2 border-cyan-400 rounded-md shadow-lg shadow-cyan-500/50 transition-all duration-300 pointer-events-none",style:{top:"".concat(16.67*t.y,"%"),left:"".concat(16.67*t.x,"%"),width:"33.33%",height:"33.33%"}})]}),(0,r.jsx)("button",{className:"mt-4 px-4 py-2 bg-blue-600 hover:bg-blue-700 rounded-md text-sm",onClick:()=>d(!n),children:n?"Pause Animation":"Resume Animation"})]}),(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center",children:[(0,r.jsx)(u,{size:40,className:"hidden lg:block text-blue-500"}),(0,r.jsx)(b.A,{size:40,className:"block lg:hidden text-blue-500"}),(0,r.jsxs)("div",{className:"mt-4 bg-gray-900 rounded-lg p-3 border border-gray-700",children:[(0,r.jsx)("h4",{className:"text-sm font-semibold text-blue-300 mb-1",children:"Max Pooling"}),(0,r.jsxs)("p",{className:"text-xs text-gray-300",children:["For each 2\xd72 window, keep",(0,r.jsx)("br",{}),"only the maximum value"]})]})]}),(0,r.jsxs)("div",{className:"flex-1 flex flex-col items-center",children:[(0,r.jsx)("h3",{className:"text-xl font-semibold text-gray-100 mb-4",children:"Pooled Feature Map"}),(0,r.jsx)(i,{color:"from-teal-500 to-blue-500",className:"w-full max-w-[200px]",children:(0,r.jsx)("div",{className:"grid grid-cols-3 gap-[1px]",children:[[.8,.9,.7],[.7,.8,.5],[.9,.7,.8]].flat().map((e,t)=>{let s=t%3,a=Math.floor(t/3),l=s===o.x&&a===o.y;return(0,r.jsx)("div",{className:"\n aspect-square flex items-center justify-center text-sm font-mono\n ".concat(l?"bg-teal-600/50 border border-teal-400 text-white":"bg-gray-800 border border-gray-700 text-gray-400","\n "),children:e.toFixed(1)},t)})})}),(0,r.jsxs)("div",{className:"mt-6 p-3 bg-gray-900/50 rounded-lg border border-gray-700 w-full max-w-[250px]",children:[(0,r.jsx)("h4",{className:"text-sm font-semibold text-blue-300 mb-1",children:"Benefits of Pooling"}),(0,r.jsxs)("ul",{className:"text-xs text-gray-300 list-disc pl-4 space-y-1",children:[(0,r.jsx)("li",{children:"Reduces spatial dimensions by 75%"}),(0,r.jsx)("li",{children:"Preserves important features"}),(0,r.jsx)("li",{children:"Makes detection more robust to position"}),(0,r.jsx)("li",{children:"Reduces overfitting"})]})]})]})]})})},y=(0,n.A)("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]),j=()=>(0,r.jsx)(l,{title:"Deep Layer Abstraction",description:"As we progress through deeper layers of the CNN, the network learns increasingly abstract representations of the input image, from simple edges to complex shapes and patterns.",panelNumber:5,children:(0,r.jsxs)("div",{className:"mt-6 grid grid-cols-1 md:grid-cols-2 gap-x-8 lg:gap-x-12 gap-y-10 w-full max-w-5xl lg:max-w-6xl mx-auto",children:[(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-[-80px] sm:space-y-[-100px] md:space-y-[-120px] py-8 md:pt-12",style:{gap:"4rem"},children:[(0,r.jsx)(i,{color:"from-blue-500 to-purple-500",className:"w-[85%] sm:w-[75%] max-w-xs sm:max-w-sm transform rotate-[-2deg] z-10",children:(0,r.jsxs)("div",{className:"p-2 sm:p-3",children:[(0,r.jsx)("h3",{className:"text-base sm:text-lg font-semibold text-blue-300 mb-2",children:"Layer 1: Edges & Corners"}),(0,r.jsx)("div",{className:"grid grid-cols-4 gap-1 sm:gap-2",children:Array(8).fill(0).map((e,t)=>(0,r.jsx)("div",{className:"aspect-square bg-gray-900 rounded-md p-1 flex items-center justify-center",children:(0,r.jsx)("div",{className:"w-full h-full ".concat(t%4==0?"bg-gradient-to-r from-blue-500/30 to-transparent":t%4==1?"bg-gradient-to-b from-blue-500/30 to-transparent":t%4==2?"bg-gradient-to-tr from-blue-500/30 to-transparent":"bg-gradient-to-bl from-blue-500/30 to-transparent"," rounded-sm")})},t))})]})}),(0,r.jsx)(i,{color:"from-purple-500 to-pink-500",className:"w-[80%] sm:w-[70%] max-w-xs sm:max-w-sm transform rotate-[1deg] translate-x-2 sm:translate-x-3 z-20",children:(0,r.jsxs)("div",{className:"p-2 sm:p-3",children:[(0,r.jsx)("h3",{className:"text-base sm:text-lg font-semibold text-purple-300 mb-2",children:"Layer 2: Simple Shapes"}),(0,r.jsx)("div",{className:"grid grid-cols-4 gap-1 sm:gap-2",children:Array(8).fill(0).map((e,t)=>(0,r.jsx)("div",{className:"aspect-square bg-gray-900 rounded-md p-1 flex items-center justify-center",children:(0,r.jsxs)("div",{className:"w-full h-full flex items-center justify-center",children:[t%4==0&&(0,r.jsx)("div",{className:"w-3/4 h-3/4 border-2 border-purple-500/40 rounded-full"}),t%4==1&&(0,r.jsx)("div",{className:"w-3/4 h-3/4 border-2 border-purple-500/40"}),t%4==2&&(0,r.jsx)("div",{className:"w-3/4 h-1/2 border-2 border-purple-500/40 rounded-md"}),t%4==3&&(0,r.jsx)("div",{className:"w-3/4 h-3/4 border-2 border-purple-500/40 transform rotate-45"})]})},t))})]})}),(0,r.jsx)(i,{color:"from-pink-500 to-red-500",className:"w-[75%] sm:w-[65%] max-w-xs sm:max-w-sm transform rotate-[-1deg] -translate-x-1 sm:-translate-x-2 z-30",children:(0,r.jsxs)("div",{className:"p-2 sm:p-3",children:[(0,r.jsx)("h3",{className:"text-base sm:text-lg font-semibold text-pink-300 mb-2",children:"Layer 3: Complex Features"}),(0,r.jsx)("div",{className:"grid grid-cols-4 gap-1 sm:gap-2",children:Array(8).fill(0).map((e,t)=>(0,r.jsxs)("div",{className:"aspect-square bg-gray-900 rounded-md p-1 flex items-center justify-center overflow-hidden",children:[0===t&&(0,r.jsxs)("div",{className:"relative w-full h-full",children:[(0,r.jsx)("div",{className:"absolute top-1/4 left-1/4 w-1/2 h-1/2 border-2 border-pink-500/40 rounded-full"}),(0,r.jsx)("div",{className:"absolute top-1/3 left-1/3 w-1/3 h-1/3 bg-pink-500/20 rounded-full"})]}),1===t&&(0,r.jsx)("div",{className:"w-full h-full flex items-center justify-center",children:(0,r.jsx)("div",{className:"w-3/4 h-1/2 bg-pink-500/20 rounded-t-full"})}),2===t&&(0,r.jsxs)("div",{className:"w-full h-full flex flex-col items-center justify-center space-y-0.5 sm:space-y-1",children:[(0,r.jsx)("div",{className:"w-2/3 h-1/4 bg-pink-500/20 rounded-sm"}),(0,r.jsx)("div",{className:"w-1/2 h-1/4 bg-pink-500/20 rounded-sm"})]}),t>2&&(0,r.jsx)("div",{className:"w-full h-full flex items-center justify-center",children:(0,r.jsx)("div",{className:"w-3/4 h-3/4 ".concat(t%3==0?"border-t-2 border-r-2":t%3==1?"border-l-2 border-b-2":"border-2"," border-pink-500/40 rounded-md")})})]},t))})]})})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-6 md:pt-4",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[(0,r.jsx)(y,{size:24,className:"text-blue-400 mr-2"}),(0,r.jsx)("h3",{className:"text-xl font-semibold text-blue-300",children:"Hierarchy of Features"})]}),(0,r.jsxs)("div",{className:"space-y-4",children:[" ",(0,r.jsxs)("div",{className:"bg-gray-800/60 rounded-lg p-4 border border-gray-700",children:[(0,r.jsx)("h4",{className:"text-md font-semibold text-blue-300 mb-2",children:"Early Layers (e.g., Layer 1)"}),(0,r.jsx)("p",{className:"text-sm text-gray-300",children:"Detect low-level features like edges, corners, and basic textures. These are the building blocks for more complex pattern recognition."})]}),(0,r.jsxs)("div",{className:"bg-gray-800/60 rounded-lg p-4 border border-gray-700",children:[(0,r.jsx)("h4",{className:"text-md font-semibold text-purple-300 mb-2",children:"Middle Layers (e.g., Layer 2)"}),(0,r.jsx)("p",{className:"text-sm text-gray-300",children:"Combine edges and textures into more complex patterns and shapes like circles, squares, and simple object parts."})]}),(0,r.jsxs)("div",{className:"bg-gray-800/60 rounded-lg p-4 border border-gray-700",children:[(0,r.jsx)("h4",{className:"text-md font-semibold text-pink-300 mb-2",children:"Deep Layers (e.g., Layer 3)"}),(0,r.jsx)("p",{className:"text-sm text-gray-300",children:"Recognize complex, high-level concepts specific to the training dataset, such as eyes, faces, or entire objects."})]})]})]})]})});var N=s(3052);let v=(0,n.A)("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]),w=()=>{let[e,t]=(0,a.useState)([.01,.02,.03,.05,.08,.65,.05,.04,.05,.02]);return(0,r.jsx)(l,{title:"Flattening and Fully Connected Layer",description:"The final stage of a CNN involves flattening the feature maps into a single vector and passing it through fully connected layers to make predictions.",panelNumber:6,children:(0,r.jsxs)("div",{className:"flex flex-col lg:flex-row items-start justify-center gap-8",children:[(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("h3",{className:"text-xl font-semibold text-gray-100 mb-4",children:"Feature Maps to Vector"}),(0,r.jsxs)("div",{className:"flex flex-col items-center space-y-4",children:[(0,r.jsx)("div",{className:"grid grid-cols-2 grid-rows-2 gap-2",children:[,,,,].fill(0).map((e,t)=>(0,r.jsx)(i,{color:0===t?"from-blue-500 to-blue-600":1===t?"from-purple-500 to-purple-600":2===t?"from-pink-500 to-pink-600":"from-teal-500 to-teal-600",className:"w-[80px] h-[80px]",children:(0,r.jsx)("div",{className:"grid grid-cols-3 grid-rows-3 gap-[1px] h-full",children:Array(9).fill(0).map((e,t)=>(0,r.jsx)("div",{className:"bg-gray-900/80 flex items-center justify-center",style:{opacity:.5*Math.random()+.5}},t))})},t))}),(0,r.jsx)(N.A,{size:40,className:"transform rotate-90 text-blue-500"}),(0,r.jsx)(i,{color:"from-blue-500 to-purple-500",className:"w-full max-w-[320px]",children:(0,r.jsx)("div",{className:"grid grid-cols-9 gap-[1px] p-1",children:Array(36).fill(0).map((e,t)=>{let s=t<9?"bg-blue-600/30":t<18?"bg-purple-600/30":t<27?"bg-pink-600/30":"bg-teal-600/30";return(0,r.jsx)("div",{className:"h-5 ".concat(s," rounded-sm")},t)})})}),(0,r.jsxs)("div",{className:"mt-2 p-3 bg-gray-900/50 rounded-lg border border-gray-700 w-full max-w-[320px]",children:[(0,r.jsx)("h4",{className:"text-sm font-semibold text-blue-300 mb-1",children:"Flattening"}),(0,r.jsx)("p",{className:"text-xs text-gray-300",children:"The 2D feature maps are converted into a 1D vector by arranging all the values in a single row. This allows the network to transition from convolutional layers to fully connected layers."})]})]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-center",children:[(0,r.jsx)(N.A,{size:40,className:"hidden lg:block text-blue-500"}),(0,r.jsx)(N.A,{size:40,className:"block lg:hidden transform rotate-90 text-blue-500"})]}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("h3",{className:"text-xl font-semibold text-gray-100 mb-4",children:"Fully Connected Network"}),(0,r.jsxs)("div",{className:"flex flex-col items-center",children:[(0,r.jsxs)("div",{className:"relative w-full h-[280px] bg-gray-900/30 rounded-lg border border-gray-800",children:[(0,r.jsx)("div",{className:"absolute left-[10%] top-0 bottom-0 flex flex-col justify-center space-y-1",children:Array(10).fill(0).map((e,t)=>(0,r.jsx)("div",{className:"w-4 h-4 rounded-full bg-blue-500 shadow-md shadow-blue-500/50"},t))}),(0,r.jsx)("div",{className:"absolute left-[40%] top-0 bottom-0 flex flex-col justify-center space-y-1",children:Array(8).fill(0).map((e,t)=>(0,r.jsx)("div",{className:"w-4 h-4 rounded-full bg-purple-500 shadow-md shadow-purple-500/50"},t))}),(0,r.jsx)("div",{className:"absolute right-[15%] top-0 bottom-0 flex flex-col justify-center space-y-1",children:Array(10).fill(0).map((e,t)=>(0,r.jsx)("div",{className:"w-4 h-4 rounded-full ".concat(5===t?"bg-green-500 shadow-md shadow-green-500/50 scale-150":"bg-pink-500 shadow-md shadow-pink-500/50")},t))}),(0,r.jsx)("svg",{className:"absolute inset-0 w-full h-full pointer-events-none",children:(0,r.jsxs)("g",{children:[Array(30).fill(0).map((e,t)=>(0,r.jsx)("line",{x1:"10%",y1:t%10*28+45,x2:"40%",y2:t%8*35+54,stroke:"rgba(139, 92, 246, 0.15)",strokeWidth:"1"},"i-h-".concat(t))),Array(30).fill(0).map((e,t)=>{let s=t%10==5;return(0,r.jsx)("line",{x1:"40%",y1:t%8*35+54,x2:"85%",y2:t%10*28+45,stroke:s?"rgba(16, 185, 129, 0.6)":"rgba(219, 39, 119, 0.15)",strokeWidth:s?"2":"1"},"h-o-".concat(t))})]})})]}),(0,r.jsxs)("div",{className:"mt-8 w-full max-w-[320px]",children:[(0,r.jsxs)("div",{className:"flex items-center mb-2",children:[(0,r.jsx)(v,{size:18,className:"text-green-400 mr-2"}),(0,r.jsx)("h4",{className:"text-md font-semibold text-green-300",children:'Prediction: "5"'})]}),(0,r.jsxs)("div",{className:"bg-gray-900/70 rounded-lg p-3 border border-gray-800",children:[(0,r.jsxs)("div",{className:"flex justify-between text-xs text-gray-400 mb-1",children:[(0,r.jsx)("div",{children:"Class"}),(0,r.jsx)("div",{children:"Probability"})]}),["0","1","2","3","4","5","6","7","8","9"].map((t,s)=>(0,r.jsxs)("div",{className:"flex items-center mb-1",children:[(0,r.jsx)("div",{className:"w-6 text-xs text-gray-300",children:t}),(0,r.jsx)("div",{className:"flex-1 mx-2 h-5 bg-gray-800 rounded-sm overflow-hidden",children:(0,r.jsx)("div",{className:"h-full ".concat(5===s?"bg-green-500":"bg-blue-500"," rounded-sm transition-all duration-500 ease-out"),style:{width:"".concat(100*e[s],"%")}})}),(0,r.jsxs)("div",{className:"w-10 text-right text-xs text-gray-300",children:[(100*e[s]).toFixed(0),"%"]})]},t))]})]})]})]})]})})},k=(0,n.A)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]),A=(0,n.A)("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]),M=()=>{let[e,t]=(0,a.useState)(0),[s,n]=(0,a.useState)(!0);return(0,a.useEffect)(()=>{if(!s)return;let e=setInterval(()=>{t(e=>(e+1)%4)},1200);return()=>clearInterval(e)},[s]),(0,r.jsx)(l,{title:"Learning via Backpropagation",description:"The CNN learns by comparing its predictions with the true labels, calculating the error, and then propagating this error backward through the network to update weights.",panelNumber:7,children:(0,r.jsxs)("div",{className:"flex flex-col items-center",children:[(0,r.jsxs)("div",{className:"w-full max-w-[800px] relative",children:[(0,r.jsxs)("div",{className:"relative w-full h-[300px] bg-gray-900/30 rounded-lg border border-gray-800",children:[(0,r.jsx)("div",{className:"absolute right-[15%] top-0 bottom-0 flex flex-col justify-center space-y-1",children:[,,,,,].fill(0).map((e,t)=>(0,r.jsx)("div",{className:"w-5 h-5 rounded-full ".concat(2===t?"bg-green-500 shadow-md shadow-green-500/50":"bg-pink-500 shadow-md shadow-pink-500/50"," flex items-center justify-center text-[10px] font-bold"),children:t},t))}),(0,r.jsx)("div",{className:"absolute left-[50%] top-0 bottom-0 flex flex-col justify-center space-y-1",children:Array(6).fill(0).map((t,s)=>(0,r.jsx)("div",{className:"w-5 h-5 rounded-full bg-purple-500 shadow-md shadow-purple-500/50 ".concat(2===e&&"ring-2 ring-red-500 ring-offset-1 ring-offset-gray-900")},s))}),(0,r.jsx)("div",{className:"absolute left-[15%] top-0 bottom-0 flex flex-col justify-center space-y-1",children:Array(8).fill(0).map((t,s)=>(0,r.jsx)("div",{className:"w-5 h-5 rounded-full bg-blue-500 shadow-md shadow-blue-500/50 ".concat(3===e&&"ring-2 ring-red-500 ring-offset-1 ring-offset-gray-900")},s))}),(0,r.jsx)("div",{className:"absolute right-[5%] top-1/2 transform -translate-y-1/2 \n transition-opacity duration-500 ".concat(0===e?"opacity-100":"opacity-0"),children:(0,r.jsx)(i,{color:"from-red-500 to-red-600",className:"p-1",children:(0,r.jsx)("div",{className:"px-3 py-1 text-sm text-red-200",children:"Error: 0.42"})})}),(0,r.jsxs)("svg",{className:"absolute inset-0 w-full h-full pointer-events-none",children:[(0,r.jsx)("defs",{children:(0,r.jsx)("marker",{id:"arrow",viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"4",markerHeight:"4",orient:"auto-start-reverse",children:(0,r.jsx)("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:e>0?"rgba(239, 68, 68, 0.7)":"rgba(139, 92, 246, 0.3)"})})}),(0,r.jsxs)("g",{children:[(0,r.jsx)("path",{d:"M 15% 150 C 30% 150, 35% 150, 50% 150",stroke:"rgba(139, 92, 246, 0.3)",strokeWidth:"20",fill:"none",strokeLinecap:"round",opacity:0===e?"1":"0.3"}),(0,r.jsx)("path",{d:"M 50% 150 C 65% 150, 70% 150, 85% 150",stroke:"rgba(139, 92, 246, 0.3)",strokeWidth:"20",fill:"none",strokeLinecap:"round",opacity:0===e?"1":"0.3"}),(0,r.jsx)("path",{d:"M 85% 150 C 70% 150, 65% 150, 50% 150",stroke:e>=1?"rgba(239, 68, 68, 0.4)":"transparent",strokeWidth:"4",fill:"none",markerEnd:"url(#arrow)",strokeDasharray:"6,3",strokeLinecap:"round"}),(0,r.jsx)("path",{d:"M 50% 150 C 35% 150, 30% 150, 15% 150",stroke:e>=2?"rgba(239, 68, 68, 0.4)":"transparent",strokeWidth:"4",fill:"none",markerEnd:"url(#arrow)",strokeDasharray:"6,3",strokeLinecap:"round"})]})]}),(0,r.jsx)("div",{className:"absolute left-[35%] top-1/4 transform -translate-x-1/2 \n transition-opacity duration-300 ".concat(3===e?"opacity-100":"opacity-0"),children:(0,r.jsx)("div",{className:"px-2 py-1 bg-blue-900/70 rounded text-xs text-blue-200 border border-blue-700",children:"Update weights"})}),(0,r.jsx)("div",{className:"absolute left-[65%] top-1/4 transform -translate-x-1/2 \n transition-opacity duration-300 ".concat(2===e?"opacity-100":"opacity-0"),children:(0,r.jsx)("div",{className:"px-2 py-1 bg-blue-900/70 rounded text-xs text-blue-200 border border-blue-700",children:"Update weights"})}),(0,r.jsxs)("div",{className:"absolute bottom-4 left-0 right-0 flex justify-center space-x-4",children:[(0,r.jsx)("div",{className:"px-3 py-1 rounded text-xs ".concat(0===e?"bg-blue-500 text-white":"bg-gray-800 text-gray-400"),children:"Forward Pass"}),(0,r.jsx)("div",{className:"px-3 py-1 rounded text-xs ".concat(1===e?"bg-red-500 text-white":"bg-gray-800 text-gray-400"),children:"Calculate Error"}),(0,r.jsx)("div",{className:"px-3 py-1 rounded text-xs ".concat(e>=2?"bg-red-500 text-white":"bg-gray-800 text-gray-400"),children:"Backward Pass"})]})]}),(0,r.jsx)("button",{className:"mt-4 px-4 py-2 bg-blue-600 hover:bg-blue-700 rounded-md text-sm mx-auto block",onClick:()=>n(!s),children:s?"Pause Animation":"Resume Animation"})]}),(0,r.jsxs)("div",{className:"mt-12 grid grid-cols-1 md:grid-cols-2 gap-6 w-full max-w-[800px]",children:[(0,r.jsxs)("div",{className:"bg-gray-800/60 rounded-lg p-5 border border-gray-700",children:[(0,r.jsxs)("div",{className:"flex items-center mb-3",children:[(0,r.jsx)(k,{size:18,className:"text-red-400 mr-2 transform rotate-180"}),(0,r.jsx)("h4",{className:"text-lg font-semibold text-red-300",children:"Backpropagation"})]}),(0,r.jsx)("p",{className:"text-sm text-gray-300",children:"Backpropagation calculates how much each neuron's weight contributed to the output error. It then adjusts these weights to minimize the error in future predictions, using the chain rule of calculus to distribute error responsibility throughout the network."})]}),(0,r.jsxs)("div",{className:"bg-gray-800/60 rounded-lg p-5 border border-gray-700",children:[(0,r.jsxs)("div",{className:"flex items-center mb-3",children:[(0,r.jsx)(A,{size:18,className:"text-green-400 mr-2"}),(0,r.jsx)("h4",{className:"text-lg font-semibold text-green-300",children:"Gradient Descent"})]}),(0,r.jsx)("p",{className:"text-sm text-gray-300",children:"The network uses gradient descent to adjust weights in the direction that reduces error. By repeatedly processing many examples and making small weight updates, the model gradually improves its ability to recognize patterns and make accurate predictions."})]})]}),(0,r.jsxs)("div",{className:"mt-8 p-5 bg-gradient-to-r from-blue-900/30 to-purple-900/30 rounded-lg border border-blue-800/50 w-full max-w-[800px]",children:[(0,r.jsx)("h3",{className:"text-xl font-semibold text-blue-300 mb-3",children:"Key CNN Components Recap"}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,r.jsx)("div",{className:"bg-gray-900/60 rounded-lg px-3 py-2 text-sm text-blue-300 border border-gray-800",children:"Input Layer"}),(0,r.jsx)("div",{className:"bg-gray-900/60 rounded-lg px-3 py-2 text-sm text-purple-300 border border-gray-800",children:"Convolutional Layers"}),(0,r.jsx)("div",{className:"bg-gray-900/60 rounded-lg px-3 py-2 text-sm text-cyan-300 border border-gray-800",children:"Activation Functions"}),(0,r.jsx)("div",{className:"bg-gray-900/60 rounded-lg px-3 py-2 text-sm text-teal-300 border border-gray-800",children:"Pooling Layers"}),(0,r.jsx)("div",{className:"bg-gray-900/60 rounded-lg px-3 py-2 text-sm text-pink-300 border border-gray-800",children:"Fully Connected Layers"}),(0,r.jsx)("div",{className:"bg-gray-900/60 rounded-lg px-3 py-2 text-sm text-green-300 border border-gray-800",children:"Output Layer"}),(0,r.jsx)("div",{className:"bg-gray-900/60 rounded-lg px-3 py-2 text-sm text-red-300 border border-gray-800",children:"Backpropagation"})]})]})]})})},L=()=>(0,r.jsxs)("div",{className:"flex flex-col items-center w-full",children:[(0,r.jsxs)("header",{className:"w-full py-8 px-4 text-center bg-gradient-to-r from-indigo-900 to-purple-900",children:[(0,r.jsx)("h1",{className:"text-4xl md:text-5xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-blue-400 to-purple-500",children:"Convolutional Neural Network Visualized"}),(0,r.jsx)("p",{className:"mt-4 text-lg text-blue-200 max-w-2xl mx-auto",children:"Explore how CNNs process images through multiple layers of abstraction"})]}),(0,r.jsxs)("main",{className:"w-full max-w-6xl mx-auto",children:[(0,r.jsx)(c,{}),(0,r.jsx)(h,{}),(0,r.jsx)(g,{}),(0,r.jsx)(f,{}),(0,r.jsx)(j,{}),(0,r.jsx)(w,{}),(0,r.jsx)(M,{})]}),(0,r.jsx)("footer",{className:"w-full py-8 text-center text-gray-500 text-sm",children:(0,r.jsx)("p",{children:"\xa9 2025 CNN Visualizer"})})]})},8832:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});let r=(0,s(9946).A)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]])},9132:(e,t,s)=>{Promise.resolve().then(s.bind(s,8508))},9946:(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var r=s(2115);let a=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),l=function(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.filter((e,t,s)=>!!e&&""!==e.trim()&&s.indexOf(e)===t).join(" ").trim()};var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let n=(0,r.forwardRef)((e,t)=>{let{color:s="currentColor",size:a=24,strokeWidth:n=2,absoluteStrokeWidth:d,className:o="",children:c,iconNode:x,...m}=e;return(0,r.createElement)("svg",{ref:t,...i,width:a,height:a,stroke:s,strokeWidth:d?24*Number(n)/Number(a):n,className:l("lucide",o),...m},[...x.map(e=>{let[t,s]=e;return(0,r.createElement)(t,s)}),...Array.isArray(c)?c:[c]])}),d=(e,t)=>{let s=(0,r.forwardRef)((s,i)=>{let{className:d,...o}=s;return(0,r.createElement)(n,{ref:i,iconNode:t,className:l("lucide-".concat(a(e)),d),...o})});return s.displayName="".concat(e),s}}},e=>{var t=t=>e(e.s=t);e.O(0,[441,684,358],()=>t(9132)),_N_E=e.O()}]);
|
static/main/_next/static/chunks/app/diagnosis-steps/page-dec8e1c2f150ea13.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[598],{1249:(e,t,i)=>{Promise.resolve().then(i.bind(i,2116))},2116:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>m});var a=i(5155),n=i(5561),r=i(5850),s=i(2115),o=i(3980),l=i(9946);let c=(0,l.A)("FileImage",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]]),d=(0,l.A)("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]),h=(0,l.A)("BrainCircuit",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]]),p=(0,l.A)("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]),u=[{term:"biopsy",definition:"A sample of tissue taken from the body for closer examination."},{term:"epithelial",definition:"Relating to the thin tissue forming the outer layer of a body's surface."},{term:"histopathological",definition:"The study of tissue disease using a microscope."},{term:"convolutional neural network",definition:"A deep learning model used especially for analyzing visual data."},{term:"benign",definition:"Not harmful in effect; not cancerous."},{term:"malignant",definition:"Cancerous and potentially life-threatening."}];function m(){let e=[{title:"Tissue Collection",description:"Biopsy samples are collected from the epithelial lining of the oral cavity for further analysis.",icon:(0,a.jsx)(o.A,{className:"h-8 w-8"})},{title:"Microscopic Imaging",description:"Tissue samples are examined under an electronic microscope to produce high-resolution histopathological images.",icon:(0,a.jsx)(c,{className:"h-8 w-8"})},{title:"Histopathology Imaging",description:"The observed cellular structures are digitally captured as histopathological images for diagnostic evaluation.",icon:(0,a.jsx)(d,{className:"h-8 w-8"})},{title:"Image Digitization",description:"These images are digitized and fed into the computer system, preprocessed for consistency and clarity.",icon:(0,a.jsx)(h,{className:"h-8 w-8"})},{title:"CNN Processing",description:"A convolutional neural network analyzes the image, extracting features indicative of cancerous changes.",icon:(0,a.jsx)(h,{className:"h-8 w-8"})},{title:"Diagnosis Output",description:"The model outputs a classification—benign or malignant—with a confidence score, aiding medical diagnosis.",icon:(0,a.jsx)(p,{className:"h-8 w-8"})}],t={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.6}}};return(0,a.jsx)("div",{className:"py-20 bg-gray-950 min-h-screen",children:(0,a.jsx)("div",{className:"container mx-auto px-4",children:(0,a.jsxs)(n.P.div,{initial:"hidden",animate:"visible",variants:{hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.2}}},className:"max-w-4xl mx-auto",children:[(0,a.jsx)(n.P.h1,{variants:t,className:"text-3xl md:text-5xl font-bold mb-8 text-center",children:"Diagnosis Steps"}),(0,a.jsx)(n.P.p,{variants:t,className:"text-gray-300 text-center mb-16 max-w-2xl mx-auto",children:"The AI-powered oral cancer diagnosis process follows a systematic workflow from image acquisition to final report generation. Each step is optimized for accuracy and efficiency."}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("div",{className:"absolute left-1/2 transform -translate-x-1/2 h-full w-1 bg-gradient-to-b from-purple-600 to-cyan-500 rounded-full hidden md:block"}),(0,a.jsx)("div",{className:"space-y-24 relative",children:e.map((e,t)=>{let i;return(0,a.jsxs)(n.P.div,{initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-100px"},variants:{hidden:{opacity:0,y:50},visible:{opacity:1,y:0,transition:{duration:.5,delay:.1*t}}},className:"flex flex-col ".concat(t%2==0?"md:flex-row":"md:flex-row-reverse"," items-center"),children:[(0,a.jsxs)("div",{className:"md:w-1/2 ".concat(t%2==0?"md:pr-12 md:text-right":"md:pl-12"),children:[(0,a.jsx)("h3",{className:"text-2xl font-semibold mb-3",children:e.title}),(0,a.jsx)("p",{className:"text-gray-300",children:(i=[e.description],u.forEach(e=>{let{term:t,definition:n}=e;for(let e=0;e<i.length;e++)if("string"==typeof i[e]){let o=i[e].split(RegExp("\\b(".concat(t,")\\b"),"gi"));if(o.length>1){let l=[];o.forEach((i,o)=>{i.toLowerCase()===t.toLowerCase()?l.push((0,a.jsx)(r.A,{term:t,definition:n,children:i},"".concat(t,"-").concat(e,"-").concat(o))):l.push((0,a.jsx)(s.Fragment,{children:i},"text-".concat(e,"-").concat(o)))}),i.splice(e,1,...l),e+=l.length-1}}}),i)})]}),(0,a.jsx)("div",{className:"my-6 md:my-0 relative",children:(0,a.jsx)("div",{className:"w-16 h-16 rounded-full bg-gray-800 flex items-center justify-center z-10 relative border-4 border-gray-950",children:e.icon})}),(0,a.jsx)("div",{className:"md:w-1/2"})]},t)})})]})]})})})}},3980:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});let a=(0,i(9946).A)("Microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]])},5850:(e,t,i)=>{"use strict";i.d(t,{A:()=>v});var a=i(5155),n=i(2115),r=i(869),s=i(2885),o=i(7494),l=i(845),c=i(1508);class d extends n.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(t&&e.isPresent&&!this.props.isPresent){let e=t.offsetParent,i=e instanceof HTMLElement&&e.offsetWidth||0,a=this.props.sizeRef.current;a.height=t.offsetHeight||0,a.width=t.offsetWidth||0,a.top=t.offsetTop,a.left=t.offsetLeft,a.right=i-a.width-a.left}return null}componentDidUpdate(){}render(){return this.props.children}}function h(e){let{children:t,isPresent:i,anchorX:r}=e,s=(0,n.useId)(),o=(0,n.useRef)(null),l=(0,n.useRef)({width:0,height:0,top:0,left:0,right:0}),{nonce:h}=(0,n.useContext)(c.Q);return(0,n.useInsertionEffect)(()=>{let{width:e,height:t,top:a,left:n,right:c}=l.current;if(i||!o.current||!e||!t)return;o.current.dataset.motionPopId=s;let d=document.createElement("style");return h&&(d.nonce=h),document.head.appendChild(d),d.sheet&&d.sheet.insertRule('\n [data-motion-pop-id="'.concat(s,'"] {\n position: absolute !important;\n width: ').concat(e,"px !important;\n height: ").concat(t,"px !important;\n ").concat("left"===r?"left: ".concat(n):"right: ".concat(c),"px !important;\n top: ").concat(a,"px !important;\n }\n ")),()=>{document.head.contains(d)&&document.head.removeChild(d)}},[i]),(0,a.jsx)(d,{isPresent:i,childRef:o,sizeRef:l,children:n.cloneElement(t,{ref:o})})}let p=e=>{let{children:t,initial:i,isPresent:r,onExitComplete:o,custom:c,presenceAffectsLayout:d,mode:p,anchorX:m}=e,f=(0,s.M)(u),y=(0,n.useId)(),x=!0,g=(0,n.useMemo)(()=>(x=!1,{id:y,initial:i,isPresent:r,custom:c,onExitComplete:e=>{for(let t of(f.set(e,!0),f.values()))if(!t)return;o&&o()},register:e=>(f.set(e,!1),()=>f.delete(e))}),[r,f,o]);return d&&x&&(g={...g}),(0,n.useMemo)(()=>{f.forEach((e,t)=>f.set(t,!1))},[r]),n.useEffect(()=>{r||f.size||!o||o()},[r]),"popLayout"===p&&(t=(0,a.jsx)(h,{isPresent:r,anchorX:m,children:t})),(0,a.jsx)(l.t.Provider,{value:g,children:t})};function u(){return new Map}var m=i(2082);let f=e=>e.key||"";function y(e){let t=[];return n.Children.forEach(e,e=>{(0,n.isValidElement)(e)&&t.push(e)}),t}let x=e=>{let{children:t,custom:i,initial:l=!0,onExitComplete:c,presenceAffectsLayout:d=!0,mode:h="sync",propagate:u=!1,anchorX:x="left"}=e,[g,v]=(0,m.xQ)(u),b=(0,n.useMemo)(()=>y(t),[t]),k=u&&!g?[]:b.map(f),w=(0,n.useRef)(!0),j=(0,n.useRef)(b),M=(0,s.M)(()=>new Map),[N,C]=(0,n.useState)(b),[E,A]=(0,n.useState)(b);(0,o.E)(()=>{w.current=!1,j.current=b;for(let e=0;e<E.length;e++){let t=f(E[e]);k.includes(t)?M.delete(t):!0!==M.get(t)&&M.set(t,!1)}},[E,k.length,k.join("-")]);let z=[];if(b!==N){let e=[...b];for(let t=0;t<E.length;t++){let i=E[t],a=f(i);k.includes(a)||(e.splice(t,0,i),z.push(i))}return"wait"===h&&z.length&&(e=z),A(y(e)),C(b),null}let{forceRender:P}=(0,n.useContext)(r.L);return(0,a.jsx)(a.Fragment,{children:E.map(e=>{let t=f(e),n=(!u||!!g)&&(b===E||k.includes(t));return(0,a.jsx)(p,{isPresent:n,initial:(!w.current||!!l)&&void 0,custom:i,presenceAffectsLayout:d,mode:h,onExitComplete:n?void 0:()=>{if(!M.has(t))return;M.set(t,!0);let e=!0;M.forEach(t=>{t||(e=!1)}),e&&(null==P||P(),A(j.current),u&&(null==v||v()),c&&c())},anchorX:x,children:e},t)})})};var g=i(5561);function v(e){let{term:t,definition:i,children:r}=e,[s,o]=(0,n.useState)(!1),l=(0,n.useRef)(null);return(0,a.jsxs)("span",{className:"relative inline-block",children:[(0,a.jsx)("span",{ref:l,className:"border-b border-dashed border-purple-400 text-purple-400 cursor-help",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),onFocus:()=>o(!0),onBlur:()=>o(!1),tabIndex:0,children:r||t}),(0,a.jsx)(x,{children:s&&(0,a.jsxs)(g.P.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:10},transition:{duration:.2},className:"absolute z-50 bottom-full left-1/2 transform -translate-x-1/2 mb-2 w-64 p-3 bg-gray-800 rounded-lg shadow-lg text-sm text-gray-200 border border-gray-700",children:[(0,a.jsx)("div",{className:"font-semibold text-purple-400 mb-1",children:t}),(0,a.jsx)("div",{children:i}),(0,a.jsx)("div",{className:"absolute bottom-0 left-1/2 transform -translate-x-1/2 translate-y-1/2 rotate-45 w-2 h-2 bg-gray-800 border-r border-b border-gray-700"})]})})]})}}},e=>{var t=t=>e(e.s=t);e.O(0,[436,441,684,358],()=>t(1249)),_N_E=e.O()}]);
|
static/main/_next/static/chunks/app/layout-1282207399fa10f1.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{1740:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,9324,23)),Promise.resolve().then(a.bind(a,3658)),Promise.resolve().then(a.bind(a,9304)),Promise.resolve().then(a.t.bind(a,6874,23)),Promise.resolve().then(a.t.bind(a,9840,23))},3658:(e,t,a)=>{"use strict";a.d(t,{default:()=>A});var s=a(5155),r=a(2115),n=a(6874),o=a.n(n),i=a(5695),d=a(4416),l=a(4783),c=a(5561),m=a(2098),p=a(3509),f=a(1362),u=a(9708),h=a(2085),x=a(2596),g=a(9688);function v(){for(var e=arguments.length,t=Array(e),a=0;a<e;a++)t[a]=arguments[a];return(0,g.QP)((0,x.$)(t))}let b=(0,h.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),y=r.forwardRef((e,t)=>{let{className:a,variant:r,size:n,asChild:o=!1,...i}=e,d=o?u.DX:"button";return(0,s.jsx)(d,{className:v(b({variant:r,size:n,className:a})),ref:t,...i})});y.displayName="Button";var N=a(4024),j=a(3052),w=a(5196),k=a(9428);let _=N.bL,z=N.l9;N.YJ,N.ZL,N.Pb,N.z6,r.forwardRef((e,t)=>{let{className:a,inset:r,children:n,...o}=e;return(0,s.jsxs)(N.ZP,{ref:t,className:v("flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",r&&"pl-8",a),...o,children:[n,(0,s.jsx)(j.A,{className:"ml-auto"})]})}).displayName=N.ZP.displayName,r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(N.G5,{ref:t,className:v("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...r})}).displayName=N.G5.displayName;let P=r.forwardRef((e,t)=>{let{className:a,sideOffset:r=4,...n}=e;return(0,s.jsx)(N.ZL,{children:(0,s.jsx)(N.UC,{ref:t,sideOffset:r,className:v("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...n})})});P.displayName=N.UC.displayName;let C=r.forwardRef((e,t)=>{let{className:a,inset:r,...n}=e;return(0,s.jsx)(N.q7,{ref:t,className:v("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",r&&"pl-8",a),...n})});function R(){let{setTheme:e}=(0,f.D)();return(0,s.jsxs)(_,{children:[(0,s.jsx)(z,{asChild:!0,children:(0,s.jsxs)(y,{variant:"outline",size:"icon",className:"bg-transparent border-gray-700",children:[(0,s.jsx)(m.A,{className:"h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"}),(0,s.jsx)(p.A,{className:"absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"}),(0,s.jsx)("span",{className:"sr-only",children:"Toggle theme"})]})}),(0,s.jsxs)(P,{align:"end",className:"bg-gray-900 border-gray-800",children:[(0,s.jsx)(C,{onClick:()=>e("light"),className:"hover:bg-gray-800",children:"Light"}),(0,s.jsx)(C,{onClick:()=>e("dark"),className:"hover:bg-gray-800",children:"Dark"}),(0,s.jsx)(C,{onClick:()=>e("system"),className:"hover:bg-gray-800",children:"System"})]})]})}function A(){let[e,t]=(0,r.useState)(!1),[a,n]=(0,r.useState)(!1),m=(0,i.usePathname)();(0,r.useEffect)(()=>{let e=()=>{window.scrollY>10?n(!0):n(!1)};return window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}},[]);let p=[{name:"Home",path:"/"},{name:"Real-World",path:"/real-world"},{name:"Predict",path:"/predict"},{name:"Diagnosis Steps",path:"/diagnosis-steps"},{name:"CNN Explained",path:"/cnn-explained"}];return(0,s.jsxs)("nav",{className:"fixed top-0 w-full z-50 transition-all duration-300 ".concat(a?"bg-gray-950/90 backdrop-blur-md shadow-md":"bg-transparent"),children:[(0,s.jsx)("div",{className:"container mx-auto px-4",children:(0,s.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,s.jsx)(o(),{href:"/",className:"text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500",children:"AI-OralCancer"}),(0,s.jsxs)("div",{className:"hidden md:flex items-center space-x-6",children:[p.map(e=>(0,s.jsx)(o(),{href:e.path,className:"transition-colors hover:text-purple-400 ".concat(m===e.path?"text-purple-500 font-medium":"text-gray-300"),children:e.name},e.path)),(0,s.jsx)(R,{})]}),(0,s.jsxs)("div",{className:"flex md:hidden items-center space-x-4",children:[(0,s.jsx)(R,{}),(0,s.jsx)("button",{onClick:()=>{t(!e)},className:"text-gray-300 hover:text-white focus:outline-none",children:e?(0,s.jsx)(d.A,{size:24}):(0,s.jsx)(l.A,{size:24})})]})]})}),e&&(0,s.jsx)(c.P.div,{initial:{opacity:0,y:-20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2},className:"md:hidden bg-gray-900 shadow-lg",children:(0,s.jsx)("div",{className:"container mx-auto px-4 py-4",children:(0,s.jsx)("div",{className:"flex flex-col space-y-4",children:p.map(e=>(0,s.jsx)(o(),{href:e.path,className:"block py-2 px-4 rounded-md transition-colors ".concat(m===e.path?"bg-gray-800 text-purple-500 font-medium":"text-gray-300 hover:bg-gray-800 hover:text-purple-400"),onClick:()=>t(!1),children:e.name},e.path))})})})]})}C.displayName=N.q7.displayName,r.forwardRef((e,t)=>{let{className:a,children:r,checked:n,...o}=e;return(0,s.jsxs)(N.H_,{ref:t,className:v("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),checked:n,...o,children:[(0,s.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(N.VF,{children:(0,s.jsx)(w.A,{className:"h-4 w-4"})})}),r]})}).displayName=N.H_.displayName,r.forwardRef((e,t)=>{let{className:a,children:r,...n}=e;return(0,s.jsxs)(N.hN,{ref:t,className:v("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...n,children:[(0,s.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,s.jsx)(N.VF,{children:(0,s.jsx)(k.A,{className:"h-2 w-2 fill-current"})})}),r]})}).displayName=N.hN.displayName,r.forwardRef((e,t)=>{let{className:a,inset:r,...n}=e;return(0,s.jsx)(N.JU,{ref:t,className:v("px-2 py-1.5 text-sm font-semibold",r&&"pl-8",a),...n})}).displayName=N.JU.displayName,r.forwardRef((e,t)=>{let{className:a,...r}=e;return(0,s.jsx)(N.wv,{ref:t,className:v("-mx-1 my-1 h-px bg-muted",a),...r})}).displayName=N.wv.displayName},9304:(e,t,a)=>{"use strict";a.d(t,{ThemeProvider:()=>n});var s=a(5155);a(2115);var r=a(1362);function n(e){let{children:t,...a}=e;return(0,s.jsx)(r.N,{...a,children:t})}},9324:()=>{}},e=>{var t=t=>e(e.s=t);e.O(0,[385,436,874,953,441,684,358],()=>t(1740)),_N_E=e.O()}]);
|
static/main/_next/static/chunks/app/page-c468fa91873bdb5d.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{3103:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>u});var a=i(5155),n=i(5561),s=i(8832),r=i(3980);let l=(0,i(9946).A)("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);var o=i(6874),c=i.n(o),d=i(2115);function h(){let e=(0,d.useRef)(null);return(0,d.useEffect)(()=>{let t=e.current;if(!t)return;let i=t.getContext("2d");if(!i)return;let a=()=>{t.width=window.innerWidth,t.height=window.innerHeight};a(),window.addEventListener("resize",a);let n=[],s=Math.floor(window.innerWidth*window.innerHeight/15e3);for(let e=0;e<s;e++)n.push({x:Math.random()*t.width,y:Math.random()*t.height,radius:2*Math.random()+1,vx:(Math.random()-.5)*.3,vy:(Math.random()-.5)*.3});let r=()=>{i.clearRect(0,0,t.width,t.height);for(let e=0;e<n.length;e++){let a=n[e];a.x+=a.vx,a.y+=a.vy,(a.x<0||a.x>t.width)&&(a.vx*=-1),(a.y<0||a.y>t.height)&&(a.vy*=-1),i.beginPath(),i.arc(a.x,a.y,a.radius,0,2*Math.PI),i.fillStyle="rgba(147, 51, 234, 0.5)",i.fill();for(let t=e+1;t<n.length;t++){let e=n[t],s=e.x-a.x,r=e.y-a.y,l=Math.sqrt(s*s+r*r);l<150&&(i.beginPath(),i.moveTo(a.x,a.y),i.lineTo(e.x,e.y),i.strokeStyle="rgba(147, 51, 234, ".concat(.2*(1-l/150),")"),i.lineWidth=.5,i.stroke())}}requestAnimationFrame(r)};return r(),()=>{window.removeEventListener("resize",a)}},[]),(0,a.jsx)("canvas",{ref:e,className:"absolute inset-0 w-full h-full bg-gradient-to-b from-gray-950 to-gray-900"})}var m=i(5850);function u(){let e=(0,d.useRef)(null),t={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.6}}},i={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.2}}};return(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsxs)("section",{className:"relative h-screen flex items-center justify-center overflow-hidden",children:[(0,a.jsx)(h,{}),(0,a.jsx)("div",{className:"container mx-auto px-4 z-10 text-center",children:(0,a.jsxs)(n.P.div,{initial:"hidden",animate:"visible",variants:i,className:"space-y-6",children:[(0,a.jsx)(n.P.h1,{variants:t,className:"text-4xl md:text-6xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500",children:"AI in Oral Cancer Diagnosis"}),(0,a.jsx)(n.P.p,{variants:t,className:"text-xl md:text-2xl max-w-2xl mx-auto text-gray-300",children:"Early detection through intelligent imaging"}),(0,a.jsxs)(n.P.div,{variants:t,className:"flex flex-col sm:flex-row gap-4 justify-center mt-8",children:[(0,a.jsxs)("button",{onClick:()=>{var t;null===(t=e.current)||void 0===t||t.scrollIntoView({behavior:"smooth"})},className:"px-6 py-3 bg-purple-600 hover:bg-purple-700 rounded-lg font-medium flex items-center justify-center gap-2 transition-colors",children:["Learn More ",(0,a.jsx)(s.A,{size:18})]}),(0,a.jsx)(c(),{href:"/predict",className:"px-6 py-3 bg-cyan-600 hover:bg-cyan-700 rounded-lg font-medium transition-colors",children:"Try Prediction"})]})]})}),(0,a.jsx)("div",{className:"absolute bottom-8 left-1/2 transform -translate-x-1/2 animate-bounce",children:(0,a.jsx)(s.A,{size:24})})]}),(0,a.jsx)("section",{ref:e,className:"py-20 bg-gray-900",children:(0,a.jsx)("div",{className:"container mx-auto px-4",children:(0,a.jsxs)(n.P.div,{initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-100px"},variants:i,className:"max-w-3xl mx-auto",children:[(0,a.jsx)(n.P.h2,{variants:t,className:"text-3xl md:text-4xl font-bold mb-8 text-center",children:"About Oral Cancer"}),(0,a.jsxs)(n.P.div,{variants:t,className:"space-y-6 text-gray-300",children:[(0,a.jsxs)("p",{children:["Oral cancer is a significant global health concern, characterized by the uncontrolled growth of cells in the oral cavity. It typically manifests as a persistent"," ",(0,a.jsx)(m.A,{term:"lesion",definition:"An abnormal area of tissue that may indicate disease or injury.",children:"lesion"})," ","in the mouth that doesn't heal within two weeks. The most common form is squamous cell carcinoma, which accounts for over 90% of all oral malignancies."]}),(0,a.jsxs)("p",{children:["Risk factors include tobacco use (smoking and smokeless), excessive alcohol consumption, human papillomavirus (HPV) infection, and prolonged sun exposure (for lip cancers). Early detection is crucial, often requiring a"," ",(0,a.jsx)(m.A,{term:"biopsy",definition:"A medical procedure that involves taking a small sample of tissue to examine under a microscope.",children:"biopsy"})," ","for definitive diagnosis."]}),(0,a.jsx)("p",{children:"In countries like India, oral cancer is particularly prevalent, accounting for approximately 30% of all cancers. This high incidence is attributed to widespread tobacco and betel quid chewing habits. The five-year survival rate drops dramatically from 83% for localized cases to just 32% for cases where cancer has spread, highlighting the importance of early detection."}),(0,a.jsxs)("p",{children:["Early stages of oral cancer may present as white or red patches (leukoplakia or erythroplakia) that can progress to"," ",(0,a.jsx)(m.A,{term:"dysplasia",definition:"Abnormal development or growth of cells, tissues, or organs that may indicate a pre-cancerous condition.",children:"dysplasia"})," ","and eventually invasive carcinoma if left untreated. Traditional diagnostic methods rely heavily on clinical examination followed by histopathological analysis, which can be time-consuming and subjective."]})]})]})})}),(0,a.jsx)("section",{className:"py-20 bg-gray-950",children:(0,a.jsx)("div",{className:"container mx-auto px-4",children:(0,a.jsxs)(n.P.div,{initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-100px"},variants:i,className:"max-w-4xl mx-auto",children:[(0,a.jsx)(n.P.h2,{variants:t,className:"text-3xl md:text-4xl font-bold mb-12 text-center",children:"AI in Diagnosis"}),(0,a.jsxs)(n.P.div,{variants:t,className:"space-y-8 text-gray-300",children:[(0,a.jsxs)("p",{children:[(0,a.jsx)(m.A,{term:"convolutional neural network",definition:"A deep learning algorithm specifically designed to process and analyze visual data through layers that detect increasingly complex features.",children:"Convolutional neural networks"})," ","(CNNs) have revolutionized medical image analysis by automatically extracting relevant features from oral cavity images. These networks consist of multiple layers that progressively learn to identify patterns associated with cancerous and pre-cancerous conditions."]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8 my-12",children:[(0,a.jsxs)("div",{className:"bg-gray-800 p-6 rounded-lg flex flex-col items-center text-center",children:[(0,a.jsx)(r.A,{className:"h-12 w-12 text-purple-500 mb-4"}),(0,a.jsx)("h3",{className:"text-xl font-semibold mb-2",children:"Input"}),(0,a.jsx)("p",{className:"text-gray-400",children:"High-resolution images of oral tissue are fed into the model"})]}),(0,a.jsxs)("div",{className:"bg-gray-800 p-6 rounded-lg flex flex-col items-center text-center",children:[(0,a.jsx)(l,{className:"h-12 w-12 text-cyan-500 mb-4"}),(0,a.jsx)("h3",{className:"text-xl font-semibold mb-2",children:"Feature Extraction"}),(0,a.jsxs)("p",{className:"text-gray-400",children:["The CNN identifies key visual patterns using"," ",(0,a.jsx)(m.A,{term:"activation function",definition:"A mathematical function that determines the output of a neural network node, introducing non-linearity to the model.",children:"activation functions"})]})]}),(0,a.jsxs)("div",{className:"bg-gray-800 p-6 rounded-lg flex flex-col items-center text-center",children:[(0,a.jsx)("div",{className:"h-12 w-12 text-green-500 mb-4 flex items-center justify-center",children:(0,a.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor",className:"w-10 h-10",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.5 14.25v2.25m3-4.5v4.5m3-6.75v6.75m3-9v9M6 20.25h12A2.25 2.25 0 0020.25 18V6A2.25 2.25 0 0018 3.75H6A2.25 2.25 0 003.75 6v12A2.25 2.25 0 006 20.25z"})})}),(0,a.jsx)("h3",{className:"text-xl font-semibold mb-2",children:"Classification"}),(0,a.jsxs)("p",{className:"text-gray-400",children:["The"," ",(0,a.jsx)(m.A,{term:"classifier",definition:"The component of a machine learning model that makes the final decision about which category an input belongs to.",children:"classifier"})," ","determines the probability of malignancy"]})]})]}),(0,a.jsx)("p",{children:"AI-powered diagnosis offers several advantages over traditional methods:"}),(0,a.jsxs)("ul",{className:"list-disc pl-6 space-y-2",children:[(0,a.jsx)("li",{children:"Reduced subjectivity and inter-observer variability"}),(0,a.jsx)("li",{children:"Faster results, enabling quicker treatment decisions"}),(0,a.jsx)("li",{children:"Potential for earlier detection of subtle changes invisible to the human eye"}),(0,a.jsx)("li",{children:"Accessibility in regions with limited access to pathologists"}),(0,a.jsx)("li",{children:"Quantitative assessment of disease progression"})]}),(0,a.jsx)("p",{children:"By combining the expertise of healthcare professionals with the analytical power of AI, we can significantly improve early detection rates and patient outcomes in oral cancer cases."})]})]})})})]})}},3980:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});let a=(0,i(9946).A)("Microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]])},5850:(e,t,i)=>{"use strict";i.d(t,{A:()=>v});var a=i(5155),n=i(2115),s=i(869),r=i(2885),l=i(7494),o=i(845),c=i(1508);class d extends n.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(t&&e.isPresent&&!this.props.isPresent){let e=t.offsetParent,i=e instanceof HTMLElement&&e.offsetWidth||0,a=this.props.sizeRef.current;a.height=t.offsetHeight||0,a.width=t.offsetWidth||0,a.top=t.offsetTop,a.left=t.offsetLeft,a.right=i-a.width-a.left}return null}componentDidUpdate(){}render(){return this.props.children}}function h(e){let{children:t,isPresent:i,anchorX:s}=e,r=(0,n.useId)(),l=(0,n.useRef)(null),o=(0,n.useRef)({width:0,height:0,top:0,left:0,right:0}),{nonce:h}=(0,n.useContext)(c.Q);return(0,n.useInsertionEffect)(()=>{let{width:e,height:t,top:a,left:n,right:c}=o.current;if(i||!l.current||!e||!t)return;l.current.dataset.motionPopId=r;let d=document.createElement("style");return h&&(d.nonce=h),document.head.appendChild(d),d.sheet&&d.sheet.insertRule('\n [data-motion-pop-id="'.concat(r,'"] {\n position: absolute !important;\n width: ').concat(e,"px !important;\n height: ").concat(t,"px !important;\n ").concat("left"===s?"left: ".concat(n):"right: ".concat(c),"px !important;\n top: ").concat(a,"px !important;\n }\n ")),()=>{document.head.contains(d)&&document.head.removeChild(d)}},[i]),(0,a.jsx)(d,{isPresent:i,childRef:l,sizeRef:o,children:n.cloneElement(t,{ref:l})})}let m=e=>{let{children:t,initial:i,isPresent:s,onExitComplete:l,custom:c,presenceAffectsLayout:d,mode:m,anchorX:p}=e,x=(0,r.M)(u),f=(0,n.useId)(),y=!0,g=(0,n.useMemo)(()=>(y=!1,{id:f,initial:i,isPresent:s,custom:c,onExitComplete:e=>{for(let t of(x.set(e,!0),x.values()))if(!t)return;l&&l()},register:e=>(x.set(e,!1),()=>x.delete(e))}),[s,x,l]);return d&&y&&(g={...g}),(0,n.useMemo)(()=>{x.forEach((e,t)=>x.set(t,!1))},[s]),n.useEffect(()=>{s||x.size||!l||l()},[s]),"popLayout"===m&&(t=(0,a.jsx)(h,{isPresent:s,anchorX:p,children:t})),(0,a.jsx)(o.t.Provider,{value:g,children:t})};function u(){return new Map}var p=i(2082);let x=e=>e.key||"";function f(e){let t=[];return n.Children.forEach(e,e=>{(0,n.isValidElement)(e)&&t.push(e)}),t}let y=e=>{let{children:t,custom:i,initial:o=!0,onExitComplete:c,presenceAffectsLayout:d=!0,mode:h="sync",propagate:u=!1,anchorX:y="left"}=e,[g,v]=(0,p.xQ)(u),b=(0,n.useMemo)(()=>f(t),[t]),j=u&&!g?[]:b.map(x),w=(0,n.useRef)(!0),N=(0,n.useRef)(b),k=(0,r.M)(()=>new Map),[M,A]=(0,n.useState)(b),[P,E]=(0,n.useState)(b);(0,l.E)(()=>{w.current=!1,N.current=b;for(let e=0;e<P.length;e++){let t=x(P[e]);j.includes(t)?k.delete(t):!0!==k.get(t)&&k.set(t,!1)}},[P,j.length,j.join("-")]);let C=[];if(b!==M){let e=[...b];for(let t=0;t<P.length;t++){let i=P[t],a=x(i);j.includes(a)||(e.splice(t,0,i),C.push(i))}return"wait"===h&&C.length&&(e=C),E(f(e)),A(b),null}let{forceRender:I}=(0,n.useContext)(s.L);return(0,a.jsx)(a.Fragment,{children:P.map(e=>{let t=x(e),n=(!u||!!g)&&(b===P||j.includes(t));return(0,a.jsx)(m,{isPresent:n,initial:(!w.current||!!o)&&void 0,custom:i,presenceAffectsLayout:d,mode:h,onExitComplete:n?void 0:()=>{if(!k.has(t))return;k.set(t,!0);let e=!0;k.forEach(t=>{t||(e=!1)}),e&&(null==I||I(),E(N.current),u&&(null==v||v()),c&&c())},anchorX:y,children:e},t)})})};var g=i(5561);function v(e){let{term:t,definition:i,children:s}=e,[r,l]=(0,n.useState)(!1),o=(0,n.useRef)(null);return(0,a.jsxs)("span",{className:"relative inline-block",children:[(0,a.jsx)("span",{ref:o,className:"border-b border-dashed border-purple-400 text-purple-400 cursor-help",onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),onFocus:()=>l(!0),onBlur:()=>l(!1),tabIndex:0,children:s||t}),(0,a.jsx)(y,{children:r&&(0,a.jsxs)(g.P.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:10},transition:{duration:.2},className:"absolute z-50 bottom-full left-1/2 transform -translate-x-1/2 mb-2 w-64 p-3 bg-gray-800 rounded-lg shadow-lg text-sm text-gray-200 border border-gray-700",children:[(0,a.jsx)("div",{className:"font-semibold text-purple-400 mb-1",children:t}),(0,a.jsx)("div",{children:i}),(0,a.jsx)("div",{className:"absolute bottom-0 left-1/2 transform -translate-x-1/2 translate-y-1/2 rotate-45 w-2 h-2 bg-gray-800 border-r border-b border-gray-700"})]})})]})}},8832:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});let a=(0,i(9946).A)("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]])},9970:(e,t,i)=>{Promise.resolve().then(i.bind(i,3103))}},e=>{var t=t=>e(e.s=t);e.O(0,[436,874,441,684,358],()=>t(9970)),_N_E=e.O()}]);
|
static/main/_next/static/chunks/app/predict/page-872f04091926ad1a.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[192],{1195:(e,a,s)=>{"use strict";s.r(a),s.d(a,{default:()=>c});var l=s(5155),t=s(2115),i=s(5561),r=s(9869),n=s(4416),d=s(1154),o=s(6766);function c(){let[e,a]=(0,t.useState)(null),[s,c]=(0,t.useState)(!1),[m,p]=(0,t.useState)(!1),[u,x]=(0,t.useState)(null),h=async()=>{if(e){p(!0),x(null);try{let a=await (await fetch(e)).blob(),s=new FormData;s.append("image",a,"uploaded_image.jpg");let l=await fetch("/predict",{method:"POST",body:s});if(!l.ok)throw Error("Prediction failed");let t=await l.json();x({diagnosis:t.predicted_class,confidence:100*t.confidence_scores[t.predicted_class]})}catch(e){console.error("Prediction error:",e),alert("Failed to get prediction. Is the backend running?")}finally{p(!1)}}},g={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.6}}};return(0,l.jsx)("div",{className:"py-20 bg-gray-950 min-h-screen",children:(0,l.jsx)("div",{className:"container mx-auto px-4",children:(0,l.jsxs)(i.P.div,{initial:"hidden",animate:"visible",variants:{hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.2}}},className:"max-w-3xl mx-auto",children:[(0,l.jsx)(i.P.h1,{variants:g,className:"text-3xl md:text-5xl font-bold mb-8 text-center",children:"AI Prediction Tool"}),(0,l.jsx)(i.P.p,{variants:g,className:"text-gray-300 text-center mb-12 max-w-2xl mx-auto",children:"Upload an image of oral tissue to receive an AI-powered diagnosis. This tool demonstrates how our convolutional neural network analyzes medical images to detect potential signs of oral cancer."}),(0,l.jsx)(i.P.div,{variants:g,className:"bg-gray-900 rounded-lg p-6 shadow-lg border border-gray-800",children:e?(0,l.jsxs)("div",{className:"space-y-6",children:[(0,l.jsxs)("div",{className:"relative",children:[(0,l.jsx)("div",{className:"aspect-w-16 aspect-h-9 rounded-lg overflow-hidden",children:(0,l.jsx)(o.default,{src:e||"/placeholder.svg",alt:"Uploaded image",fill:!0,className:"object-cover"})}),(0,l.jsx)("button",{onClick:()=>{a(null),x(null)},className:"absolute top-2 right-2 bg-gray-900/80 p-1 rounded-full",children:(0,l.jsx)(n.A,{className:"h-5 w-5"})})]}),!u&&!m&&(0,l.jsx)("button",{onClick:h,className:"w-full py-3 bg-purple-600 hover:bg-purple-700 rounded-lg font-medium transition-colors",children:"Analyze Image"}),m&&(0,l.jsxs)("div",{className:"text-center py-4",children:[(0,l.jsx)(d.A,{className:"h-8 w-8 mx-auto mb-2 animate-spin text-purple-500"}),(0,l.jsx)("p",{className:"text-gray-300",children:"Analyzing image..."})]}),u&&(0,l.jsxs)(i.P.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},className:"bg-gray-800 rounded-lg p-6",children:[(0,l.jsx)("h3",{className:"text-xl font-semibold mb-4",children:"Diagnosis Result"}),(0,l.jsxs)("div",{className:"space-y-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-gray-400 text-sm",children:"Diagnosis"}),(0,l.jsx)("p",{className:"text-xl font-medium text-red-500",children:u.diagnosis})]}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-gray-400 text-sm",children:"Confidence"}),(0,l.jsxs)("div",{className:"flex items-center",children:[(0,l.jsx)("div",{className:"w-full bg-gray-700 rounded-full h-2.5 mr-2",children:(0,l.jsx)("div",{className:"bg-purple-600 h-2.5 rounded-full",style:{width:"".concat(u.confidence,"%")}})}),(0,l.jsxs)("span",{className:"text-sm font-medium",children:[u.confidence,"%"]})]})]})]})]})]}):(0,l.jsxs)("div",{className:"border-2 border-dashed rounded-lg p-8 text-center ".concat(s?"border-purple-500 bg-purple-500/10":"border-gray-700"),onDragOver:e=>{e.preventDefault(),c(!0)},onDragLeave:()=>{c(!1)},onDrop:e=>{var s;e.preventDefault(),c(!1);let l=null===(s=e.dataTransfer.files)||void 0===s?void 0:s[0];if(l&&l.type.startsWith("image/")){let e=new FileReader;e.onload=()=>{a(e.result),x(null)},e.readAsDataURL(l)}},children:[(0,l.jsx)(r.A,{className:"h-12 w-12 mx-auto mb-4 text-gray-500"}),(0,l.jsx)("p",{className:"text-gray-300 mb-4",children:"Drag and drop an image here, or click to select"}),(0,l.jsx)("input",{type:"file",accept:"image/*",onChange:e=>{var s;let l=null===(s=e.target.files)||void 0===s?void 0:s[0];if(l){let e=new FileReader;e.onload=()=>{a(e.result),x(null)},e.readAsDataURL(l)}},className:"hidden",id:"image-upload"}),(0,l.jsx)("label",{htmlFor:"image-upload",className:"px-4 py-2 bg-purple-600 hover:bg-purple-700 rounded-lg font-medium cursor-pointer inline-block",children:"Select Image"})]})})]})})})}},4611:(e,a,s)=>{Promise.resolve().then(s.bind(s,1195))}},e=>{var a=a=>e(e.s=a);e.O(0,[436,402,441,684,358],()=>a(4611)),_N_E=e.O()}]);
|
static/main/_next/static/chunks/app/real-world/page-5fd4bb9e1212308f.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[426],{3980:(e,t,i)=>{"use strict";i.d(t,{A:()=>a});let a=(0,i(9946).A)("Microscope",[["path",{d:"M6 18h8",key:"1borvv"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M14 22a7 7 0 1 0 0-14h-1",key:"1jwaiy"}],["path",{d:"M9 14h2",key:"197e7h"}],["path",{d:"M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z",key:"1bmzmy"}],["path",{d:"M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3",key:"1drr47"}]])},5850:(e,t,i)=>{"use strict";i.d(t,{A:()=>v});var a=i(5155),n=i(2115),r=i(869),s=i(2885),o=i(7494),l=i(845),d=i(1508);class c extends n.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(t&&e.isPresent&&!this.props.isPresent){let e=t.offsetParent,i=e instanceof HTMLElement&&e.offsetWidth||0,a=this.props.sizeRef.current;a.height=t.offsetHeight||0,a.width=t.offsetWidth||0,a.top=t.offsetTop,a.left=t.offsetLeft,a.right=i-a.width-a.left}return null}componentDidUpdate(){}render(){return this.props.children}}function h(e){let{children:t,isPresent:i,anchorX:r}=e,s=(0,n.useId)(),o=(0,n.useRef)(null),l=(0,n.useRef)({width:0,height:0,top:0,left:0,right:0}),{nonce:h}=(0,n.useContext)(d.Q);return(0,n.useInsertionEffect)(()=>{let{width:e,height:t,top:a,left:n,right:d}=l.current;if(i||!o.current||!e||!t)return;o.current.dataset.motionPopId=s;let c=document.createElement("style");return h&&(c.nonce=h),document.head.appendChild(c),c.sheet&&c.sheet.insertRule('\n [data-motion-pop-id="'.concat(s,'"] {\n position: absolute !important;\n width: ').concat(e,"px !important;\n height: ").concat(t,"px !important;\n ").concat("left"===r?"left: ".concat(n):"right: ".concat(d),"px !important;\n top: ").concat(a,"px !important;\n }\n ")),()=>{document.head.contains(c)&&document.head.removeChild(c)}},[i]),(0,a.jsx)(c,{isPresent:i,childRef:o,sizeRef:l,children:n.cloneElement(t,{ref:o})})}let p=e=>{let{children:t,initial:i,isPresent:r,onExitComplete:o,custom:d,presenceAffectsLayout:c,mode:p,anchorX:m}=e,g=(0,s.M)(u),f=(0,n.useId)(),y=!0,x=(0,n.useMemo)(()=>(y=!1,{id:f,initial:i,isPresent:r,custom:d,onExitComplete:e=>{for(let t of(g.set(e,!0),g.values()))if(!t)return;o&&o()},register:e=>(g.set(e,!1),()=>g.delete(e))}),[r,g,o]);return c&&y&&(x={...x}),(0,n.useMemo)(()=>{g.forEach((e,t)=>g.set(t,!1))},[r]),n.useEffect(()=>{r||g.size||!o||o()},[r]),"popLayout"===p&&(t=(0,a.jsx)(h,{isPresent:r,anchorX:m,children:t})),(0,a.jsx)(l.t.Provider,{value:x,children:t})};function u(){return new Map}var m=i(2082);let g=e=>e.key||"";function f(e){let t=[];return n.Children.forEach(e,e=>{(0,n.isValidElement)(e)&&t.push(e)}),t}let y=e=>{let{children:t,custom:i,initial:l=!0,onExitComplete:d,presenceAffectsLayout:c=!0,mode:h="sync",propagate:u=!1,anchorX:y="left"}=e,[x,v]=(0,m.xQ)(u),b=(0,n.useMemo)(()=>f(t),[t]),M=u&&!x?[]:b.map(g),k=(0,n.useRef)(!0),w=(0,n.useRef)(b),I=(0,s.M)(()=>new Map),[j,A]=(0,n.useState)(b),[N,C]=(0,n.useState)(b);(0,o.E)(()=>{k.current=!1,w.current=b;for(let e=0;e<N.length;e++){let t=g(N[e]);M.includes(t)?I.delete(t):!0!==I.get(t)&&I.set(t,!1)}},[N,M.length,M.join("-")]);let E=[];if(b!==j){let e=[...b];for(let t=0;t<N.length;t++){let i=N[t],a=g(i);M.includes(a)||(e.splice(t,0,i),E.push(i))}return"wait"===h&&E.length&&(e=E),C(f(e)),A(b),null}let{forceRender:T}=(0,n.useContext)(r.L);return(0,a.jsx)(a.Fragment,{children:N.map(e=>{let t=g(e),n=(!u||!!x)&&(b===N||M.includes(t));return(0,a.jsx)(p,{isPresent:n,initial:(!k.current||!!l)&&void 0,custom:i,presenceAffectsLayout:c,mode:h,onExitComplete:n?void 0:()=>{if(!I.has(t))return;I.set(t,!0);let e=!0;I.forEach(t=>{t||(e=!1)}),e&&(null==T||T(),C(w.current),u&&(null==v||v()),d&&d())},anchorX:y,children:e},t)})})};var x=i(5561);function v(e){let{term:t,definition:i,children:r}=e,[s,o]=(0,n.useState)(!1),l=(0,n.useRef)(null);return(0,a.jsxs)("span",{className:"relative inline-block",children:[(0,a.jsx)("span",{ref:l,className:"border-b border-dashed border-purple-400 text-purple-400 cursor-help",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),onFocus:()=>o(!0),onBlur:()=>o(!1),tabIndex:0,children:r||t}),(0,a.jsx)(y,{children:s&&(0,a.jsxs)(x.P.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:10},transition:{duration:.2},className:"absolute z-50 bottom-full left-1/2 transform -translate-x-1/2 mb-2 w-64 p-3 bg-gray-800 rounded-lg shadow-lg text-sm text-gray-200 border border-gray-700",children:[(0,a.jsx)("div",{className:"font-semibold text-purple-400 mb-1",children:t}),(0,a.jsx)("div",{children:i}),(0,a.jsx)("div",{className:"absolute bottom-0 left-1/2 transform -translate-x-1/2 translate-y-1/2 rotate-45 w-2 h-2 bg-gray-800 border-r border-b border-gray-700"})]})})]})}},6346:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>h});var a=i(5155),n=i(5561),r=i(3980),s=i(9946);let o=(0,s.A)("FlaskRound",[["path",{d:"M10 2v7.31",key:"5d1hyh"}],["path",{d:"M14 9.3V1.99",key:"14k4l0"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M14 9.3a6.5 6.5 0 1 1-4 0",key:"1r8fvy"}],["path",{d:"M5.52 16h12.96",key:"46hh1i"}]]),l=(0,s.A)("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]),d=(0,s.A)("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);var c=i(5850);function h(){let e={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.6}}},t=[{title:"Jamia Millia Islamia (JMI), India",description:"JMI researchers developed a pioneering AI-powered system and the world’s first comprehensive oral cancer histology image database (ORCHID) to enhance the diagnosis and prediction of oral malignant disorders. Their patented method uses AI and digital pathology to analyze over 300,000 high-resolution tissue images, accurately identifying conditions such as oral submucous fibrosis (OSMF) and oral squamous cell carcinoma (OSCC), and predicting the progression of pre-malignant lesions to cancer.",icon:(0,a.jsx)(r.A,{className:"h-12 w-12 text-purple-500"}),glossaryTerms:[{term:"histology",definition:"The study of the microscopic structure of tissues."},{term:"digital pathology",definition:"The use of digital imaging for pathology diagnosis and analysis."},{term:"oral submucous fibrosis",definition:"A chronic, precancerous condition of the oral cavity."},{term:"oral squamous cell carcinoma",definition:"A common type of oral cancer affecting squamous cells."}]},{title:"SPARSH & IISc: Portable AI Biopsy Tool",description:"SPARSH Hospital, in partnership with IISc and GE Healthcare Innovation Centre, has implemented AI-driven solutions across the oral cancer care continuum, including early screening and virtual surgical planning. Their collaborative approach leverages deep learning to analyze intraoral images and digital pathology slides.",icon:(0,a.jsx)(o,{className:"h-12 w-12 text-cyan-500"}),glossaryTerms:[{term:"intraoral",definition:"Inside the mouth."},{term:"digital pathology",definition:"The use of digital imaging for pathology diagnosis and analysis."},{term:"deep learning",definition:"A subset of machine learning using neural networks with many layers."}]},{title:"IIIT-Hyderabad and Biocon Foundation",description:"IIIT-Hyderabad and Biocon Foundation have focused on developing and validating deep learning models like DenseNet201 and Swin Transformer for classifying intraoral images as suspicious or non-suspicious for oral cancer. Using large, diverse datasets and explainability tools like GradCAM, their models highlight the importance of robust, explainable AI tools.",icon:(0,a.jsx)(l,{className:"h-12 w-12 text-green-500"}),glossaryTerms:[{term:"deep learning",definition:"A type of machine learning involving neural networks with many layers."},{term:"GradCAM",definition:"A visualization technique to highlight important regions in images for model decisions."},{term:"intraoral",definition:"Inside the mouth."}]},{title:"Dr. Chao’s Lab (Canada)",description:"Dr. Chao’s Lab in Canada is developing AI algorithms for oral cancer diagnosis, focusing on transformer-based models and explainable AI techniques for digital pathology and multi-modal data integration. Their work supports global efforts to standardize and improve AI-driven screening.",icon:(0,a.jsx)(d,{className:"h-12 w-12 text-amber-500"}),glossaryTerms:[{term:"transformer",definition:"A deep learning model architecture designed for handling sequential data."},{term:"explainable AI",definition:"Techniques that help humans understand and trust AI decisions."},{term:"multi-modal",definition:"Using multiple types of data, such as images and text, for analysis."},{term:"digital pathology",definition:"The use of digital imaging for pathology diagnosis and analysis."}]}];return(0,a.jsx)("div",{className:"py-20 bg-gray-950 min-h-screen",children:(0,a.jsx)("div",{className:"container mx-auto px-4",children:(0,a.jsxs)(n.P.div,{initial:"hidden",animate:"visible",variants:{hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.2}}},className:"max-w-4xl mx-auto",children:[(0,a.jsx)(n.P.h1,{variants:e,className:"text-3xl md:text-5xl font-bold mb-12 text-center",children:"Real-World Applications"}),(0,a.jsx)(n.P.div,{variants:e,className:"mb-8 text-gray-300 text-center max-w-2xl mx-auto",children:(0,a.jsx)("p",{children:"AI technologies for oral cancer diagnosis are being implemented in various healthcare settings around the world. Here are some notable real-world applications that demonstrate the practical impact of these innovations."})}),(0,a.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8 mt-12",children:t.map((e,t)=>(0,a.jsxs)(n.P.div,{initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-50px"},variants:{hidden:{opacity:0,y:50},visible:{opacity:1,y:0,transition:{duration:.5,delay:.1*t}}},className:"bg-gray-900 rounded-lg p-6 shadow-lg border border-gray-800 hover:border-purple-500 transition-all duration-300",children:[(0,a.jsxs)("div",{className:"flex items-start mb-4",children:[(0,a.jsx)("div",{className:"mr-4 mt-1",children:e.icon}),(0,a.jsx)("h3",{className:"text-xl font-semibold",children:e.title})]}),(0,a.jsx)("p",{className:"text-gray-300 mb-4",children:function(e,t){let i=[e];return t.forEach(e=>{let{term:t,definition:n}=e;for(let e=0;e<i.length;e++)if("string"==typeof i[e]){let r=i[e].split(RegExp("\\b(".concat(t,")\\b"),"gi"));if(r.length>1){let s=[];for(let e=0;e<r.length;e++)e%2==0?s.push(r[e]):s.push((0,a.jsx)(c.A,{term:t,definition:n,children:r[e]},"".concat(t,"-").concat(e)));i.splice(e,1,...s),e+=s.length-1}}}),i}(e.description,e.glossaryTerms)})]},t))})]})})})}i(2115)},7613:(e,t,i)=>{Promise.resolve().then(i.bind(i,6346))}},e=>{var t=t=>e(e.s=t);e.O(0,[436,441,684,358],()=>t(7613)),_N_E=e.O()}]);
|
static/main/_next/static/chunks/framework-286ccde78f2899f1.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
static/main/_next/static/chunks/main-a3bab0006c571eac.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
static/main/_next/static/chunks/main-app-dc518554d77a2eae.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[358],{3099:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,894,23)),Promise.resolve().then(n.t.bind(n,4970,23)),Promise.resolve().then(n.t.bind(n,6614,23)),Promise.resolve().then(n.t.bind(n,6975,23)),Promise.resolve().then(n.t.bind(n,7555,23)),Promise.resolve().then(n.t.bind(n,4911,23)),Promise.resolve().then(n.t.bind(n,9665,23)),Promise.resolve().then(n.t.bind(n,1295,23))}},e=>{var s=s=>e(e.s=s);e.O(0,[441,684],()=>(s(5415),s(3099))),_N_E=e.O()}]);
|
static/main/_next/static/chunks/pages/_app-92f2aae776f86b9c.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[472,636],{326:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return n(472)}])},472:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let u=n(4252),l=n(7876),a=u._(n(4232)),o=n(2746);async function r(e){let{Component:t,ctx:n}=e;return{pageProps:await (0,o.loadGetInitialProps)(t,n)}}class s extends a.default.Component{render(){let{Component:e,pageProps:t}=this.props;return(0,l.jsx)(e,{...t})}}s.origGetInitialProps=r,s.getInitialProps=r,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{var t=t=>e(e.s=t);e.O(0,[593,792],()=>(t(326),t(4294))),_N_E=e.O()}]);
|
static/main/_next/static/chunks/pages/_error-764831a58efd9a1a.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[341,731],{303:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AmpStateContext",{enumerable:!0,get:function(){return r}});let r=n(4252)._(n(4232)).default.createContext({})},2164:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error",function(){return n(9341)}])},3776:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let r=n(4232),o=r.useLayoutEffect,l=r.useEffect;function i(e){let{headManager:t,reduceComponentsToState:n}=e;function i(){if(t&&t.mountedInstances){let o=r.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(n(o,e))}}return o(()=>{var n;return null==t||null==(n=t.mountedInstances)||n.add(e.children),()=>{var n;null==t||null==(n=t.mountedInstances)||n.delete(e.children)}}),o(()=>(t&&(t._pendingUpdate=i),()=>{t&&(t._pendingUpdate=i)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},5679:(e,t,n)=>{"use strict";var r=n(9034);Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{default:function(){return y},defaultHead:function(){return p}});let o=n(4252),l=n(8365),i=n(7876),a=l._(n(4232)),s=o._(n(3776)),d=n(303),u=n(8831),c=n(6807);function p(e){void 0===e&&(e=!1);let t=[(0,i.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,i.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===a.default.Fragment?e.concat(a.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}n(6079);let h=["name","httpEquiv","charSet","itemProp"];function m(e,t){let{inAmpMode:n}=t;return e.reduce(f,[]).reverse().concat(p(n).reverse()).filter(function(){let e=new Set,t=new Set,n=new Set,r={};return o=>{let l=!0,i=!1;if(o.key&&"number"!=typeof o.key&&o.key.indexOf("$")>0){i=!0;let t=o.key.slice(o.key.indexOf("$")+1);e.has(t)?l=!1:e.add(t)}switch(o.type){case"title":case"base":t.has(o.type)?l=!1:t.add(o.type);break;case"meta":for(let e=0,t=h.length;e<t;e++){let t=h[e];if(o.props.hasOwnProperty(t)){if("charSet"===t)n.has(t)?l=!1:n.add(t);else{let e=o.props[t],n=r[t]||new Set;("name"!==t||!i)&&n.has(e)?l=!1:(n.add(e),r[t]=n)}}}}return l}}()).reverse().map((e,t)=>{let o=e.key||t;if(r.env.__NEXT_OPTIMIZE_FONTS&&!n&&"link"===e.type&&e.props.href&&["https://fonts.googleapis.com/css","https://use.typekit.net/"].some(t=>e.props.href.startsWith(t))){let t={...e.props||{}};return t["data-href"]=t.href,t.href=void 0,t["data-optimized-fonts"]=!0,a.default.cloneElement(e,t)}return a.default.cloneElement(e,{key:o})})}let y=function(e){let{children:t}=e,n=(0,a.useContext)(d.AmpStateContext),r=(0,a.useContext)(u.HeadManagerContext);return(0,i.jsx)(s.default,{reduceComponentsToState:m,headManager:r,inAmpMode:(0,c.isInAmpMode)(n),children:t})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6079:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},6807:(e,t)=>{"use strict";function n(e){let{ampFirst:t=!1,hybrid:n=!1,hasQuery:r=!1}=void 0===e?{}:e;return t||n&&r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isInAmpMode",{enumerable:!0,get:function(){return n}})},9341:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let r=n(4252),o=n(7876),l=r._(n(4232)),i=r._(n(5679)),a={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function s(e){let{req:t,res:n,err:r}=e;return{statusCode:n&&n.statusCode?n.statusCode:r?r.statusCode:404,hostname:window.location.hostname}}let d={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{lineHeight:"48px"},h1:{display:"inline-block",margin:"0 20px 0 0",paddingRight:23,fontSize:24,fontWeight:500,verticalAlign:"top"},h2:{fontSize:14,fontWeight:400,lineHeight:"28px"},wrap:{display:"inline-block"}};class u extends l.default.Component{render(){let{statusCode:e,withDarkMode:t=!0}=this.props,n=this.props.title||a[e]||"An unexpected error has occurred";return(0,o.jsxs)("div",{style:d.error,children:[(0,o.jsx)(i.default,{children:(0,o.jsx)("title",{children:e?e+": "+n:"Application error: a client-side exception has occurred"})}),(0,o.jsxs)("div",{style:d.desc,children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}"+(t?"@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}":"")}}),e?(0,o.jsx)("h1",{className:"next-error-h1",style:d.h1,children:e}):null,(0,o.jsx)("div",{style:d.wrap,children:(0,o.jsxs)("h2",{style:d.h2,children:[this.props.title||e?n:(0,o.jsxs)(o.Fragment,{children:["Application error: a client-side exception has occurred"," ",!!this.props.hostname&&(0,o.jsxs)(o.Fragment,{children:["while loading ",this.props.hostname]})," ","(see the browser console for more information)"]}),"."]})})]})]})}}u.displayName="ErrorPage",u.getInitialProps=s,u.origGetInitialProps=s,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{var t=t=>e(e.s=t);e.O(0,[636,593,792],()=>t(2164)),_N_E=e.O()}]);
|
static/main/_next/static/chunks/polyfills-42372ed130431b0a.js
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
static/main/_next/static/chunks/webpack-192c331ddd84790e.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
(()=>{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}},i=!0;try{e[o](a,a.exports,r),i=!1}finally{i&&delete t[o]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,a)=>{if(o){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[o,n,a];return}for(var u=1/0,i=0;i<e.length;i++){for(var[o,n,a]=e[i],d=!0,l=0;l<o.length;l++)(!1&a||u>=a)&&Object.keys(r.O).every(e=>r.O[e](o[l]))?o.splice(l--,1):(d=!1,a<u&&(u=a));if(d){e.splice(i--,1);var c=n();void 0!==c&&(t=c)}}return t}})(),r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var u=2&n&&o;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,r.d(a,i),a}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>"static/chunks/"+e+"."+({341:"e4d77ac9f3ffcdef",472:"a3826d29d6854395"})[e]+".js",r.miniCssF=e=>{},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,a,i)=>{if(e[o]){e[o].push(n);return}if(void 0!==a)for(var u,d,l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var s=l[c];if(s.getAttribute("src")==o||s.getAttribute("data-webpack")==t+a){u=s;break}}u||(d=!0,(u=document.createElement("script")).charset="utf-8",u.timeout=120,r.nc&&u.setAttribute("nonce",r.nc),u.setAttribute("data-webpack",t+a),u.src=r.tu(o)),e[o]=[n];var f=(t,r)=>{u.onerror=u.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],u.parentNode&&u.parentNode.removeChild(u),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=f.bind(null,u.onerror),u.onload=f.bind(null,u.onload),d&&document.head.appendChild(u)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={68:0,385:0};r.f.j=(t,o)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n){if(n)o.push(n[2]);else if(/^(385|68)$/.test(t))e[t]=0;else{var a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);var i=r.p+r.u(t),u=Error();r.l(i,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;u.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",u.name="ChunkLoadError",u.type=a,u.request=i,n[1](u)}},"chunk-"+t,t)}}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,a,[i,u,d]=o,l=0;if(i.some(t=>0!==e[t])){for(n in u)r.o(u,n)&&(r.m[n]=u[n]);if(d)var c=d(r)}for(t&&t(o);l<i.length;l++)a=i[l],r.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return r.O(c)},o=self.webpackChunk_N_E=self.webpackChunk_N_E||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),r.nc=void 0})();
|
static/main/_next/static/css/ce70925ddb507bf6.css
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
|
| 2 |
+
! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
|
| 3 |
+
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:0 0% 100%;--foreground:222.2 84% 4.9%;--card:0 0% 100%;--card-foreground:222.2 84% 4.9%;--popover:0 0% 100%;--popover-foreground:222.2 84% 4.9%;--primary:271 91% 65%;--primary-foreground:210 40% 98%;--secondary:210 40% 96.1%;--secondary-foreground:222.2 47.4% 11.2%;--muted:210 40% 96.1%;--muted-foreground:215.4 16.3% 46.9%;--accent:210 40% 96.1%;--accent-foreground:222.2 47.4% 11.2%;--destructive:0 84.2% 60.2%;--destructive-foreground:210 40% 98%;--border:214.3 31.8% 91.4%;--input:214.3 31.8% 91.4%;--ring:271 91% 65%;--radius:0.5rem}.dark{--background:222.2 84% 4.9%;--foreground:210 40% 98%;--card:222.2 84% 4.9%;--card-foreground:210 40% 98%;--popover:222.2 84% 4.9%;--popover-foreground:210 40% 98%;--primary:271 91% 65%;--primary-foreground:210 40% 98%;--secondary:217.2 32.6% 17.5%;--secondary-foreground:210 40% 98%;--muted:217.2 32.6% 17.5%;--muted-foreground:215 20.2% 65.1%;--accent:217.2 32.6% 17.5%;--accent-foreground:210 40% 98%;--destructive:0 62.8% 30.6%;--destructive-foreground:210 40% 98%;--border:217.2 32.6% 17.5%;--input:217.2 32.6% 17.5%;--ring:271 91% 65%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width:1400px){.container{max-width:1400px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-left-16{left:-4rem}.-right-12{right:-3rem}.-top-12{top:-3rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-8{bottom:2rem}.bottom-full{bottom:100%}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-1\/3{left:33.333333%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-\[10\%\]{left:10%}.left-\[15\%\]{left:15%}.left-\[35\%\]{left:35%}.left-\[40\%\]{left:40%}.left-\[50\%\]{left:50%}.left-\[65\%\]{left:65%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-\[15\%\]{right:15%}.right-\[5\%\]{right:5%}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/3{top:33.333333%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[-24px\]{top:-24px}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.-z-10{z-index:-10}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-12{margin-top:3rem;margin-bottom:3rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.size-4{width:1rem;height:1rem}.h-1\.5{height:.375rem}.h-1\/2{height:50%}.h-1\/3{height:33.333333%}.h-1\/4{height:25%}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-3\/4{height:75%}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1\.2rem\]{height:1.2rem}.h-\[120px\]{height:120px}.h-\[1px\]{height:1px}.h-\[280px\]{height:280px}.h-\[300px\]{height:300px}.h-\[320px\]{height:320px}.h-\[80px\]{height:80px}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.h-svh{height:100svh}.max-h-96{max-height:24rem}.max-h-\[300px\]{max-height:300px}.max-h-screen{max-height:100vh}.min-h-0{min-height:0}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0}.w-1{width:.25rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[1\.2rem\]{width:1.2rem}.w-\[100px\]{width:100px}.w-\[120px\]{width:120px}.w-\[1px\]{width:1px}.w-\[320px\]{width:320px}.w-\[75\%\]{width:75%}.w-\[80\%\]{width:80%}.w-\[80px\]{width:80px}.w-\[85\%\]{width:85%}.w-auto{width:auto}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-11{min-width:2.75rem}.min-w-5{min-width:1.25rem}.min-w-9{min-width:2.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-\[150px\]{max-width:150px}.max-w-\[200px\]{max-width:200px}.max-w-\[250px\]{max-width:250px}.max-w-\[280px\]{max-width:280px}.max-w-\[300px\]{max-width:300px}.max-w-\[320px\]{max-width:320px}.max-w-\[800px\]{max-width:800px}.max-w-lg{max-width:32rem}.max-w-max{max-width:max-content}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1{--tw-translate-x:-0.25rem}.-translate-x-1,.-translate-x-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-px{--tw-translate-x:-1px}.-translate-x-px,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-2{--tw-translate-x:0.5rem}.translate-x-2,.translate-x-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-px{--tw-translate-x:1px}.translate-x-px,.translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1\/2{--tw-translate-y:50%}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.rotate-0,.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate:0deg}.rotate-180{--tw-rotate:180deg}.rotate-180,.rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg}.rotate-90{--tw-rotate:90deg}.rotate-90,.rotate-\[-1deg\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[-1deg\]{--tw-rotate:-1deg}.rotate-\[-2deg\]{--tw-rotate:-2deg}.rotate-\[-2deg\],.rotate-\[1deg\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-\[1deg\]{--tw-rotate:1deg}.scale-0{--tw-scale-x:0;--tw-scale-y:0}.scale-0,.scale-100{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-150{--tw-scale-x:1.5;--tw-scale-y:1.5}.scale-150,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{user-select:none}.resize{resize:both}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.grid-rows-8{grid-template-rows:repeat(8,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[1px\]{gap:1px}.gap-x-8{column-gap:2rem}.gap-y-10{row-gap:2.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-24>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(6rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(6rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-\[-80px\]>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(-80px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(-80px * var(--tw-space-y-reverse))}.space-y-\[-value\]>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(-value * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(-value * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-700{--tw-border-opacity:1;border-color:rgb(29 78 216/var(--tw-border-opacity,1))}.border-blue-800\/50{border-color:rgb(30 64 175/.5)}.border-border\/50{border-color:hsl(var(--border)/.5)}.border-cyan-400{--tw-border-opacity:1;border-color:rgb(34 211 238/var(--tw-border-opacity,1))}.border-cyan-400\/20{border-color:rgb(34 211 238/.2)}.border-cyan-800\/50{border-color:rgb(21 94 117/.5)}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/50{border-color:hsl(var(--destructive)/.5)}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.border-gray-800{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.border-gray-950{--tw-border-opacity:1;border-color:rgb(3 7 18/var(--tw-border-opacity,1))}.border-input{border-color:hsl(var(--input))}.border-pink-500\/40{border-color:rgb(236 72 153/.4)}.border-primary{border-color:hsl(var(--primary))}.border-purple-400{--tw-border-opacity:1;border-color:rgb(192 132 252/var(--tw-border-opacity,1))}.border-purple-500{--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity,1))}.border-purple-500\/40{border-color:rgb(168 85 247/.4)}.border-purple-700{--tw-border-opacity:1;border-color:rgb(126 34 206/var(--tw-border-opacity,1))}.border-teal-400{--tw-border-opacity:1;border-color:rgb(45 212 191/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:rgb(0 0 0/.8)}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-500\/60{background-color:rgb(59 130 246/.6)}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-blue-600\/30{background-color:rgb(37 99 235/.3)}.bg-blue-900\/60{background-color:rgb(30 58 138/.6)}.bg-blue-900\/70{background-color:rgb(30 58 138/.7)}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-cyan-600{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity,1))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-gray-800\/60{background-color:rgb(31 41 55/.6)}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.bg-gray-900\/30{background-color:rgb(17 24 39/.3)}.bg-gray-900\/50{background-color:rgb(17 24 39/.5)}.bg-gray-900\/60{background-color:rgb(17 24 39/.6)}.bg-gray-900\/70{background-color:rgb(17 24 39/.7)}.bg-gray-900\/80{background-color:rgb(17 24 39/.8)}.bg-gray-950{--tw-bg-opacity:1;background-color:rgb(3 7 18/var(--tw-bg-opacity,1))}.bg-gray-950\/90{background-color:rgb(3 7 18/.9)}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted)/.5)}.bg-pink-500{--tw-bg-opacity:1;background-color:rgb(236 72 153/var(--tw-bg-opacity,1))}.bg-pink-500\/20{background-color:rgb(236 72 153/.2)}.bg-pink-600\/30{background-color:rgb(219 39 119/.3)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-purple-500\/10{background-color:rgb(168 85 247/.1)}.bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.bg-purple-600\/30{background-color:rgb(147 51 234/.3)}.bg-purple-900\/60{background-color:rgb(88 28 135/.6)}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-500\/60{background-color:rgb(239 68 68/.6)}.bg-red-900\/60{background-color:rgb(127 29 29/.6)}.bg-secondary{background-color:hsl(var(--secondary))}.bg-teal-600\/30{background-color:rgb(13 148 136/.3)}.bg-teal-600\/50{background-color:rgb(13 148 136/.5)}.bg-transparent{background-color:transparent}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-bl{background-image:linear-gradient(to bottom left,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--tw-gradient-stops))}.from-blue-400{--tw-gradient-from:#60a5fa var(--tw-gradient-from-position);--tw-gradient-to:rgb(96 165 250/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:rgb(59 130 246/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500\/30{--tw-gradient-from:rgb(59 130 246/0.3) var(--tw-gradient-from-position);--tw-gradient-to:rgb(59 130 246/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-600{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:rgb(37 99 235/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-900\/30{--tw-gradient-from:rgb(30 58 138/0.3) var(--tw-gradient-from-position);--tw-gradient-to:rgb(30 58 138/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-cyan-400{--tw-gradient-from:#22d3ee var(--tw-gradient-from-position);--tw-gradient-to:rgb(34 211 238/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-gray-950{--tw-gradient-from:#030712 var(--tw-gradient-from-position);--tw-gradient-to:rgb(3 7 18/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-indigo-900{--tw-gradient-from:#312e81 var(--tw-gradient-from-position);--tw-gradient-to:rgb(49 46 129/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from:#ec4899 var(--tw-gradient-from-position);--tw-gradient-to:rgb(236 72 153/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgb(168 85 247/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-600{--tw-gradient-from:#9333ea var(--tw-gradient-from-position);--tw-gradient-to:rgb(147 51 234/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-500{--tw-gradient-from:#ef4444 var(--tw-gradient-from-position);--tw-gradient-to:rgb(239 68 68/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-teal-500{--tw-gradient-from:#14b8a6 var(--tw-gradient-from-position);--tw-gradient-to:rgb(20 184 166/0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.to-cyan-500{--tw-gradient-to:#06b6d4 var(--tw-gradient-to-position)}.to-gray-900{--tw-gradient-to:#111827 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to:#ec4899 var(--tw-gradient-to-position)}.to-pink-600{--tw-gradient-to:#db2777 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to:#a855f7 var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to:#9333ea var(--tw-gradient-to-position)}.to-purple-900{--tw-gradient-to:#581c87 var(--tw-gradient-to-position)}.to-purple-900\/30{--tw-gradient-to:rgb(88 28 135/0.3) var(--tw-gradient-to-position)}.to-red-500{--tw-gradient-to:#ef4444 var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to:#dc2626 var(--tw-gradient-to-position)}.to-teal-500{--tw-gradient-to:#14b8a6 var(--tw-gradient-to-position)}.to-teal-600{--tw-gradient-to:#0d9488 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.bg-clip-text{background-clip:text}.fill-current{fill:currentColor}.object-cover{object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-2\.5{padding-left:.625rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.5rem\]{font-size:.5rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-blue-200{--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.text-blue-300{--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-300{--tw-text-opacity:1;color:rgb(103 232 249/var(--tw-text-opacity,1))}.text-cyan-400{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.text-cyan-500{--tw-text-opacity:1;color:rgb(6 182 212/var(--tw-text-opacity,1))}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground)/.5)}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-300{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-pink-300{--tw-text-opacity:1;color:rgb(249 168 212/var(--tw-text-opacity,1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-200{--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.text-purple-300{--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-purple-500{--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.text-red-200{--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-teal-300{--tw-text-opacity:1;color:rgb(94 234 212/var(--tw-text-opacity,1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow:0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\],.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgb(0 0 0/0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.shadow-blue-500\/50{--tw-shadow-color:rgb(59 130 246/0.5);--tw-shadow:var(--tw-shadow-colored)}.shadow-cyan-500\/50{--tw-shadow-color:rgb(6 182 212/0.5);--tw-shadow:var(--tw-shadow-colored)}.shadow-green-500\/50{--tw-shadow-color:rgb(34 197 94/0.5);--tw-shadow:var(--tw-shadow-colored)}.shadow-pink-500\/50{--tw-shadow-color:rgb(236 72 153/0.5);--tw-shadow:var(--tw-shadow-colored)}.shadow-purple-500\/50{--tw-shadow-color:rgb(168 85 247/0.5);--tw-shadow:var(--tw-shadow-colored)}.shadow-purple-900\/10{--tw-shadow-color:rgb(88 28 135/0.1);--tw-shadow:var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-0{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-cyan-500{--tw-ring-opacity:1;--tw-ring-color:rgb(6 182 212/var(--tw-ring-opacity,1))}.ring-red-500{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.ring-ring{--tw-ring-color:hsl(var(--ring))}.ring-offset-1{--tw-ring-offset-width:1px}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.ring-offset-gray-900{--tw-ring-offset-color:#111827}.ring-offset-transparent{--tw-ring-offset-color:transparent}.blur-md{--tw-blur:blur(12px)}.blur-md,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\2c right\2c width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\2c opa\]{transition-property:margin,opa;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\2c height\2c padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.fade-in-0{--tw-enter-opacity:0}.fade-in-80{--tw-enter-opacity:0.8}.zoom-in-95{--tw-enter-scale:.95}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.aspect-w-16{position:relative;padding-bottom:calc(9 / 16 * 100%)}.aspect-h-9>*{position:absolute;height:100%;width:100%;top:0;right:0;bottom:0;left:0}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:border-purple-500:hover{--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity,1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-cyan-700:hover{--tw-bg-opacity:1;background-color:rgb(14 116 144/var(--tw-bg-opacity,1))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive)/.8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted)/.5)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary)/.8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-purple-700:hover{--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-gray-300:hover{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-purple-400:hover{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow:0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-100,.group\/menu-item:hover .group-hover\/menu-item\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted)/.4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive)/.3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity:1;color:rgb(254 242 242/var(--tw-text-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color:#dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent)/.5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom],.data-\[side\=left\]\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right],.data-\[side\=top\]\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x)}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end],.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x)}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent)/.5)}.data-\[selected\=\'true\'\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent)/.5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 2px 0 rgb(0 0 0/0.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:0.8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale:.9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x:13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x:-13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x:13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x:-13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.dark\:-rotate-90:is(.dark *){--tw-rotate:-90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:rotate-0:is(.dark *){--tw-rotate:0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-0:is(.dark *){--tw-scale-x:0;--tw-scale-y:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-100:is(.dark *){--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(3 7 18/var(--tw-bg-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:w-\[65\%\]{width:65%}.sm\:w-\[70\%\]{width:70%}.sm\:w-\[75\%\]{width:75%}.sm\:max-w-sm{max-width:24rem}.sm\:-translate-x-2{--tw-translate-x:-0.5rem}.sm\:-translate-x-2,.sm\:translate-x-3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:translate-x-3{--tw-translate-x:0.75rem}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2{gap:.5rem}.sm\:gap-2\.5{gap:.625rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.sm\:space-y-\[-100px\]>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(-100px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(-100px * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:text-left{text-align:left}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y:100%}}@media (min-width:768px){.md\:absolute{position:absolute}.md\:my-0{margin-top:0}.md\:mb-0,.md\:my-0{margin-bottom:0}.md\:mt-0{margin-top:0}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:space-y-\[-120px\]>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(-120px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(-120px * var(--tw-space-y-reverse))}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:pl-12{padding-left:3rem}.md\:pr-12{padding-right:3rem}.md\:pt-12{padding-top:3rem}.md\:pt-4{padding-top:1rem}.md\:text-right{text-align:right}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}@media (min-width:1024px){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:max-w-6xl{max-width:72rem}.lg\:flex-row{flex-direction:row}.lg\:gap-x-12{column-gap:3rem}}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent)/.5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:h-3\.5>svg{height:.875rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:w-3\.5>svg{width:.875rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate:90deg}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div,.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate:180deg}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border)/.5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/55c55f0601d81cf3-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/26a46d62cd723877-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/97e0cb1ae144a2a9-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/581909926a08bbc8-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_e8ce0c{font-family:Inter,Inter Fallback;font-style:normal}
|
static/main/_next/static/mDISYaUQpvXufxGEtni62/_buildManifest.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
self.__BUILD_MANIFEST=function(e,r,t){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:6,errorRate:1e-4,numBits:116,numHashes:14,bitArray:[1,1,0,0,e,e,e,r,e,e,e,e,r,r,r,e,e,e,r,e,r,r,e,r,e,r,r,e,e,e,e,e,e,r,e,e,e,e,e,e,e,r,e,r,r,r,r,e,r,r,r,r,r,e,e,e,r,e,r,e,e,e,e,e,r,r,r,e,e,e,r,e,r,r,e,r,e,r,r,r,e,e,r,r,r,e,e,e,r,e,e,e,r,r,e,r,r,r,r,r,r,r,e,e,e,e,e,e,r,r,e,r,e,e,r,r]},__routerFilterDynamic:{numItems:r,errorRate:1e-4,numBits:r,numHashes:null,bitArray:[]},"/_error":["static/chunks/pages/_error-764831a58efd9a1a.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
static/main/_next/static/mDISYaUQpvXufxGEtni62/_ssgManifest.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
|
static/main/_next/static/media/26a46d62cd723877-s.woff2
ADDED
|
Binary file (18.8 kB). View file
|
|
|
static/main/_next/static/media/55c55f0601d81cf3-s.woff2
ADDED
|
Binary file (25.9 kB). View file
|
|
|
static/main/_next/static/media/581909926a08bbc8-s.woff2
ADDED
|
Binary file (19.1 kB). View file
|
|
|
static/main/_next/static/media/8e9860b6e62d6359-s.woff2
ADDED
|
Binary file (85.3 kB). View file
|
|
|
static/main/_next/static/media/97e0cb1ae144a2a9-s.woff2
ADDED
|
Binary file (11.2 kB). View file
|
|
|
static/main/_next/static/media/df0a9ae256c0569c-s.woff2
ADDED
|
Binary file (10.3 kB). View file
|
|
|
static/main/_next/static/media/e4af272ccee01ff0-s.p.woff2
ADDED
|
Binary file (48.4 kB). View file
|
|
|
static/main/cnn-explained.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
static/main/cnn-explained.txt
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
1:"$Sreact.fragment"
|
| 2 |
+
2:I[9304,["436","static/chunks/436-4434bdf56ece092d.js","874","static/chunks/874-15a3df30cc819263.js","953","static/chunks/953-3efb90282c9a4140.js","177","static/chunks/app/layout-1282207399fa10f1.js"],"ThemeProvider"]
|
| 3 |
+
3:I[3658,["436","static/chunks/436-4434bdf56ece092d.js","874","static/chunks/874-15a3df30cc819263.js","953","static/chunks/953-3efb90282c9a4140.js","177","static/chunks/app/layout-1282207399fa10f1.js"],"default"]
|
| 4 |
+
4:I[7555,[],""]
|
| 5 |
+
5:I[1295,[],""]
|
| 6 |
+
6:I[6874,["436","static/chunks/436-4434bdf56ece092d.js","874","static/chunks/874-15a3df30cc819263.js","953","static/chunks/953-3efb90282c9a4140.js","177","static/chunks/app/layout-1282207399fa10f1.js"],""]
|
| 7 |
+
7:I[894,[],"ClientPageRoot"]
|
| 8 |
+
8:I[8508,["607","static/chunks/app/cnn-explained/page-5d0af436c38dac16.js"],"default"]
|
| 9 |
+
b:I[9665,[],"OutletBoundary"]
|
| 10 |
+
e:I[9665,[],"ViewportBoundary"]
|
| 11 |
+
10:I[9665,[],"MetadataBoundary"]
|
| 12 |
+
12:I[6614,[],""]
|
| 13 |
+
:HL["/_next/static/css/ce70925ddb507bf6.css","style"]
|
| 14 |
+
0:{"P":null,"b":"mDISYaUQpvXufxGEtni62","p":"","c":["","cnn-explained"],"i":false,"f":[[["",{"children":["cnn-explained",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ce70925ddb507bf6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__className_e8ce0c bg-gray-50 text-gray-900 dark:bg-gray-950 dark:text-gray-100 min-h-screen flex flex-col","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","enableSystem":true,"disableTransitionOnChange":true,"children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-grow","children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"bg-gray-900 py-12 border-t border-gray-800","children":["$","div",null,{"className":"container mx-auto px-4","children":[["$","div",null,{"className":"flex flex-col md:flex-row justify-between items-center","children":[["$","div",null,{"className":"mb-6 md:mb-0","children":[["$","h2",null,{"className":"text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500","children":"AI-OralCancer"}],["$","p",null,{"className":"text-gray-400 mt-2 max-w-md","children":"Advancing early detection of oral cancer through artificial intelligence and deep learning technologies."}]]}],["$","div",null,{"className":"flex space-x-6","children":[["$","$L6",null,{"href":"https://github.com","target":"_blank","rel":"noopener noreferrer","className":"text-gray-400 hover:text-white transition-colors","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-github h-6 w-6","children":[["$","path","tonef",{"d":"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}],["$","path","9comsn",{"d":"M9 18c-4.51 2-5-2-7-2"}],"$undefined"]}],["$","span",null,{"className":"sr-only","children":"GitHub"}]]}],["$","$L6",null,{"href":"https://twitter.com","target":"_blank","rel":"noopener noreferrer","className":"text-gray-400 hover:text-white transition-colors","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-twitter h-6 w-6","children":[["$","path","pff0z6",{"d":"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"}],"$undefined"]}],["$","span",null,{"className":"sr-only","children":"Twitter"}]]}],["$","$L6",null,{"href":"https://linkedin.com","target":"_blank","rel":"noopener noreferrer","className":"text-gray-400 hover:text-white transition-colors","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-linkedin h-6 w-6","children":[["$","path","c2jq9f",{"d":"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"}],["$","rect","mk3on5",{"width":"4","height":"12","x":"2","y":"9"}],["$","circle","bt5ra8",{"cx":"4","cy":"4","r":"2"}],"$undefined"]}],["$","span",null,{"className":"sr-only","children":"LinkedIn"}]]}]]}]]}],["$","div",null,{"className":"border-t border-gray-800 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center","children":[["$","p",null,{"className":"text-gray-500 text-sm","children":["© ",2025," AI-OralCancer. All rights reserved."]}],["$","div",null,{"className":"flex space-x-6 mt-4 md:mt-0","children":[["$","$L6",null,{"href":"#","className":"text-gray-500 hover:text-gray-300 text-sm","children":"Privacy Policy"}],["$","$L6",null,{"href":"#","className":"text-gray-500 hover:text-gray-300 text-sm","children":"Terms of Service"}],["$","$L6",null,{"href":"#","className":"text-gray-500 hover:text-gray-300 text-sm","children":"Contact"}]]}]]}]]}]}]]}]}]}]]}],{"children":["cnn-explained",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],"$undefined",null,["$","$Lb",null,{"children":["$Lc","$Ld",null]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","CoO2axhOu6WM8nfPFcJQk",{"children":[["$","$Le",null,{"children":"$Lf"}],null]}],["$","$L10",null,{"children":"$L11"}]]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
| 15 |
+
9:{}
|
| 16 |
+
a:{}
|
| 17 |
+
f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
| 18 |
+
c:null
|
| 19 |
+
d:null
|
| 20 |
+
11:[["$","title","0",{"children":"AI in Oral Cancer Diagnosis"}],["$","meta","1",{"name":"description","content":"Early detection through intelligent imaging"}],["$","meta","2",{"name":"generator","content":"v0.dev"}]]
|
static/main/diagnosis-steps.html
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/ce70925ddb507bf6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-192c331ddd84790e.js"/><script src="/_next/static/chunks/4bd1b696-585f188d732414ff.js" async=""></script><script src="/_next/static/chunks/684-98bea1a58a90994f.js" async=""></script><script src="/_next/static/chunks/main-app-dc518554d77a2eae.js" async=""></script><script src="/_next/static/chunks/436-4434bdf56ece092d.js" async=""></script><script src="/_next/static/chunks/874-15a3df30cc819263.js" async=""></script><script src="/_next/static/chunks/953-3efb90282c9a4140.js" async=""></script><script src="/_next/static/chunks/app/layout-1282207399fa10f1.js" async=""></script><script src="/_next/static/chunks/app/diagnosis-steps/page-dec8e1c2f150ea13.js" async=""></script><title>AI in Oral Cancer Diagnosis</title><meta name="description" content="Early detection through intelligent imaging"/><meta name="generator" content="v0.dev"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_e8ce0c bg-gray-50 text-gray-900 dark:bg-gray-950 dark:text-gray-100 min-h-screen flex flex-col"><script>((e,t,r,n,o,i,a,s)=>{let l=document.documentElement,u=["light","dark"];function c(t){var r;(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&i?o.map(e=>i[e]||e):o;r?(l.classList.remove(...n),l.classList.add(i&&i[t]?i[t]:t)):l.setAttribute(e,t)}),r=t,s&&u.includes(r)&&(l.style.colorScheme=r)}if(n)c(n);else try{let e=localStorage.getItem(t)||r,n=a&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(n)}catch(e){}})("class","theme","dark",null,["light","dark"],null,true,true)</script><nav class="fixed top-0 w-full z-50 transition-all duration-300 bg-transparent"><div class="container mx-auto px-4"><div class="flex items-center justify-between h-16"><a class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500" href="/">AI-OralCancer</a><div class="hidden md:flex items-center space-x-6"><a class="transition-colors hover:text-purple-400 text-gray-300" href="/">Home</a><a class="transition-colors hover:text-purple-400 text-gray-300" href="/real-world">Real-World</a><a class="transition-colors hover:text-purple-400 text-gray-300" href="/predict">Predict</a><a class="transition-colors hover:text-purple-400 text-purple-500 font-medium" href="/diagnosis-steps">Diagnosis Steps</a><a class="transition-colors hover:text-purple-400 text-gray-300" href="/cnn-explained">CNN Explained</a><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border hover:bg-accent hover:text-accent-foreground h-10 w-10 bg-transparent border-gray-700" type="button" id="radix-«R19db»" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span class="sr-only">Toggle theme</span></button></div><div class="flex md:hidden items-center space-x-4"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border hover:bg-accent hover:text-accent-foreground h-10 w-10 bg-transparent border-gray-700" type="button" id="radix-«Rtdb»" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span class="sr-only">Toggle theme</span></button><button class="text-gray-300 hover:text-white focus:outline-none"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div></div></div></nav><main class="flex-grow"><div class="py-20 bg-gray-950 min-h-screen"><div class="container mx-auto px-4"><div class="max-w-4xl mx-auto" style="opacity:0"><h1 class="text-3xl md:text-5xl font-bold mb-8 text-center" style="opacity:0;transform:translateY(20px)">Diagnosis Steps</h1><p class="text-gray-300 text-center mb-16 max-w-2xl mx-auto" style="opacity:0;transform:translateY(20px)">The AI-powered oral cancer diagnosis process follows a systematic workflow from image acquisition to final report generation. Each step is optimized for accuracy and efficiency.</p><div class="relative"><div class="absolute left-1/2 transform -translate-x-1/2 h-full w-1 bg-gradient-to-b from-purple-600 to-cyan-500 rounded-full hidden md:block"></div><div class="space-y-24 relative"><div class="flex flex-col md:flex-row items-center" style="opacity:0;transform:translateY(50px)"><div class="md:w-1/2 md:pr-12 md:text-right"><h3 class="text-2xl font-semibold mb-3">Tissue Collection</h3><p class="text-gray-300"><span class="relative inline-block"><span class="border-b border-dashed border-purple-400 text-purple-400 cursor-help" tabindex="0">Biopsy</span></span> samples are collected from the epithelial lining of the oral cavity for further analysis.</p></div><div class="my-6 md:my-0 relative"><div class="w-16 h-16 rounded-full bg-gray-800 flex items-center justify-center z-10 relative border-4 border-gray-950"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-microscope h-8 w-8"><path d="M6 18h8"></path><path d="M3 22h18"></path><path d="M14 22a7 7 0 1 0 0-14h-1"></path><path d="M9 14h2"></path><path d="M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z"></path><path d="M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3"></path></svg></div></div><div class="md:w-1/2"></div></div><div class="flex flex-col md:flex-row-reverse items-center" style="opacity:0;transform:translateY(50px)"><div class="md:w-1/2 md:pl-12"><h3 class="text-2xl font-semibold mb-3">Microscopic Imaging</h3><p class="text-gray-300">Tissue samples are examined under an electronic microscope to produce high-resolution <span class="relative inline-block"><span class="border-b border-dashed border-purple-400 text-purple-400 cursor-help" tabindex="0">histopathological</span></span> images.</p></div><div class="my-6 md:my-0 relative"><div class="w-16 h-16 rounded-full bg-gray-800 flex items-center justify-center z-10 relative border-4 border-gray-950"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-image h-8 w-8"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"></path><path d="M14 2v4a2 2 0 0 0 2 2h4"></path><circle cx="10" cy="12" r="2"></circle><path d="m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22"></path></svg></div></div><div class="md:w-1/2"></div></div><div class="flex flex-col md:flex-row items-center" style="opacity:0;transform:translateY(50px)"><div class="md:w-1/2 md:pr-12 md:text-right"><h3 class="text-2xl font-semibold mb-3">Histopathology Imaging</h3><p class="text-gray-300">The observed cellular structures are digitally captured as <span class="relative inline-block"><span class="border-b border-dashed border-purple-400 text-purple-400 cursor-help" tabindex="0">histopathological</span></span> images for diagnostic evaluation.</p></div><div class="my-6 md:my-0 relative"><div class="w-16 h-16 rounded-full bg-gray-800 flex items-center justify-center z-10 relative border-4 border-gray-950"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cpu h-8 w-8"><rect width="16" height="16" x="4" y="4" rx="2"></rect><rect width="6" height="6" x="9" y="9" rx="1"></rect><path d="M15 2v2"></path><path d="M15 20v2"></path><path d="M2 15h2"></path><path d="M2 9h2"></path><path d="M20 15h2"></path><path d="M20 9h2"></path><path d="M9 2v2"></path><path d="M9 20v2"></path></svg></div></div><div class="md:w-1/2"></div></div><div class="flex flex-col md:flex-row-reverse items-center" style="opacity:0;transform:translateY(50px)"><div class="md:w-1/2 md:pl-12"><h3 class="text-2xl font-semibold mb-3">Image Digitization</h3><p class="text-gray-300">These images are digitized and fed into the computer system, preprocessed for consistency and clarity.</p></div><div class="my-6 md:my-0 relative"><div class="w-16 h-16 rounded-full bg-gray-800 flex items-center justify-center z-10 relative border-4 border-gray-950"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain-circuit h-8 w-8"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M9 13a4.5 4.5 0 0 0 3-4"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M12 13h4"></path><path d="M12 18h6a2 2 0 0 1 2 2v1"></path><path d="M12 8h8"></path><path d="M16 8V5a2 2 0 0 1 2-2"></path><circle cx="16" cy="13" r=".5"></circle><circle cx="18" cy="3" r=".5"></circle><circle cx="20" cy="21" r=".5"></circle><circle cx="20" cy="8" r=".5"></circle></svg></div></div><div class="md:w-1/2"></div></div><div class="flex flex-col md:flex-row items-center" style="opacity:0;transform:translateY(50px)"><div class="md:w-1/2 md:pr-12 md:text-right"><h3 class="text-2xl font-semibold mb-3">CNN Processing</h3><p class="text-gray-300">A <span class="relative inline-block"><span class="border-b border-dashed border-purple-400 text-purple-400 cursor-help" tabindex="0">convolutional neural network</span></span> analyzes the image, extracting features indicative of cancerous changes.</p></div><div class="my-6 md:my-0 relative"><div class="w-16 h-16 rounded-full bg-gray-800 flex items-center justify-center z-10 relative border-4 border-gray-950"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain-circuit h-8 w-8"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M9 13a4.5 4.5 0 0 0 3-4"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M12 13h4"></path><path d="M12 18h6a2 2 0 0 1 2 2v1"></path><path d="M12 8h8"></path><path d="M16 8V5a2 2 0 0 1 2-2"></path><circle cx="16" cy="13" r=".5"></circle><circle cx="18" cy="3" r=".5"></circle><circle cx="20" cy="21" r=".5"></circle><circle cx="20" cy="8" r=".5"></circle></svg></div></div><div class="md:w-1/2"></div></div><div class="flex flex-col md:flex-row-reverse items-center" style="opacity:0;transform:translateY(50px)"><div class="md:w-1/2 md:pl-12"><h3 class="text-2xl font-semibold mb-3">Diagnosis Output</h3><p class="text-gray-300">The model outputs a classification—<span class="relative inline-block"><span class="border-b border-dashed border-purple-400 text-purple-400 cursor-help" tabindex="0">benign</span></span> or malignant—with a confidence score, aiding medical diagnosis.</p></div><div class="my-6 md:my-0 relative"><div class="w-16 h-16 rounded-full bg-gray-800 flex items-center justify-center z-10 relative border-4 border-gray-950"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-big h-8 w-8"><path d="M21.801 10A10 10 0 1 1 17 3.335"></path><path d="m9 11 3 3L22 4"></path></svg></div></div><div class="md:w-1/2"></div></div></div></div></div></div></div></main><footer class="bg-gray-900 py-12 border-t border-gray-800"><div class="container mx-auto px-4"><div class="flex flex-col md:flex-row justify-between items-center"><div class="mb-6 md:mb-0"><h2 class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500">AI-OralCancer</h2><p class="text-gray-400 mt-2 max-w-md">Advancing early detection of oral cancer through artificial intelligence and deep learning technologies.</p></div><div class="flex space-x-6"><a target="_blank" rel="noopener noreferrer" class="text-gray-400 hover:text-white transition-colors" href="https://github.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github h-6 w-6"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg><span class="sr-only">GitHub</span></a><a target="_blank" rel="noopener noreferrer" class="text-gray-400 hover:text-white transition-colors" href="https://twitter.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-twitter h-6 w-6"><path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"></path></svg><span class="sr-only">Twitter</span></a><a target="_blank" rel="noopener noreferrer" class="text-gray-400 hover:text-white transition-colors" href="https://linkedin.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-linkedin h-6 w-6"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect width="4" height="12" x="2" y="9"></rect><circle cx="4" cy="4" r="2"></circle></svg><span class="sr-only">LinkedIn</span></a></div></div><div class="border-t border-gray-800 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center"><p class="text-gray-500 text-sm">© <!-- -->2025<!-- --> AI-OralCancer. All rights reserved.</p><div class="flex space-x-6 mt-4 md:mt-0"><a class="text-gray-500 hover:text-gray-300 text-sm" href="#">Privacy Policy</a><a class="text-gray-500 hover:text-gray-300 text-sm" href="#">Terms of Service</a><a class="text-gray-500 hover:text-gray-300 text-sm" href="#">Contact</a></div></div></div></footer><script src="/_next/static/chunks/webpack-192c331ddd84790e.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9304,[\"436\",\"static/chunks/436-4434bdf56ece092d.js\",\"874\",\"static/chunks/874-15a3df30cc819263.js\",\"953\",\"static/chunks/953-3efb90282c9a4140.js\",\"177\",\"static/chunks/app/layout-1282207399fa10f1.js\"],\"ThemeProvider\"]\n3:I[3658,[\"436\",\"static/chunks/436-4434bdf56ece092d.js\",\"874\",\"static/chunks/874-15a3df30cc819263.js\",\"953\",\"static/chunks/953-3efb90282c9a4140.js\",\"177\",\"static/chunks/app/layout-1282207399fa10f1.js\"],\"default\"]\n4:I[7555,[],\"\"]\n5:I[1295,[],\"\"]\n6:I[6874,[\"436\",\"static/chunks/436-4434bdf56ece092d.js\",\"874\",\"static/chunks/874-15a3df30cc819263.js\",\"953\",\"static/chunks/953-3efb90282c9a4140.js\",\"177\",\"static/chunks/app/layout-1282207399fa10f1.js\"],\"\"]\n7:I[894,[],\"ClientPageRoot\"]\n8:I[2116,[\"436\",\"static/chunks/436-4434bdf56ece092d.js\",\"598\",\"static/chunks/app/diagnosis-steps/page-dec8e1c2f150ea13.js\"],\"default\"]\nb:I[9665,[],\"OutletBoundary\"]\ne:I[9665,[],\"ViewportBoundary\"]\n10:I[9665,[],\"MetadataBoundary\"]\n12:I[6614,[],\"\"]\n:HL[\"/_next/static/css/ce70925ddb507bf6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"mDISYaUQpvXufxGEtni62\",\"p\":\"\",\"c\":[\"\",\"diagnosis-steps\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"diagnosis-steps\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ce70925ddb507bf6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__className_e8ce0c bg-gray-50 text-gray-900 dark:bg-gray-950 dark:text-gray-100 min-h-screen flex flex-col\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"dark\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-grow\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"footer\",null,{\"className\":\"bg-gray-900 py-12 border-t border-gray-800\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto px-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col md:flex-row justify-between items-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-6 md:mb-0\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500\",\"children\":\"AI-OralCancer\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 mt-2 max-w-md\",\"children\":\"Advancing early detection of oral cancer through artificial intelligence and deep learning technologies.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex space-x-6\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"https://github.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-github h-6 w-6\",\"children\":[[\"$\",\"path\",\"tonef\",{\"d\":\"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4\"}],[\"$\",\"path\",\"9comsn\",{\"d\":\"M9 18c-4.51 2-5-2-7-2\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"GitHub\"}]]}],[\"$\",\"$L6\",null,{\"href\":\"https://twitter.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-twitter h-6 w-6\",\"children\":[[\"$\",\"path\",\"pff0z6\",{\"d\":\"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"Twitter\"}]]}],[\"$\",\"$L6\",null,{\"href\":\"https://linkedin.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-linkedin h-6 w-6\",\"children\":[[\"$\",\"path\",\"c2jq9f\",{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"}],[\"$\",\"rect\",\"mk3on5\",{\"width\":\"4\",\"height\":\"12\",\"x\":\"2\",\"y\":\"9\"}],[\"$\",\"circle\",\"bt5ra8\",{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"LinkedIn\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"border-t border-gray-800 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-gray-500 text-sm\",\"children\":[\"© \",2025,\" AI-OralCancer. All rights reserved.\"]}],[\"$\",\"div\",null,{\"className\":\"flex space-x-6 mt-4 md:mt-0\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"#\",\"className\":\"text-gray-500 hover:text-gray-300 text-sm\",\"children\":\"Privacy Policy\"}],[\"$\",\"$L6\",null,{\"href\":\"#\",\"className\":\"text-gray-500 hover:text-gray-300 text-sm\",\"children\":\"Terms of Service\"}],[\"$\",\"$L6\",null,{\"href\":\"#\",\"className\":\"text-gray-500 hover:text-gray-300 text-sm\",\"children\":\"Contact\"}]]}]]}]]}]}]]}]}]}]]}],{\"children\":[\"diagnosis-steps\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],\"$undefined\",null,[\"$\",\"$Lb\",null,{\"children\":[\"$Lc\",\"$Ld\",null]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"HQJegD4hCsS0QwlaqLslI\",{\"children\":[[\"$\",\"$Le\",null,{\"children\":\"$Lf\"}],null]}],[\"$\",\"$L10\",null,{\"children\":\"$L11\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:{}\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nc:null\n"])</script><script>self.__next_f.push([1,"d:null\n11:[[\"$\",\"title\",\"0\",{\"children\":\"AI in Oral Cancer Diagnosis\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Early detection through intelligent imaging\"}],[\"$\",\"meta\",\"2\",{\"name\":\"generator\",\"content\":\"v0.dev\"}]]\n"])</script></body></html>
|
static/main/diagnosis-steps.txt
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
1:"$Sreact.fragment"
|
| 2 |
+
2:I[9304,["436","static/chunks/436-4434bdf56ece092d.js","874","static/chunks/874-15a3df30cc819263.js","953","static/chunks/953-3efb90282c9a4140.js","177","static/chunks/app/layout-1282207399fa10f1.js"],"ThemeProvider"]
|
| 3 |
+
3:I[3658,["436","static/chunks/436-4434bdf56ece092d.js","874","static/chunks/874-15a3df30cc819263.js","953","static/chunks/953-3efb90282c9a4140.js","177","static/chunks/app/layout-1282207399fa10f1.js"],"default"]
|
| 4 |
+
4:I[7555,[],""]
|
| 5 |
+
5:I[1295,[],""]
|
| 6 |
+
6:I[6874,["436","static/chunks/436-4434bdf56ece092d.js","874","static/chunks/874-15a3df30cc819263.js","953","static/chunks/953-3efb90282c9a4140.js","177","static/chunks/app/layout-1282207399fa10f1.js"],""]
|
| 7 |
+
7:I[894,[],"ClientPageRoot"]
|
| 8 |
+
8:I[2116,["436","static/chunks/436-4434bdf56ece092d.js","598","static/chunks/app/diagnosis-steps/page-dec8e1c2f150ea13.js"],"default"]
|
| 9 |
+
b:I[9665,[],"OutletBoundary"]
|
| 10 |
+
e:I[9665,[],"ViewportBoundary"]
|
| 11 |
+
10:I[9665,[],"MetadataBoundary"]
|
| 12 |
+
12:I[6614,[],""]
|
| 13 |
+
:HL["/_next/static/css/ce70925ddb507bf6.css","style"]
|
| 14 |
+
0:{"P":null,"b":"mDISYaUQpvXufxGEtni62","p":"","c":["","diagnosis-steps"],"i":false,"f":[[["",{"children":["diagnosis-steps",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ce70925ddb507bf6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__className_e8ce0c bg-gray-50 text-gray-900 dark:bg-gray-950 dark:text-gray-100 min-h-screen flex flex-col","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","enableSystem":true,"disableTransitionOnChange":true,"children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-grow","children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"bg-gray-900 py-12 border-t border-gray-800","children":["$","div",null,{"className":"container mx-auto px-4","children":[["$","div",null,{"className":"flex flex-col md:flex-row justify-between items-center","children":[["$","div",null,{"className":"mb-6 md:mb-0","children":[["$","h2",null,{"className":"text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500","children":"AI-OralCancer"}],["$","p",null,{"className":"text-gray-400 mt-2 max-w-md","children":"Advancing early detection of oral cancer through artificial intelligence and deep learning technologies."}]]}],["$","div",null,{"className":"flex space-x-6","children":[["$","$L6",null,{"href":"https://github.com","target":"_blank","rel":"noopener noreferrer","className":"text-gray-400 hover:text-white transition-colors","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-github h-6 w-6","children":[["$","path","tonef",{"d":"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}],["$","path","9comsn",{"d":"M9 18c-4.51 2-5-2-7-2"}],"$undefined"]}],["$","span",null,{"className":"sr-only","children":"GitHub"}]]}],["$","$L6",null,{"href":"https://twitter.com","target":"_blank","rel":"noopener noreferrer","className":"text-gray-400 hover:text-white transition-colors","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-twitter h-6 w-6","children":[["$","path","pff0z6",{"d":"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"}],"$undefined"]}],["$","span",null,{"className":"sr-only","children":"Twitter"}]]}],["$","$L6",null,{"href":"https://linkedin.com","target":"_blank","rel":"noopener noreferrer","className":"text-gray-400 hover:text-white transition-colors","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-linkedin h-6 w-6","children":[["$","path","c2jq9f",{"d":"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"}],["$","rect","mk3on5",{"width":"4","height":"12","x":"2","y":"9"}],["$","circle","bt5ra8",{"cx":"4","cy":"4","r":"2"}],"$undefined"]}],["$","span",null,{"className":"sr-only","children":"LinkedIn"}]]}]]}]]}],["$","div",null,{"className":"border-t border-gray-800 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center","children":[["$","p",null,{"className":"text-gray-500 text-sm","children":["© ",2025," AI-OralCancer. All rights reserved."]}],["$","div",null,{"className":"flex space-x-6 mt-4 md:mt-0","children":[["$","$L6",null,{"href":"#","className":"text-gray-500 hover:text-gray-300 text-sm","children":"Privacy Policy"}],["$","$L6",null,{"href":"#","className":"text-gray-500 hover:text-gray-300 text-sm","children":"Terms of Service"}],["$","$L6",null,{"href":"#","className":"text-gray-500 hover:text-gray-300 text-sm","children":"Contact"}]]}]]}]]}]}]]}]}]}]]}],{"children":["diagnosis-steps",["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],"$undefined",null,["$","$Lb",null,{"children":["$Lc","$Ld",null]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","HQJegD4hCsS0QwlaqLslI",{"children":[["$","$Le",null,{"children":"$Lf"}],null]}],["$","$L10",null,{"children":"$L11"}]]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
| 15 |
+
9:{}
|
| 16 |
+
a:{}
|
| 17 |
+
f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
| 18 |
+
c:null
|
| 19 |
+
d:null
|
| 20 |
+
11:[["$","title","0",{"children":"AI in Oral Cancer Diagnosis"}],["$","meta","1",{"name":"description","content":"Early detection through intelligent imaging"}],["$","meta","2",{"name":"generator","content":"v0.dev"}]]
|
static/main/five.jpeg
ADDED
|
static/main/index.html
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/ce70925ddb507bf6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-192c331ddd84790e.js"/><script src="/_next/static/chunks/4bd1b696-585f188d732414ff.js" async=""></script><script src="/_next/static/chunks/684-98bea1a58a90994f.js" async=""></script><script src="/_next/static/chunks/main-app-dc518554d77a2eae.js" async=""></script><script src="/_next/static/chunks/436-4434bdf56ece092d.js" async=""></script><script src="/_next/static/chunks/874-15a3df30cc819263.js" async=""></script><script src="/_next/static/chunks/953-3efb90282c9a4140.js" async=""></script><script src="/_next/static/chunks/app/layout-1282207399fa10f1.js" async=""></script><script src="/_next/static/chunks/app/page-c468fa91873bdb5d.js" async=""></script><title>AI in Oral Cancer Diagnosis</title><meta name="description" content="Early detection through intelligent imaging"/><meta name="generator" content="v0.dev"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__className_e8ce0c bg-gray-50 text-gray-900 dark:bg-gray-950 dark:text-gray-100 min-h-screen flex flex-col"><script>((e,t,r,n,o,i,a,s)=>{let l=document.documentElement,u=["light","dark"];function c(t){var r;(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&i?o.map(e=>i[e]||e):o;r?(l.classList.remove(...n),l.classList.add(i&&i[t]?i[t]:t)):l.setAttribute(e,t)}),r=t,s&&u.includes(r)&&(l.style.colorScheme=r)}if(n)c(n);else try{let e=localStorage.getItem(t)||r,n=a&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(n)}catch(e){}})("class","theme","dark",null,["light","dark"],null,true,true)</script><nav class="fixed top-0 w-full z-50 transition-all duration-300 bg-transparent"><div class="container mx-auto px-4"><div class="flex items-center justify-between h-16"><a class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500" href="/">AI-OralCancer</a><div class="hidden md:flex items-center space-x-6"><a class="transition-colors hover:text-purple-400 text-purple-500 font-medium" href="/">Home</a><a class="transition-colors hover:text-purple-400 text-gray-300" href="/real-world">Real-World</a><a class="transition-colors hover:text-purple-400 text-gray-300" href="/predict">Predict</a><a class="transition-colors hover:text-purple-400 text-gray-300" href="/diagnosis-steps">Diagnosis Steps</a><a class="transition-colors hover:text-purple-400 text-gray-300" href="/cnn-explained">CNN Explained</a><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border hover:bg-accent hover:text-accent-foreground h-10 w-10 bg-transparent border-gray-700" type="button" id="radix-«R19db»" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span class="sr-only">Toggle theme</span></button></div><div class="flex md:hidden items-center space-x-4"><button class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border hover:bg-accent hover:text-accent-foreground h-10 w-10 bg-transparent border-gray-700" type="button" id="radix-«Rtdb»" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"><path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"></path></svg><span class="sr-only">Toggle theme</span></button><button class="text-gray-300 hover:text-white focus:outline-none"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu"><line x1="4" x2="20" y1="12" y2="12"></line><line x1="4" x2="20" y1="6" y2="6"></line><line x1="4" x2="20" y1="18" y2="18"></line></svg></button></div></div></div></nav><main class="flex-grow"><div class="relative"><section class="relative h-screen flex items-center justify-center overflow-hidden"><canvas class="absolute inset-0 w-full h-full bg-gradient-to-b from-gray-950 to-gray-900"></canvas><div class="container mx-auto px-4 z-10 text-center"><div class="space-y-6" style="opacity:0"><h1 class="text-4xl md:text-6xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500" style="opacity:0;transform:translateY(20px)">AI in Oral Cancer Diagnosis</h1><p class="text-xl md:text-2xl max-w-2xl mx-auto text-gray-300" style="opacity:0;transform:translateY(20px)">Early detection through intelligent imaging</p><div class="flex flex-col sm:flex-row gap-4 justify-center mt-8" style="opacity:0;transform:translateY(20px)"><button class="px-6 py-3 bg-purple-600 hover:bg-purple-700 rounded-lg font-medium flex items-center justify-center gap-2 transition-colors">Learn More <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg></button><a class="px-6 py-3 bg-cyan-600 hover:bg-cyan-700 rounded-lg font-medium transition-colors" href="/predict">Try Prediction</a></div></div></div><div class="absolute bottom-8 left-1/2 transform -translate-x-1/2 animate-bounce"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-down"><path d="M12 5v14"></path><path d="m19 12-7 7-7-7"></path></svg></div></section><section class="py-20 bg-gray-900"><div class="container mx-auto px-4"><div class="max-w-3xl mx-auto" style="opacity:0"><h2 class="text-3xl md:text-4xl font-bold mb-8 text-center" style="opacity:0;transform:translateY(20px)">About Oral Cancer</h2><div class="space-y-6 text-gray-300" style="opacity:0;transform:translateY(20px)"><p>Oral cancer is a significant global health concern, characterized by the uncontrolled growth of cells in the oral cavity. It typically manifests as a persistent<!-- --> <span class="relative inline-block"><span class="border-b border-dashed border-purple-400 text-purple-400 cursor-help" tabindex="0">lesion</span></span> <!-- -->in the mouth that doesn't heal within two weeks. The most common form is squamous cell carcinoma, which accounts for over 90% of all oral malignancies.</p><p>Risk factors include tobacco use (smoking and smokeless), excessive alcohol consumption, human papillomavirus (HPV) infection, and prolonged sun exposure (for lip cancers). Early detection is crucial, often requiring a<!-- --> <span class="relative inline-block"><span class="border-b border-dashed border-purple-400 text-purple-400 cursor-help" tabindex="0">biopsy</span></span> <!-- -->for definitive diagnosis.</p><p>In countries like India, oral cancer is particularly prevalent, accounting for approximately 30% of all cancers. This high incidence is attributed to widespread tobacco and betel quid chewing habits. The five-year survival rate drops dramatically from 83% for localized cases to just 32% for cases where cancer has spread, highlighting the importance of early detection.</p><p>Early stages of oral cancer may present as white or red patches (leukoplakia or erythroplakia) that can progress to<!-- --> <span class="relative inline-block"><span class="border-b border-dashed border-purple-400 text-purple-400 cursor-help" tabindex="0">dysplasia</span></span> <!-- -->and eventually invasive carcinoma if left untreated. Traditional diagnostic methods rely heavily on clinical examination followed by histopathological analysis, which can be time-consuming and subjective.</p></div></div></div></section><section class="py-20 bg-gray-950"><div class="container mx-auto px-4"><div class="max-w-4xl mx-auto" style="opacity:0"><h2 class="text-3xl md:text-4xl font-bold mb-12 text-center" style="opacity:0;transform:translateY(20px)">AI in Diagnosis</h2><div class="space-y-8 text-gray-300" style="opacity:0;transform:translateY(20px)"><p><span class="relative inline-block"><span class="border-b border-dashed border-purple-400 text-purple-400 cursor-help" tabindex="0">Convolutional neural networks</span></span> <!-- -->(CNNs) have revolutionized medical image analysis by automatically extracting relevant features from oral cavity images. These networks consist of multiple layers that progressively learn to identify patterns associated with cancerous and pre-cancerous conditions.</p><div class="grid grid-cols-1 md:grid-cols-3 gap-8 my-12"><div class="bg-gray-800 p-6 rounded-lg flex flex-col items-center text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-microscope h-12 w-12 text-purple-500 mb-4"><path d="M6 18h8"></path><path d="M3 22h18"></path><path d="M14 22a7 7 0 1 0 0-14h-1"></path><path d="M9 14h2"></path><path d="M9 12a2 2 0 0 1-2-2V6h6v4a2 2 0 0 1-2 2Z"></path><path d="M12 6V3a1 1 0 0 0-1-1H9a1 1 0 0 0-1 1v3"></path></svg><h3 class="text-xl font-semibold mb-2">Input</h3><p class="text-gray-400">High-resolution images of oral tissue are fed into the model</p></div><div class="bg-gray-800 p-6 rounded-lg flex flex-col items-center text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-brain h-12 w-12 text-cyan-500 mb-4"><path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"></path><path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"></path><path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4"></path><path d="M17.599 6.5a3 3 0 0 0 .399-1.375"></path><path d="M6.003 5.125A3 3 0 0 0 6.401 6.5"></path><path d="M3.477 10.896a4 4 0 0 1 .585-.396"></path><path d="M19.938 10.5a4 4 0 0 1 .585.396"></path><path d="M6 18a4 4 0 0 1-1.967-.516"></path><path d="M19.967 17.484A4 4 0 0 1 18 18"></path></svg><h3 class="text-xl font-semibold mb-2">Feature Extraction</h3><p class="text-gray-400">The CNN identifies key visual patterns using<!-- --> <span class="relative inline-block"><span class="border-b border-dashed border-purple-400 text-purple-400 cursor-help" tabindex="0">activation functions</span></span></p></div><div class="bg-gray-800 p-6 rounded-lg flex flex-col items-center text-center"><div class="h-12 w-12 text-green-500 mb-4 flex items-center justify-center"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-10 h-10"><path stroke-linecap="round" stroke-linejoin="round" d="M7.5 14.25v2.25m3-4.5v4.5m3-6.75v6.75m3-9v9M6 20.25h12A2.25 2.25 0 0020.25 18V6A2.25 2.25 0 0018 3.75H6A2.25 2.25 0 003.75 6v12A2.25 2.25 0 006 20.25z"></path></svg></div><h3 class="text-xl font-semibold mb-2">Classification</h3><p class="text-gray-400">The<!-- --> <span class="relative inline-block"><span class="border-b border-dashed border-purple-400 text-purple-400 cursor-help" tabindex="0">classifier</span></span> <!-- -->determines the probability of malignancy</p></div></div><p>AI-powered diagnosis offers several advantages over traditional methods:</p><ul class="list-disc pl-6 space-y-2"><li>Reduced subjectivity and inter-observer variability</li><li>Faster results, enabling quicker treatment decisions</li><li>Potential for earlier detection of subtle changes invisible to the human eye</li><li>Accessibility in regions with limited access to pathologists</li><li>Quantitative assessment of disease progression</li></ul><p>By combining the expertise of healthcare professionals with the analytical power of AI, we can significantly improve early detection rates and patient outcomes in oral cancer cases.</p></div></div></div></section></div></main><footer class="bg-gray-900 py-12 border-t border-gray-800"><div class="container mx-auto px-4"><div class="flex flex-col md:flex-row justify-between items-center"><div class="mb-6 md:mb-0"><h2 class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500">AI-OralCancer</h2><p class="text-gray-400 mt-2 max-w-md">Advancing early detection of oral cancer through artificial intelligence and deep learning technologies.</p></div><div class="flex space-x-6"><a target="_blank" rel="noopener noreferrer" class="text-gray-400 hover:text-white transition-colors" href="https://github.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github h-6 w-6"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg><span class="sr-only">GitHub</span></a><a target="_blank" rel="noopener noreferrer" class="text-gray-400 hover:text-white transition-colors" href="https://twitter.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-twitter h-6 w-6"><path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"></path></svg><span class="sr-only">Twitter</span></a><a target="_blank" rel="noopener noreferrer" class="text-gray-400 hover:text-white transition-colors" href="https://linkedin.com"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-linkedin h-6 w-6"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect width="4" height="12" x="2" y="9"></rect><circle cx="4" cy="4" r="2"></circle></svg><span class="sr-only">LinkedIn</span></a></div></div><div class="border-t border-gray-800 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center"><p class="text-gray-500 text-sm">© <!-- -->2025<!-- --> AI-OralCancer. All rights reserved.</p><div class="flex space-x-6 mt-4 md:mt-0"><a class="text-gray-500 hover:text-gray-300 text-sm" href="#">Privacy Policy</a><a class="text-gray-500 hover:text-gray-300 text-sm" href="#">Terms of Service</a><a class="text-gray-500 hover:text-gray-300 text-sm" href="#">Contact</a></div></div></div></footer><script src="/_next/static/chunks/webpack-192c331ddd84790e.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9304,[\"436\",\"static/chunks/436-4434bdf56ece092d.js\",\"874\",\"static/chunks/874-15a3df30cc819263.js\",\"953\",\"static/chunks/953-3efb90282c9a4140.js\",\"177\",\"static/chunks/app/layout-1282207399fa10f1.js\"],\"ThemeProvider\"]\n3:I[3658,[\"436\",\"static/chunks/436-4434bdf56ece092d.js\",\"874\",\"static/chunks/874-15a3df30cc819263.js\",\"953\",\"static/chunks/953-3efb90282c9a4140.js\",\"177\",\"static/chunks/app/layout-1282207399fa10f1.js\"],\"default\"]\n4:I[7555,[],\"\"]\n5:I[1295,[],\"\"]\n6:I[6874,[\"436\",\"static/chunks/436-4434bdf56ece092d.js\",\"874\",\"static/chunks/874-15a3df30cc819263.js\",\"953\",\"static/chunks/953-3efb90282c9a4140.js\",\"177\",\"static/chunks/app/layout-1282207399fa10f1.js\"],\"\"]\n7:I[894,[],\"ClientPageRoot\"]\n8:I[3103,[\"436\",\"static/chunks/436-4434bdf56ece092d.js\",\"874\",\"static/chunks/874-15a3df30cc819263.js\",\"974\",\"static/chunks/app/page-c468fa91873bdb5d.js\"],\"default\"]\nb:I[9665,[],\"OutletBoundary\"]\ne:I[9665,[],\"ViewportBoundary\"]\n10:I[9665,[],\"MetadataBoundary\"]\n12:I[6614,[],\"\"]\n:HL[\"/_next/static/css/ce70925ddb507bf6.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"mDISYaUQpvXufxGEtni62\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ce70925ddb507bf6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__className_e8ce0c bg-gray-50 text-gray-900 dark:bg-gray-950 dark:text-gray-100 min-h-screen flex flex-col\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"dark\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-grow\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"footer\",null,{\"className\":\"bg-gray-900 py-12 border-t border-gray-800\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto px-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col md:flex-row justify-between items-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-6 md:mb-0\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500\",\"children\":\"AI-OralCancer\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 mt-2 max-w-md\",\"children\":\"Advancing early detection of oral cancer through artificial intelligence and deep learning technologies.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex space-x-6\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"https://github.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-github h-6 w-6\",\"children\":[[\"$\",\"path\",\"tonef\",{\"d\":\"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4\"}],[\"$\",\"path\",\"9comsn\",{\"d\":\"M9 18c-4.51 2-5-2-7-2\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"GitHub\"}]]}],[\"$\",\"$L6\",null,{\"href\":\"https://twitter.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-twitter h-6 w-6\",\"children\":[[\"$\",\"path\",\"pff0z6\",{\"d\":\"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"Twitter\"}]]}],[\"$\",\"$L6\",null,{\"href\":\"https://linkedin.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-linkedin h-6 w-6\",\"children\":[[\"$\",\"path\",\"c2jq9f\",{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"}],[\"$\",\"rect\",\"mk3on5\",{\"width\":\"4\",\"height\":\"12\",\"x\":\"2\",\"y\":\"9\"}],[\"$\",\"circle\",\"bt5ra8\",{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"}],\"$undefined\"]}],[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":\"LinkedIn\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"border-t border-gray-800 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-gray-500 text-sm\",\"children\":[\"© \",2025,\" AI-OralCancer. All rights reserved.\"]}],[\"$\",\"div\",null,{\"className\":\"flex space-x-6 mt-4 md:mt-0\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"#\",\"className\":\"text-gray-500 hover:text-gray-300 text-sm\",\"children\":\"Privacy Policy\"}],[\"$\",\"$L6\",null,{\"href\":\"#\",\"className\":\"text-gray-500 hover:text-gray-300 text-sm\",\"children\":\"Terms of Service\"}],[\"$\",\"$L6\",null,{\"href\":\"#\",\"className\":\"text-gray-500 hover:text-gray-300 text-sm\",\"children\":\"Contact\"}]]}]]}]]}]}]]}]}]}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L7\",null,{\"Component\":\"$8\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@9\",\"$@a\"]}],\"$undefined\",null,[\"$\",\"$Lb\",null,{\"children\":[\"$Lc\",\"$Ld\",null]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$1\",\"42A1_X_lu3XApijc3AXLb\",{\"children\":[[\"$\",\"$Le\",null,{\"children\":\"$Lf\"}],null]}],[\"$\",\"$L10\",null,{\"children\":\"$L11\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",\"$undefined\"],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:{}\na:{}\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nc:null\n"])</script><script>self.__next_f.push([1,"d:null\n11:[[\"$\",\"title\",\"0\",{\"children\":\"AI in Oral Cancer Diagnosis\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Early detection through intelligent imaging\"}],[\"$\",\"meta\",\"2\",{\"name\":\"generator\",\"content\":\"v0.dev\"}]]\n"])</script></body></html>
|
static/main/index.txt
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
1:"$Sreact.fragment"
|
| 2 |
+
2:I[9304,["436","static/chunks/436-4434bdf56ece092d.js","874","static/chunks/874-15a3df30cc819263.js","953","static/chunks/953-3efb90282c9a4140.js","177","static/chunks/app/layout-1282207399fa10f1.js"],"ThemeProvider"]
|
| 3 |
+
3:I[3658,["436","static/chunks/436-4434bdf56ece092d.js","874","static/chunks/874-15a3df30cc819263.js","953","static/chunks/953-3efb90282c9a4140.js","177","static/chunks/app/layout-1282207399fa10f1.js"],"default"]
|
| 4 |
+
4:I[7555,[],""]
|
| 5 |
+
5:I[1295,[],""]
|
| 6 |
+
6:I[6874,["436","static/chunks/436-4434bdf56ece092d.js","874","static/chunks/874-15a3df30cc819263.js","953","static/chunks/953-3efb90282c9a4140.js","177","static/chunks/app/layout-1282207399fa10f1.js"],""]
|
| 7 |
+
7:I[894,[],"ClientPageRoot"]
|
| 8 |
+
8:I[3103,["436","static/chunks/436-4434bdf56ece092d.js","874","static/chunks/874-15a3df30cc819263.js","974","static/chunks/app/page-c468fa91873bdb5d.js"],"default"]
|
| 9 |
+
b:I[9665,[],"OutletBoundary"]
|
| 10 |
+
e:I[9665,[],"ViewportBoundary"]
|
| 11 |
+
10:I[9665,[],"MetadataBoundary"]
|
| 12 |
+
12:I[6614,[],""]
|
| 13 |
+
:HL["/_next/static/css/ce70925ddb507bf6.css","style"]
|
| 14 |
+
0:{"P":null,"b":"mDISYaUQpvXufxGEtni62","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/ce70925ddb507bf6.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__className_e8ce0c bg-gray-50 text-gray-900 dark:bg-gray-950 dark:text-gray-100 min-h-screen flex flex-col","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","enableSystem":true,"disableTransitionOnChange":true,"children":[["$","$L3",null,{}],["$","main",null,{"className":"flex-grow","children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"bg-gray-900 py-12 border-t border-gray-800","children":["$","div",null,{"className":"container mx-auto px-4","children":[["$","div",null,{"className":"flex flex-col md:flex-row justify-between items-center","children":[["$","div",null,{"className":"mb-6 md:mb-0","children":[["$","h2",null,{"className":"text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-purple-500 to-cyan-500","children":"AI-OralCancer"}],["$","p",null,{"className":"text-gray-400 mt-2 max-w-md","children":"Advancing early detection of oral cancer through artificial intelligence and deep learning technologies."}]]}],["$","div",null,{"className":"flex space-x-6","children":[["$","$L6",null,{"href":"https://github.com","target":"_blank","rel":"noopener noreferrer","className":"text-gray-400 hover:text-white transition-colors","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-github h-6 w-6","children":[["$","path","tonef",{"d":"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"}],["$","path","9comsn",{"d":"M9 18c-4.51 2-5-2-7-2"}],"$undefined"]}],["$","span",null,{"className":"sr-only","children":"GitHub"}]]}],["$","$L6",null,{"href":"https://twitter.com","target":"_blank","rel":"noopener noreferrer","className":"text-gray-400 hover:text-white transition-colors","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-twitter h-6 w-6","children":[["$","path","pff0z6",{"d":"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"}],"$undefined"]}],["$","span",null,{"className":"sr-only","children":"Twitter"}]]}],["$","$L6",null,{"href":"https://linkedin.com","target":"_blank","rel":"noopener noreferrer","className":"text-gray-400 hover:text-white transition-colors","children":[["$","svg",null,{"ref":"$undefined","xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-linkedin h-6 w-6","children":[["$","path","c2jq9f",{"d":"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"}],["$","rect","mk3on5",{"width":"4","height":"12","x":"2","y":"9"}],["$","circle","bt5ra8",{"cx":"4","cy":"4","r":"2"}],"$undefined"]}],["$","span",null,{"className":"sr-only","children":"LinkedIn"}]]}]]}]]}],["$","div",null,{"className":"border-t border-gray-800 mt-8 pt-8 flex flex-col md:flex-row justify-between items-center","children":[["$","p",null,{"className":"text-gray-500 text-sm","children":["© ",2025," AI-OralCancer. All rights reserved."]}],["$","div",null,{"className":"flex space-x-6 mt-4 md:mt-0","children":[["$","$L6",null,{"href":"#","className":"text-gray-500 hover:text-gray-300 text-sm","children":"Privacy Policy"}],["$","$L6",null,{"href":"#","className":"text-gray-500 hover:text-gray-300 text-sm","children":"Terms of Service"}],["$","$L6",null,{"href":"#","className":"text-gray-500 hover:text-gray-300 text-sm","children":"Contact"}]]}]]}]]}]}]]}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],"$undefined",null,["$","$Lb",null,{"children":["$Lc","$Ld",null]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","42A1_X_lu3XApijc3AXLb",{"children":[["$","$Le",null,{"children":"$Lf"}],null]}],["$","$L10",null,{"children":"$L11"}]]}],false]],"m":"$undefined","G":["$12","$undefined"],"s":false,"S":true}
|
| 15 |
+
9:{}
|
| 16 |
+
a:{}
|
| 17 |
+
f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
| 18 |
+
c:null
|
| 19 |
+
d:null
|
| 20 |
+
11:[["$","title","0",{"children":"AI in Oral Cancer Diagnosis"}],["$","meta","1",{"name":"description","content":"Early detection through intelligent imaging"}],["$","meta","2",{"name":"generator","content":"v0.dev"}]]
|
static/main/placeholder-logo.png
ADDED
|
static/main/placeholder-logo.svg
ADDED
|
|
static/main/placeholder-user.jpg
ADDED
|