/* Bokuao Calendar — independent fan project. No external assets or trackers. */
:root{--ink:#173751;--ink-soft:#4f6679;--muted:#8295a6;--blue:#1888ce;--blue-dark:#0875ba;--sky:#d9f2ff;--surface:#fff;--canvas:#f8fbff;--line:#e3ecf3;--shadow:0 23px 70px rgba(37,97,142,.09);--radius:26px;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Inter,"Avenir Next",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Noto Sans TC","Microsoft JhengHei",sans-serif;-webkit-font-smoothing:antialiased;line-height:1.65}a{text-decoration:none;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid #43adf1;outline-offset:5px}svg{fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.icon{width:20px;height:20px;flex:0 0 auto}h1,h2,h3,p{margin-top:0}.shell{width:min(1180px,calc(100% - 64px));margin-inline:auto}.site-wrap{overflow:hidden}.site-header{height:89px;position:relative;z-index:20;background:rgba(250,253,255,.91);border-bottom:1px solid rgba(219,233,243,.86);backdrop-filter:blur(15px)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-mark{position:relative;display:grid;place-items:center;width:44px;height:44px;background:linear-gradient(145deg,#47bdf5,#178bd1);border-radius:15px;box-shadow:0 8px 22px #46b6e950;overflow:hidden}.sun{position:absolute;width:14px;height:14px;border-radius:50%;background:#fff7ad;top:10px;right:10px}.brand-cloud{width:30px;height:11px;border-radius:14px;background:#fff;position:absolute;left:6px;bottom:11px;filter:drop-shadow(0 3px 2px #15679e15)}.brand-cloud:before,.brand-cloud:after{content:"";position:absolute;background:white;border-radius:50%}.brand-cloud:before{width:18px;height:18px;left:5px;bottom:3px}.brand-cloud:after{width:13px;height:13px;right:2px;bottom:2px}.brand-copy{display:flex;flex-direction:column;justify-content:center;line-height:1.15}.brand-copy strong{font-size:19px;letter-spacing:.105em;font-weight:850}.brand-dot,.footer-brand strong span{color:#37aeed}.brand-copy small{font-size:8px;letter-spacing:.16em;font-weight:750;color:#7994a8;margin-top:6px}.main-nav{display:flex;align-items:center;gap:31px;margin-left:auto;margin-right:24px}.main-nav a{font-size:13px;color:#607486;font-weight:720;transition:color .2s}.main-nav a:hover{color:var(--blue)}.header-actions{display:flex;align-items:center;gap:17px}.language-control{display:flex;align-items:center;gap:7px;padding:5px 7px 5px 10px;border-radius:12px;background:#edf5fa}.language-control>.icon{width:15px;height:15px;color:#7894a6}.language-options{display:flex;gap:1px}.language-options a{padding:6px 8px;border-radius:8px;color:#688397;font-size:11px;font-weight:800;white-space:nowrap}.language-options a.active{background:#fff;color:#1486cd;box-shadow:0 2px 6px #335b7514}.language-options a:not(.active):hover{color:var(--blue);background:#dcedf8}.header-cta{font-size:12px;font-weight:790;color:#fff;background:#218ed2;padding:11px 14px 11px 16px;border-radius:10px;display:flex;align-items:center;gap:7px;white-space:nowrap;box-shadow:0 5px 13px #138acf32;transition:background .2s,transform .2s}.header-cta:hover{background:#076fae;transform:translateY(-2px)}.header-cta .icon{width:15px;height:15px}
/* Hero */
.hero-section{position:relative;padding:80px 0 0;background:radial-gradient(ellipse 54% 73% at 87% 23%,#b8eaff 0%,#e4f6ff 47%,transparent 100%),linear-gradient(135deg,#f7fcff 0%,#ebf8ff 65%,#effaff 100%);border-bottom:1px solid #e6f2fa}.hero-section:before{content:"";position:absolute;right:-130px;bottom:-80px;width:520px;height:400px;background:#caedff42;filter:blur(85px);border-radius:50%;pointer-events:none}.hero-cloud{position:absolute;opacity:.55;width:150px;height:48px;background:#fff;border-radius:55px;filter:blur(4px);pointer-events:none}.hero-cloud:before,.hero-cloud:after{content:"";position:absolute;border-radius:50%;background:#fff}.hero-cloud:before{width:90px;height:80px;left:22px;bottom:8px}.hero-cloud:after{width:70px;height:66px;right:12px;bottom:4px}.cloud-a{top:90px;right:8%;transform:scale(.7)}.cloud-b{bottom:110px;left:49%;transform:scale(.5)}.hero-layout{position:relative;display:grid;grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr);gap:42px;align-items:center}.hero-copy{padding:14px 0 75px;z-index:1}.eyebrow{display:inline-flex;align-items:center;gap:9px;border:1px solid #cae9f9;background:#e8f7ff;color:#2388bc;border-radius:999px;padding:7px 13px;font-size:10px;line-height:1.3;letter-spacing:.105em;font-weight:850;margin:0 0 26px}.eyebrow-dot{width:7px;height:7px;background:#25b3ed;border-radius:50%;box-shadow:0 0 0 4px #38beeb18}.hero-copy h1{font-size:clamp(38px,4.55vw,65px);line-height:1.36;letter-spacing:-.05em;font-weight:850;margin:0 0 23px}.hero-copy h1 span,.hero-copy h1 em{display:block;font-style:normal}.hero-copy h1 em{color:#198fd4}.hero-desc{font-size:15px;line-height:2.03;color:#5c7283;max-width:535px;margin-bottom:30px}.hero-buttons{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:14px 22px;border-radius:12px;font-size:13px;font-weight:850;transition:transform .2s,box-shadow .2s,background .2s;white-space:nowrap}.button:hover{transform:translateY(-3px)}.button .icon{width:18px;height:18px}.button-primary{color:white;background:linear-gradient(125deg,#1686d0,#21ade4);box-shadow:0 12px 26px #1d9bd33b}.button-primary:hover{box-shadow:0 15px 29px #1d9bd357}.button-secondary{background:#fff;color:#35779c;border:1px solid #d6eaf5}.button-secondary .icon{width:14px;height:14px;transform:rotate(-90deg)}.hero-disclaimer{display:flex;gap:8px;align-items:flex-start;margin:23px 0 0;font-size:11px;color:#86a0ae}.hero-disclaimer .icon{width:14px;height:14px;margin-top:2px}.hero-visual{position:relative;padding:15px 30px 62px;min-height:550px;display:flex;align-items:center;justify-content:center}.hero-visual-glow{position:absolute;width:470px;height:470px;background:radial-gradient(circle,#d0f0ff 0%,#a4dbf655 48%,transparent 72%);border-radius:50%;filter:blur(4px)}.orbit{position:absolute;border:1px dashed #9dd8f3;border-radius:50%;pointer-events:none}.orbit-one{width:480px;height:480px;transform:rotate(30deg)}.orbit-two{width:570px;height:370px;transform:rotate(-25deg);opacity:.6}.planner-panel{position:relative;width:min(100%,432px);background:white;border-radius:23px;box-shadow:0 30px 78px #2e8ab832,0 5px 16px #2d92c313;border:1px solid #eef6fc;transform:rotate(2.1deg);overflow:hidden;z-index:3;transition:transform .3s}.planner-panel:hover{transform:rotate(.3deg) translateY(-4px)}.planner-header{height:55px;border-bottom:1px solid #edf2f5;display:flex;align-items:center;gap:10px;padding:0 22px}.window-dots{display:flex;gap:5px}.window-dots i{width:8px;height:8px;border-radius:50%;background:#d6e5ef}.window-dots i:first-child{background:#a4d9f5}.window-dots i:nth-child(2){background:#c1e9f9}.planner-app-name{font-size:9px;font-weight:850;letter-spacing:.12em;color:#728d9f}.planner-online{margin-left:auto;display:flex;gap:6px;align-items:center;font-size:9px;letter-spacing:.13em;font-weight:850;color:#5db58c}.planner-online span{width:6px;height:6px;background:#63c39a;border-radius:50%}.planner-main{padding:24px 25px 23px}.planner-label{font-size:9px;letter-spacing:.16em;font-weight:850;color:#91b7c9}.planner-heading{display:flex;gap:15px;align-items:center;margin:8px 0 24px}.planner-heading strong{font-size:71px;line-height:1;letter-spacing:-.09em;font-weight:900;color:#228fd0}.planner-heading-star{color:#70c8ef;font-size:19px;vertical-align:top;margin-left:7px;letter-spacing:0}.planner-heading p{font-size:12px;font-weight:700;line-height:1.6;color:#698395;margin:0;max-width:135px}.planner-list{display:grid;gap:8px}.planner-row{display:flex;align-items:center;gap:11px;background:#f8fbfd;border:1px solid #edf4f8;border-radius:11px;padding:10px 12px;transition:background .2s,transform .2s}.planner-row:hover{background:#eef8ff;transform:translateX(3px)}.planner-row-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex-shrink:0}.planner-row-icon .icon{width:16px;height:16px}.planner-row-name{font-size:12px;font-weight:740;line-height:1.4}.planner-row-end{font-size:15px;color:#a1bbca;margin-left:auto}.planner-footer{border-top:1px solid #edf2f5;padding:15px 26px;display:flex;align-items:center;gap:9px;color:#76a0b5;font-size:11px;font-weight:680}.planner-footer .icon{width:15px;height:15px;color:#4eb88a}.float-badge{position:absolute;z-index:4;display:grid;place-items:center;box-shadow:0 16px 34px #377fa81f}.badge-star{left:4px;top:70px;background:#fff;font-size:34px;color:#50b4e8;border-radius:23px;width:72px;height:72px;transform:rotate(-20deg)}.badge-orbit{right:4px;bottom:80px;background:#fff9df;color:#ffbc4b;font-size:35px;border-radius:50%;width:69px;height:69px}.hero-stat-shell{position:relative}.hero-stats{display:flex;align-items:center;gap:36px;min-height:82px;border-top:1px solid #d7edf9}.hero-stats>div{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:780;color:#607d90}.hero-stats strong{color:#228ac7;font-weight:890;font-size:23px;letter-spacing:-.06em}.stat-icon{display:flex;align-items:center;justify-content:center;color:#299ad0}.stat-icon .icon{width:19px;height:19px}
/* Sections */
.section-space{padding:108px 0}.section-kicker{display:flex;align-items:center;gap:10px;color:#2d99d4;font-size:10px;font-weight:890;letter-spacing:.16em;line-height:1.5;margin-bottom:15px}.section-kicker span{display:block;width:19px;height:2px;background:#37ade8;border-radius:3px}h2{font-size:clamp(28px,3vw,40px);font-weight:860;letter-spacing:-.045em;line-height:1.45;margin:0}.section-intro{display:flex;gap:50px;justify-content:space-between;align-items:flex-end;margin-bottom:35px}.section-intro>p{max-width:345px;color:#738899;font-size:14px;line-height:1.9;margin:0 5px 5px 0}.calendar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.calendar-card{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:286px;padding:28px;border:1px solid #e6edf4;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 8px 18px rgba(33,99,137,.027);transition:transform .25s,box-shadow .25s,border-color .25s}.calendar-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#c8e3f3}.calendar-card:after{position:absolute;z-index:-1;content:"";width:220px;height:220px;border-radius:50%;right:-125px;top:-96px;opacity:.5;background:var(--orb,#dceef9)}.cal-all{grid-column:span 2;background:linear-gradient(130deg,#e7f7ff,#f5fbff 72%);border-color:#d4ecfa}.cal-all:after{width:350px;height:350px;top:-190px;right:-105px;background:#bce9ff}.cal-live{--orb:#ffe0e9}.cal-media{--orb:#e8e2ff}.cal-birthdays{--orb:#ffefd0}.cal-other{--orb:#e1ebf1}.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.card-icon{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:#e2f5ff;color:#268ed1}.card-icon .icon{width:25px;height:25px}.cal-live .card-icon,.planner-row-icon.cal-live{background:#ffe7ee;color:#e36f91}.cal-media .card-icon,.planner-row-icon.cal-media{background:#eeeaff;color:#8572d5}.cal-birthdays .card-icon,.planner-row-icon.cal-birthdays{background:#fff2d9;color:#dca751}.cal-other .card-icon,.planner-row-icon.cal-other{background:#edf3f8;color:#7a92a4}.planner-row-icon.cal-all{background:#e4f5ff;color:#228fd0}.card-kicker{font-size:10px;font-weight:800;letter-spacing:.02em;color:#9aaab5;text-align:right}.card-content{margin-top:28px}.card-identifier{color:#3d9ed6;font-size:10px;letter-spacing:.13em;font-weight:875}.cal-live .card-identifier{color:#df7c9d}.cal-media .card-identifier{color:#8b78d1}.cal-birthdays .card-identifier{color:#d09a3e}.cal-other .card-identifier{color:#859bae}.card-content h3{font-size:21px;line-height:1.42;letter-spacing:-.03em;margin:6px 0 9px;font-weight:860}.cal-all .card-content h3{font-size:26px}.card-content p{font-size:12px;line-height:1.95;color:#718595;max-width:390px;margin:0}.card-link{display:flex;align-items:center;gap:7px;color:#368fbf;font-weight:825;font-size:12px;margin-top:auto;padding-top:28px}.card-link .icon{width:16px;height:16px;transition:transform .2s}.calendar-card:hover .card-link .icon{transform:translateX(4px)}.notice-bar{display:flex;align-items:flex-start;gap:16px;border:1px solid #deedf6;background:#f0f9ff;border-radius:16px;margin-top:25px;padding:22px 25px}.notice-bar>.icon{width:22px;height:22px;color:#3098d4;margin-top:3px}.notice-bar strong{font-size:13px;font-weight:825}.notice-bar p{color:#687f90;font-size:12px;line-height:1.9;margin:5px 0 0}.notice-bar b{color:#2f789f;font-weight:820}
/* Guide */
.guide-section{background:#f0f8fd;border-top:1px solid #eaf3fa;border-bottom:1px solid #e8f1f8}.guide-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.guide-intro{position:relative;padding-top:17px}.guide-intro>p{margin-top:20px;color:#7890a1;font-size:14px;line-height:2;max-width:290px}.guide-doodle{font-size:160px;color:#c7e9fa;position:absolute;left:2px;top:100px;line-height:1;opacity:.6;pointer-events:none}.steps{display:grid;gap:13px}.step{display:grid;grid-template-columns:68px 1fr;gap:22px;align-items:center;padding:24px 28px;background:#fff;border:1px solid #e4eef5;border-radius:18px;box-shadow:0 3px 13px #347eae08}.step-number{display:grid;place-items:center;border-radius:14px;background:#ebf8ff;color:#3a9bd2;width:56px;height:56px;font-size:20px;letter-spacing:-.04em;font-weight:850}.step h3{font-size:16px;line-height:1.4;letter-spacing:-.02em;margin:0 0 6px}.step p{font-size:12px;color:#7c909f;line-height:1.85;margin:0}
/* FAQ */
.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.faq-heading{position:relative}.faq-decoration{position:absolute;font-size:120px;color:#e3f3fb;top:80px;left:90px;pointer-events:none}.faq-list{border-top:1px solid #dde8f0}.faq-item{border-bottom:1px solid #dde8f0;padding:0 1px}.faq-item summary{list-style:none;display:flex;justify-content:space-between;gap:25px;align-items:center;padding:22px 2px;cursor:pointer;font-size:14px;font-weight:820}.faq-item summary::-webkit-details-marker{display:none}.faq-plus{color:#319cd1;font-size:25px;line-height:1;font-weight:400;transition:transform .2s}.faq-item[open] .faq-plus{transform:rotate(45deg)}.faq-item p{font-size:12px;color:#71899a;line-height:2.05;margin:0 33px 25px 0}.faq-item summary:hover{color:#168dd0}
/* Final section & footer */
.final-section{padding:5px 0 91px}.final-banner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:25px;overflow:hidden;min-height:226px;background:linear-gradient(112deg,#1685cb 0%,#38b2e8 100%);border-radius:24px;padding:42px 55px;color:white;box-shadow:0 22px 45px #208fd22d}.final-banner:before,.final-banner:after{position:absolute;content:"";width:280px;height:280px;border:1px solid #ffffff40;border-radius:50%;right:4%;top:-155px;pointer-events:none}.final-banner:after{right:-6%;top:-90px;width:360px;height:360px}.final-decoration{position:absolute;font-size:140px;right:23%;top:-47px;color:#ffffff16;line-height:1;pointer-events:none}.final-banner>div:not(.final-decoration){z-index:1;max-width:680px}.final-overline{font-size:10px;font-weight:850;letter-spacing:.17em;color:#d4f4ff;margin:0 0 10px}.final-banner h2{font-size:clamp(24px,2.8vw,35px);margin-bottom:7px}.final-banner p:not(.final-overline){font-size:13px;color:#d9f2ff;margin:0}.final-button{position:relative;z-index:1;background:white;color:#1788cc;box-shadow:0 10px 26px #0675b145}.site-footer{border-top:1px solid #e7eff5;background:#fff}.footer-top{display:flex;align-items:center;gap:17px;min-height:90px;border-bottom:1px solid #edf2f6}.footer-brand{display:flex;gap:7px;align-items:center}.mini-logo{font-size:22px;color:#259fe2}.footer-brand strong{font-size:17px;letter-spacing:.08em;font-weight:900}.footer-top p{margin:0;color:#91a2ad;font-size:11px}.footer-back{margin-left:auto;color:#7091a6;font-size:11px;font-weight:750}.footer-back:hover,.footer-bottom a:hover{color:#1488cb}.footer-bottom{display:flex;justify-content:space-between;gap:25px;padding:21px 0 30px;color:#97a8b3;font-size:11px}.footer-bottom p{margin:0;max-width:760px}.footer-bottom a{white-space:nowrap}
@media(max-width:1080px){.main-nav{gap:19px;margin-right:5px}.header-cta{display:none}.hero-layout{gap:10px}.hero-copy h1{font-size:clamp(38px,5vw,56px)}.hero-visual{padding:20px 7px 65px}.planner-panel{width:min(100%,400px)}.hero-stats{gap:20px}}
@media(max-width:800px){.site-header{height:78px}.shell{width:min(100% - 38px,650px)}.main-nav{display:none}.header-inner{gap:9px}.header-actions{gap:6px}.brand-copy strong{font-size:17px}.brand-copy small{font-size:7px}.brand-mark{width:39px;height:39px}.language-control{padding:4px 5px}.language-control>.icon{display:none}.language-options a{font-size:11px;padding:6px 7px}.hero-section{padding-top:58px}.hero-layout{display:flex;flex-direction:column;gap:9px;align-items:stretch}.hero-copy{padding:0}.hero-copy h1{font-size:clamp(38px,7.7vw,55px)}.hero-desc{max-width:600px}.hero-visual{min-height:auto;padding:50px 44px 70px}.planner-panel{max-width:440px;transform:rotate(1.3deg)}.hero-stats{justify-content:space-around;gap:14px}.hero-stats>div{font-size:11px}.section-space{padding:78px 0}.section-intro{display:block}.section-intro>p{max-width:570px;margin-top:14px}.calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cal-all{grid-column:span 2}.calendar-card{min-height:275px;padding:24px}.guide-layout,.faq-layout{grid-template-columns:1fr;gap:25px}.guide-intro{padding-top:0}.guide-doodle,.faq-decoration{display:none}.final-banner{padding:36px 34px;flex-direction:column;align-items:flex-start;gap:23px}.final-section{padding:0 0 72px}}
@media(max-width:520px){.shell{width:calc(100% - 32px)}.brand{gap:9px}.brand-mark{width:37px;height:37px;border-radius:12px}.brand-copy strong{font-size:15px}.brand-copy small{font-size:6px;letter-spacing:.1em}.hero-copy h1{font-size:clamp(32px,8.7vw,44px);line-height:1.47}.hero-section{padding-top:45px}.eyebrow{font-size:9px;margin-bottom:22px}.hero-desc{font-size:13px;line-height:2}.button{padding:13px 17px;font-size:12px;gap:9px}.hero-buttons{gap:10px}.hero-visual{padding:47px 15px 54px}.planner-panel{width:min(100%,354px)}.planner-main{padding:20px 19px}.planner-header{padding:0 17px}.planner-heading{margin-bottom:17px}.planner-heading strong{font-size:58px}.planner-row{padding:8px 9px}.planner-row-name{font-size:11px}.planner-row-icon{width:26px;height:26px}.badge-star{width:49px;height:49px;font-size:25px;top:32px;left:0}.badge-orbit{width:50px;height:50px;font-size:25px;right:0;bottom:36px}.hero-stats{gap:4px;justify-content:space-between;min-height:76px}.hero-stats>div{gap:5px;font-size:9px;line-height:1.45}.hero-stats strong{font-size:20px}.stat-icon .icon{width:16px;height:16px}.section-space{padding:67px 0}.section-intro{margin-bottom:25px}.section-intro>p{font-size:12px;margin-top:13px}.calendar-grid{display:grid;grid-template-columns:1fr;gap:13px}.cal-all{grid-column:auto}.calendar-card{min-height:249px;padding:23px}.card-content{margin-top:20px}.card-content h3,.cal-all .card-content h3{font-size:21px}.card-content p{font-size:12px}.card-link{padding-top:19px}.notice-bar{padding:18px 16px;gap:11px}.notice-bar p{font-size:11px}.notice-bar>.icon{width:18px;height:18px}.step{grid-template-columns:50px 1fr;gap:13px;padding:19px 17px}.step-number{width:45px;height:45px;font-size:16px}.step h3{font-size:14px}.step p{font-size:11px}.faq-item summary{font-size:13px;line-height:1.5}.faq-item p{font-size:11px}.final-banner{padding:31px 23px;border-radius:19px}.final-banner h2{font-size:24px}.final-banner p:not(.final-overline){font-size:12px}.footer-top{flex-wrap:wrap;padding:20px 0;min-height:0;gap:8px 16px}.footer-top p{order:3;flex-basis:100%}.footer-back{margin-left:auto}.footer-bottom{display:block}.footer-bottom a{display:inline-block;margin-top:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}