@import url(https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Lora:ital,wght@0,400;0,600;1,400&display=swap);:root{--primary-color:#2c2c2c;--secondary-color:#f1f3f5;--accent-color:#666;--background:#fff;--text-primary:#333;--text-secondary:#666;--navbar-height:60px;--container-padding:clamp(1rem,5vw,2rem);--font-heading:"Playfair Display",serif;--font-body:"Lora",serif}#root,body,html{height:100%}[data-theme=dark]{--primary-color:#e0e0e0;--secondary-color:#2a2a2a;--accent-color:#757575;--background:#121212;--text-primary:#f5f5f5;--text-secondary:#bdbdbd}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;background:var(--background);color:#333;color:var(--text-primary);font-family:Lora,serif;font-family:var(--font-body);height:100%;letter-spacing:.02em;line-height:1.6}.App,body{overflow:hidden}.App{height:100dvh;min-height:100dvh;position:relative}.content,.page-transition-shell{height:100%}.content{overflow:hidden;padding:0 clamp(1rem,4vw,2rem)}.content--full-bleed{padding:0}.theme-toggle{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #666;border:1px solid var(--accent-color);border-radius:999px;color:#333;color:var(--text-primary);cursor:pointer;display:flex;font-family:Lora,serif;font-family:var(--font-body);font-size:1rem;font-weight:400;justify-content:center;min-height:44px;min-width:44px;padding:.65rem .85rem;position:fixed;right:30px;top:30px;transition:all .3s ease;z-index:1001}.theme-toggle:hover{background:#333;background:var(--text-primary);color:#fff;color:var(--background);transform:translateY(-1px)}.home-container{background:#fff;background:var(--background);height:100%;min-height:0;padding:clamp(.75rem,2vh,1.5rem) 0 clamp(4.5rem,8vh,5.5rem)}.home-container,.quadrant-content{align-items:center;display:flex;justify-content:center;width:100%}.quadrant-content{background:color-mix(in oklab,#fff 92%,#333 8%);background:color-mix(in oklab,var(--background) 92%,var(--text-primary) 8%);border:1px solid #666;border:1px solid var(--accent-color);border-radius:18px;box-shadow:0 16px 40px #00000014;flex-direction:column;font-family:Playfair Display,serif;font-family:var(--font-heading);font-weight:200;gap:2rem;max-width:900px;padding:2rem;text-align:center}.info-block{align-items:center;display:flex;flex-direction:column;gap:.5rem}.info-line{color:#333;color:var(--text-primary);font-family:Playfair Display,serif;font-family:var(--font-heading);font-size:clamp(1.05rem,2.5vw,1.4rem);font-weight:500;letter-spacing:.15em;line-height:1.5;text-align:center;white-space:nowrap}.home-section{color:#666;color:var(--text-secondary);display:block;font-size:.95rem;font-weight:700;letter-spacing:.18em;margin-bottom:.5em;text-transform:uppercase}.home-title{color:#333;color:var(--text-primary);font-size:2.6rem;font-weight:800;letter-spacing:.01em;line-height:1.1;margin:.2em 0 .3em}.home-subtitle{color:#666;color:var(--text-secondary);font-size:1.15rem;font-style:italic;margin-bottom:1.2em}.home-description,.home-subtitle{font-family:Lora,serif;font-family:var(--font-body)}.home-description{color:#333;color:var(--text-primary);font-size:1.08rem;margin-top:.5em}.about-container{align-items:center;height:100%;justify-content:center;min-height:0;padding:clamp(.75rem,2vh,1.5rem) 0 clamp(4.5rem,8vh,5.5rem)}.about-container,.about-content{background:#fff;background:var(--background);display:flex;width:100%}.about-content{border:1px solid #666;border:1px solid var(--accent-color);border-radius:18px;box-shadow:0 16px 40px #00000014;max-width:900px;min-height:420px;overflow:hidden;padding:2rem}.about-text{display:flex;flex:2 1 400px;flex-direction:column;justify-content:center;padding:2.5rem 2.5rem 2rem}.about-section{color:#666;color:var(--text-secondary);display:block;font-size:.95rem;font-weight:700;letter-spacing:.18em;margin-bottom:.5em;text-transform:uppercase}.about-title{color:#333;color:var(--text-primary);font-size:clamp(2rem,6vw,2.6rem);font-weight:800;letter-spacing:.01em;line-height:1.1;margin:.2em 0 .3em}.about-description{color:#666;color:var(--text-secondary);font-size:1.06rem;font-style:normal;margin-bottom:1.2em}.about-description,.about-skills{font-family:Lora,serif;font-family:var(--font-body)}.about-skills{font-size:1.08rem;margin-top:.5em}.about-skills,.about-skills h3{color:#333;color:var(--text-primary)}.about-skills h3{font-size:1.3rem;font-weight:600;margin-bottom:1rem}.about-skills ul{list-style:none;padding:0}.about-skills li{border-bottom:1px solid #666;border-bottom:1px solid var(--accent-color);color:#333;color:var(--text-primary);font-family:Lora,serif;font-family:var(--font-body);font-size:1.08rem;padding:.3em 0}.gallery-page{align-items:center;height:100%;justify-content:center;min-height:0;padding:clamp(.75rem,2vh,1.5rem) 0 clamp(4.5rem,8vh,5.5rem)}.gallery-header,.gallery-page{background:#fff;background:var(--background);display:flex;flex-direction:column;overflow:hidden;width:100%}.gallery-header{border:1px solid #666;border:1px solid var(--accent-color);border-radius:18px;box-shadow:0 16px 40px #00000014;margin-bottom:1.25rem;max-width:900px;min-height:340px;padding:2rem}.gallery-section{color:#666;color:var(--text-secondary);display:block;font-size:.95rem;font-weight:700;letter-spacing:.18em;margin-bottom:.5em;text-transform:uppercase}.gallery-title{color:#333;color:var(--text-primary);font-size:clamp(2rem,6vw,2.6rem);font-weight:800;letter-spacing:.01em;line-height:1.1;margin:.2em 0 .3em}.gallery-subtitle{color:#666;color:var(--text-secondary);font-family:Lora,serif;font-family:var(--font-body);font-size:1.15rem;font-style:italic;margin-bottom:1.2em}.contact-container{align-items:center;height:100%;justify-content:center;min-height:0;padding:clamp(.75rem,2vh,1.5rem) 0 clamp(4.5rem,8vh,5.5rem)}.contact-container,.contact-content{background:#fff;background:var(--background);display:flex;width:100%}.contact-content{border:1px solid #666;border:1px solid var(--accent-color);border-radius:18px;box-shadow:0 16px 40px #00000014;max-width:900px;min-height:420px;overflow:hidden;padding:2rem}.contact-section{color:#666;color:var(--text-secondary);display:block;font-size:.95rem;font-weight:700;letter-spacing:.18em;margin-bottom:.5em;text-transform:uppercase}.contact-title{color:#333;color:var(--text-primary);font-size:clamp(2rem,6vw,2.6rem);font-weight:800;letter-spacing:.01em;line-height:1.1;margin:.2em 0 .3em}.contact-subtitle{color:#666;color:var(--text-secondary);font-family:Lora,serif;font-family:var(--font-body);font-size:1.06rem;font-style:italic;margin-bottom:1.2em}.contact-form{margin-top:2rem}.contact-form-row{display:flex;gap:1rem;margin-bottom:1rem}.contact-form-field{flex:1 1}.contact-form-label{color:#666;color:var(--text-secondary);display:block;font-family:Lora,serif;font-family:var(--font-body);font-size:.9rem;margin-bottom:.5rem}.contact-form-input,.contact-form-textarea{background:#fff;background:var(--background);border:1px solid #666;border:1px solid var(--accent-color);color:#333;color:var(--text-primary);font-family:Lora,serif;font-family:var(--font-body);font-size:1rem;padding:.8rem;width:100%}.contact-form-input:focus,.contact-form-textarea:focus{border-color:#333;border-color:var(--text-primary);outline:none}.contact-form-input::placeholder,.contact-form-textarea::placeholder{color:#666;color:var(--text-secondary);font-style:italic}.contact-form-textarea{min-height:120px;resize:vertical}.contact-form-submit{background:#333;background:var(--text-primary);border:none;color:#fff;color:var(--background);cursor:pointer;font-family:Lora,serif;font-family:var(--font-body);font-size:1rem;margin-top:1rem;padding:1rem 2rem;transition:all .3s ease}.contact-form-submit:hover{background:#666;background:var(--accent-color)}.contact-alternative{border-top:1px solid #666;border-top:1px solid var(--accent-color);margin-top:2rem;padding-top:2rem}.contact-alternative h3{color:#333;color:var(--text-primary);font-family:Playfair Display,serif;font-family:var(--font-heading);font-size:1.2rem;margin-bottom:1rem}.social-links{display:flex;flex-wrap:wrap;gap:1rem}.social-links a{border:1px solid #666;border:1px solid var(--accent-color);border-radius:999px;color:#333;color:var(--text-primary);font-family:Lora,serif;font-family:var(--font-body);padding:.6rem 1rem;text-decoration:none;transition:all .3s ease}.social-links a:hover{background:#333;background:var(--text-primary);color:#fff;color:var(--background);transform:translateY(-1px)}.floating-navbar{background:#fffffff2;border:1px solid #666;border-radius:25px;bottom:30px;box-shadow:0 4px 20px #0000001a;gap:1.5rem;padding:.8rem 1.5rem}.floating-navbar a{color:#333;color:var(--text-primary);font-family:Lora,serif;font-family:var(--font-body);font-size:.9rem;text-decoration:none;transition:color .3s ease;white-space:nowrap}.floating-navbar a:hover{color:#666;color:var(--accent-color)}.floating-navbar a.active{color:#333;color:var(--text-primary);font-weight:600}@media (max-width:900px){.about-content,.contact-content,.gallery-header,.home-content,.projects-content{margin:1rem;padding:1.5rem}.about-text,.home-text{padding:1.5rem}.about-title,.contact-title,.gallery-title,.home-title,.projects-title{font-size:2rem}.projects-grid{grid-template-columns:1fr}.theme-toggle{font-size:.8rem;padding:6px 12px;right:20px;top:20px}.floating-navbar{bottom:20px;gap:1rem;padding:.6rem 1rem}.floating-navbar a{font-size:.8rem}}@media (max-width:600px){.about-text,.home-text{padding:1rem}.about-title,.contact-title,.gallery-title,.home-title,.projects-title{font-size:1.8rem}.about-description,.contact-subtitle,.gallery-subtitle,.home-subtitle{font-size:1rem}.contact-form-row{flex-direction:column}.floating-navbar{flex-wrap:wrap;justify-content:center;max-width:90vw}}[data-theme=dark] .theme-toggle{background:#1e1e1ef2;border:1px solid #757575;color:#f5f5f5}[data-theme=dark] .theme-toggle:hover{background:#f5f5f5;color:#181818}.cursor{animation:blink 1s step-end infinite;display:inline-block;font-weight:300;margin-left:1px}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}[data-theme=dark] .about-content,[data-theme=dark] .contact-content,[data-theme=dark] .gallery-header,[data-theme=dark] .quadrant-content{box-shadow:0 18px 45px #00000073}.projects-container{align-items:center;background:var(--background);display:flex;flex-direction:column;height:100%;justify-content:center;min-height:0;padding:clamp(.75rem,2vh,1.5rem) 0 clamp(4.5rem,8vh,5.5rem);width:100%}.projects-title{color:var(--text-primary);font-size:clamp(2rem,6vw,3rem);font-weight:700;margin-bottom:2rem;text-align:center;width:100%}.projects-grid{display:flex;gap:1.5rem;justify-content:center;max-width:960px;width:100%}.project-card{background:color-mix(in oklab,var(--background) 90%,var(--text-primary) 10%);border:1px solid var(--accent-color);border-radius:18px;box-shadow:0 16px 36px #0000001f;box-sizing:border-box;color:var(--text-primary);display:block;padding:1.5rem;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;width:min(430px,92vw)}[data-theme=dark] .project-card{background:color-mix(in oklab,#121212 78%,#fff 22%)}.project-card:hover{border-color:var(--text-primary);box-shadow:0 18px 34px #0003;transform:translateY(-4px)}.project-card h2{color:var(--text-primary);font-size:1.6rem;font-weight:600;margin-bottom:.75rem}.project-card p{color:var(--text-secondary);line-height:1.6}.photo-gallery{background:var(--background);border:1.5px solid var(--accent-color);border-radius:24px;box-shadow:0 8px 40px #0000002e,0 1.5px 8px #0000001a;margin-top:2rem;max-width:900px;padding:2.5rem 2.5rem 2rem;width:100%}.gallery-container{width:100%}.image-container{background:color-mix(in oklab,var(--background) 94%,var(--text-primary) 6%);border:1px solid var(--accent-color);border-radius:12px;height:400px;margin-bottom:2rem;overflow:hidden;position:relative;width:100%}.gallery-empty-state{color:var(--text-secondary);display:grid;font-size:1.1rem;height:100%;letter-spacing:.02em;place-items:center;width:100%}.gallery-image{border-radius:12px;height:100%;object-fit:cover;transition:opacity .3s ease;width:100%}.gallery-controls{align-items:center;display:flex;gap:1rem;justify-content:space-between}.nav-button{background:color-mix(in oklab,var(--background) 94%,var(--text-primary) 6%);border:1px solid var(--accent-color);border-radius:25px;color:var(--text-primary);cursor:pointer;font-family:Lora,serif;font-size:16px;font-weight:600;padding:12px 24px;transition:all .3s ease}.nav-button:hover:not(:disabled){background:color-mix(in oklab,var(--background) 85%,var(--text-primary) 15%);transform:translateY(-1px)}.nav-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.page-indicator{background:color-mix(in oklab,var(--background) 94%,var(--text-primary) 6%);border:1px solid var(--accent-color);border-radius:20px;color:var(--text-primary);font-family:Lora,serif;font-size:18px;font-weight:600;padding:10px 20px}@media (max-width:900px){.photo-gallery{max-width:98vw;padding:1.5rem 1.2rem 1.2rem}.image-container{height:300px}.gallery-controls{flex-direction:column;gap:1rem}.nav-button{max-width:200px;width:100%}}@media (max-width:600px){.photo-gallery{padding:1rem .5rem}}.snake-game-container{--sg-bg:#f2f2f2;--sg-panel-bg:#fafafa;--sg-accent:#111;--sg-accent-soft:#2a2a2a;--sg-cta-text:#fafafa;--sg-danger:#d43f3f;--sg-overlay-bg:#fafafae0;--sg-shadow:#00000038;--sg-grid-dot:#00000017;align-items:center;background:var(--sg-bg);box-sizing:border-box;color:var(--sg-accent);display:flex;flex-direction:column;font-family:Courier New,monospace;gap:clamp(.6rem,1.8vh,1rem);height:100%;justify-content:space-between;min-height:0;overflow:hidden;padding:clamp(.75rem,2vh,1.1rem) clamp(1rem,3vw,1.6rem) calc(clamp(4.8rem, 10vh, 6rem) + env(safe-area-inset-bottom));width:100%}[data-theme=dark] .snake-game-container{--sg-bg:#0a0a0a;--sg-panel-bg:#0a0a0a;--sg-accent:#fff;--sg-accent-soft:#dedede;--sg-cta-text:#111;--sg-danger:#ff3030;--sg-overlay-bg:#000c;--sg-shadow:#ffffffad;--sg-grid-dot:#ffffff21}.snake-game-header{margin-bottom:0;max-width:600px;text-align:center;width:100%}.snake-game-title{color:var(--sg-accent);font-family:Courier New,monospace;font-size:clamp(1.8rem,4.2vw,2.8rem);font-weight:700;margin-bottom:.6rem;text-shadow:0 0 10px var(--sg-shadow)}.snake-game-info{align-items:center;display:flex;flex-wrap:wrap;font-size:clamp(1rem,2.5vw,1.2rem);gap:clamp(1rem,3vw,2rem);justify-content:space-between}.snake-game-score{color:var(--sg-accent);font-weight:700}.snake-game-over{color:var(--sg-danger);font-weight:700;text-shadow:0 0 5px color-mix(in oklab,var(--sg-danger) 70%,#000 30%)}.snake-game-canvas-container{align-items:center;background:var(--sg-panel-bg);border:3px solid var(--sg-accent);border-radius:8px;box-shadow:0 0 20px var(--sg-shadow);display:flex;justify-content:center;max-width:100%;overflow:hidden;position:relative}.snake-game-canvas{background:var(--sg-panel-bg);border-radius:5px;display:block;height:min(68vw,58dvh,400px);max-height:100%;max-width:100%;object-fit:contain;width:min(68vw,58dvh,400px)}.snake-game-overlay,.snake-game-start-overlay{align-items:center;background:var(--sg-overlay-bg);border-radius:5px;bottom:0;color:var(--sg-accent);display:flex;flex-direction:column;font-size:clamp(1.2rem,3vw,1.5rem);justify-content:center;left:0;padding:1rem;position:absolute;right:0;text-align:center;top:0}.snake-game-start-overlay p{margin:0;text-shadow:0 0 5px var(--sg-shadow)}.snake-game-overlay p{margin:.5rem 0;text-shadow:0 0 5px var(--sg-shadow)}.snake-game-restart-btn{background:var(--sg-accent);border:none;border-radius:5px;box-shadow:0 0 10px var(--sg-shadow);color:var(--sg-cta-text);cursor:pointer;font-family:Courier New,monospace;font-size:clamp(.9rem,2.5vw,1rem);font-weight:700;margin-top:1rem;padding:clamp(.5rem,2vw,.75rem) clamp(1rem,3vw,1.5rem);transition:all .3s ease}.snake-game-restart-btn:hover{background:var(--sg-accent-soft);box-shadow:0 0 15px var(--sg-shadow);transform:scale(1.05)}.snake-game-controls{color:var(--sg-accent);font-size:clamp(.8rem,2vw,1rem);margin-top:0;max-width:600px;text-align:center;width:100%}.snake-game-controls p{margin:.5rem 0;text-shadow:0 0 3px var(--sg-shadow)}.snake-game-touch-controls{display:none}.snake-game-container:before{background-image:radial-gradient(circle at 25% 25%,var(--sg-grid-dot) 1px,#0000 1px),radial-gradient(circle at 75% 75%,var(--sg-grid-dot) 1px,#0000 1px);background-size:20px 20px;bottom:0;content:"";left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:-1}@media (max-width:768px){.snake-game-container{padding:.75rem .8rem calc(6rem + env(safe-area-inset-bottom))}.snake-game-header{max-width:94vw}.snake-game-info{flex-direction:column;gap:.35rem}.snake-game-canvas{height:min(88vw,52dvh,350px);width:min(88vw,52dvh,350px)}.snake-game-touch-controls{grid-gap:.5rem;align-items:center;display:grid;gap:.5rem;grid-template-columns:repeat(3,minmax(44px,62px));grid-template-rows:repeat(2,minmax(44px,62px));justify-content:center;margin-top:.25rem;max-width:260px;width:100%}.touch-btn{-webkit-appearance:none;appearance:none;background:color-mix(in oklab,var(--sg-panel-bg) 85%,var(--sg-accent) 15%);border:1px solid color-mix(in oklab,var(--sg-accent) 58%,#0000);border-radius:12px;box-shadow:0 0 10px color-mix(in oklab,var(--sg-shadow) 65%,#0000);color:var(--sg-accent);display:grid;font-size:1rem;font-weight:700;line-height:1;place-items:center}.touch-btn:active{background:color-mix(in oklab,var(--sg-panel-bg) 70%,var(--sg-accent) 30%);transform:scale(.95)}.touch-up{grid-column:2;grid-row:1}.touch-left{grid-column:1;grid-row:2}.touch-right{grid-column:3;grid-row:2}.touch-down{grid-column:2;grid-row:2}}@media (max-width:480px){.snake-game-container{padding:.55rem .45rem calc(6.2rem + env(safe-area-inset-bottom))}.snake-game-title{font-size:1.5rem}.snake-game-canvas{height:min(92vw,46dvh,300px);width:min(92vw,46dvh,300px)}.snake-game-controls{max-width:96vw}.snake-game-controls p{font-size:.8rem}}.project-detail-container{background:var(--background);box-sizing:border-box;color:var(--text-primary);height:100%;min-height:0;overflow:hidden;position:relative;width:100%}.project-detail-header{left:clamp(.9rem,2.8vw,1.4rem);position:absolute;top:clamp(.8rem,2.4vh,1.4rem);z-index:8}.back-button{align-items:center;background:color-mix(in oklab,var(--background) 92%,var(--text-primary) 8%);border:1px solid var(--accent-color);border-radius:8px;color:var(--text-primary);display:inline-flex;font-family:var(--font-body);font-weight:500;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;transition:all .3s ease}.back-button:hover{background:color-mix(in oklab,var(--background) 70%,var(--text-primary) 30%);transform:translateX(-5px)}[data-theme=dark] .back-button{background:color-mix(in oklab,#121212 78%,#fff 22%);border-color:#5f5f5f}[data-theme=dark] .back-button:hover{background:color-mix(in oklab,#121212 65%,#fff 35%)}.project-detail-content{margin:0 auto;max-width:1200px;padding:clamp(1rem,3vw,2rem)}.project-detail-content h1{color:var(--text-primary);font-family:var(--font-heading);font-size:clamp(2rem,5vw,2.5rem);font-weight:700;margin-bottom:1rem}.project-detail-content p{color:var(--text-secondary);font-size:clamp(1rem,2.5vw,1.1rem);line-height:1.6;margin-bottom:2rem}.project-detail-placeholder{align-items:center;background:var(--secondary-color);border:1px solid var(--accent-color);border-radius:12px;display:flex;justify-content:center;min-height:400px}.project-detail-placeholder p{color:var(--text-secondary);font-size:clamp(1rem,2.5vw,1.2rem);margin:0;text-align:center}.back-to-projects{background:var(--primary-color);border-radius:8px;color:var(--background);display:inline-block;font-weight:500;margin-top:2rem;padding:1rem 2rem;text-decoration:none;transition:all .3s ease}.back-to-projects:hover{background:var(--accent-color);transform:translateY(-2px)}.floating-navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in oklab,var(--background) 86%,#0000);border:1px solid var(--accent-color);border-radius:999px;bottom:24px;box-shadow:0 10px 28px #0000002e;display:flex;gap:.75rem;left:50%;padding:.55rem .9rem;position:fixed;transform:translateX(-50%);z-index:1000}.nav-links{align-items:center;display:flex;gap:.4rem}.nav-link{border-radius:999px;color:var(--text-secondary);font-family:var(--font-body);font-size:.92rem;padding:.45rem .8rem;text-decoration:none;transition:color .25s ease,background-color .25s ease,transform .25s ease;white-space:nowrap}.nav-link:hover{background:color-mix(in oklab,var(--text-primary) 10%,#0000);color:var(--text-primary);transform:translateY(-1px)}.nav-link.active{background:color-mix(in oklab,var(--background) 72%,var(--text-primary) 28%);border:1px solid color-mix(in oklab,var(--background) 56%,var(--text-primary) 44%);color:var(--text-primary);font-weight:600}@media (max-width:900px){.floating-navbar{bottom:16px;gap:.5rem;padding:.45rem .7rem}.nav-links{gap:.25rem}.nav-link{font-size:.8rem;padding:.4rem .65rem}}@media (max-width:600px){.floating-navbar{flex-wrap:wrap;justify-content:center;max-width:90vw}}[data-theme=dark] .floating-navbar{background:color-mix(in oklab,#121212 86%,#0000);border:1px solid #555;box-shadow:0 10px 28px #00000073}[data-theme=dark] .nav-link{color:#c7c7c7}[data-theme=dark] .nav-link.active{background:#f5f5f5;border-color:#f5f5f5;color:#121212;font-weight:700}
/*# sourceMappingURL=main.9d0b6aaf.css.map*/