@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";.app-container{min-height:100vh;background-color:#0b0f19;color:#f8fafc;font-family:Outfit,system-ui,-apple-system,sans-serif;overflow-x:hidden;background-image:radial-gradient(circle at 10% 20%,rgba(99,102,241,.1),transparent 25%),radial-gradient(circle at 90% 80%,rgba(236,72,153,.08),transparent 25%);background-attachment:fixed}.hero{min-height:80vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:2rem;position:relative;overflow:hidden;background-image:linear-gradient(to bottom,#0b0f1966,#0b0f19e6),url(/hero-valkenburg.png);background-size:cover;background-position:center;background-attachment:fixed;border-bottom:1px solid rgba(255,255,255,.05)}.hero-content{position:relative;z-index:1;max-width:900px;animation:slideUp 1s ease-out forwards}.title{font-size:clamp(3rem,8vw,6rem);font-weight:800;letter-spacing:-.03em;margin-bottom:1.5rem;background:linear-gradient(135deg,#fff,#cbd5e1);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1.1}.subtitle{font-size:clamp(1.2rem,3vw,1.8rem);font-weight:300;color:#94a3b8;line-height:1.6}.main-content{max-width:1200px;margin:0 auto;padding:2rem}.glass-panel{background:#ffffff05;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.05);border-radius:32px;padding:4rem 3rem;margin-bottom:6rem;text-align:center;box-shadow:0 4px 30px #0000001a;transition:transform .4s cubic-bezier(.175,.885,.32,1.275)}.glass-panel:hover{transform:translateY(-8px);background:#ffffff08;border-color:#ffffff1a}.intro-section h2,.gallery-section h2{font-size:2.5rem;margin-bottom:2rem;font-weight:600;color:#f1f5f9}.gallery-section h2{text-align:center}.intro-section p{font-size:1.3rem;line-height:1.8;color:#cbd5e1;max-width:800px;margin:0 auto;font-weight:300}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;gap:1.5rem}.bento-item{border-radius:24px;overflow:hidden;position:relative;background:#ffffff05;border:1px solid rgba(255,255,255,.05);transition:all .4s ease}.bento-item:hover{border-color:#ffffff26;box-shadow:0 20px 40px -10px #00000080;transform:translateY(-5px);z-index:2}.col-span-1{grid-column:span 1}.col-span-2{grid-column:span 2}.row-span-1{grid-row:span 1}.row-span-2{grid-row:span 2}@media(max-width:1024px){.bento-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:220px}}@media(max-width:768px){.bento-grid{grid-template-columns:repeat(2,1fr)}.col-span-2{grid-column:span 1}.row-span-2{grid-row:span 1;grid-auto-rows:minmax(200px,auto)}.bento-grid>.col-span-2{grid-column:span 2}}@media(max-width:480px){.bento-grid{grid-template-columns:1fr;grid-auto-rows:300px}.bento-item{grid-column:span 1!important;grid-row:span 1!important}}.image-wrapper{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center}.image-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#475569;font-size:.9rem;font-weight:500;z-index:0;text-align:center;padding:20px}.gallery-image{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1),opacity .3s ease;opacity:0}.bento-item:hover .gallery-image{transform:scale(1.05)}.image-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(15,23,42,.9) 0%,rgba(15,23,42,.1) 60%,transparent 100%);opacity:0;transition:opacity .4s ease;display:flex;align-items:flex-end;padding:1.5rem;z-index:2;pointer-events:none}.bento-item:hover .image-overlay{opacity:1}.image-caption{color:#f8fafc;font-weight:500;font-size:1.2rem;transform:translateY(15px);transition:transform .4s cubic-bezier(.2,.8,.2,1)}.bento-item:hover .image-caption{transform:translateY(0)}.footer{text-align:center;padding:3rem;color:#64748b;border-top:1px solid rgba(255,255,255,.05);margin-top:4rem;font-weight:300}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}::selection{background:#ec48994d;color:#fff}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2.5rem;margin:1.5rem 2rem 2.5rem;position:sticky;top:1.5rem;z-index:100;background:#0f172a99;box-shadow:0 4px 30px #0003}.nav-brand .nav-logo{font-size:1.4rem;font-weight:800;letter-spacing:2px;background:linear-gradient(135deg,#fff,#cbd5e1);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.nav-links{display:flex;gap:1rem}.nav-link{display:flex;align-items:center;gap:.5rem;color:#94a3b8;text-decoration:none;font-weight:500;transition:all .3s ease;padding:.6rem 1.2rem;border-radius:12px}.nav-link:hover{color:#f8fafc;background:#ffffff0d}.nav-link.active{color:#f8fafc;background:#6366f133;box-shadow:0 0 20px #6366f11a;border:1px solid rgba(99,102,241,.3)}.calendar-container{max-width:1100px;margin:0 auto;padding-bottom:2rem}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.calendar-header h2{font-size:2.2rem;font-weight:600;color:#f1f5f9}.icon-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#f8fafc;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.icon-btn:hover{background:#ffffff1a;transform:scale(1.05);border-color:#6366f166}.calendar-days-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;margin-bottom:1rem}.calendar-day-name{color:#94a3b8;font-weight:600;font-size:.95rem;text-transform:uppercase;letter-spacing:1px}.calendar-grid{display:flex;flex-direction:column;gap:12px}.calendar-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.calendar-cell{background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:12px;min-height:100px;padding:.5rem;cursor:pointer;transition:all .3s cubic-bezier(.175,.885,.32,1.275);position:relative;display:flex;flex-direction:column;overflow:hidden}.calendar-cell:hover:not(.disabled){background:#ffffff0a;border-color:#6366f14d;transform:translateY(-4px);box-shadow:0 10px 20px -10px #0000004d}.calendar-cell.disabled{opacity:.25;cursor:default}.calendar-cell.today{border-color:#ec489980;background:linear-gradient(135deg,#ec48990d,#6366f10d)}.calendar-cell.selected:not(.disabled){box-shadow:0 0 0 2px #6366f199;border-color:transparent}.cell-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.cell-number{font-size:clamp(.9rem,1.5vw,1.15rem);font-weight:500;color:#e2e8f0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.calendar-cell.today .cell-number{background:#ec489933;color:#fbcfe8}.add-event-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#94a3b8;cursor:pointer;opacity:0;transition:all .2s;padding:6px;border-radius:50%;display:flex;align-items:center;justify-content:center}.calendar-cell:hover:not(.disabled) .add-event-btn{opacity:1}.add-event-btn:hover{color:#f8fafc;background:#6366f180;border-color:#6366f1;transform:scale(1.1)}.cell-events{display:flex;flex-direction:column;gap:6px;flex:1;overflow-y:auto;scrollbar-width:none}.cell-events::-webkit-scrollbar{display:none}.event-badge{background:#93c5fd40;border-left:3px solid #60a5fa;padding:4px 6px;border-radius:4px;font-size:clamp(.65rem,1vw,.85rem);display:flex;flex-direction:column;align-items:flex-start;gap:2px;transition:all .2s;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);overflow:hidden}.event-badge:hover{background:#93c5fd66;transform:scale(1.02);z-index:10;position:relative;box-shadow:0 4px 12px #0000004d}.event-time{color:#bfdbfe;font-weight:700;font-size:clamp(.6rem,.8vw,.75rem);flex-shrink:0;white-space:nowrap}.event-title{color:#fff;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.5);flex:1;width:100%;text-align:left;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-badge.color-10{background:#4ade8033;border-left-color:#4ade80}.event-badge.color-10:hover{background:#4ade8059}.event-badge.color-10 .event-time{color:#86efac}.event-badge.color-5{background:#facc1533;border-left-color:#facc15}.event-badge.color-5:hover{background:#facc1559}.event-badge.color-5 .event-time{color:#fef08a}.event-badge.color-11{background:#f8717133;border-left-color:#f87171}.event-badge.color-11:hover{background:#f8717159}.event-badge.color-11 .event-time{color:#fecaca}.event-badge.color-9{background:#60a5fa33;border-left-color:#60a5fa}.event-badge.color-9:hover{background:#60a5fa59}.event-badge.color-9 .event-time{color:#bfdbfe}.delete-event-btn{background:none;border:none;color:#f87171;cursor:pointer;opacity:0;padding:2px;display:flex;transition:all .2s}.event-badge:hover .delete-event-btn{opacity:.7}.delete-event-btn:hover{opacity:1!important;color:#ef4444;transform:scale(1.1)}.modal-overlay{position:fixed;inset:0;background:#0b0f19d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease}.modal-content{width:100%;max-width:440px;padding:3rem;margin:1rem;position:relative;text-align:left;border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px -12px #00000080}.close-modal-btn{position:absolute;top:1.5rem;right:1.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#94a3b8;cursor:pointer;transition:all .3s ease}.close-modal-btn:hover{color:#f8fafc;background:#ffffff1a;transform:rotate(90deg)}.modal-content h3{font-size:1.5rem;margin-bottom:2rem;color:#f1f5f9;padding-right:2rem;line-height:1.3}.event-form .form-group{margin-bottom:1.5rem}.event-form label{display:block;margin-bottom:.6rem;color:#cbd5e1;font-size:.95rem;font-weight:500}.event-form input{width:100%;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1rem;color:#f8fafc;font-family:inherit;font-size:1rem;transition:all .3s ease}.event-form input:focus{outline:none;border-color:#ec489980;box-shadow:0 0 0 3px #ec48991a;background:#0000004d}.submit-btn{width:100%;padding:1rem;background:linear-gradient(135deg,#6366f1,#ec4899);color:#fff;border:none;border-radius:12px;font-weight:600;font-size:1.1rem;cursor:pointer;transition:all .3s ease;margin-top:1rem}.submit-btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px #ec489966}.header-actions{display:flex;align-items:center;gap:1rem}.signout-btn{background:#ef44441a;color:#fca5a5;border:1px solid rgba(239,68,68,.2);padding:.5rem 1rem;border-radius:8px;font-weight:500;display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:all .2s ease}.signout-btn:hover{background:#ef444433;color:#f87171;border-color:#ef44444d}.signin-overlay{display:flex;align-items:center;justify-content:center;min-height:50vh}.signin-content{text-align:center;max-width:400px}.signin-content h2{font-size:2.2rem;margin-bottom:1rem;color:#f8fafc}.signin-content p{color:#94a3b8;margin-bottom:2rem;line-height:1.6}.google-signin-btn{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;background:#fff;color:#334155;border:none;padding:1rem 2rem;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.google-signin-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.google-signin-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:900px){.calendar-cell{min-height:100px;padding:.5rem}.cell-number{font-size:1rem}}@media(max-width:768px){.navbar{flex-direction:column;gap:1.5rem;padding:1.5rem;margin:1rem;border-radius:24px}.nav-links{width:100%;justify-content:center}.calendar-container{overflow-x:auto;padding-bottom:1rem}.calendar-wrapper{min-width:700px}}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
