@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,650&family=Noto+Sans+HK:wght@400;500;600;700&family=Noto+Serif+HK:wght@500;600;700&display=swap";:root{color:#202b28;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f1e7;font-family:Noto Sans HK,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}:focus-visible{outline-offset:3px;outline:3px solid #e6b85c}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}:root{--ink:#202b28;--night:#132a31;--night-deep:#0b1d23;--paper:#f5f1e7;--moon:#f3d88c;--red:#c84f3d;--jade:#2f716b;--line:#202b282b}.site-shell{background:var(--paper);min-height:100vh;overflow:hidden}.site-header{color:#fff;background:var(--night-deep);z-index:1000;justify-content:space-between;align-items:center;gap:30px;height:76px;padding:0 clamp(20px,5vw,72px);display:flex;position:relative}.brand{white-space:nowrap;align-items:center;gap:10px;font-family:Noto Serif HK,serif;font-weight:700;text-decoration:none;display:flex}.brand svg{color:var(--moon);fill:var(--moon)}.brand span{flex-direction:column;line-height:1.05;display:flex}.brand small{color:#c7d4cf;text-transform:uppercase;letter-spacing:0;margin-top:4px;font:500 8px/1 Fraunces,serif}.site-header nav{gap:clamp(16px,2.5vw,36px);display:flex}.site-header nav a{color:#dce6e2;font-size:13px;text-decoration:none}.site-header nav a:hover{color:var(--moon)}.language-button{color:#fff;background:0 0;border:1px solid #ffffff4d;border-radius:4px;align-items:center;gap:7px;padding:8px 12px;display:flex}.hero-section{color:#fff;isolation:isolate;background:linear-gradient(90deg,#081a21f5 0%,#081a21e0 42%,#081a2140 100%),url(https://images.unsplash.com/photo-1536599018102-9f803c140fc1?auto=format&fit=crop&w=1800&q=85) 50%/cover;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);align-items:center;min-height:calc(100svh - 76px);max-height:850px;padding:clamp(56px,8vw,112px) clamp(20px,8vw,128px) 48px;display:grid;position:relative}.hero-section:after{content:"";z-index:-1;background:repeating-linear-gradient(120deg,#0000 0 36px,#ffffff06 37px 38px);position:absolute;inset:0}.hero-content{z-index:2;max-width:660px;position:relative}.eyebrow,.section-number{color:var(--red);text-transform:uppercase;letter-spacing:0;margin:0 0 22px;font-size:12px;font-weight:700}.hero-section .eyebrow{color:var(--moon);font-size:18px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;max-width:720px;margin-bottom:26px;font:650 clamp(48px,6vw,84px)/1.12 Noto Serif HK,Fraunces,serif}.hero-title-en{max-width:620px;font-size:clamp(44px,4.5vw,66px);line-height:1.06}.hero-copy{color:#dce5e1;max-width:570px;font-size:17px;line-height:1.8}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.hero-actions-en{gap:10px}.hero-actions-en .button{min-height:42px;padding-inline:15px;font-size:13px}.button{border-radius:4px;justify-content:center;align-items:center;gap:9px;min-height:46px;padding:0 20px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.button.primary{color:#fff;background:var(--red)}.button.ghost{color:#fff;border:1px solid #ffffff80}.moon-stage{place-items:center;min-height:480px;display:grid;position:relative}.moon-disc{aspect-ratio:1;color:#6a4c25;background:radial-gradient(circle at 35% 30%, #fff8d8, var(--moon) 64%, #c99546);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:min(28vw,330px);animation:1.2s ease-out both rise;display:flex;box-shadow:0 0 80px #f3d88c6b,inset -20px -18px 40px #8454182b}.moon-disc:before,.moon-disc:after{content:"";border:1px solid #68491f29;border-radius:50%;position:absolute}.moon-disc:before{width:24%;height:15%;transform:translate(-36%,-120%)}.moon-disc:after{width:16%;height:10%;transform:translate(55%,110%)}.moon-disc span{font:600 38px/1 Noto Serif HK,serif}.moon-disc small{margin-top:12px;font:600 13px/1 Fraunces,serif}.skyline{opacity:.72;clip-path:polygon(0 75%,7% 75%,7% 46%,11% 46%,11% 72%,18% 72%,18% 34%,22% 34%,22% 61%,30% 61%,30% 45%,35% 45%,35% 66%,43% 66%,43% 18%,46% 18%,48% 0,50% 18%,52% 18%,52% 55%,61% 55%,61% 35%,67% 35%,67% 66%,76% 66%,76% 43%,83% 43%,83% 71%,93% 71%,93% 50%,100% 50%,100% 100%,0 100%);background:linear-gradient(90deg,#0000 0 5%,#0a171c 5% 12%,#0000 12% 14%,#0a171c 14% 19%,#0000 19% 21%,#0a171c 21% 34%,#0000 34% 37%,#0a171c 37% 40%,#0000 40% 43%,#0a171c 43% 60%,#0000 60% 62%,#0a171c 62% 75%,#0000 75% 79%,#0a171c 79% 92%,#0000 92%);height:74px;position:absolute;bottom:8%;left:5%;right:5%}.section{padding:104px clamp(20px,7vw,110px);scroll-margin-top:20px}.section-heading{max-width:680px;margin-bottom:50px}.section-heading h2,.calculator-copy h2{color:var(--ink);letter-spacing:0;margin-bottom:16px;font:650 clamp(34px,4vw,54px)/1.2 Noto Serif HK,Fraunces,serif}.section-heading>p:last-child,.calculator-copy>p{color:#5e6965;line-height:1.75}.journey-section{background:#efe8da}.journey-grid{grid-template-columns:minmax(300px,.85fr) minmax(400px,1.35fr);align-items:center;gap:clamp(40px,7vw,100px);display:grid}.control-panel{background:#fffaf0;border:1px solid #674e2c2e;padding:34px;position:relative;box-shadow:0 24px 70px #332b201a}.control-panel>label{margin-bottom:27px;font-size:13px;font-weight:700;display:block}.control-panel select{width:100%;color:var(--ink);border:0;border-bottom:1px solid var(--line);background:0 0;margin-top:10px;padding:12px 10px}fieldset{border:0;margin:0 0 28px;padding:0}legend{margin-bottom:10px;font-size:13px;font-weight:700}.segments{border:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.segments button{border:0;border-right:1px solid var(--line);color:#59635f;background:0 0;min-height:40px}.segments button:last-child{border-right:0}.segments button.active{color:#fff;background:var(--jade)}.range-value{float:right;color:var(--jade)}input[type=range]{width:100%;accent-color:var(--red);margin-top:15px}.energy-orbit{aspect-ratio:1;color:#5a3e1c;background:var(--moon);border:6px double #68491f4d;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:114px;margin:10px auto -92px;display:flex;box-shadow:0 14px 30px #4a32142e}.energy-orbit span{font:650 30px/1 Fraunces,serif}.energy-orbit small{font-size:11px}.route-results{border-top:1px solid var(--line)}.route-result{text-align:left;width:100%;min-height:78px;color:var(--ink);border:0;border-bottom:1px solid var(--line);background:0 0;grid-template-columns:45px 1fr auto;align-items:center;gap:15px;padding:14px 8px;display:grid}.route-result:hover{background:#ffffff73}.route-index{color:var(--red);font:600 12px Fraunces,serif}.route-result strong{margin-bottom:5px;font-family:Noto Serif HK,serif;display:block}.route-result small{color:#6f7773;font-size:11px;display:block}.route-result>b{color:var(--jade);align-items:baseline;gap:6px;font:650 28px Fraunces,serif;display:flex}.map-section{color:#fff;background:var(--night)}.section-heading.light h2{color:#fff}.section-heading.light>p:last-child{color:#b9cbc5}.map-layout{border:1px solid #ffffff26;grid-template-columns:minmax(0,1.5fr) minmax(280px,.55fr);min-height:520px;display:grid}.map-wrap{background:#d8e5df;width:100%;min-height:520px;position:relative;overflow:hidden}.google-map-embed{pointer-events:none;border:0;width:100%;height:520px;display:block}.map-lock-note{color:#fff;background:#0b1d23e6;align-items:center;gap:7px;margin:0;padding:9px 14px;font-size:11px;display:flex;position:absolute;bottom:16px;left:16px;box-shadow:0 6px 20px #0003}.map-placeholder{text-align:center;min-height:520px;color:var(--ink);background:linear-gradient(#d8e5dff0,#d8e5dff0),repeating-linear-gradient(45deg,#2f716b 0 1px,#0000 1px 28px);flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex}.map-placeholder>svg{color:var(--red)}.map-placeholder strong{margin-top:18px;font:600 26px Noto Serif HK,serif}.map-placeholder p{color:#52635d;max-width:430px;margin:12px 0 24px;line-height:1.7}.route-detail{background:#17353a;flex-direction:column;padding:38px;display:flex;position:relative}.route-count{color:#ffffff1f;font:650 72px/1 Fraunces,serif;position:absolute;top:24px;right:28px}.route-detail>svg{color:var(--moon)}.route-detail h3{max-width:250px;margin:22px 0 32px;font:600 28px/1.3 Noto Serif HK,serif}.distance-stat{border-bottom:1px solid #ffffff2e;align-items:center;gap:12px;padding-bottom:30px;display:flex}.distance-stat strong{color:var(--moon);font:650 58px/1 Fraunces,serif}.distance-stat span{flex-direction:column;font-size:14px;display:flex}.distance-stat small{color:#9eb4ad;font-size:10px}.route-detail dl{margin:28px 0}.route-detail dt{color:var(--moon);text-transform:uppercase;margin-top:18px;font-size:11px;font-weight:700}.route-detail dd{color:#d4e0dc;margin:7px 0 0;font-size:13px;line-height:1.65}.route-actions{flex-direction:column;align-items:flex-start;gap:13px;margin-top:auto;display:flex}.text-link{color:var(--moon);align-items:center;gap:5px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.text-link.secondary{color:#c6d6d0;font-weight:500}.route-tabs{grid-template-columns:repeat(6,1fr);gap:8px;margin-top:16px;display:grid}.route-tabs button{color:#adc0b9;background:0 0;border:1px solid #ffffff29;min-height:52px;padding:8px;font-size:11px}.route-tabs button.active{color:var(--night);background:var(--moon);border-color:var(--moon)}.safety-section{background:#f6f1e7}.safety-grid{border:1px solid var(--line);grid-template-columns:1.15fr 1fr 1fr;display:grid}.safety-column{border-right:1px solid var(--line);min-height:340px;padding:32px}.safety-column:last-child{border-right:0}.stage-icon{color:#fff;background:var(--jade);place-items:center;width:46px;height:46px;margin-bottom:24px;display:grid}.stage-1 .stage-icon{color:var(--ink);background:var(--moon)}.stage-2 .stage-icon{background:var(--red)}.safety-column h3{font:600 22px Noto Serif HK,serif}.check-item{color:#4e5a56;cursor:pointer;border-top:1px solid #202b2817;align-items:flex-start;gap:10px;padding:12px 0;font-size:13px;line-height:1.55;display:flex}.check-item input{opacity:0;position:absolute}.custom-check{color:#0000;border:1px solid #93a09b;flex:0 0 20px;place-items:center;width:20px;height:20px;display:grid}.check-item input:checked+.custom-check{color:#fff;background:var(--jade);border-color:var(--jade)}.safety-progress{grid-template-columns:auto 1fr;align-items:center;gap:20px;margin-top:24px;font-size:12px;display:grid}.safety-progress>div{background:#d7d3c9;height:5px;overflow:hidden}.safety-progress i{background:var(--jade);height:100%;transition:width .3s;display:block}.safety-progress strong{color:var(--red)}.calculator-section{background:#d8e5df;grid-template-columns:.8fr 1.2fr;align-items:center;gap:clamp(40px,8vw,120px);display:grid}.formula-note{border-left:3px solid var(--red);flex-direction:column;gap:7px;margin-top:38px;padding-left:18px;font-size:12px;display:flex}.formula-note code{font:600 16px Fraunces,serif}.formula-note span{color:#60716a}.calculator-card{color:#fff;background:var(--night-deep);padding:38px;box-shadow:18px 18px #2f716b2e}.calculator-inputs{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.calculator-inputs label{color:#aabcb5;font-size:11px}.calculator-inputs label>span{color:#d9e5df;border:1px solid #fff3;align-items:baseline;gap:3px;margin-top:8px;padding:10px;display:flex}.calculator-inputs input{color:#fff;background:0 0;border:0;outline:0;width:100%;min-width:0;font:650 22px Fraunces,serif}.calorie-result{grid-template-columns:auto 1fr;align-items:baseline;column-gap:8px;margin:36px 0 24px;display:grid}.calorie-result p{color:#aabcb5;grid-column:1/-1;font-size:12px}.calorie-result>strong{color:var(--moon);font:650 clamp(62px,8vw,104px)/1 Fraunces,serif}.calorie-result>span{color:var(--moon)}.calorie-result>div{text-align:left;flex-direction:column;grid-column:1/-1;margin-top:18px;display:flex}.calorie-result b{font:600 20px Fraunces,serif}.calorie-result small{color:#91a69f}.reset-button{color:#d7e1dd;background:0 0;border:0;align-items:center;gap:7px;padding:8px 0;display:flex}.library-section{background:#eee3d2}.library-status{color:#52635d;background:#fffaf1b8;border:1px solid #473a2924;padding:28px}.library-status.error{color:#8b3327}.book-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.book-card{background:#fffaf1;border:1px solid #473a2924;grid-template-columns:43% 57%;min-height:430px;display:grid;overflow:hidden}.book-cover{background:var(--jade);min-height:100%;position:relative;overflow:hidden}.book-cover:after{content:"";pointer-events:none;border:1px solid #ffffff47;position:absolute;inset:18px}.book-cover img{z-index:2;object-fit:contain;background:#f4efe5;width:100%;height:100%;position:absolute;inset:0}.book-cover>strong{z-index:1;color:#f7edcf;writing-mode:vertical-rl;max-height:230px;font:600 20px/1.45 Noto Serif HK,serif;position:absolute;top:42px;left:50%;transform:translate(-50%)}.book-cover span{z-index:3;color:#fff;background:var(--red);padding:5px 7px;font-size:10px;position:absolute;bottom:12px;left:10px}.book-info{flex-direction:column;padding:25px 20px;display:flex}.book-info>svg{color:var(--red)}.book-info h3{margin:20px 0 8px;font:600 20px/1.45 Noto Serif HK,serif}.book-info>p{color:#777d78;font-size:11px;line-height:1.6}.book-actions{flex-direction:column;align-items:flex-start;gap:18px;margin-top:auto;display:flex}.book-actions>a{color:var(--jade);align-items:center;gap:5px;font-size:12px;font-weight:700;display:flex}.qr{align-items:flex-end;gap:8px;display:flex}.qr svg{border:1px solid var(--line);background:#fff;padding:5px}.qr small{color:#777d78;writing-mode:vertical-rl;font-size:9px}.ecard-section{color:#fff;background:var(--night)}.ecard-section .section-heading{max-width:760px}.ecard-workspace{grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr);align-items:start;gap:clamp(32px,6vw,88px);display:grid}.ecard-editor{color:var(--ink);border-top:5px solid var(--red);background:#f5f1e7;padding:32px}.ecard-editor fieldset{margin-bottom:30px}.ecard-editor legend{font-size:14px}.ecard-presets{gap:8px;display:grid}.ecard-presets button{text-align:left;color:#52605b;border:1px solid var(--line);background:0 0;grid-template-columns:28px 1fr;align-items:center;gap:9px;min-height:60px;padding:11px 13px;font:500 12px/1.55 Noto Sans HK,sans-serif;display:grid}.ecard-presets button span{color:var(--red);font:650 11px Fraunces,serif}.ecard-presets button[aria-pressed=true]{color:#fff;background:var(--jade);border-color:var(--jade)}.ecard-presets button[aria-pressed=true] span{color:var(--moon)}.ecard-field{margin-top:22px;display:block}.ecard-field>span{justify-content:space-between;gap:20px;margin-bottom:9px;font-size:13px;font-weight:700;display:flex}.ecard-field small{color:#70807a;font:500 10px Fraunces,serif}.ecard-field textarea,.ecard-field input{box-sizing:border-box;width:100%;color:var(--ink);border:1px solid var(--line);resize:vertical;background:#fffaf1;border-radius:0;padding:12px 13px;font:500 14px/1.65 Noto Sans HK,sans-serif}.ecard-field textarea:focus,.ecard-field input:focus{outline:2px solid var(--jade);outline-offset:2px}.ecard-actions{flex-wrap:wrap;gap:9px;margin-top:28px;display:flex}.ecard-action{border:1px solid var(--jade);justify-content:center;align-items:center;gap:7px;min-height:43px;padding:0 14px;font-size:12px;font-weight:700;display:inline-flex}.ecard-action.primary{color:#fff;background:var(--red);border-color:var(--red)}.ecard-action.secondary{color:var(--jade);background:0 0}.ecard-action:disabled{cursor:not-allowed;opacity:.42}.ecard-share-help{color:#68766f;margin:14px 0 0;font-size:10px;line-height:1.55}.ecard-status{min-height:20px;color:var(--jade);margin:10px 0 0;font-size:11px}.ecard-preview{min-width:0}.ecard-preview>p{color:var(--moon);text-transform:uppercase;margin-bottom:12px;font-size:11px;font-weight:700}.ecard-preview canvas{background:#f5eddc;border:1px solid #ffffff38;width:100%;height:auto;display:block;box-shadow:22px 22px #04121652}.source-band{color:#fff;background:var(--red);justify-content:space-between;align-items:center;gap:30px;padding:34px clamp(20px,7vw,110px);display:flex}.source-band>div{align-items:flex-start;gap:15px;max-width:880px;font-size:12px;line-height:1.65;display:flex}.source-band strong{font-size:13px;display:block}.source-band a{white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}footer{color:#a4b4ae;background:var(--night-deep);justify-content:space-between;padding:25px clamp(20px,7vw,110px);font-size:10px;display:flex}.back-to-top{z-index:1100;width:50px;height:50px;color:var(--night-deep);background:var(--moon);border:2px solid var(--night-deep);opacity:0;visibility:hidden;border-radius:50%;place-items:center;padding:0;transition:opacity .2s,transform .2s,visibility .2s;display:grid;position:fixed;bottom:clamp(18px,3vw,38px);right:clamp(18px,3vw,38px);transform:translateY(12px);box-shadow:0 8px 24px #04121647}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{color:#fff;background:var(--red)}.back-to-top svg{stroke-width:2.4px;width:24px;height:24px}@keyframes rise{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@media (width<=1050px){.site-header nav{display:none}.hero-section{grid-template-columns:1fr .65fr}.book-card{grid-template-columns:1fr}.book-cover{min-height:240px}.ecard-workspace{grid-template-columns:1fr}.ecard-editor{max-width:700px}}@media (width<=760px){.site-header{height:66px;padding-inline:18px}.hero-section{background-position:58%;grid-template-columns:1fr;align-content:start;min-height:710px;max-height:none;padding:64px 20px 32px}.hero-section:before{content:"";z-index:-1;background:#081a2147;position:absolute;inset:0}.hero-section .eyebrow{font-size:16px}h1{font-size:43px}.hero-title-en{font-size:43px;line-height:1.12}.hero-copy{font-size:15px}.moon-stage{min-height:260px}.moon-disc{width:180px}.moon-disc span{font-size:28px}.skyline{bottom:1%}.section{padding:76px 20px}.section-heading{margin-bottom:36px}.section-heading h2,.calculator-copy h2{font-size:36px}.journey-grid,.calculator-section{grid-template-columns:1fr}.journey-grid{gap:86px}.control-panel{padding:25px}.map-section{padding-inline:0}.map-section .section-heading{padding-inline:20px}.map-layout{border-inline:0;grid-template-columns:1fr}.map-wrap,.google-map-embed,.map-placeholder{height:390px;min-height:390px}.map-lock-note{bottom:10px;left:10px;right:10px}.route-detail{min-height:430px}.route-tabs{grid-template-columns:repeat(2,1fr);padding:0 20px}.safety-grid{grid-template-columns:1fr}.safety-column{border-right:0;border-bottom:1px solid var(--line);min-height:0}.safety-progress{grid-template-columns:1fr}.calculator-card{padding:26px 20px;box-shadow:8px 8px #2f716b2e}.calculator-inputs{grid-template-columns:1fr}.calorie-result>strong{font-size:68px}.book-grid{grid-template-columns:1fr}.book-card{grid-template-columns:42% 58%;min-height:350px}.book-cover{min-height:350px}.ecard-editor{padding:25px 20px}.ecard-preview{order:-1}.ecard-preview canvas{box-shadow:10px 10px #04121652}.source-band,footer{flex-direction:column;align-items:flex-start}.back-to-top{width:46px;height:46px;bottom:16px;right:16px}}@media (width<=390px){.brand small{display:none}h1,.hero-title-en{font-size:38px}.hero-actions{flex-direction:column;align-items:stretch}.book-card{grid-template-columns:1fr}.book-cover{min-height:250px}.ecard-actions{display:grid}.ecard-action{width:100%}}
