@import "https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@400;700;900&family=Noto+Sans+TC:wght@300;400;500;700&display=swap";
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.mx-auto{margin-inline:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}:root{--bg:#f7f4f0;--bg-card:#fffdf9;--ink:#1a110a;--border:#ddd5c8;--border-light:#ede8e0;--muted:#999;--muted-light:#bbb;--dark:#1a110a;--nanshi-main:#c87a88;--nanshi-light:#f5d8dc;--nanshi-text:#7a3a45;--xiuguluan-main:#b09848;--xiuguluan-light:#ede8c0;--xiuguluan-text:#6a5a20;--coast-main:#6a9ec0;--coast-light:#c8dff0;--coast-text:#3a5f7a;--malan-main:#c07888;--malan-light:#f5d5dc;--malan-text:#7a3a50;--hengchun-main:#5a9a80;--hengchun-light:#c8e0d8;--hengchun-text:#2a5a45;--font-serif:"Noto Serif TC", serif;--font-sans:"Noto Sans TC", sans-serif;--transition-card:all .2s ease;--shadow-card:0 4px 12px #00000017;--radius-card:10px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:900;line-height:1.2}.card{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-card);transition:var(--transition-card);padding:20px 22px}.card:hover{box-shadow:var(--shadow-card);transform:translateY(-3px)}.page-container{padding-left:20px;padding-right:20px}@media (min-width:768px){.page-container{padding-left:32px;padding-right:32px}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:.35s forwards fadeUp}.fade-up-delay-1{opacity:0;animation-delay:50ms}.fade-up-delay-2{opacity:0;animation-delay:.1s}.fade-up-delay-3{opacity:0;animation-delay:.15s}.fade-up-delay-4{opacity:0;animation-delay:.2s}.fade-up-delay-5{opacity:0;animation-delay:.25s}.dialect-nanshi .dialect-badge,.dialect-dot-nanshi{background:var(--nanshi-main)}.dialect-pill-nanshi{background:var(--nanshi-light);color:var(--nanshi-text);border:1.5px solid var(--nanshi-main)}.dialect-card-nanshi{border-color:var(--nanshi-main);background:var(--nanshi-light)}.dialect-result-nanshi{background:var(--nanshi-light);color:var(--nanshi-text)}.dialect-dot-xiuguluan{background:var(--xiuguluan-main)}.dialect-pill-xiuguluan{background:var(--xiuguluan-light);color:var(--xiuguluan-text);border:1.5px solid var(--xiuguluan-main)}.dialect-card-xiuguluan{border-color:var(--xiuguluan-main);background:var(--xiuguluan-light)}.dialect-result-xiuguluan{background:var(--xiuguluan-light);color:var(--xiuguluan-text)}.dialect-dot-coast{background:var(--coast-main)}.dialect-pill-coast{background:var(--coast-light);color:var(--coast-text);border:1.5px solid var(--coast-main)}.dialect-card-coast{border-color:var(--coast-main);background:var(--coast-light)}.dialect-result-coast{background:var(--coast-light);color:var(--coast-text)}.dialect-dot-malan{background:var(--malan-main)}.dialect-pill-malan{background:var(--malan-light);color:var(--malan-text);border:1.5px solid var(--malan-main)}.dialect-card-malan{border-color:var(--malan-main);background:var(--malan-light)}.dialect-result-malan{background:var(--malan-light);color:var(--malan-text)}.dialect-dot-hengchun{background:var(--hengchun-main)}.dialect-pill-hengchun{background:var(--hengchun-light);color:var(--hengchun-text);border:1.5px solid var(--hengchun-main)}.dialect-card-hengchun{border-color:var(--hengchun-main);background:var(--hengchun-light)}.dialect-result-hengchun{background:var(--hengchun-light);color:var(--hengchun-text)}@media (min-width:900px){.filter-bar-centered{justify-content:center}}.legend-bar{border-bottom:1px solid var(--border);background:#fff;flex-wrap:wrap;justify-content:center;gap:8px;padding:16px 20px;display:flex}.legend-pill{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:5px 14px;font-size:13px;font-weight:700;transition:opacity .15s,transform .15s;display:flex}.legend-pill:hover{opacity:.82;transform:scale(1.04)}.legend-pill.active{box-shadow:0 2px 8px #00000026}.search-wrap{position:relative}.search-wrap input{border:1.5px solid var(--border);width:100%;font-family:var(--font-sans);background:var(--bg-card);color:var(--ink);border-radius:10px;outline:none;padding:12px 16px 12px 44px;font-size:15px;transition:border-color .16s}.search-wrap input:focus{border-color:#888}.search-wrap .search-icon{pointer-events:none;color:var(--muted);font-size:16px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.step-label{letter-spacing:2px;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;margin-bottom:14px;font-size:12px;font-weight:700;display:flex}.step-num{background:var(--ink);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;display:flex}.step-block{padding-top:28px}.div-line{background:var(--border);height:1px;margin-top:28px}.vocab-card{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-card);cursor:pointer;transition:var(--transition-card);text-align:left;flex-direction:column;gap:4px;padding:14px 16px 12px;display:flex}.vocab-card:hover{box-shadow:var(--shadow-card);transform:translateY(-3px)}.vocab-roman{color:var(--ink);font-size:15px;font-weight:700;line-height:1.3}.vocab-zh{color:var(--muted);font-size:12px}.vocab-pos{color:var(--muted-light);font-size:11px}.dialect-dot{vertical-align:middle;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-right:5px;display:inline-block}.status-badge{letter-spacing:.5px;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.status-approved{color:#2a5a45;background:#c8e0d8}.status-pending{color:#6a5a20;background:#ede8c0}.status-rejected{color:#7a3a45;background:#f5d8dc}.result-card{border-radius:18px;padding:30px 26px 26px;position:relative;overflow:hidden}.result-card:after{content:"";pointer-events:none;background:#ffffff14;border-radius:50%;width:180px;height:180px;position:absolute;bottom:-50px;right:-50px}.comparison-table{border-collapse:collapse;width:100%;font-size:14px}.comparison-table th{letter-spacing:1px;text-transform:uppercase;border-bottom:2px solid var(--border);text-align:left;color:#fff;padding:10px 14px;font-size:12px;font-weight:700}.comparison-table td{border-bottom:1px solid var(--border-light);vertical-align:middle;padding:10px 14px}.comparison-table tr:hover td{background:#00000005}.btn-primary{background:var(--ink);color:#fff;font-family:var(--font-sans);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:6px;padding:10px 24px;font-size:14px;font-weight:500;text-decoration:none;transition:all .16s;display:inline-flex}.btn-primary:hover{opacity:.85;transform:translateY(-1px)}.btn-outline{color:var(--ink);border:1.5px solid var(--border);font-family:var(--font-sans);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:9px 22px;font-size:13px;text-decoration:none;transition:all .16s;display:inline-flex}.btn-outline:hover{background:var(--bg-card);border-color:#888}.form-input{border:1.5px solid var(--border);width:100%;font-family:var(--font-sans);background:var(--bg-card);color:var(--ink);border-radius:8px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .16s}.form-input:focus{border-color:#888}.form-label{letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.form-select{border:1.5px solid var(--border);width:100%;font-family:var(--font-sans);background:var(--bg-card);color:var(--ink);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23999' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;border-radius:8px;outline:none;padding:10px 32px 10px 14px;font-size:14px}.form-textarea{border:1.5px solid var(--border);width:100%;font-family:var(--font-sans);background:var(--bg-card);color:var(--ink);resize:vertical;border-radius:8px;outline:none;min-height:100px;padding:10px 14px;font-size:14px;transition:border-color .16s}.form-textarea:focus{border-color:#888}.site-footer{background:var(--dark);text-align:center;margin-top:60px;padding:48px 20px 36px}.footer-brand{font-family:var(--font-serif);color:#fff;letter-spacing:1px;font-size:18px;font-weight:900}.footer-tagline{color:#ffffff73;margin-top:4px;font-size:13px}.footer-sources{color:#ffffff4d;margin-top:12px;font-size:12px;line-height:1.7}.footer-copy{color:#fff3;letter-spacing:.5px;margin-top:16px;font-size:11px}.audio-player{background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:10px 14px;display:flex}.audio-btn{background:var(--ink);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:opacity .16s;display:flex}.audio-btn:hover{opacity:.8}:root{--ease-standard:cubic-bezier(.25, .46, .45, .94);--ease-spring:cubic-bezier(.16, 1, .3, 1);--ease-out-fast:cubic-bezier(.55, 0, 1, .45);--rekad-bg:#f7f4f0;--rekad-card:#fffdf9;--rekad-border:#ddd5c8;--rekad-ink:#1a110a;--rekad-gold:#b09848;--rekad-mastered:#5a9a80;--rekad-needs-work:#c87a88}html{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@keyframes rekadEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes rekadExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-16px)}}.rekad-enter{animation:rekadEnter .4s var(--ease-spring) both;will-change:transform, opacity;animation-delay:.15s}.rekad-exit{animation:rekadExit .3s var(--ease-out-fast) both;will-change:transform, opacity}@keyframes rekadStagger{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.rekad-stagger{animation:rekadStagger .35s var(--ease-spring) both;will-change:transform, opacity}@keyframes rekadHero{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.rekad-hero{animation:rekadHero .5s var(--ease-spring) both;will-change:transform, opacity}@keyframes rekadWave{0%{opacity:0;transform:translateY(20px)}to{opacity:.6;transform:translateY(0)}}.rekad-wave{animation:rekadWave .6s var(--ease-spring) both;will-change:transform, opacity}.rekad-btn{transition:transform .18s var(--ease-standard), background-color .18s var(--ease-standard), box-shadow .18s var(--ease-standard), opacity .18s var(--ease-standard);will-change:transform}.rekad-btn:hover:not(:disabled){transform:scale(1.03)}.rekad-btn:active:not(:disabled){transform:scale(.97)}.rekad-flip-scene{perspective:1200px}.rekad-flip-card{width:100%;transform-style:preserve-3d;transition:transform .55s var(--ease-spring);will-change:transform;position:relative}.rekad-flip-card.is-flipped{transform:rotateY(180deg)}.rekad-flip-face{backface-visibility:hidden;position:absolute;inset:0}.rekad-flip-back{transform:rotateY(180deg)}.rekad-progress-track{background:var(--rekad-border);border-radius:999px;width:100%;height:6px;overflow:hidden}.rekad-progress-fill{background:var(--rekad-gold);height:100%;transition:width .5s var(--ease-standard);will-change:width}@keyframes rekadCheckPop{0%{transform:scale(0)}to{transform:scale(1)}}.rekad-check-pop{animation:rekadCheckPop .2s var(--ease-spring) both}.rekad-blur{filter:blur(8px);transition:filter .4s var(--ease-standard);will-change:filter}.rekad-blur.is-revealed{filter:blur()}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted-light)}@keyframes sidebarBlockIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.sidebar-block{animation:.4s cubic-bezier(.34,1.56,.64,1) both sidebarBlockIn}.app-shell{align-items:flex-start;min-height:100vh;display:flex}.content-shell{flex:1;min-width:0}.sidebar-desktop{z-index:40;background:#f7f4f0;border-right:1px solid #ddd5c8;flex-shrink:0;width:260px;height:100vh;display:none;position:sticky;top:0;overflow-y:auto}.sidebar-hamburger{z-index:80;cursor:pointer;color:#fff;background:#1a110a;border:none;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex;position:fixed;top:12px;right:12px;box-shadow:0 2px 8px #00000040}.mobile-topbar{z-index:10;background:#1a110a;align-items:center;display:flex;position:relative}.mobile-dialect-bar{width:100%;height:4px;display:flex}.sidebar-backdrop{z-index:60;pointer-events:none;background:#1a110a;transition:opacity .35s cubic-bezier(.16,1,.3,1);display:block;position:fixed;inset:0}.sidebar-backdrop.is-open{opacity:.4;pointer-events:auto}.sidebar-mobile{z-index:70;background:#f7f4f0;flex-direction:column;width:280px;max-width:85vw;transition:transform .35s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-4px 0 24px #0000002e}.sidebar-mobile.is-open{transform:translate(0)}@media (min-width:900px){.sidebar-desktop{flex-direction:column;display:flex}.sidebar-hamburger{display:none}.mobile-dialect-bar{display:none!important}}.mobile-topbar{background:#1a110a;justify-content:flex-start;padding:20px 68px 20px 20px}@media (min-width:900px){.mobile-topbar{text-align:center;z-index:50;justify-content:center;padding:20px 24px;position:sticky;top:0}}.vocab-searchbar{z-index:30;background:var(--bg);border-bottom:1px solid var(--border);width:100%;padding:10px 20px;position:sticky;top:0}@media (min-width:900px){.vocab-searchbar{top:60px}}.vocab-searchbar form{align-items:center;gap:8px;max-width:680px;margin:0 auto;display:flex}.vocab-searchbar .search-wrap{flex:1}.vocab-searchbar .search-wrap input{border-radius:8px;padding:8px 12px 8px 40px;font-size:14px}.vocab-searchbar .search-wrap .search-icon{font-size:14px}.vocab-searchbar-btn{background:var(--ink);color:#fff;font-family:var(--font-sans);cursor:pointer;white-space:nowrap;border:none;border-radius:8px;flex-shrink:0;padding:8px 18px;font-size:13px;font-weight:600;transition:opacity .15s}.vocab-searchbar-btn:hover{opacity:.8}.hero-title{white-space:nowrap;font-size:2.8rem}@media (max-width:767px){.hero-title{font-size:1.8rem}}.bottom-cta-fixed{z-index:30;position:fixed;bottom:0;left:0;right:0}@media (min-width:900px){.bottom-cta-fixed{left:260px}}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
