body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.map-panorama-container{background:linear-gradient(135deg,#6a5acd,#00bfff);box-sizing:border-box;display:flex;flex-direction:column;font-family:Pinkfong Baby Shark Font_ Bold;gap:8px;height:calc(100vh - 100px);overflow:hidden;padding:8px;touch-action:none;transition:background .5s ease;width:100%}.svs-car{align-items:center;display:flex;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));justify-content:center;pointer-events:none;position:relative;transform-origin:center}.svs-car,.svs-car img{height:34px;width:38px}.svs-car-light{background:radial-gradient(circle at 30% 30%,#00b7ff 0,#4dcaff 70%,#0000 100%);-webkit-clip-path:polygon(50% 0,0 100%,100% 100%);clip-path:polygon(50% 0,0 100%,100% 100%);filter:blur(4px) brightness(1.6);height:22px;left:26px;opacity:.75;position:absolute;top:-2px;transform:rotate(270deg);transform-origin:center;width:22px}.map-panorama-container.panorama-closed .map-wrapper,.map-wrapper{height:100%}.panorama-wrapper{height:30vh;max-height:30vh;overflow:hidden;transition:max-height .3s ease}.panorama-wrapper:not(.open){max-height:0}.map-wrapper,.panorama-wrapper{border-radius:20px;box-shadow:0 4px 15px #00000026;overflow:hidden;transition:all .3s ease;width:100%}.map-wrapper:hover,.panorama-wrapper:hover{box-shadow:0 8px 30px #0003;transform:translateY(-2px)}.map,.panorama{height:100%;touch-action:pan-x pan-y pinch-zoom;width:100%}@media (max-width:768px){.map-panorama-container{gap:4px;padding:4px}.map-panorama-container.panorama-closed .map-wrapper,.map-wrapper{height:100%}.panorama-wrapper{height:30vh;max-height:30vh}.map-wrapper,.panorama-wrapper{border-radius:15px}}@media (min-width:769px){.map-panorama-container.panorama-closed .map-wrapper,.map-wrapper{height:100%}.panorama-wrapper{height:40vh;max-height:40vh}}.panorama-wrapper{position:relative}.panorama-wrapper:before{background:linear-gradient(135deg,#6a5acd,#00bfff);border-radius:20px;bottom:0;content:"";left:0;padding:2px;position:absolute;right:0;top:0;transition:opacity .3s ease;z-index:-1}.panorama-wrapper:hover:before{opacity:.8}.panorama-toggle{background:linear-gradient(135deg,#6a5acd,#007ca6);border-radius:30px;bottom:30px;box-shadow:0 2px 6px #0000001a;color:#fff;cursor:pointer;font-size:12px;left:50%;padding:6px 12px;position:absolute;text-align:center;transform:translateX(-50%);transition:all .3s ease;width:-webkit-fit-content;width:fit-content;z-index:10}.panorama-toggle:hover{background:linear-gradient(135deg,#483d8b,#007ca6);box-shadow:0 4px 10px #00000026;transform:scale(1.05) translateX(-50%)}.notice-panel{background:linear-gradient(135deg,#fffffff2,#ffffffd9);border:1px solid #6a5acd66;border-radius:16px;bottom:20px;box-shadow:0 6px 20px #00000026;cursor:pointer;font-family:Pinkfong Baby Shark Font_ Bold;height:-webkit-fit-content;height:fit-content;left:20px;overflow-y:auto;padding:4px;position:fixed;top:auto;transition:all .3s ease;width:100px;z-index:1000}.notice-panel:not(.open){animation:pulse 2s ease-in-out infinite;border-radius:50%;height:50px;overflow:hidden;padding:0;width:50px}.notice-panel:not(.open) .panel-header{align-items:center;border-bottom:none;display:flex;height:100%;justify-content:center}.notice-panel:not(.open) h3{font-size:28px;margin:0;text-align:center;text-shadow:0 1px 2px #0003}.notice-panel:not(.open) .panel-content{display:none}.notice-panel.open{border-radius:16px;max-width:360px;width:-webkit-fit-content;width:fit-content}.notice-panel:hover{box-shadow:0 8px 25px #00000040;transform:scale(1.05)}.panel-header{align-items:center;border-bottom:1px solid #6a5acd33;display:flex;justify-content:space-between;padding:15px}.panel-content{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease}.panel-content.open{max-height:500px;padding:15px}.notice-panel ul{list-style:none;margin:0;padding:0}.notice-panel li{border-bottom:1px solid #6a5acd1a;padding:10px 0 10px 20px;position:relative;transition:background .2s ease}.notice-panel li:before{content:"📌";left:0;position:absolute;top:12px}.notice-panel li:hover{background:#6a5acd0d}.notice-panel li:last-child{border-bottom:none}.notice-content{color:#333;line-height:1.4;margin:5px 0;text-shadow:0 1px 2px #0000001a;white-space:pre}.notice-panel small{color:#666;font-size:.85em}.star-rating{align-items:center;display:flex;gap:4px;margin:4px 0}.star{color:#ccc;cursor:pointer;font-size:20px;transition:color .2s ease}.star.filled{color:#00bfff}.star.filled:hover,.star:hover{color:#6a5acd}.rating-text{color:#333;font-size:14px;margin-left:8px;text-shadow:0 1px 2px #0000001a}.feedback-form{animation:slideIn .3s ease-out;background:linear-gradient(135deg,#fffffff2,#ffffffd9);border:2px solid #6a5acd66;border-radius:20px;bottom:20px;box-shadow:0 6px 20px #00000026;cursor:pointer;font-family:Pinkfong Baby Shark Font_ Bold;height:-webkit-fit-content;height:fit-content;left:auto;margin-top:20px;padding:25px;position:fixed;right:20px;top:auto;transition:all .3s ease;width:-webkit-fit-content;width:fit-content}.feedback-form:not(.open){animation:rotateIcon 3s linear infinite;border-radius:50%;height:50px;overflow:hidden;padding:0;width:50px}@keyframes rotateIcon{0%{transform:rotate(60deg)}50%{transform:rotate(80deg)}to{transform:rotate(60deg)}}.feedback-form:not(.open) .form-header{align-items:center;border-bottom:none;display:flex;height:100%;justify-content:center;margin:0}.feedback-form:not(.open) .form-title{font-size:28px;margin:0;text-align:center;text-shadow:0 1px 2px #0003}.feedback-form.open{border-radius:20px;max-width:400px;width:-webkit-fit-content;width:fit-content}.feedback-form:hover{box-shadow:0 8px 25px #00000040;transform:scale(1.05)}.form-header{align-items:center;border-bottom:2px solid #6a5acd33;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.form-title{color:#6a5acd;font-size:1rem;font-weight:600;margin:0;text-shadow:0 1px 2px #0000001a}.cancel-btn{background:none;border:none;border-radius:50%;color:#999;cursor:pointer;font-size:1.5rem;padding:5px;transition:all .2s ease}.cancel-btn:hover{background-color:#6a5acd1a;color:#dc3545;transform:scale(1.1)}.textarea-container{margin-bottom:25px}.feedback-textarea{background-color:#fff;border:2px solid #6a5acd4d;border-radius:12px;font-family:inherit;font-size:1rem;line-height:1.6;min-height:120px;padding:15px;resize:vertical;transition:all .2s ease;width:100%}.feedback-textarea:focus{border-color:#00bfff;box-shadow:0 0 0 3px #00bfff33;outline:none}.feedback-textarea::placeholder{color:#adb5bd;font-style:italic}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:10px}.submit-button{background:linear-gradient(135deg,#6a5acd,#007ca6);border:none;border-radius:12px;box-shadow:0 2px 8px #6a5acd4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;min-width:120px;padding:12px 30px;position:relative;text-align:center;transition:all .3s ease}.submit-button:hover{background:linear-gradient(135deg,#483d8b,#007ca6);box-shadow:0 4px 12px #6a5acd66;transform:translateY(-1px)}.submit-button:active{box-shadow:0 2px 6px #6a5acd4d;transform:translateY(0)}.school-info-window{background:#0000;border:none!important;box-shadow:none;box-sizing:border-box;margin:0!important;max-width:272px;min-width:272px;overflow:visible;padding:0 0 9px!important;position:relative;width:272px}.school-info-window__body{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0003;box-sizing:border-box;overflow:hidden;padding:12px;width:100%}.school-info-window__tail{border-left:10px solid #0000;border-right:10px solid #0000;border-top:10px solid #fff;bottom:0;filter:drop-shadow(0 2px 2px rgba(0,0,0,.18));height:0;left:50%;pointer-events:none;position:absolute;transform:translateX(-50%);width:0;z-index:1}.nm-infowindow .nm-arrow{bottom:-1px!important;margin:0!important}.school-detail-modal{animation:fadeIn .3s ease;background:#fff;border:2px solid #6a5acd66;border-radius:20px;box-shadow:0 8px 30px #0000004d;left:50%;max-height:80vh;max-width:600px;overflow:hidden;padding:20px;position:fixed;top:50%;transform:translate(-50%,-50%);width:80%;z-index:2000}.school-detail-content{max-height:calc(80vh - 40px);overflow-y:scroll;padding:10px}.school-detail-content::-webkit-scrollbar{width:8px}.school-detail-content::-webkit-scrollbar-track{background:#6a5acd1a;border-radius:10px}.school-detail-content::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6a5acd,#00bfff);border:2px solid #fff;border-radius:10px}.school-detail-content::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#483d8b,#00bfff)}.school-detail-header{align-items:center;border-bottom:2px solid #6a5acd33;display:flex;justify-content:space-between;margin-bottom:20px}.school-detail-title{color:#6a5acd;font-size:1.2rem;font-weight:700}.school-detail-close{background:none;border:none;color:#999;cursor:pointer;font-size:1.5rem;transition:color .2s}.school-detail-close:hover{color:#dc3545}.school-detail-section{margin-top:15px}.school-detail-section-title{color:#00bfff;font-size:1rem;font-weight:600;margin-bottom:10px}.school-detail-list{list-style:none;margin:0;padding:0}.school-detail-list li{border-bottom:1px solid #6a5acd1a;padding:8px 0}.school-detail-list li:last-child{border-bottom:none}.school-detail-backdrop{background:#00000080;height:100%;left:0;position:fixed;top:0;width:100%;z-index:1999}.more-details-btn{background:linear-gradient(135deg,#6a5acd,#007ca6);border:none;border-radius:8px;box-shadow:0 2px 6px #0000001a;color:#fff;cursor:pointer;display:block;font-size:.875rem;margin-top:10px;padding:8px 16px;text-align:center;transition:all .3s ease}.more-details-btn:hover{background:linear-gradient(135deg,#483d8b,#007ca6);box-shadow:0 4px 10px #00000026;transform:translateY(-2px)}@media (max-width:768px){.school-info-window{border:none!important;max-width:86vw;min-width:min(272px,86vw);width:min(272px,86vw)}.school-info-window h3{font-size:.875rem;margin-bottom:.25rem}.school-info-window p{font-size:.75rem;margin-bottom:.125rem}.school-info-window__body{padding:.75rem}.notice-panel{animation-duration:2.5s;bottom:20px;left:10px;max-height:40vh;top:auto;width:80px}.feedback-form{animation-duration:3.5s;bottom:20px;max-width:none;right:10px;top:auto;width:90%}.school-detail-modal{max-height:90vh;max-width:none;width:95%}.school-detail-content{max-height:calc(90vh - 40px)}.panorama-toggle{bottom:10px;font-size:12px;padding:6px 12px;right:10px}}.svs-toast{animation:svsToastIn .18s ease-out;background:#1c1c20f0;border-radius:14px;bottom:28px;box-shadow:0 8px 30px #0000004d;color:#fff;font-size:.92rem;font-weight:600;left:50%;line-height:1.5;max-width:min(520px,calc(100vw - 32px));padding:12px 18px;position:fixed;transform:translateX(-50%);word-break:keep-all;z-index:1500}@keyframes svsToastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.svs-toast{animation:none}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .svs-toast{background:#f5f5f7f5;color:#1a1a1e}}:root[data-theme=dark] .svs-toast{background:#f5f5f7f5;color:#1a1a1e}.cancel-button{background:#0000;border:1px solid #78788266;border-radius:10px;color:inherit;cursor:pointer;font-size:.9rem;font-weight:600;margin-left:8px;min-height:40px;padding:0 16px}.cancel-button:hover{background:#7878821f}.cancel-button:focus-visible{outline:3px solid #0071e3;outline-offset:2px}.sd-backdrop,.sd-modal{--sd-bg:#f5f5f7;--sd-card:#fff;--sd-card-2:#fafafc;--sd-text:#262626;--sd-muted:#66666b;--sd-line:#e4e4e9;--sd-accent:#0071e3;--sd-accent-2:#5e5ce6;--sd-link:#0062c9;--sd-accent-ink:#0063c8;--sd-on-accent:#fff;--sd-on-accent-soft:#ffffffe0;--sd-on-accent-veil:#ffffff2e;--sd-ok:#0a783c;--sd-ok-bg:#e8f6ec;--sd-warn:#b25000;--sd-warn-bg:#fdf0e3;--sd-bad:#b3261e;--sd-bad-bg:#fdeaea;--sd-shadow:0 1px 2px #0000000d,0 18px 48px #1d1d1f2e;--sd-radius:18px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .sd-backdrop,:root:not([data-theme=light]) .sd-modal{--sd-bg:#131315;--sd-card:#1d1d21;--sd-card-2:#232329;--sd-text:#f5f5f7;--sd-muted:#a1a1a8;--sd-line:#33333a;--sd-accent:#4da3ff;--sd-accent-2:#9b99ff;--sd-link:#228eff;--sd-accent-ink:#4da3ff;--sd-on-accent:#0b2545;--sd-on-accent-soft:#0b2545d1;--sd-on-accent-veil:#0b254529;--sd-ok:#56d17f;--sd-ok-bg:#123020;--sd-warn:#ffb066;--sd-warn-bg:#33210e;--sd-bad:#ff8a80;--sd-bad-bg:#3a1416;--sd-shadow:0 1px 2px #00000080,0 18px 48px #0000008c}}:root[data-theme=dark] .sd-backdrop,:root[data-theme=dark] .sd-modal{--sd-bg:#131315;--sd-card:#1d1d21;--sd-card-2:#232329;--sd-text:#f5f5f7;--sd-muted:#a1a1a8;--sd-line:#33333a;--sd-accent:#4da3ff;--sd-accent-2:#9b99ff;--sd-link:#228eff;--sd-accent-ink:#4da3ff;--sd-on-accent:#0b2545;--sd-on-accent-soft:#0b2545d1;--sd-on-accent-veil:#0b254529;--sd-ok:#56d17f;--sd-ok-bg:#123020;--sd-warn:#ffb066;--sd-warn-bg:#33210e;--sd-bad:#ff8a80;--sd-bad-bg:#3a1416;--sd-shadow:0 1px 2px #00000080,0 18px 48px #0000008c}.sd-backdrop{animation:sdFade .16s ease-out;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14141873;inset:0;position:fixed;z-index:1400}.sd-modal{animation:sdRise .18s ease-out;background:var(--sd-bg);border-radius:var(--sd-radius);box-shadow:var(--sd-shadow);color:var(--sd-text);display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Segoe UI,Malgun Gothic,sans-serif;left:50%;line-height:1.55;max-height:min(86vh,900px);overflow:hidden;overflow-wrap:break-word;position:fixed;top:50%;transform:translate(-50%,-50%);width:min(760px,calc(100vw - 24px));word-break:keep-all;z-index:1401}@keyframes sdFade{0%{opacity:0}to{opacity:1}}@keyframes sdRise{0%{opacity:0;transform:translate(-50%,-46%)}to{opacity:1;transform:translate(-50%,-50%)}}@media (prefers-reduced-motion:reduce){.sd-backdrop,.sd-modal{animation:none}}.sd-header{align-items:flex-start;background:linear-gradient(135deg,var(--sd-accent) 0,var(--sd-accent-2) 100%);display:flex;gap:12px;justify-content:space-between;padding:18px 20px 14px}.sd-header,.sd-title{color:var(--sd-on-accent)}.sd-title{font-size:1.32rem;font-weight:800;letter-spacing:-.02em;margin:0}.sd-subtitle{color:var(--sd-on-accent-soft);font-size:.86rem;margin:4px 0 0}.sd-close{background:var(--sd-on-accent-veil);border:0;border-radius:12px;color:var(--sd-on-accent);cursor:pointer;flex:0 0 auto;font-size:1.5rem;line-height:1;min-height:44px;min-width:44px;transition:background .15s ease,transform .15s ease}.sd-close:hover{background:color-mix(in srgb,var(--sd-on-accent) 26%,#0000)}.sd-close:active{transform:scale(.94)}.sd-close:focus-visible{outline:3px solid var(--sd-on-accent);outline-offset:2px}.sd-body{-webkit-overflow-scrolling:touch;overflow-y:auto;padding:16px 18px 22px}.sd-section{background:var(--sd-card);border:1px solid var(--sd-line);border-radius:14px;margin-bottom:12px;padding:14px 16px}.sd-section-title{align-items:center;color:var(--sd-text);display:flex;flex-wrap:wrap;font-size:1.02rem;font-weight:800;gap:8px;letter-spacing:-.01em;margin:0 0 10px}.sd-ico{align-items:center;background:color-mix(in srgb,var(--sd-accent) 14%,#0000);color:var(--sd-accent-ink);display:inline-flex;font-size:.72rem;font-weight:700;height:22px;justify-content:center;letter-spacing:0;min-width:34px;padding:0 7px}.sd-badge,.sd-ico{border-radius:999px}.sd-badge{background:var(--sd-card-2);border:1px solid var(--sd-line);font-size:.74rem;font-weight:600;margin-left:auto;padding:2px 9px}.sd-badge,.sd-lead{color:var(--sd-muted)}.sd-lead{font-size:.9rem;margin:0 0 12px}.sd-lead b{color:var(--sd-text)}.sd-inline{font-size:.92rem;margin:0}.sd-note{color:var(--sd-muted);font-size:.85rem;margin:10px 0 0}.sd-note b{color:var(--sd-text)}.sd-empty{background:var(--sd-card-2);border:1px dashed var(--sd-line);border-radius:12px;color:var(--sd-muted);font-size:.9rem;margin:0;padding:12px 14px}.sd-empty-sub{display:block;font-size:.82rem;margin-top:4px}.sd-dl{grid-gap:6px 12px;display:grid;font-size:.92rem;gap:6px 12px;grid-template-columns:76px minmax(0,1fr);margin:0}.sd-dl dt{color:var(--sd-muted);font-weight:600}.sd-dl dd{margin:0}.sd-dl a{color:var(--sd-link);word-break:break-all}.sd-tiles{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.sd-tiles-sm{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}.sd-tile{background:var(--sd-card-2);border:1px solid var(--sd-line);border-radius:12px;min-width:0;padding:10px 12px}.sd-tile-label{color:var(--sd-muted);display:block;font-size:.78rem}.sd-tile-value{display:block;font-size:1.25rem;font-weight:800;letter-spacing:-.02em;margin-top:2px}.sd-tile-unit{color:var(--sd-muted);font-size:.8rem;font-weight:600;margin-left:2px}.sd-tile-note{color:var(--sd-muted);display:block;font-size:.72rem;margin-top:3px}.sd-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.sd-chip{align-items:center;background:var(--sd-card-2);border:1px solid var(--sd-line);border-radius:999px;display:inline-flex;font-size:.86rem;font-weight:600;gap:5px;min-height:34px;padding:4px 11px}.sd-chip.on{background:var(--sd-ok-bg);border-color:color-mix(in srgb,var(--sd-ok) 40%,#0000);color:var(--sd-ok)}.sd-chip.off{color:var(--sd-muted)}.sd-chip-state{font-size:.74rem;font-weight:500;opacity:.85}.sd-list{font-size:.9rem;margin:0;padding-left:18px}.sd-list li{margin:3px 0}.sd-tag{background:var(--sd-card-2);border:1px solid var(--sd-line);border-radius:999px;color:var(--sd-muted);font-size:.74rem;margin-left:6px;padding:1px 7px}.sd-trend{align-items:flex-end;display:flex;gap:5px;height:124px;padding:6px 2px 0}.sd-trend-col{align-items:center;display:flex;flex:1 1;flex-direction:column;height:100%;justify-content:flex-end;min-width:0}.sd-trend-num{font-feature-settings:"tnum";color:var(--sd-accent-ink);font-size:.64rem;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1;margin-top:4px;white-space:nowrap}.sd-trend-num-none{color:var(--sd-muted);font-weight:600}.sd-trend-year{font-feature-settings:"tnum";color:var(--sd-muted);font-size:.62rem;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.1;margin-top:2px}.sd-trend-year-none{color:var(--sd-warn)}.sd-trend-track{align-items:flex-end;display:flex;flex:1 1;justify-content:center;min-height:0;width:100%}.sd-trend-bar{background:linear-gradient(180deg,var(--sd-accent) 0,var(--sd-accent-2) 100%);border-radius:5px 5px 0 0;display:block;max-width:26px;min-height:3px;width:100%}.sd-loading{align-items:center;color:var(--sd-muted);display:flex;font-size:.94rem;gap:10px;padding:26px 16px}.sd-loading b{color:var(--sd-text)}.sd-slow{color:var(--sd-warn)}.sd-spinner{animation:sdSpin .9s linear infinite;border:2.5px solid color-mix(in srgb,var(--sd-accent) 30%,#0000);border-radius:50%;border-top-color:var(--sd-accent);height:18px;width:18px}@keyframes sdSpin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.sd-spinner{animation-duration:3s}}.sd-error{background:var(--sd-bad-bg);border:1px solid color-mix(in srgb,var(--sd-bad) 34%,#0000);border-radius:12px;color:var(--sd-bad);display:flex;flex-direction:column;font-size:.9rem;gap:6px;padding:14px 16px}.sd-error-detail{font-size:.78rem;opacity:.85;word-break:break-all}.sd-retry{align-self:flex-start;background:#0000;border:1px solid;border-radius:10px;color:inherit;cursor:pointer;font-weight:700;margin-top:4px;min-height:40px;padding:0 14px}.sd-retry:focus-visible{outline:3px solid var(--sd-accent);outline-offset:2px}.sd-source{color:var(--sd-muted);font-size:.78rem;margin:14px 2px 0}.sd-source a{color:var(--sd-link)}.fit-block{margin-top:14px}.fit-block:first-of-type{margin-top:4px}.fit-block-head{margin-bottom:8px}.fit-block-title{font-size:.95rem;font-weight:800;letter-spacing:-.01em;margin:0}.fit-bars{list-style:none;margin:0;padding:0}.fit-bar-row{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:94px minmax(0,1fr) 92px;padding:4px 0}.fit-bar-label{display:flex;flex-direction:column;font-size:.84rem}.fit-bar-label b{font-weight:700}.fit-bar-desc{color:var(--sd-muted);font-size:.72rem}.fit-bar-track{background:var(--sd-card-2);border:1px solid var(--sd-line);border-radius:8px;display:block;height:16px;overflow:hidden}.fit-bar-fill{border-radius:8px 0 0 8px;display:block;height:100%;min-width:2px}.fit-bar-value{font-size:.84rem;text-align:right}.fit-bar-value b{font-weight:800}.fit-bar-count{color:var(--sd-muted);display:block;font-size:.72rem}.fit-factors{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.fit-factor{background:var(--sd-card-2);border:1px solid var(--sd-line);border-radius:12px;min-width:0;padding:10px 12px}.fit-factor-name{display:block;font-size:.88rem;font-weight:800;margin-bottom:6px}.fit-items{list-style:none;margin:0;padding:0}.fit-items li{align-items:baseline;border-top:1px solid var(--sd-line);display:flex;font-size:.84rem;gap:8px;justify-content:space-between;padding:3px 0}.fit-items li:first-child{border-top:0}.fit-item-name{color:var(--sd-muted);min-width:0}.fit-item-value b{font-weight:800}.fit-toggle{background:var(--sd-card-2);border:1px solid var(--sd-line);border-radius:12px;color:var(--sd-text);cursor:pointer;font-size:.88rem;font-weight:700;min-height:44px;transition:background .15s ease;width:100%}.fit-toggle:hover{background:color-mix(in srgb,var(--sd-accent) 8%,var(--sd-card-2))}.fit-toggle:focus-visible{outline:3px solid var(--sd-accent);outline-offset:2px}.fit-tablewrap{-webkit-overflow-scrolling:touch;border:1px solid var(--sd-line);border-radius:12px;margin-top:10px;overflow-x:auto}.fit-scroll-hint{color:var(--sd-muted);font-size:.78rem;margin:0 0 5px}.fit-scroll-hint b{color:var(--sd-accent-ink)}.fit-table{border-collapse:collapse;font-size:.82rem;min-width:560px;width:100%}.fit-table-caption{background:var(--sd-card-2);caption-side:top;color:var(--sd-muted);font-size:.76rem;padding:8px 10px;text-align:left}.fit-table td,.fit-table th{border-top:1px solid var(--sd-line);padding:6px 10px;white-space:nowrap}.fit-table thead th{background:var(--sd-card-2);font-weight:700;text-align:left}.fit-table td.num,.fit-table th.num{text-align:right}.fit-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--sd-line) 22%,#0000)}.fit-table-measure{min-width:0;table-layout:fixed}.fit-table-measure td:first-child,.fit-table-measure th:first-child{width:52px}.fit-table-measure tbody td:nth-child(2),.fit-table-measure thead tr:first-child th:nth-child(2){width:46px}.fit-table-measure thead th.sub{line-height:1.3;padding:5px 6px;white-space:normal;word-break:keep-all}.fit-table-measure td,.fit-table-measure th{padding:6px}.fit-table-measure thead th.grp{line-height:1.25;padding:5px 4px;white-space:normal;word-break:keep-all}.fit-table-measure .unit{display:block;font-size:.92em;font-weight:400;opacity:.85}.fit-table thead th.grp{background:color-mix(in srgb,var(--sd-accent) 12%,var(--sd-card-2));color:var(--sd-accent-ink);text-align:center}.fit-table thead th.sub{color:var(--sd-muted);font-size:.72rem;font-weight:600}@media (max-width:560px){.fit-table-measure{min-width:620px;table-layout:auto}.fit-table-measure thead th.grp,.fit-table-measure thead th.sub{white-space:nowrap}.fit-table-measure tbody td:nth-child(2),.fit-table-measure td:first-child,.fit-table-measure th:first-child,.fit-table-measure thead tr:first-child th:nth-child(2){width:auto}.sd-modal{border-radius:14px;max-height:92vh;width:calc(100vw - 12px)}.sd-body{padding:12px 12px 18px}.sd-dl{grid-template-columns:64px minmax(0,1fr)}.fit-bar-row{grid-template-columns:78px minmax(0,1fr) 78px}}.sd-trend-none{align-items:center;background:repeating-linear-gradient(45deg,var(--sd-line) 0,var(--sd-line) 3px,#0000 3px,#0000 6px);border:1px dashed var(--sd-muted);border-radius:5px;color:var(--sd-muted);display:flex;font-size:.62rem;font-weight:700;height:22%;justify-content:center}.sd-note-warn{background:var(--sd-warn-bg);border:1px solid color-mix(in srgb,var(--sd-warn) 30%,#0000);border-radius:10px;color:var(--sd-warn);padding:8px 10px}.sd-note-warn b{color:inherit}.logo-container{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center;position:relative;transition:transform .3s ease}.logo-container:hover{transform:scale(1.05)}.line{align-items:center;display:flex;position:relative;width:100%}.first-line{gap:-.08em;justify-content:center;z-index:2}.second-line{gap:-.08em;top:1.2em;width:-webkit-fit-content;width:fit-content;z-index:1}.punctuation-container,.second-line{align-items:center;display:flex;justify-content:center;left:50%;position:absolute;transform:translateX(-50%)}.punctuation-container{margin-left:1.2em;top:1.4em;z-index:4}.punctuation-wrapper{align-items:flex-start;display:inline-flex;justify-content:flex-start;margin:0 0 0 -.1em;transform:translateY(-.3em) rotate(-15deg);transform-origin:left center}.logo-medium{font-size:1.8rem;line-height:1.1;min-height:55px;min-width:130px;padding:.3em 0;position:relative}.logo-large{font-size:4rem;line-height:1;min-height:110px;min-width:280px;padding:.4em 0;position:relative}.logo-small{font-size:1.4rem;line-height:1.15;min-height:45px;min-width:105px;padding:.25em 0;position:relative}.logo-text{align-items:center;display:flex;flex-direction:column;overflow:visible;position:relative;text-shadow:0 2px 4px #ffffff4d;top:-10px;transition:all .3s ease;-webkit-user-select:none;user-select:none}.logo-text:hover{filter:drop-shadow(3px 3px 8px rgba(0,0,0,.2))}.letter{animation:letterFloat 4s ease-in-out infinite;display:inline-block;filter:drop-shadow(1px 1px 3px rgba(0,0,0,.1));font-family:Pinkfong Baby Shark Font_ Bold;font-weight:900;line-height:1;position:relative;transform-origin:center bottom;transition:all .3s ease;white-space:nowrap}.hak{--rotation:1.5deg;--translate-x:1px;--translate-y:0.5px;--skew-x:-0.8deg;animation-delay:0s;color:#ff6b6b;font-size:1em;z-index:3}.gyo{--rotation:-1deg;--translate-y:1.2px;--translate-x:0.5px;--skew-y:0.5deg;animation-delay:.15s;color:#4ecdc4;font-size:.85em;margin-left:-.06em;z-index:2}.ga{--translate-x:-1px;--translate-y:0.8px;--rotation:0.5deg;animation-delay:.3s;color:#45b7d1;font-size:.75em;margin-left:-.04em;z-index:1}.gung{--rotation:0.8deg;--translate-x:0.3px;--translate-y:-0.3px;--skew-x:0.4deg;animation-delay:.45s;color:#96ceb4;font-size:.65em;z-index:1}.geum{--rotation:-2deg;--translate-x:-0.5px;--translate-y:0.2px;--skew-y:-0.6deg;animation-delay:.6s;color:#feca57;font-size:.8em;z-index:2}.hae{--rotation:1deg;--translate-x:0.5px;--translate-y:-0.2px;animation-delay:.75s;color:#ff9f55;font-size:.95em;margin-left:-.05em;z-index:3}.punctuation.q{animation:questionBounce 1.5s ease-in-out infinite;color:#ff4757;font-size:.65em;font-weight:900;margin-right:-.02em;transform:rotate(-3deg)}.punctuation.e{animation:exclamationPulse 1.5s ease-in-out infinite;color:#ffa502;font-size:.55em;font-weight:900;margin-left:-.02em;position:relative;top:.02em;transform:rotate(2deg)}@keyframes letterFloat{0%,to{transform:translateY(0) rotate(0deg) translate(0) skew(0deg,0deg);transform:translateY(0) rotate(var(--rotation,0deg)) translate(var(--translate-x,0),var(--translate-y,0)) skew(var(--skew-x,0deg),var(--skew-y,0deg))}50%{transform:translateY(-.3px) rotate(.3deg) translate(0) skew(0deg,0deg);transform:translateY(-.3px) rotate(calc(var(--rotation, 0deg) + .3deg)) translate(var(--translate-x,0),var(--translate-y,0)) skew(var(--skew-x,0deg),var(--skew-y,0deg))}}@keyframes questionBounce{0%,20%,50%,80%,to{transform:rotate(-3deg) translateY(0)}40%{transform:rotate(-3deg) translateY(-.06em)}60%{transform:rotate(-3deg) translateY(-.03em)}}@keyframes exclamationPulse{0%,to{opacity:1;transform:rotate(2deg) scale(1)}50%{opacity:.9;transform:rotate(2deg) scale(1.08)}}.navbar .logo-container{margin-right:auto}.hero-section .logo-large{margin-bottom:.8rem}@media (max-width:768px){.logo-medium{font-size:2.2rem;line-height:1.05;min-height:60px;min-width:150px;padding:.2em 0}.second-line{gap:-.07em;top:1em}.first-line{gap:-.07em}.punctuation-container{margin-left:1.3em;top:.8em}.punctuation-wrapper{margin-left:-.09em;transform:translateY(-.25em) rotate(-10deg)}.punctuation.q{margin-right:-.02em;transform:rotate(-2deg)}.punctuation.e{margin-left:-.02em;top:.02em;transform:rotate(1deg)}.logo-medium .hak{font-size:1em}.logo-medium .gyo{font-size:.8em;margin-left:-.05em}.logo-medium .ga{font-size:.7em;margin-left:-.03em}.logo-medium .gung{font-size:.6em}.logo-medium .geum{font-size:.75em;margin-left:-.06em}.logo-medium .hae{font-size:.9em;margin-left:-.04em}}@media (max-width:480px){.logo-medium{font-size:2rem;line-height:.95;min-height:50px;min-width:130px;padding:.15em 0}.logo-large{font-size:3rem;line-height:.85;min-height:95px;min-width:220px;padding:.25em 0}.second-line{gap:-.06em;top:.85em}.first-line{gap:-.06em}.punctuation-container{margin-left:1em;top:.95em}.punctuation-wrapper{margin-left:-.07em;transform:translateY(-.2em) rotate(-7deg)}.punctuation.q{font-size:.6em;margin-right:-.01em;transform:rotate(-1.5deg)}.punctuation.e{font-size:.5em;margin-left:-.015em;top:.015em;transform:rotate(.75deg)}.gyo{margin-left:-.04em}.ga{margin-left:-.02em}.geum{margin-left:-.05em}.hae{margin-left:-.03em}.hero-section .logo-large{margin-bottom:.4rem}}.layout{background:linear-gradient(135deg,#6a5acd,#00bfff);display:flex;flex-direction:column;min-height:100vh;position:relative;transition:background-color .5s ease}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .layout{background:linear-gradient(135deg,#483d8b,#1e90ff)}}:root[data-theme=dark] .layout{background:linear-gradient(135deg,#483d8b,#1e90ff)}.header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#6a5acdcc;box-shadow:0 2px 10px #0000001a;position:fixed;top:0;transition:background-color .3s ease;width:100%;z-index:1000}.header-content,.navbar{margin:0 auto;max-width:1200px;padding:0 1rem}.navbar{align-items:center;display:flex;justify-content:space-between}.nav-links{display:flex;gap:1.5rem;list-style:none}.nav-links li a{border-radius:8px;color:#fff;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:background .3s ease,color .3s ease,transform .2s ease}.nav-links li a:hover{background:#00bfffcc;color:#fff;transform:translateY(-2px)}body.dark-mode .nav-links li a{color:#e6e6fa}body.dark-mode .nav-links li a:hover{color:#fff}.theme-toggle{background:#6a5acd99;border:1px solid #fff3;border-radius:50%;cursor:pointer;height:40px;transition:transform .2s ease;width:40px}.theme-toggle:hover{transform:scale(1.1)}.header-actions{align-items:center;display:flex;gap:1rem}.hamburger{background:none;border:none;color:#fff;cursor:pointer;display:none;font-size:1.5rem}.main-content{background:#0000;flex:1 1;margin-top:4rem;min-height:calc(100vh - 100px)}.content-wrapper{margin:0 auto;max-width:1200px;min-height:calc(100vh - 4rem);padding:2rem}@media (max-width:768px){.hamburger{display:block}.nav-links{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#6a5acdcc;display:none;flex-direction:column;left:0;opacity:0;padding:1rem;position:absolute;right:0;top:100%;transform:translateX(-100%);transition:transform .3s ease,opacity .3s ease}.nav-links.active{display:flex;opacity:1;transform:translateX(0)}.header-actions{display:none}.content-wrapper{padding:1rem}body.navigation-open{overflow:hidden}}@font-face{font-family:Pinkfong Baby Shark Font_ Bold;font-style:bold;font-weight:900;src:url(/static/media/Pinkfong%20Baby%20Shark%20Font_%20Bold.908007c2048eee1348d5.otf) format("opentype")}.landing-page{color:#fff;font-family:Pinkfong Baby Shark Font_ Bold;min-height:100vh;transition:background .5s ease}.hero-section,.landing-page{overflow:hidden;position:relative}.hero-section{align-items:center;display:flex;gap:3rem;margin:0 auto;max-width:1200px;padding:5rem 1rem}.hero-text{animation:fadeIn 1s ease-in-out;flex:1 1;min-width:560px;z-index:2}.hero-visual{flex:1 1;max-width:500px;min-width:40%;position:relative}.hero-visual:after{content:"";display:none}.hero-image{border-radius:20px;height:auto;object-fit:cover;width:100%}.hero-title{align-items:center;animation:slideIn 1s ease-out;display:flex;font-size:3.5rem;font-weight:800;margin-bottom:1.5rem;max-width:100%;text-shadow:0 2px 8px #00ffff4d}.hero-title,.hero-title span.highlight.typing-effect{font-family:Pinkfong Baby Shark Font_ Bold;white-space:pre}.hero-title span.highlight.typing-effect{animation:typing 5s steps(5) infinite,blink-caret .75s step-end infinite,fadeIn 1s ease-in-out;border-right:.15em solid #0ff;color:#0ff;display:inline-block;max-width:7.5ch;overflow:hidden}@keyframes typing{0%{width:0}30%{width:7.5ch}to{width:7.5ch}}@keyframes blink-caret{0%,to{border-color:#0000}50%{border-color:#0ff}}.hero-subtitle{animation:fadeIn 1.2s ease-in-out .2s;font-size:2rem;font-weight:600;margin-bottom:1.2rem;opacity:.95;text-shadow:0 2px 6px #00ffff4d}.hero-description{animation:fadeIn 1.4s ease-in-out .4s;font-size:1.3rem;line-height:1.7;margin-bottom:2.5rem;opacity:.85}.learn-more-btn{animation:fadeIn 1.6s ease-in-out .6s;background:linear-gradient(135deg,#007f80,#007ca6);border:none;border-radius:50px;box-shadow:0 6px 20px #00ffff4d;color:#fff;cursor:pointer;font-size:1.2rem;padding:1.2rem 2.5rem;transition:transform .3s ease,box-shadow .3s ease}.learn-more-btn:hover{box-shadow:0 8px 25px #0ff6;transform:translateY(-4px)}.section-title{color:#0ff;font-family:Pinkfong Baby Shark Font_ Bold;font-size:2.8rem;font-weight:700;margin-bottom:3.5rem;text-align:center;text-shadow:0 2px 8px #00ffff4d}.features-section{margin:0 auto 7rem;max-width:1200px;padding:0 1rem}.features-grid{grid-gap:2.5rem;display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.feature-card{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#ffffff26;border:1px solid #fff3;border-radius:25px;box-shadow:0 8px 30px #00ffff4d;padding:2.5rem;text-align:center;transition:transform .4s ease,box-shadow .4s ease;white-space:pre}.feature-card:hover{box-shadow:0 10px 40px #0ff6;transform:scale(1.08)}.feature-image{border:2px solid #00ffff4d;border-radius:50%;height:80px;margin:0 auto 1.5rem;object-fit:cover;width:80px}.feature-card h3{color:#0ff;font-family:Pinkfong Baby Shark Font_ Bold;font-size:2rem;letter-spacing:1px;margin-bottom:1.2rem;text-shadow:0 2px 6px #00ffff4d;text-transform:uppercase}.feature-card p{font-size:1.1rem;line-height:1.6;opacity:.9}.testimonials-section{margin:0 auto 7rem;max-width:1200px;padding:0 1rem}.testimonials-grid{grid-gap:2.5rem;display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.testimonial-block{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:linear-gradient(135deg,#0ff3,#00bfff4d);border:1px solid #fff3;border-radius:25px;box-shadow:0 8px 30px #00ffff4d;display:flex;flex-direction:column;justify-content:space-between;min-height:280px;padding:2rem;text-align:center;transition:transform .4s ease,box-shadow .4s ease}.testimonial-block:hover{box-shadow:0 12px 40px #0ff6;transform:translateY(-6px)}.testimonial-block p{animation:fadeIn 1s ease-in-out;font-family:Pinkfong Baby Shark Font_ Bold;font-size:1.2rem;line-height:1.6;margin-bottom:1.2rem}.testimonial-avatar{border:2px solid #00ffff4d;border-radius:50%;height:70px;margin:0 auto 1.5rem;overflow:hidden;width:70px}.testimonial-avatar img{height:auto;width:100%}.testimonial-rating{align-items:center;color:gold;display:flex;flex-direction:row;font-size:1.2rem;gap:.4rem;justify-content:center;margin:.8rem 0}.testimonial-rating:hover{animation:sparkle .5s ease-in-out}@keyframes sparkle{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}cite{color:#0ff;font-family:Pinkfong Baby Shark Font_ Bold;font-size:1.1rem;font-style:normal;font-weight:700;text-shadow:0 2px 4px #00ffff4d}.cta-section{margin:0 auto;max-width:1200px;padding:5rem 1rem;text-align:center}.button-group{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center}.cta-subtitle{animation:fadeIn 1.2s ease-in-out .2s;margin-bottom:2rem;opacity:.9}.cta-btn,.cta-subtitle{font-family:Pinkfong Baby Shark Font_ Bold;font-size:1.3rem}.cta-btn{background:linear-gradient(135deg,#007f80,#007ca6);border:none;border-radius:50px;box-shadow:0 6px 25px #00ffff4d;color:#fff;cursor:pointer;display:block;margin:0 auto;padding:1.5rem 3rem;transition:transform .4s ease,box-shadow .4s ease}.cta-btn:hover{box-shadow:0 10px 30px #0ff6;transform:scale(1.1)}.map-btn{background:linear-gradient(135deg,#c0c,#d600a0);border:none;border-radius:50px;box-shadow:0 6px 25px #ff00ff4d;color:#fff;cursor:pointer;display:block;font-family:Pinkfong Baby Shark Font_ Bold;font-size:1.3rem;margin:0 auto;padding:1.5rem 3rem;transition:transform .4s ease,box-shadow .4s ease}.map-btn:hover{box-shadow:0 10px 30px #f0f6;transform:scale(1.1)}.pulse-animation{animation:pulse 2.5s infinite}@keyframes pulse{0%{box-shadow:0 0 0 #00ffffb3;transform:scale(1)}70%{box-shadow:0 0 25px #0ff0;transform:scale(1.08)}to{box-shadow:0 0 0 #00ffffb3;transform:scale(1)}}@media (max-width:768px){.hero-section{flex-direction:column;padding:3rem 1rem}.hero-text,.hero-visual{min-width:100%}.hero-visual{max-width:100%}.hero-title{font-size:2.5rem}.hero-title span.highlight.typing-effect{font-size:2.5rem;max-width:7.5ch}.hero-subtitle{font-size:1.5rem}.hero-description{font-size:1.1rem}.hero-image{border-radius:15px}.section-title{font-size:2.2rem}.feature-card{padding:2rem}.feature-image{height:60px;width:60px}.feature-card h3{font-size:1.6rem}.testimonial-block{min-height:240px;padding:1.5rem}.testimonial-block p{font-size:1.1rem}.cta-btn,.map-btn{font-size:1.2rem;padding:1.2rem 2.5rem}.button-group{gap:1rem}}.modal-overlay{align-items:center;animation:fadeIn .3s ease-in-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:slideIn .3s ease-in-out;background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:600px;padding:2rem;position:relative;white-space:pre-wrap;width:90%}.modal-close-btn{background:none;border:none;color:#333;cursor:pointer;font-size:1.2rem;position:absolute;right:10px;top:10px}.modal-title{color:#1a1a1a;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.modal-body{color:#333;font-size:1rem;line-height:1.5}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:600px){.modal-content{padding:1.5rem;width:95%}}