.page-loading{min-height:240px;display:flex;align-items:center;justify-content:center;padding:32px}.page-loading-ring{width:44px;height:44px;border:4px solid var(--color-sage-subtle, #dce9e1);border-top-color:var(--color-sage, #3b5249);border-radius:50%;animation:page-loading-rotate .8s linear infinite}.page-loading-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes page-loading-rotate{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.page-loading-ring{animation:none}}.namo-audio{text-align:center;width:min(255px,100%);margin:0 auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.namo-audio-button{display:block;width:100%;border-radius:16px}.namo-audio-button img{width:100%;max-height:340px;object-fit:contain;mix-blend-mode:multiply}.namo-audio-button:focus-visible,.announcement-popup button:focus-visible,.opening-ceremony button:focus-visible{outline:3px solid #d49b4b;outline-offset:3px}.namo-audio p{font-size:13px;margin-top:8px;color:#475569}.ceremony-curtain-overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:999999;display:flex;align-items:center;justify-content:center;overflow:hidden;pointer-events:auto}.curtain-panel{position:absolute;top:0;bottom:0;width:50.5%;background:radial-gradient(ellipse at center,#0f172a,#090d1a 60%,#030712);z-index:2;transition:transform 3s cubic-bezier(.65,0,.25,1);box-shadow:inset 0 0 120px #000000e6;border:none}.curtain-left{left:0;border:none}.curtain-right{right:0;border:none}.curtain-left.open{transform:translate(-100%)}.curtain-right.open{transform:translate(100%)}.curtain-center-stage{position:relative;z-index:10;width:100%;max-width:900px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;color:#f8fafc;transition:opacity 1.8s ease,transform 1.8s ease}.curtain-center-stage.fade-out{opacity:0;transform:scale(.92);pointer-events:none}.ceremony-main-title{font-size:clamp(28px,5.5vw,54px);font-weight:900;color:#fffbeb;letter-spacing:-.02em;margin-bottom:8px;text-shadow:0 0 35px rgba(251,191,36,.9),0 0 70px rgba(245,158,11,.6);animation:title-glow-pulse 2.5s ease-in-out infinite alternate}@keyframes title-glow-pulse{0%{text-shadow:0 0 25px rgba(251,191,36,.8)}to{text-shadow:0 0 45px rgba(251,191,36,1),0 0 80px rgba(245,158,11,.7)}}.ceremony-sub-title{font-size:clamp(15px,2.2vw,20px);color:#fde68a;font-weight:700;margin-bottom:24px;opacity:.95}.ceremony-countdown-box{background:#0f172abf;border:2px solid rgba(212,155,75,.5);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:24px;padding:20px 36px;box-shadow:0 12px 36px #00000080,inset 0 0 24px #d49b4b33;display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:24px;animation:countdown-box-float 3s ease-in-out infinite alternate}@keyframes countdown-box-float{0%{transform:translateY(0)}to{transform:translateY(-6px)}}.ceremony-countdown-time{font-size:clamp(48px,10vw,76px);font-weight:900;font-variant-numeric:tabular-nums;color:#fcd34d;line-height:1;text-shadow:0 0 30px rgba(251,191,36,.9)}.ceremony-countdown-label{font-size:14px;color:#cbd5e1;font-weight:700;letter-spacing:.05em}.dancheong-ribbon-wrapper{position:relative;width:min(96vw,920px);min-height:140px;display:flex;align-items:center;justify-content:center;margin:8px 0;overflow:visible}.dancheong-w-half{flex:1;height:140px;transition:transform 1.8s cubic-bezier(.65,0,.25,1),opacity 1.5s ease;position:relative;filter:drop-shadow(0 6px 18px rgba(0,0,0,.6))}.dancheong-w-left{transform-origin:left top}.dancheong-w-right{transform-origin:right top}.dancheong-ribbon-wrapper.cut .dancheong-w-left{transform:translate(-50vw) translateY(60px) rotate(-16deg);opacity:0}.dancheong-ribbon-wrapper.cut .dancheong-w-right{transform:translate(50vw) translateY(60px) rotate(16deg);opacity:0}.dancheong-ribbon-knot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;border-radius:50%;background:radial-gradient(circle,#fffbeb,#fbbf24 50%,#d49b4b 80%,#78350f);border:3px solid #FFFFFF;box-shadow:0 8px 24px #0006,0 0 25px #fbbf24cc;display:flex;align-items:center;justify-content:center;font-size:30px;z-index:12;transition:transform .6s ease,opacity .6s ease}.dancheong-ribbon-wrapper.cut .dancheong-ribbon-knot{transform:translate(-50%,-50%) scale(0) rotate(180deg);opacity:0}.btn-dancheong-cut{background:linear-gradient(135deg,#f59e0b,#d97706,#b45309);color:#fff;border:2px solid #FDE68A;font-size:clamp(17px,2.5vw,22px);font-weight:900;padding:16px 42px;border-radius:60px;cursor:pointer;box-shadow:0 8px 30px #f59e0b99,0 0 35px #fbbf2466;display:inline-flex;align-items:center;gap:12px;transition:all .25s cubic-bezier(.34,1.56,.64,1);margin-top:14px;animation:btn-cut-pulse 1.6s ease-in-out infinite alternate;z-index:15}@keyframes btn-cut-pulse{0%{transform:scale(1);box-shadow:0 8px 25px #f59e0b80}to{transform:scale(1.06);box-shadow:0 12px 40px #f59e0bcc,0 0 45px #fbbf2499}}.btn-dancheong-cut:hover{transform:scale(1.1) translateY(-2px);background:linear-gradient(135deg,#fbbf24,#f59e0b)}.btn-dancheong-cut:active{transform:scale(.96)}.curtain-panel:after{content:"";position:absolute;top:0;bottom:0;width:18px;background:linear-gradient(90deg,#1e3a8a 0,#1e3a8a 20%,#15803d 20%,#15803d 40%,#fde68a 40%,#fde68a 52%,#b91c1c 52%,#b91c1c 76%,#0f172a 76%,#0f172a);box-shadow:0 0 24px #0009}.curtain-left:after{right:0}.curtain-right:after{left:0;transform:scaleX(-1)}.curtain-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.07;background-image:radial-gradient(circle at 50% 50%,#FDE68A 0 2px,transparent 3px),radial-gradient(circle at 50% 50%,transparent 0 14px,#FDE68A 15px 16px,transparent 17px);background-size:48px 48px,48px 48px;pointer-events:none}.ceremony-main-title{font-family:var(--font-serif)}.ceremony-sub-title{font-family:var(--font-serif);letter-spacing:.02em}.ceremony-halo-lotus{position:relative;width:96px;height:96px;display:flex;align-items:center;justify-content:center;margin-bottom:10px}.ceremony-halo{position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:50%;border:2px solid rgba(253,230,138,.75);background:radial-gradient(circle,rgba(251,191,36,.45) 0%,rgba(251,191,36,.08) 60%,transparent 72%);box-shadow:0 0 30px #fbbf248c,inset 0 0 18px #fde68a80;animation:halo-breathe 3.2s ease-in-out infinite alternate}.ceremony-halo-outer{top:-6px;right:-6px;bottom:-6px;left:-6px;border:1px dashed rgba(253,230,138,.5);background:none;box-shadow:none;animation:aura-spin 40s linear infinite}.ceremony-lotus-icon{position:relative;font-size:44px;filter:drop-shadow(0 0 14px rgba(251,191,36,.9))}@keyframes halo-breathe{0%{transform:scale(.94);opacity:.75}to{transform:scale(1.06);opacity:1}}.yeondeung-row{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-around;padding:0 4%;z-index:8;pointer-events:none;transition:transform 2.4s cubic-bezier(.65,0,.25,1),opacity 2.4s ease}.yeondeung-row:before{content:"";position:absolute;top:18px;left:0;right:0;height:2px;background:#fde68a73}.yeondeung-row.lift{transform:translateY(-160px);opacity:0}.yeondeung{position:relative;width:44px;height:52px;margin-top:calc(34px + (var(--i) % 2) * 22px);border-radius:50% 50% 46% 46%;background:radial-gradient(circle at 50% 45%,#FFF7ED 0%,var(--lantern-color) 45%,color-mix(in srgb,var(--lantern-color) 60%,#000) 100%);box-shadow:0 0 22px var(--lantern-color),0 0 48px #fbbf2459;transform-origin:50% -30px;animation:lantern-sway 3.6s ease-in-out infinite alternate;animation-delay:calc(var(--i) * -.5s)}.yeondeung:before{content:"";position:absolute;left:50%;bottom:100%;width:1.5px;height:calc(16px + (var(--i) % 2) * 22px);background:#fde68a99}.yeondeung:after{content:"";position:absolute;top:6px;right:4px;bottom:6px;left:4px;border-radius:inherit;background:repeating-linear-gradient(90deg,transparent 0 7px,rgba(255,255,255,.18) 7px 8px)}.yeondeung-tassel{position:absolute;top:100%;left:50%;width:3px;height:18px;margin-left:-1.5px;background:linear-gradient(#FDE68A,var(--lantern-color));border-radius:0 0 2px 2px}@keyframes lantern-sway{0%{transform:rotate(-4deg)}to{transform:rotate(4deg)}}.dancheong-ribbon-wrapper.cut .dancheong-ribbon-knot{transform:translate(-50%,-180%) scale(1.5);opacity:0;box-shadow:0 0 60px #fbbf24;transition:transform 1.6s ease-out,opacity 1.6s ease-in,box-shadow .6s ease}.btn-dancheong-cut{font-family:var(--font-serif);background:linear-gradient(135deg,#92400e,#b45309 45%,#78350f);border-color:#fde68a;letter-spacing:.04em}.btn-dancheong-cut:hover{background:linear-gradient(135deg,#b45309,#d97706)}.beomjong-icon{display:inline-flex;transform-origin:50% 0}.btn-dancheong-cut.striking .beomjong-icon{animation:beomjong-swing .9s ease-out}@keyframes beomjong-swing{0%{transform:rotate(0)}20%{transform:rotate(14deg)}45%{transform:rotate(-9deg)}70%{transform:rotate(5deg)}to{transform:rotate(0)}}.bell-ripples{position:absolute;top:50%;left:50%;width:0;height:0;z-index:20;pointer-events:none}.bell-ripples i{position:absolute;left:-40px;top:-40px;width:80px;height:80px;border-radius:50%;border:2px solid rgba(253,230,138,.85);box-shadow:0 0 20px #fbbf2499;animation:bell-ripple 2.4s ease-out forwards;opacity:0}.bell-ripples i:nth-child(2){animation-delay:.35s}.bell-ripples i:nth-child(3){animation-delay:.7s}@keyframes bell-ripple{0%{transform:scale(.4);opacity:1}to{transform:scale(12);opacity:0}}.flower-rain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;pointer-events:none;overflow:hidden}.flower-rain i{position:absolute;top:-30px;left:var(--x);width:14px;height:20px;border-radius:80% 0;background:linear-gradient(135deg,#fff1f2,#f9a8d4 60%,#ec4899);box-shadow:0 0 8px #f9a8d499;animation:petal-fall 4.2s ease-in both;animation-delay:var(--d)}.flower-rain i:nth-child(3n){background:linear-gradient(135deg,#fff,#fde68a);box-shadow:0 0 8px #fde68ab3}.flower-rain i:nth-child(4n){width:10px;height:14px}@keyframes petal-fall{0%{transform:translate(0) rotate(0);opacity:0}10%{opacity:1}50%{transform:translate(40px,50vh) rotate(200deg)}to{transform:translate(-30px,105vh) rotate(420deg);opacity:.2}}@media(max-width:600px){.yeondeung{width:30px;height:36px}.yeondeung:nth-child(n+6){display:none}}@media(prefers-reduced-motion:reduce){.yeondeung,.ceremony-halo,.ceremony-halo-outer,.bell-ripples i,.beomjong-icon{animation:none!important}.flower-rain{display:none}}.ceremony-top-controls{position:absolute;top:20px;right:24px;display:flex;align-items:center;gap:10px;z-index:25}.ceremony-top-controls.manual-mode{top:auto;bottom:24px}.btn-ceremony-tool{background:#0f172aa6;border:1px solid rgba(255,255,255,.25);color:#f8fafc;font-size:13px;font-weight:700;padding:8px 16px;border-radius:30px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .2s ease}.btn-ceremony-tool:hover{background:#ffffff40}.ceremony-manual-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:22;background:#0f172a;opacity:0;visibility:hidden;transform:scale(.98);transition:opacity 1.6s ease,transform 1.6s ease,visibility 0s linear 1.6s}.ceremony-manual-stage.visible{opacity:1;visibility:visible;transform:scale(1);transition:opacity 1.6s ease,transform 1.6s ease}.ceremony-manual-stage iframe{width:100%;height:100%;border:0;display:block}.ceremony-secret-trigger{position:absolute;right:0;bottom:0;width:36px;height:36px;padding:0;border:none;background:transparent;opacity:0;cursor:default;z-index:2}.fullscreen-header{width:100%;max-width:1200px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:8px 16px;background:#0f172abf;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(212,155,75,.3);border-radius:50px;z-index:10}.fullscreen-title-area{display:flex;align-items:center;gap:12px}.fullscreen-title{font-size:clamp(15px,2.2vw,18px);font-weight:800;color:#fcd34d;letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.fullscreen-actions{display:flex;align-items:center;gap:10px}.btn-namo-audio-toggle{background:linear-gradient(135deg,#d49b4b4d,#b8860b73);border:1.5px solid #F59E0B;color:#fffbeb;font-size:13px;font-weight:700;padding:7px 16px;border-radius:50px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease}.btn-namo-audio-toggle:hover{background:linear-gradient(135deg,#f59e0b99,#d49b4bcc);transform:translateY(-1px)}.btn-fullscreen-close{background:#ef444433;border:1px solid rgba(239,68,68,.4);color:#fca5a5;font-size:13px;font-weight:700;padding:7px 14px;border-radius:50px;cursor:pointer;transition:all .2s ease}.btn-fullscreen-close:hover{background:#dc2626;color:#fff}.fullscreen-stage{position:relative;width:100%;max-width:900px;min-height:480px;margin:16px auto;padding:32px 24px;background:#1e293b8c;border:2px solid rgba(212,155,75,.4);border-radius:28px;box-shadow:0 20px 60px #00000080,inset 0 0 40px #d49b4b1a;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;text-align:center;z-index:5}.namo-buddhaya-emblem{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:12px;z-index:3}.namo-buddhaya-emblem img{width:84px;height:84px;object-fit:contain;filter:drop-shadow(0 0 20px rgba(251,191,36,.8)) drop-shadow(0 0 35px rgba(245,158,11,.5));animation:emblem-float 3.5s ease-in-out infinite alternate}@keyframes emblem-float{0%{transform:translateY(0) scale(1);filter:drop-shadow(0 0 16px rgba(251,191,36,.7))}to{transform:translateY(-8px) scale(1.06);filter:drop-shadow(0 0 30px rgba(251,191,36,1))}}.ceremony-step-greeting{display:flex;flex-direction:column;align-items:center;justify-content:center;animation:greeting-zoom-in 1.2s cubic-bezier(.16,1,.3,1) both;z-index:5;text-align:center}.greeting-namo-title{font-size:clamp(38px,7vw,76px);font-weight:900;color:#fffbeb;text-shadow:0 0 35px rgba(251,191,36,.9),0 0 70px rgba(245,158,11,.6);letter-spacing:-.02em;margin-bottom:12px;animation:namo-text-glow 1.5s ease-in-out infinite alternate}@keyframes namo-text-glow{0%{text-shadow:0 0 25px rgba(251,191,36,.8);transform:scale(1)}to{text-shadow:0 0 50px rgba(251,191,36,1),0 0 80px rgba(245,158,11,.8);transform:scale(1.03)}}@keyframes greeting-zoom-in{0%{opacity:0;transform:scale(.85) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.greeting-namo-sub{font-size:clamp(17px,2.5vw,24px);color:#fde68a;font-weight:700;line-height:1.6;max-width:680px}.ceremony-step-bell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;animation:bell-enter .6s cubic-bezier(.16,1,.3,1) both;z-index:5}@keyframes bell-enter{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.bell-icon-wrap{position:relative;width:140px;height:140px;display:flex;align-items:center;justify-content:center;font-size:88px;animation:bell-swing .8s ease-in-out infinite alternate;filter:drop-shadow(0 0 30px rgba(251,191,36,.9))}@keyframes bell-swing{0%{transform:rotate(-14deg)}to{transform:rotate(14deg)}}.bell-shockwave{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:100px;border-radius:50%;border:3px solid rgba(251,191,36,.8);animation:shockwave-expand 1.2s ease-out infinite;pointer-events:none}.bell-shockwave:nth-child(2){animation-delay:.4s}.bell-shockwave:nth-child(3){animation-delay:.8s}@keyframes shockwave-expand{0%{width:80px;height:80px;opacity:1;border-width:4px}to{width:440px;height:440px;opacity:0;border-width:1px}}.ceremony-step-ascend{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:5;width:100%}.buddha-ascending-body{position:relative;display:flex;flex-direction:column;align-items:center;animation:buddha-ascend-sky 5s cubic-bezier(.22,1,.36,1) forwards}.buddha-ascending-img{width:clamp(140px,22vw,220px);height:clamp(140px,22vw,220px);object-fit:contain;filter:drop-shadow(0 0 40px rgba(255,215,0,1)) drop-shadow(0 0 90px rgba(245,158,11,.85))}.buddha-ascend-lightbeam{position:absolute;bottom:-60px;width:240px;height:380px;background:radial-gradient(ellipse at bottom,rgba(254,240,138,.6) 0%,rgba(245,158,11,.25) 50%,transparent 80%);pointer-events:none;animation:lightbeam-pulse 1.5s ease-in-out infinite alternate}@keyframes lightbeam-pulse{0%{opacity:.6;transform:scaleX(.85)}to{opacity:1;transform:scaleX(1.15)}}@keyframes buddha-ascend-sky{0%{transform:translateY(140px) scale(.9);opacity:.4}25%{transform:translateY(30px) scale(1.15);opacity:1}60%{transform:translateY(-80px) scale(1.22);opacity:1}to{transform:translateY(-340px) scale(.95);opacity:.95}}.fullscreen-footer{width:100%;max-width:1000px;display:flex;flex-direction:column;gap:12px;z-index:10}.opening-ceremony{max-width:960px;margin:36px auto;padding:36px 30px;background:#fff;border:2px solid #E2D3B8;border-radius:24px;text-align:center;box-shadow:0 16px 40px #b8860b1f,0 4px 12px #0000000d;position:relative;overflow:hidden}.opening-ceremony:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,#d49b4b,#fff3a8,#e6ca65,#fff3a8,#d49b4b);animation:gold-line-flow 4s linear infinite;background-size:200% 100%}@keyframes gold-line-flow{0%{background-position:100% 0}to{background-position:-100% 0}}.opening-ceremony h2{font-size:28px;margin:12px 0 6px;font-weight:900;color:#1e293b;letter-spacing:-.02em}.opening-ceremony p{color:#475569}.opening-rehearsal-banner{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1.5px solid #F59E0B;border-radius:14px;padding:16px 20px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;text-align:left;box-shadow:0 4px 14px #f59e0b26}.opening-rehearsal-title{font-weight:800;font-size:15.5px;color:#92400e;display:flex;align-items:center;gap:8px}.opening-rehearsal-desc{font-size:13px;color:#b45309;margin:3px 0 0;line-height:1.5}.opening-stage{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:14px;margin:22px auto;padding:36px 24px;background:radial-gradient(circle at center,#fffdf7,#f9f4ea 60%,#f1e7d5);border:1.5px solid #EADBCE;border-radius:20px;box-shadow:inset 0 2px 14px #d49b4b14,0 8px 24px #00000008}.opening-stage-aura{position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:conic-gradient(from 0deg,transparent 0deg,rgba(254,240,138,.15) 30deg,transparent 60deg,rgba(253,230,138,.18) 120deg,transparent 150deg,rgba(254,240,138,.15) 210deg,transparent 240deg,rgba(253,230,138,.18) 300deg,transparent 330deg);animation:aura-spin 25s linear infinite;pointer-events:none;z-index:1}@keyframes aura-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.opening-phase-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;background:#fff;border:1px solid #E2D3B8;border-radius:50px;font-size:13.5px;font-weight:700;color:#b45309;box-shadow:0 2px 8px #b8860b1f;z-index:2;animation:phase-badge-pulse 2s ease-in-out infinite alternate}@keyframes phase-badge-pulse{0%{transform:translateY(0)}to{transform:translateY(-3px);box-shadow:0 5px 12px #b8860b33}}.opening-phase-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;animation:phase-fade-in .6s cubic-bezier(.16,1,.3,1) both}@keyframes phase-fade-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.opening-ribbon-container{position:relative;display:flex;align-items:center;justify-content:center;width:min(100%,460px);height:60px;margin:14px 0;z-index:3}.opening-ribbon{display:flex;width:100%;height:48px;justify-content:center;gap:0;transition:gap 1.2s cubic-bezier(.34,1.56,.64,1);position:relative}.opening-ribbon span{flex:1;background:linear-gradient(135deg,#b8860b,#f59e0b,#fff3a8,#e6ca65,#d49b4b,#996515);border-block:2.5px solid #8A6218;box-shadow:0 6px 18px #b8860b66;transition:transform 1.2s cubic-bezier(.34,1.56,.64,1);position:relative}.opening-ribbon span:first-child{border-radius:14px 0 0 14px;border-right:1.5px dashed rgba(255,255,255,.7)}.opening-ribbon span:last-child{border-radius:0 14px 14px 0;border-left:1.5px dashed rgba(255,255,255,.7)}.opening-ribbon-knot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:50px;height:50px;border-radius:50%;background:radial-gradient(circle,#fff8c5,#fbbf24 50%,#d49b4b 80%,#8a6218);border:2.5px solid #FFFFFF;box-shadow:0 6px 16px #00000047,0 0 20px #fbbf2499;display:flex;align-items:center;justify-content:center;font-size:24px;z-index:5;transition:transform .7s ease-out,opacity .7s ease-out;animation:knot-rotate-glow 3s ease-in-out infinite alternate}@keyframes knot-rotate-glow{0%{transform:translate(-50%,-50%) rotate(-5deg) scale(1);filter:drop-shadow(0 0 4px #F59E0B)}to{transform:translate(-50%,-50%) rotate(5deg) scale(1.08);filter:drop-shadow(0 0 14px #FBBF24)}}.opening-ribbon.cut .opening-ribbon-knot{transform:translate(-50%,-50%) scale(0) rotate(180deg);opacity:0}.opening-ribbon.cut{gap:68px}.opening-ribbon.cut span:first-child{transform:rotate(-12deg) translate(-18px)}.opening-ribbon.cut span:last-child{transform:rotate(12deg) translate(18px)}.opening-ribbon.animated span{animation:ribbon-gold-shimmer 2s ease-in-out infinite alternate}@keyframes ribbon-gold-shimmer{0%{filter:brightness(1) drop-shadow(0 2px 8px rgba(212,155,75,.25))}to{filter:brightness(1.25) drop-shadow(0 8px 24px rgba(255,215,0,.7))}}.opening-scissor-cutting{position:absolute;top:-30px;left:50%;transform:translate(-50%);font-size:38px;animation:scissor-snip .6s ease-in-out infinite alternate;filter:drop-shadow(0 4px 8px rgba(220,38,38,.4));z-index:6}@keyframes scissor-snip{0%{transform:translate(-50%) rotate(-15deg) scale(1)}to{transform:translate(-50%) rotate(15deg) scale(1.15)}}.opening-countdown{display:grid;gap:4px;z-index:2}.opening-countdown-number{font-size:clamp(42px,8vw,68px);font-weight:900;font-variant-numeric:tabular-nums;color:#b45309;line-height:1.05;text-shadow:0 2px 14px rgba(180,83,9,.25)}.opening-cut-countdown{display:flex;align-items:baseline;justify-content:center;gap:10px;animation:pulse-countdown .8s ease-in-out infinite;z-index:2}.opening-cut-countdown .opening-countdown-number{color:#dc2626;font-size:clamp(52px,12vw,84px);text-shadow:0 0 25px rgba(220,38,38,.6)}@keyframes pulse-countdown{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.opening-celebration{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.opening-celebration i{position:absolute;left:calc(2% + var(--spark-index) * 2.65%);top:10px;width:10px;height:18px;border-radius:4px;background:#f59e0b;animation:opening-grand-confetti 3.4s cubic-bezier(.25,1,.5,1) both;animation-delay:calc(var(--spark-index) * 35ms);box-shadow:0 0 8px #f59e0bcc}.opening-celebration i:nth-child(6n){background:#e11d48;box-shadow:0 0 8px #e11d48cc}.opening-celebration i:nth-child(6n+1){background:#10b981;box-shadow:0 0 8px #10b981cc}.opening-celebration i:nth-child(6n+2){background:#3b82f6;box-shadow:0 0 8px #3b82f6cc}.opening-celebration i:nth-child(6n+3){background:#8b5cf6;box-shadow:0 0 8px #8b5cf6cc}.opening-celebration i:nth-child(6n+4){background:#fbbf24;box-shadow:0 0 8px #fbbf24cc}.opening-celebration i:nth-child(6n+5){background:#ec4899;box-shadow:0 0 8px #ec4899cc}@keyframes opening-grand-confetti{0%{opacity:0;transform:translateY(0) scale(.5) rotate(0)}10%{opacity:1}to{opacity:0;transform:translateY(380px) scale(1.1) rotate(720deg)}}.floating-lanterns-container{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:4}.floating-lantern{position:absolute;bottom:-40px;animation:float-upward 4.5s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(245,158,11,.5))}@keyframes float-upward{0%{transform:translateY(0) scale(.6) rotate(0);opacity:0}20%{opacity:.9}80%{opacity:.9}to{transform:translateY(-380px) scale(1.1) rotate(15deg);opacity:0}}.opening-lotus-reaction{min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:14px 0 6px}.opening-lotus-wrap{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.opening-lotus{display:inline-block;font-size:46px;line-height:1.2;filter:drop-shadow(0 4px 18px rgba(236,72,153,.55));animation:opening-lotus-bloom-grand 1s cubic-bezier(.34,1.56,.64,1) both}@keyframes opening-lotus-bloom-grand{0%{opacity:0;transform:scale(.3) translateY(28px) rotate(-20deg)}70%{transform:scale(1.2) translateY(-8px) rotate(6deg)}to{opacity:1;transform:scale(1) translateY(0) rotate(0)}}.opening-ceremony progress{width:100%;height:12px;accent-color:#D49B4B;border-radius:10px;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a}.opening-ceremony progress::-webkit-progress-bar{background-color:#e2e8f0;border-radius:10px}.opening-ceremony progress::-webkit-progress-value{background:linear-gradient(90deg,#d49b4b,#f59e0b,#10b981);border-radius:10px}.opening-controls{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:18px 0 10px}.btn-lotus-bloom{background:linear-gradient(135deg,#ec4899,#be185d)!important;color:#fff!important;border:none!important;font-weight:800!important;font-size:15.5px!important;padding:13px 28px!important;border-radius:50px!important;box-shadow:0 4px 18px #be185d61!important;transition:all .2s cubic-bezier(.34,1.56,.64,1)!important;display:flex;align-items:center;gap:10px;cursor:pointer}.btn-lotus-bloom:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 8px 25px #be185d80!important}.btn-lotus-bloom:active{transform:translateY(0) scale(.98)}.opening-live-ticker-container{background:#f8fafc;border:1px solid #E2E8F0;border-radius:10px;padding:8px 14px;margin:14px 0 6px;display:flex;align-items:center;gap:10px;overflow:hidden;font-size:13px;color:#334155;text-align:left}.opening-live-badge{background:#10b981;color:#fff;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:800;flex-shrink:0;display:flex;align-items:center;gap:4px}.opening-live-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;animation:pulse-dot 1s ease-in-out infinite alternate}@keyframes pulse-dot{0%{opacity:.4}to{opacity:1}}.rehearsal-control-bar{background:linear-gradient(135deg,#0f172a,#1e293b);color:#f8fafc;padding:14px 20px;border-radius:14px;margin-top:20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;box-shadow:0 8px 24px #0f172a59}.rehearsal-control-buttons{display:flex;gap:6px;flex-wrap:wrap}.rehearsal-control-buttons button{background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:7px 11px;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s ease}.rehearsal-control-buttons button:hover{background:#ffffff47;transform:translateY(-1px)}.rehearsal-control-buttons button.active-speed{background:#f59e0b;color:#000;border-color:#f59e0b}.opening-note{font-size:12px;color:#64748b;margin:4px 0}.announcement-error{color:#a52626!important}.announcement-load-error{max-width:1100px;margin:10px auto;padding:10px 20px;color:#a52626;background:#fff4f4;border-radius:8px}.announcement-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;display:flex;align-items:center;justify-content:center;padding:20px;background:#101a14a8}.announcement-popup{width:min(100%,560px);max-height:min(90vh,800px);overflow:auto;background:#fff;border-radius:16px;box-shadow:0 16px 50px #00000040}.announcement-popup-top,.announcement-popup-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 20px}.announcement-popup-top{background:#f6f5ef}.announcement-popup-image{width:100%;max-height:380px;object-fit:contain;background:#f5f5f5}.announcement-popup-body{padding:18px 24px}.announcement-popup-body h2{font-size:23px;margin-bottom:10px}.announcement-popup-body p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;margin-bottom:16px}.announcement-popup-bottom{border-top:1px solid #e2e8f0;flex-wrap:wrap}.announcement-admin{max-width:780px}.announcement-admin h2,.announcement-admin h3{margin-bottom:12px}.announcement-admin-form{display:grid;gap:16px;margin:20px 0 30px}.announcement-fieldset{border:0;display:grid;gap:16px;min-width:0}.announcement-admin-form label{display:grid;gap:6px;font-weight:600}.announcement-admin-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.announcement-admin-preview{max-width:240px;max-height:200px;object-fit:contain;margin-bottom:8px}.announcement-checkbox{display:flex!important;flex-direction:row;align-items:center}.announcement-actions{display:flex;gap:8px;flex-wrap:wrap}.announcement-admin-list{display:grid;gap:10px}.announcement-admin-list li{display:flex;justify-content:space-between;gap:15px;border:1px solid #ddd;border-radius:8px;padding:14px}.announcement-admin-list p{color:#64748b;overflow-wrap:anywhere}@media(max-width:600px){.announcement-admin-dates{grid-template-columns:1fr}.announcement-popup-bottom .btn{flex:1;white-space:normal}.opening-ceremony{margin:20px 12px;padding:20px}}@media(prefers-reduced-motion:reduce){.opening-ribbon.animated span,.opening-celebration i,.opening-lotus{animation:none}.opening-ribbon,.opening-ribbon span{transition:none}.opening-celebration i{transform:rotate(20deg)}}:root{--color-charcoal: #1E2022;--color-charcoal-light: #2A2D30;--color-charcoal-dark: #141617;--color-sage: #3B5249;--color-sage-light: #4D6A5F;--color-sage-dark: #2B3D36;--color-sage-rgb: 59, 82, 73;--color-sage-subtle: rgba(59, 82, 73, .08);--color-amber: #D49B4B;--color-amber-light: #E0AE67;--color-amber-dark: #B88035;--color-amber-subtle: rgba(212, 155, 75, .12);--color-coral: #E06D53;--color-coral-light: #EB856E;--color-coral-dark: #C4553D;--color-coral-subtle: rgba(224, 109, 83, .1);--color-bg: #F8F9FA;--color-surface-warm: #F2F0EC;--color-white: #FFFFFF;--color-border: #E9ECEF;--color-border-warm: #E2DDD5;--color-text-main: #1E2022;--color-text-muted: #6C757D;--color-text-light: #94A3B8;--color-text-inverse: #FFFFFF;--font-body: "Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif: "Noto Serif KR", serif;--text-h1: 30px;--text-h2: 22px;--text-h3: 17px;--text-body: 14.5px;--text-caption: 12.5px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .02);--shadow-md: 0 4px 12px rgba(30, 32, 34, .06), 0 1px 3px rgba(30, 32, 34, .03);--shadow-lg: 0 10px 25px -3px rgba(30, 32, 34, .08), 0 4px 6px -2px rgba(30, 32, 34, .04);--shadow-dropdown: 0 10px 30px rgba(0, 0, 0, .15);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-full: 9999px;--transition: all .2s cubic-bezier(.4, 0, .2, 1);--transition-smooth: all .3s cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%;font-family:var(--font-body);font-size:16px;line-height:1.6;color:var(--color-text-main);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit;border:none;background:none;cursor:pointer;outline:none}input,select,textarea{font-family:inherit;font-size:inherit;outline:none}ul,ol{list-style:none}img{max-width:100%;display:block}.font-serif{font-family:var(--font-serif)}.heading-1{font-size:var(--text-h1);font-weight:700;letter-spacing:-.02em;color:var(--color-charcoal);line-height:1.3}.heading-2{font-size:var(--text-h2);font-weight:600;letter-spacing:-.01em;color:var(--color-charcoal);line-height:1.4}.heading-3{font-size:var(--text-h3);font-weight:600;color:var(--color-charcoal);line-height:1.4}.text-body{font-size:var(--text-body);color:var(--color-text-main);line-height:1.6}.text-caption{font-size:var(--text-caption);color:var(--color-text-muted)}.container{width:100%;max-width:1240px;margin:0 auto;padding:0 24px}.app-wrapper{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;padding-bottom:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:500;font-size:14px;padding:10px 18px;border-radius:var(--radius-sm);transition:var(--transition);cursor:pointer;white-space:nowrap}.btn-primary{background-color:var(--color-sage);color:var(--color-white)}.btn-primary:hover{background-color:var(--color-sage-dark);box-shadow:0 4px 12px #3b524940}.btn-amber{background-color:var(--color-amber);color:var(--color-white)}.btn-amber:hover{background-color:var(--color-amber-dark);box-shadow:0 4px 12px #d49b4b4d}.btn-coral{background-color:var(--color-coral);color:var(--color-white)}.btn-coral:hover{background-color:var(--color-coral-dark)}.btn-secondary{background-color:var(--color-surface-warm);color:var(--color-charcoal);border:1px solid var(--color-border-warm)}.btn-secondary:hover{background-color:#e6e3dd}.btn-outline{background:transparent;color:var(--color-sage);border:1px solid var(--color-sage)}.btn-outline:hover{background-color:var(--color-sage-subtle)}.btn-ghost{background:transparent;color:var(--color-text-main)}.btn-ghost:hover{background-color:#0000000a}.btn-sm{padding:6px 12px;font-size:13px;border-radius:4px}.btn-lg{padding:14px 28px;font-size:16px;border-radius:var(--radius-md)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important}.badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 8px;border-radius:4px}.badge-sage{background-color:var(--color-sage-subtle);color:var(--color-sage);border:1px solid rgba(59,82,73,.2)}.badge-amber{background-color:var(--color-amber-subtle);color:var(--color-amber-dark);border:1px solid rgba(212,155,75,.25)}.badge-coral{background-color:var(--color-coral-subtle);color:var(--color-coral);border:1px solid rgba(224,109,83,.2)}.badge-neutral{background-color:var(--color-surface-warm);color:var(--color-text-muted);border:1px solid var(--color-border)}.card{background-color:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:var(--transition-smooth);overflow:hidden}.card:hover{box-shadow:var(--shadow-md)}.card-warm{background-color:var(--color-surface-warm);border:1px solid var(--color-border-warm)}.progress-bar-container{width:100%;height:7px;background-color:#e2e8f0;border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-bar-fill{height:100%;background-color:var(--color-sage);border-radius:var(--radius-full);transition:width .4s ease-out}.progress-bar-fill.complete{background-color:var(--color-sage-dark)}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.form-label{font-size:13.5px;font-weight:600;color:var(--color-charcoal);display:flex;justify-content:space-between;align-items:center}.form-input,.form-select,.form-textarea{width:100%;padding:11px 14px;font-size:14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-white);color:var(--color-text-main);transition:var(--transition)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-sage);box-shadow:0 0 0 3px #3b52491f}.remember-login{display:flex;align-items:flex-start;gap:10px;margin:4px 0 14px;padding:11px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-white);cursor:pointer;transition:var(--transition)}.remember-login:hover{border-color:#3b524959}.remember-login:has(input:checked){border-color:var(--color-sage);background-color:var(--color-sage-subtle)}.remember-login input{flex-shrink:0;width:16px;height:16px;margin-top:2px;accent-color:var(--color-sage);cursor:pointer}.remember-login input:focus-visible{outline:3px solid rgba(59,82,73,.25);outline-offset:2px}.remember-login-title{display:block;font-size:13.5px;font-weight:600;color:var(--color-charcoal)}.remember-login-hint{display:block;margin-top:3px;font-size:12px;line-height:1.5;color:var(--color-text-muted);word-break:keep-all}.form-input.error{border-color:var(--color-coral);background-color:#fff9f9}.form-error{font-size:12px;color:var(--color-coral);margin-top:3px}.form-hint{font-size:12px;color:var(--color-text-muted);margin-top:2px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#141617a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease-out}.modal-card{background-color:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-dropdown);max-width:520px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .25s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.sticky-resume-bar{position:sticky;top:68px;z-index:90;background:#1e2022f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-white);padding:12px 24px;border-radius:var(--radius-md);margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-md);border:1px solid rgba(255,255,255,.1)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.alert-modal-backdrop{z-index:10000!important;background-color:#121416b8!important;-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important}.alert-modal-card{max-width:440px!important;width:100%!important;border-radius:20px!important;padding:28px 26px 24px!important;text-align:center!important;background:#fff!important;box-shadow:0 24px 60px #00000047,0 0 0 1px #0000000d!important;position:relative!important;animation:alertModalPop .25s cubic-bezier(.16,1,.3,1)!important}@keyframes alertModalPop{0%{opacity:0;transform:scale(.92) translateY(14px)}to{opacity:1;transform:scale(1) translateY(0)}}.alert-modal-close-btn{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:none;background:#f1f5f9;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.alert-modal-close-btn:hover{background:#e2e8f0;color:#1e2022}.alert-modal-icon-container{display:flex;justify-content:center;margin-bottom:16px}.alert-icon-wrapper{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 8px 20px #0000000f}.alert-icon-success{background:linear-gradient(135deg,#dcfce7,#bbf7d0);border:1.5px solid #86EFAC}.alert-icon-warning{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1.5px solid #FCD34D}.alert-icon-error{background:linear-gradient(135deg,#fee2e2,#fecaca);border:1.5px solid #FCA5A5}.alert-icon-info{background:linear-gradient(135deg,#3b52491f,#3b524933);border:1.5px solid rgba(59,82,73,.28)}.alert-modal-title{font-size:19px!important;font-weight:700!important;color:#1e2022!important;margin-bottom:12px!important;line-height:1.4!important;letter-spacing:-.02em!important}.alert-modal-message{font-size:14.5px;color:#4b5563;line-height:1.65;margin-bottom:24px;word-break:keep-all;max-height:320px;overflow-y:auto;padding:0 4px}.alert-bullet-line{background:#f8fafc;border-radius:8px;padding:8px 12px;margin:6px 0;text-align:left;font-size:13.5px;color:#334155;font-weight:500;border-left:3px solid var(--color-sage, #3B5249)}.alert-text-line{margin:2px 0}.alert-modal-detail{margin-top:12px;font-size:11.5px;line-height:1.5;color:#9ca3af;word-break:break-all}.alert-modal-actions{display:flex;gap:10px}.alert-modal-actions.is-alert .alert-btn-confirm{width:100%}.alert-modal-actions.is-confirm{display:grid;grid-template-columns:1fr 1fr}.alert-btn-confirm{padding:12px 20px;font-size:15px;font-weight:600;border-radius:10px;cursor:pointer;border:none;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.alert-btn-primary{background:linear-gradient(135deg,#3b5249,#293b34)!important;color:#fff!important;box-shadow:0 4px 14px #3b52494d!important}.alert-btn-primary:hover{background:linear-gradient(135deg,#4d6a5f,#3b5249)!important;transform:translateY(-1px);box-shadow:0 6px 18px #3b524966!important}.alert-btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626)!important;color:#fff!important;box-shadow:0 4px 14px #ef44444d!important}.alert-btn-danger:hover{background:linear-gradient(135deg,#f87171,#ef4444)!important;transform:translateY(-1px);box-shadow:0 6px 18px #ef444466!important}.alert-btn-cancel{padding:12px 20px;font-size:15px;font-weight:600;border-radius:10px;cursor:pointer;background:#f1f5f9!important;color:#475569!important;border:1px solid #CBD5E1!important;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.alert-btn-cancel:hover{background:#e2e8f0!important;color:#1e293b!important}.player-wrapper{position:relative;width:100%;background-color:#000;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 12px 36px #0006;aspect-ratio:16 / 9;-webkit-user-select:none;user-select:none}.player-video{width:100%;height:100%;object-fit:cover;display:block}.player-center-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:72px;height:72px;background:#1e2022d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid rgba(255,255,255,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:var(--transition-smooth);z-index:20}.player-center-play:hover{transform:translate(-50%,-50%) scale(1.1);background:var(--color-sage);border-color:var(--color-sage-light)}.player-resume-alert{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#1e2022eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-amber);color:#fff;padding:10px 20px;border-radius:var(--radius-full);display:flex;align-items:center;gap:14px;z-index:30;box-shadow:0 8px 24px #00000080;animation:slideDown .3s ease-out;font-size:13.5px}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.player-controls-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(14,15,16,.95) 0%,rgba(14,15,16,.6) 65%,transparent 100%);padding:36px 20px 14px;display:flex;flex-direction:column;gap:10px;transition:opacity .3s ease;z-index:25}.player-wrapper.hide-controls .player-controls-overlay{opacity:0;pointer-events:none}.player-scrubber-container{width:100%;height:6px;background:#ffffff40;border-radius:var(--radius-full);cursor:pointer;position:relative;transition:height .15s ease}.player-scrubber-container:hover{height:9px}.player-scrubber-fill{height:100%;background:var(--color-amber);border-radius:var(--radius-full);position:relative}.player-scrubber-thumb{position:absolute;right:-5px;top:50%;transform:translateY(-50%) scale(0);width:12px;height:12px;background:#fff;border-radius:50%;box-shadow:0 0 4px #00000080;transition:transform .15s ease}.player-scrubber-container:hover .player-scrubber-thumb{transform:translateY(-50%) scale(1)}.player-toolbar{display:flex;align-items:center;justify-content:space-between;color:#fff}.player-toolbar-left,.player-toolbar-right{display:flex;align-items:center;gap:12px}.player-btn{background:transparent;color:#e2e8f0;display:flex;align-items:center;justify-content:center;padding:6px;border-radius:4px;transition:var(--transition)}.player-btn:hover{color:#fff;background:#ffffff26}.player-time{font-size:13px;font-family:var(--font-body);color:#cbd5e1;font-variant-numeric:tabular-nums;margin-left:4px}.speed-selector-wrapper{position:relative}.speed-badge-btn{background:#ffffff1f;color:#fff;padding:3px 10px;border-radius:var(--radius-full);font-size:12.5px;font-weight:600;letter-spacing:.02em;transition:var(--transition)}.speed-badge-btn:hover{background:var(--color-amber);color:var(--color-charcoal-dark)}.speed-menu-popover{position:absolute;bottom:38px;left:50%;transform:translate(-50%);background:#1a1c1ef5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-md);padding:6px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow-dropdown);min-width:80px;z-index:50}.speed-menu-item{padding:6px 12px;font-size:13px;color:#cbd5e1;border-radius:4px;text-align:center;transition:var(--transition)}.speed-menu-item:hover{background:#ffffff1f;color:#fff}.speed-menu-item.active{background:var(--color-sage);color:#fff;font-weight:600}.player-wrapper.is-fullscreen,.player-wrapper:fullscreen,.player-wrapper:-webkit-full-screen,.player-wrapper:-moz-full-screen,.player-wrapper:-ms-fullscreen{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100vw!important;height:100vh!important;height:100dvh!important;max-width:100vw!important;max-height:100dvh!important;aspect-ratio:auto!important;border-radius:0!important;z-index:99999!important;background:#000!important;margin:0!important;box-shadow:none!important}.player-wrapper.is-fullscreen .player-video,.player-wrapper:fullscreen .player-video,.player-wrapper:-webkit-full-screen .player-video{width:100%!important;height:100%!important;object-fit:contain!important}.player-exit-fs-float-btn{position:absolute;top:16px;right:16px;z-index:60;display:flex;align-items:center;gap:6px;background:#1e2022d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-full);padding:6px 14px;font-size:12.5px;font-weight:500;cursor:pointer;transition:var(--transition);box-shadow:0 4px 12px #0006}.player-exit-fs-float-btn:hover{background:var(--color-coral);border-color:var(--color-coral-light)}.player-complete-banner{position:absolute;top:12px;left:50%;transform:translate(-50%);background:#2b3d36f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-amber);color:#fff;padding:6px 14px;border-radius:var(--radius-full);display:flex;align-items:center;gap:10px;font-size:12.5px;z-index:22;box-shadow:0 4px 16px #00000073;max-width:90%;white-space:nowrap;animation:slideDown .3s ease-out}.player-wrapper.is-fullscreen .player-complete-banner,.player-wrapper:fullscreen .player-complete-banner{top:58px!important}@media(max-width:600px){.player-controls-overlay{padding:24px 12px 10px}.player-toolbar-left,.player-toolbar-right{gap:6px}.player-time{font-size:11.5px}.player-btn{padding:4px}.player-center-play{width:56px;height:56px}.player-resume-alert{padding:8px 12px;font-size:12px;width:92%;max-width:320px}.player-complete-banner{top:8px;padding:5px 10px;font-size:11px;white-space:normal;text-align:center;border-radius:var(--radius-sm)}}@media(max-width:420px){.player-controls-overlay{padding:18px 8px 8px}.player-toolbar-left,.player-toolbar-right{gap:3px}.player-time{font-size:10.5px;margin-left:2px}.player-btn{padding:3px}.player-center-play{width:48px;height:48px}.speed-badge-btn{padding:2px 6px;font-size:11px}.player-resume-alert{flex-direction:column;align-items:stretch;border-radius:var(--radius-sm);gap:8px}.player-resume-alert button{width:100%;justify-content:center}}.cert-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto;background:#0c1410b8}.cert-modal-shell{width:210mm;flex-shrink:0}.cert-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 16px;background:#26362f;color:#fff;border-radius:8px 8px 0 0}.cert-actions>div{display:flex;flex-wrap:wrap;gap:8px}.cert-actions button:focus-visible{outline:3px solid #d49b4b;outline-offset:2px}.cert-paper{box-sizing:border-box;width:210mm;height:297mm;position:relative;padding:20mm 22mm 16mm;display:flex;flex-direction:column;background:#fff;color:#1e2022;box-shadow:0 10px 40px #0003}.cert-frame{position:absolute;top:8mm;right:8mm;bottom:8mm;left:8mm;border:2px solid #3b5249;pointer-events:none}.cert-frame:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid #c79954}.cert-header,.cert-main,.cert-footer{position:relative;z-index:1}.cert-header{text-align:center}.cert-logo{width:auto;height:20mm;max-width:80mm;object-fit:contain;margin:0 auto 5mm}.cert-serial{text-align:right;font-size:11pt;color:#475569}.cert-header h1{margin:8mm 0 2mm;font-family:var(--font-serif);font-size:calc(44pt - 5px);letter-spacing:.4em;text-indent:.4em}.cert-header h1 .cert-title-en{display:block;margin-top:1mm;font-size:13pt;font-weight:400;letter-spacing:.12em;text-indent:0}.cert-main{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14mm;padding:6mm 4mm}.cert-person-fields{font-family:var(--font-serif);font-size:calc(14pt - 1px);text-align:left;padding-left:6mm}.cert-person-fields p{display:flex;padding:2mm 0;gap:5mm}.cert-person-fields span{display:flex;justify-content:space-between;flex:0 0 25mm;color:#58675e}.cert-person-fields span:after{content:":"}.cert-person-fields strong{white-space:nowrap}.cert-statement{text-align:center;font-family:var(--font-serif);font-size:20pt;line-height:2;word-break:keep-all}.cert-footer{text-align:center}.cert-date{font-family:var(--font-serif);font-size:17pt;letter-spacing:.08em;margin-bottom:8mm}.cert-issuer{display:flex;justify-content:center;align-items:center;font-family:var(--font-serif);font-size:22pt;gap:10px}.cert-issuer-logo{height:13mm;width:auto;object-fit:contain}.cert-office,.cert-check{font-size:9pt;color:#637269;margin-top:2mm}.cert-legal{font-size:8pt;color:#7c8980;margin-top:2mm;line-height:1.4}@media(max-width:700px){.cert-modal-backdrop{padding:8px}}@page{size:A4 portrait;margin:0}@media print{html,body,#root,.app-wrapper,.main-content{width:210mm!important;height:297mm!important;margin:0!important;padding:0!important;overflow:visible!important}body *{visibility:hidden!important}.cert-modal-backdrop,.cert-modal-backdrop *{visibility:visible!important}.cert-modal-backdrop{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;display:block!important;width:210mm!important;height:297mm!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#fff!important}.cert-modal-shell{width:210mm!important;height:297mm!important;zoom:1!important}.cert-paper{box-shadow:none!important;break-inside:avoid!important;print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important}.no-print{display:none!important}}html,body{overflow-x:hidden!important;width:100%;-webkit-text-size-adjust:100%}h1,h2,h3,h4,.font-serif,.heading-1,.heading-2,.heading-3,p{word-break:keep-all;overflow-wrap:break-word}@media(max-width:767.98px){input,select,textarea{font-size:16px!important}}@media(pointer:coarse){button,.btn,a.btn{min-height:42px}}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:12px 0;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.table-responsive table{min-width:620px;width:100%}.mobile-tab-scroll{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;gap:8px;padding-bottom:6px;scrollbar-width:none}.mobile-tab-scroll::-webkit-scrollbar{display:none}@media(min-width:769px){.mobile-tab-scroll,.admin-tab-nav{overflow-x:visible!important;white-space:normal!important;flex-wrap:wrap!important}}.watch-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:26px}.course-detail-banner{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,1fr)}.mobile-nav-backdrop,.mobile-menu-toggle{display:none}@media(max-width:880px){.desktop-nav-menu,.desktop-auth-capsule{display:none!important}.mobile-menu-toggle{display:flex!important;align-items:center;justify-content:center;width:42px;height:42px;border-radius:8px;background:var(--color-surface-warm);color:var(--color-charcoal);cursor:pointer;border:1px solid var(--color-border);flex-shrink:0}.mobile-nav-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:998;animation:fadeIn .2s ease-out}.mobile-nav-drawer{display:flex;position:fixed;top:0;right:0;bottom:0;width:min(320px,85vw);background:#fff;box-shadow:-4px 0 24px #00000040;z-index:999;flex-direction:column;padding:20px 18px;overflow-y:auto;animation:slideLeft .25s cubic-bezier(.16,1,.3,1)}.course-detail-banner{grid-template-columns:1fr!important}}@media(min-width:1280px){.container{max-width:1240px;padding:0 28px}.hero-heading{font-size:40px!important;line-height:1.35!important}.watch-layout{grid-template-columns:minmax(0,2.3fr) minmax(340px,1fr)}}@media(min-width:1024px)and (max-width:1279.98px){.container{max-width:1060px;padding:0 24px}.hero-heading{font-size:35px!important}.watch-layout{grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr);gap:20px}}@media(min-width:880px)and (max-width:1023.98px){.container{max-width:100%;padding:0 22px}.hero-heading{font-size:32px!important}.watch-layout{grid-template-columns:1fr!important;gap:24px}.courses-grid{grid-template-columns:repeat(2,1fr)!important}}@media(min-width:768px)and (max-width:879.98px){.container{max-width:100%;padding:0 20px}.hero-heading{font-size:30px!important}.hero-desc{font-size:15px!important}.watch-layout{grid-template-columns:1fr!important;gap:22px}.courses-grid{grid-template-columns:repeat(2,1fr)!important}.admin-header-actions{width:100%;justify-content:flex-start}}@media(min-width:640px)and (max-width:767.98px){.container{padding:0 18px}.hero-heading{font-size:28px!important}.hero-metric-grid{grid-template-columns:repeat(2,1fr)!important}.watch-layout{grid-template-columns:1fr!important;gap:20px}.courses-grid{grid-template-columns:repeat(2,1fr)!important}.dashboard-course-card{padding:20px!important}}@media(min-width:540px)and (max-width:639.98px){.container{padding:0 16px}.hero-heading{font-size:26px!important}.hero-desc{font-size:14.5px!important}.hero-metric-grid{grid-template-columns:1fr!important}.watch-layout{grid-template-columns:1fr!important;gap:18px}.courses-grid{grid-template-columns:1fr!important}.dashboard-course-card{padding:18px!important}.course-detail-info{padding:24px!important}.sticky-resume-bar{flex-direction:column!important;align-items:stretch!important;gap:12px!important;padding:14px 18px!important;top:56px!important}.sticky-resume-btn{width:100%!important;justify-content:center!important}}@media(min-width:430px)and (max-width:539.98px){.container{padding:0 16px}.hero-heading{font-size:25px!important;line-height:1.35!important}.hero-desc{font-size:14px!important}.watch-layout{grid-template-columns:1fr!important;gap:16px}.courses-grid{grid-template-columns:1fr!important}.course-detail-info{padding:20px 16px!important}.course-meta-grid{grid-template-columns:repeat(2,1fr)!important;gap:12px!important}.sticky-resume-bar{flex-direction:column!important;align-items:stretch!important;gap:12px!important;padding:12px 16px!important;top:56px!important}.sticky-resume-btn,.qa-write-btn{width:100%!important;justify-content:center!important}.watch-tab-btn{padding:10px 12px!important;font-size:13.5px!important;flex:1 1 0!important;justify-content:center!important}.watch-breadcrumb-title{max-width:220px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}}@media(min-width:390px)and (max-width:429.98px){.container{padding:0 14px}.hero-heading{font-size:24px!important;line-height:1.35!important}.hero-desc{font-size:13.5px!important}.watch-layout{grid-template-columns:1fr!important;gap:16px}.courses-grid{grid-template-columns:1fr!important}.course-detail-info{padding:18px 14px!important}.course-meta-grid{grid-template-columns:1fr!important;gap:10px!important}.course-detail-cta-wrap button{width:100%!important;justify-content:center!important}.sticky-resume-bar{flex-direction:column!important;align-items:stretch!important;gap:10px!important;padding:12px 14px!important;top:56px!important}.sticky-resume-btn,.qa-write-btn{width:100%!important;justify-content:center!important}.watch-tab-btn{padding:10px!important;font-size:13px!important;flex:1 1 0!important;justify-content:center!important}.watch-breadcrumb-title{max-width:180px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.modal-card{width:95vw!important;max-width:95vw!important;padding:18px 14px!important}}@media(min-width:360px)and (max-width:389.98px){.container{padding:0 12px}.hero-heading{font-size:22px!important;line-height:1.35!important}.hero-desc{font-size:13px!important;margin-bottom:18px!important}.brand-title{font-size:15px!important}.brand-sub{font-size:9px!important}.watch-layout{grid-template-columns:1fr!important;gap:14px}.courses-grid{grid-template-columns:1fr!important}.course-detail-info{padding:16px 12px!important}.course-meta-grid{grid-template-columns:1fr!important;gap:8px!important}.course-detail-cta-wrap button{width:100%!important;justify-content:center!important}.sticky-resume-bar{flex-direction:column!important;align-items:stretch!important;gap:10px!important;padding:12px!important;top:54px!important}.sticky-resume-btn,.qa-write-btn{width:100%!important;justify-content:center!important}.watch-tab-btn{padding:9px 8px!important;font-size:12.5px!important;flex:1 1 0!important;justify-content:center!important}.watch-breadcrumb-title{max-width:150px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.modal-card{width:95vw!important;max-width:95vw!important;padding:16px 12px!important}.qa-write-form-card,.qa-question-card{padding:16px 12px!important}}@media(max-width:359.98px){.container{padding:0 10px!important}.hero-heading{font-size:20px!important;line-height:1.3!important}.hero-desc{font-size:12.5px!important;line-height:1.5!important;margin-bottom:16px!important}.brand-title{font-size:14px!important}.brand-sub{display:none!important}.btn{font-size:12px!important;padding:8px 10px!important}.btn-lg{padding:10px 12px!important;font-size:13px!important;width:100%!important}.card{padding:12px!important;border-radius:var(--radius-sm)!important}.badge{font-size:10.5px!important;padding:2px 6px!important}.watch-layout{grid-template-columns:1fr!important;gap:12px}.courses-grid{grid-template-columns:1fr!important}.course-detail-info{padding:14px 10px!important}.course-meta-grid{grid-template-columns:1fr!important;gap:8px!important;font-size:12px!important}.course-detail-cta-wrap button{width:100%!important;justify-content:center!important}.sticky-resume-bar{flex-direction:column!important;align-items:stretch!important;gap:8px!important;padding:10px!important;top:50px!important}.sticky-resume-btn,.qa-write-btn{width:100%!important;justify-content:center!important}.watch-tab-btn{padding:8px 6px!important;font-size:11.5px!important;flex:1 1 0!important;justify-content:center!important}.watch-breadcrumb-title{max-width:120px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.modal-card{width:96vw!important;max-width:96vw!important;padding:14px 10px!important}.qa-write-form-card,.qa-question-card{padding:14px 10px!important}.qa-filter-pills button{font-size:11px!important;padding:3px 6px!important}}@keyframes slideLeft{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
