*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{width:100%;min-height:100%;background:#f0f8ff;font-family:"Noto Serif SC",serif;color:#1b365d;overflow-x:hidden}:root{--deep-blue: #1B365D;--main-blue: #339BD8;--soft-blue: #B7DAEA;--main-pink: #FF82A0;--soft-pink: #FFB7C5;--bg-blue: #E6F3FF;--bg-pink: #FFDEE9;--glass: rgba(255, 255, 255, .4);--glass-strong: rgba(255, 255, 255, .67);--glass-border: rgba(255, 255, 255, .9);--spring: cubic-bezier(.25, 1, .5, 1);--spring-bounce: cubic-bezier(.34, 1.56, .64, 1)}.ambient-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden;background:linear-gradient(135deg,#e6f3ff,#f0f8ff 25%,#ffdee9 75%,#f5f7fa)}.orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;animation:floatOrb 20s infinite alternate ease-in-out}.orb-1{width:400px;height:400px;background:#339bd84d;top:-100px;left:-100px;animation-duration:25s}.orb-2{width:350px;height:350px;background:#ff82a040;bottom:-80px;right:-80px;animation-duration:30s}.orb-3{width:300px;height:300px;background:#b7daea59;top:40%;left:60%;animation-duration:22s}@keyframes floatOrb{0%{transform:translate(0) scale(1)}to{transform:translate(60px,-40px) scale(1.15)}}.liquid-glass{background:#fff6;backdrop-filter:blur(40px) saturate(190%);-webkit-backdrop-filter:blur(40px) saturate(190%);border:1px solid rgba(255,255,255,.9);box-shadow:0 12px 35px #1b365d14,inset 0 1px 2px #fffffff2;border-radius:20px}.glass-nav{background:#ffffff4d;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.5)}.spring-btn{transition:transform .25s var(--spring);cursor:pointer;-webkit-user-select:none;user-select:none}.spring-btn:active{transform:scale(.92)}.spring-btn-lg{transition:transform .3s var(--spring-bounce);cursor:pointer}.spring-btn-lg:active{transform:scale(.94)}.font-serif-sc{font-family:"Noto Serif SC",serif}.font-playfair{font-family:Playfair Display,serif}.font-lobster{font-family:Lobster,cursive}.font-dancing{font-family:Dancing Script,cursive}.font-caveat{font-family:Caveat,cursive}.ao3-num{font-family:Times New Roman,Times,Georgia,serif!important;font-variant-numeric:oldstyle-nums;font-weight:700}.navbar{position:fixed;top:0;left:0;right:0;z-index:50;height:50px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;padding-top:env(safe-area-inset-top)}.svg-btn{background:none;border:none;padding:6px;display:flex;align-items:center;color:#1b365d;cursor:pointer}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#1b365d2e;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:fadeIn .3s ease}.drawer-panel{position:fixed;top:0;left:0;bottom:0;width:240px;z-index:101;background:linear-gradient(160deg,#e6f3ffeb,#ffdee9d1);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid rgba(255,255,255,.85);box-shadow:15px 0 35px #1b365d14;padding:20px 16px;padding-top:calc(20px + env(safe-area-inset-top));display:flex;flex-direction:column;animation:slideInLeft .3s var(--spring)}.drawer-panel.closing{animation:slideOutLeft .3s var(--spring) forwards}.drawer-item{text-decoration:none;color:#5a738e;font-size:13px;padding:12px 4px;display:flex;align-items:center;gap:8px;border-bottom:1px solid rgba(27,54,93,.06);transition:all .3s var(--spring)}.drawer-item.active{color:#339bd8;font-size:15px;font-weight:900;transform:translate(10px)}.drawer-item-icon{width:20px;height:20px;flex-shrink:0;opacity:.7}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideOutLeft{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideUpFade{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.page-container{padding-top:60px;padding-bottom:80px;min-height:100vh;position:relative;z-index:1;animation:slideUpFade .4s var(--spring)}.hero-section{min-height:100vh;display:flex;flex-direction:column;justify-content:flex-start;padding:100px 24px 40px;position:relative;z-index:1}.hero-content{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:6px;width:100%;max-width:600px;margin:0 auto;position:relative}.hero-subtitle{color:#339bd8;font-size:16px;font-weight:600;letter-spacing:5px}.hero-title-line1{font-size:clamp(46px,15vw,68px);font-weight:900;color:#1b365d;letter-spacing:4px}.hero-title-line2{font-size:clamp(40px,10vw,56px);font-weight:900;letter-spacing:7px;background:linear-gradient(135deg,#b7daea,#339bd8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-english{color:#ff82a0;font-size:clamp(20px,6vw,28px);letter-spacing:2px;font-family:Playfair Display,serif}.hero-quote-box{position:relative;margin-top:60px;width:100%;min-height:60px}.hero-quote{position:absolute;padding:8px 14px;font-size:13px;color:#5a738e;white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 15px #1b365d0d}.hero-quote-1{top:-10px;left:10px;background:#ffffffb3;border-radius:16px 16px 16px 4px}.hero-quote-2{top:35px;left:220px;background:#b7daeab3;border-radius:16px 16px 4px}.scroll-indicator{position:absolute;bottom:70px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:#339bd8;font-size:12px;font-weight:700;animation:bounceUpDown 2s infinite ease-in-out}@keyframes bounceUpDown{0%,to{transform:translate(-50%);opacity:.7}50%{transform:translate(-50%,-12px);opacity:1}}@media (orientation: landscape){.hero-section{padding:15vh 7vw 40px}.hero-subtitle{font-size:20px;letter-spacing:17px}.hero-title-line1{font-size:clamp(56px,7vw,80px);letter-spacing:8px}.hero-title-line2{font-size:clamp(48px,6vw,70px);letter-spacing:12px}.hero-english{font-size:28px}.hero-quote-box{margin-top:50px}}.timeline-section{padding:40px 16px 120px;max-width:650px;margin:0 auto;position:relative;z-index:1}.timeline-row{position:relative;margin-bottom:48px;padding-left:38px}.mobile-node-icon{position:absolute;left:2px;top:14px;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.polaroid-frame{background:#fff;padding:8px 8px 16px;border-radius:12px;box-shadow:0 8px 20px #0000000f}@media (orientation: landscape){.timeline-section{max-width:1100px;padding:60px 20px 140px}.portrait-svg-line,.mobile-node-icon{display:none!important}.desktop-center-line{display:block!important;position:absolute;left:50%;top:20px;bottom:0;width:3px;transform:translate(-50%);background:linear-gradient(180deg,#339bd8,#ff82a0,#339bd8);border-radius:3px;z-index:2}.timeline-row{display:flex!important;margin-bottom:60px;width:100%;padding-left:0!important}.desktop-center-node{display:flex!important;position:absolute;left:50%;top:16px;transform:translate(-50%);width:32px;height:32px;background:#ffffffe6;border-radius:50%;align-items:center;justify-content:center;box-shadow:0 4px 15px #339bd833;z-index:5;border:1px solid rgba(255,255,255,.8)}.timeline-row.left-side{justify-content:flex-start!important}.timeline-row.left-side .card-box{width:44%!important;margin:0 6% 0 0!important}.timeline-row.right-side{justify-content:flex-end!important}.timeline-row.right-side .card-box{width:44%!important;margin:0 0 0 6%!important}}.desktop-center-line,.desktop-center-node{display:none}.floating-music-modal{position:fixed;top:52px;right:12px;z-index:120;width:310px;max-height:420px;padding:16px;display:flex;flex-direction:column;animation:slideUpFade .3s var(--spring)}.song-list-scroll{overflow-y:auto;flex:1;margin-top:10px;padding-right:4px;max-height:220px}.song-list-scroll::-webkit-scrollbar{width:4px}.song-list-scroll::-webkit-scrollbar-thumb{background:#339bd84d;border-radius:4px}.song-item{padding:8px 10px;border-radius:8px;font-size:12px;display:flex;justify-content:space-between;cursor:pointer;margin-bottom:4px}.song-item.active{background:#339bd82e;color:#339bd8;font-weight:700}.wave-bar{animation:bounceWave .8s infinite alternate ease-in-out}.wave-bar:nth-child(1){animation-delay:.1s}.wave-bar:nth-child(2){animation-delay:.3s}.wave-bar:nth-child(3){animation-delay:0s}.wave-bar:nth-child(4){animation-delay:.4s}@keyframes bounceWave{0%{height:4px}to{height:16px}}.site-footer{text-align:center;padding:40px 20px 60px;border-top:1px solid rgba(27,54,93,.08);font-size:12px;color:#71879a;line-height:1.9;position:relative;z-index:1}.footer-link{color:#339bd8;text-decoration:none;font-weight:700}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;padding:20px 16px;max-width:1200px;margin:0 auto;position:relative;z-index:1}@media (orientation: landscape) and (min-width: 768px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;padding:20px 24px}}.masonry-grid{columns:2;column-gap:12px;padding:20px 16px;max-width:700px;margin:0 auto;position:relative;z-index:1}.masonry-grid>*{break-inside:avoid;margin-bottom:12px}@media (orientation: landscape) and (min-width: 768px){.masonry-grid{columns:3;max-width:1100px;column-gap:20px}.masonry-grid>*{margin-bottom:20px}}.tag{display:inline-block;padding:4px 12px;border-radius:99px;font-size:11px;font-weight:600;margin:2px}.tag-blue{background:#339bd826;color:#339bd8}.tag-pink{background:#ff82a026;color:#ff82a0}.tag-purple{background:#9575cd26;color:#9575cd}.tag-green{background:#66bb6a26;color:#66bb6a}.filter-btn{padding:8px 16px;border-radius:99px;border:1px solid rgba(255,255,255,.8);background:#fff6;color:#5a738e;font-size:13px;cursor:pointer;transition:all .25s var(--spring);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.filter-btn.active{background:linear-gradient(135deg,#339bd8,#ff82a0);color:#fff;border-color:transparent;box-shadow:0 4px 15px #339bd84d}.filter-btn:active{transform:scale(.93)}.glass-input{width:100%;padding:14px 16px;border:1px solid rgba(255,255,255,.8);border-radius:16px;background:#ffffff80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:14px;outline:none;color:#1b365d;transition:all .2s;box-sizing:border-box}.glass-input:focus{background:#ffffffd9;border-color:#339bd8}.glass-input::placeholder{color:#a0b4c8}textarea.glass-input{resize:vertical;min-height:80px;font-family:inherit}.btn-main{width:100%;padding:16px;background:linear-gradient(135deg,#339bd8,#1b365d);color:#fff;border:none;border-radius:16px;font-weight:700;font-size:16px;cursor:pointer;transition:all .25s var(--spring)}.btn-main:active{transform:scale(.96)}.btn-pink{background:linear-gradient(135deg,#ff82a0,#ffb7c5)}.btn-glass{background:#ffffff80;color:#339bd8;border:1px solid rgba(255,255,255,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.page-title{font-size:clamp(28px,6vw,42px);font-weight:900;text-align:center;padding:20px 16px 8px;color:#1b365d;position:relative;z-index:1}.page-subtitle{text-align:center;font-size:14px;color:#5a738e;padding-bottom:16px;font-family:Playfair Display,serif;letter-spacing:2px}.card-3d{transition:transform .4s var(--spring-bounce),box-shadow .4s ease;transform-style:preserve-3d}.card-3d:hover{transform:translateY(-6px) rotateX(2deg);box-shadow:0 20px 50px #1b365d1f}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease}.lightbox img{width:100%;height:auto;border-radius:12px;display:block;max-height:80vh;object-fit:contain}.lightbox-close{margin:12px auto 0;display:block;background:#339bd8;color:#fff;border:none;padding:6px 20px;border-radius:99px;font-size:12px;cursor:pointer}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:60px 20px 20px;position:relative;z-index:1}.auth-card{width:100%;max-width:380px;padding:32px 24px}.auth-title{font-size:28px;font-weight:900;text-align:center;margin-bottom:8px;background:linear-gradient(135deg,#339bd8,#ff82a0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-subtitle{text-align:center;font-size:13px;color:#5a738e;margin-bottom:24px;font-family:Playfair Display,serif}.login-mode-toggle{display:flex;gap:10px;margin-bottom:16px}.login-mode-btn{flex:1;padding:10px;border:none;border-radius:25px;background:#ffffff4d;color:#666;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.login-mode-btn.active{background:linear-gradient(135deg,#ffb7c5,#339bd8);color:#fff;box-shadow:0 2px 8px #0000001a}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:20px 16px;max-width:800px;margin:0 auto;position:relative;z-index:1}.calendar-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;background:#ffffff4d;font-size:12px;color:#5a738e;cursor:pointer;transition:all .2s var(--spring);position:relative;min-height:48px}.calendar-cell:active{transform:scale(.92)}.calendar-cell.has-event{background:linear-gradient(135deg,#339bd833,#ff82a033);border:1px solid rgba(255,255,255,.8);font-weight:700;color:#1b365d}.calendar-cell.today{border:2px solid #339BD8}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:20px 16px 8px;max-width:800px;margin:0 auto}.toast{position:fixed;top:60px;left:50%;transform:translate(-50%) translateY(-20px);background:linear-gradient(135deg,#f0f8fff2,#ffdee9f2);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);color:#339bd8;font-weight:700;padding:12px 24px;border-radius:30px;font-size:14px;z-index:9999;box-shadow:0 8px 25px #3399d840;border:1px solid rgba(255,255,255,.5);opacity:0;transition:all .3s var(--spring);pointer-events:none;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.compare-row{display:flex;gap:12px;padding:16px;max-width:800px;margin:0 auto;position:relative;z-index:1}.compare-col{flex:1;position:relative}.compare-col img{width:100%;border-radius:16px;aspect-ratio:3/4;object-fit:cover}.compare-label{text-align:center;font-size:12px;color:#5a738e;margin-top:8px;font-weight:600}@media (orientation: portrait){.compare-row{flex-direction:column;gap:20px}}.floating-deco{position:absolute;pointer-events:none;opacity:.3;animation:floatOrb 15s infinite alternate ease-in-out}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#339bd833;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#339bd866}
