:root{--bg:#f2f1eb;--ink:#232b25;--muted:#60645d;--accent:#2d493e;--accent-ink:#f8f8ef;--surface:#e7e9dd;--line:#c3c9b8;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans','Noto Sans TC',sans-serif;--cn:'Noto Sans TC',sans-serif;--page:clamp(24px,5.5vw,100px);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button{border:0;background:none}a,button{touch-action:manipulation}svg{display:block}button svg,.button svg{width:24px;fill:none;stroke:currentColor;stroke-width:1.5}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{text-wrap:balance;font-weight:450}p{text-wrap:pretty;line-height:1.9}::selection{background:#c9d4b7;color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button:disabled{cursor:wait;opacity:.6}.skip{position:fixed;z-index:20;left:24px;top:-70px;background:var(--accent);color:var(--accent-ink);padding:16px}.skip:focus{top:12px}.site-header{height:108px;display:flex;align-items:center;justify-content:space-between;padding:0 var(--page);position:relative;z-index:5}.brand{display:flex;gap:12px;align-items:center;font-size:26px;font-weight:600;letter-spacing:-1.1px}.brand-mark{width:35px;height:39px;stroke:var(--accent);stroke-width:1.2}.brand-dot{font-size:11px;vertical-align:top;display:inline-block;margin:4px 0 0 4px;letter-spacing:0}.desktop-nav{display:flex;gap:40px;font-size:14px}.desktop-nav a{position:relative;padding:12px 0}.desktop-nav a:after,.underlink:after,.subtle-link:after{content:'';position:absolute;height:1px;background:currentColor;bottom:5px;left:0;width:100%;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}.desktop-nav a:hover:after,.underlink:hover:after,.subtle-link:hover:after{transform:scaleX(1);transform-origin:left}.text-button{display:inline-flex;align-items:center;gap:15px;padding:12px 0;font-size:14px}.text-button:hover{color:#57734c}.text-button svg{width:19px}.menu-toggle,.mobile-menu{display:none}.hero{min-height:min(820px,calc(100svh - 108px));position:relative;padding:74px var(--page) 0;display:grid;grid-template-columns:1fr 1fr}.hero-copy{position:relative;z-index:2;padding-top:25px;pointer-events:none}.hero-copy>*{pointer-events:auto;width:fit-content}.hero h1{font-size:clamp(66px,7.6vw,118px);letter-spacing:-.065em;line-height:.99;font-weight:450}.hero h1 span{display:block}.hero h1 em{font-family:var(--serif);font-weight:400;letter-spacing:-.052em;display:block;white-space:nowrap}.hero-chinese{margin-top:37px;font-size:22px;letter-spacing:.1em;font-weight:500}.hero-description{font-size:15px;color:var(--muted);margin-top:15px;line-height:1.95}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:42px;min-height:56px;padding:15px 24px;font-size:14px;border-radius:3px;transition:background .3s,transform .4s var(--ease),color .3s}.primary{background:var(--accent);color:var(--accent-ink)}.primary:hover{background:#3c5b4d;transform:translateY(-3px)}.button:active{transform:translateY(1px)}.hero .button{margin-top:32px}.button span{font-size:21px;transition:transform .3s}.button:hover span{transform:translate(3px,-3px)}.hero-art{position:relative;align-self:start;min-width:0;height:590px;margin-top:-10px;perspective:1000px}.stone{width:116%;max-width:680px;position:absolute;left:-8%;top:-25px;stroke:var(--accent);stroke-width:.8;transition:transform 1.5s var(--ease);animation:stone-float 9s ease-in-out infinite}.stone path{stroke-dasharray:1500;stroke-dashoffset:0;animation:draw-stone 3s var(--ease) both;animation-delay:var(--delay,0s)}.stone.redrawing path{animation:none;stroke-dashoffset:1500}.art-orbit{position:absolute;inset:13% 5% 16%;border:1px solid #bdc4b5;border-radius:50%;transform:rotate(-32deg) scaleY(.75);opacity:.45}.art-cross{font-size:24px;font-weight:400;position:absolute;color:#8a9584}.cross-one{top:30px;right:8%}.cross-two{bottom:60px;left:5%}.redraw{display:flex;align-items:center;gap:8px;font-size:13px;position:absolute;bottom:6px;right:8%;padding:12px;color:var(--muted)}.redraw svg{width:16px;transition:transform .7s var(--ease)}.redraw:hover svg{transform:rotate(-70deg)}.hero-bottom{grid-column:1/-1;align-self:end;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted);padding:24px 0 32px}.hero-bottom>a{padding:12px;position:absolute;left:calc(50% - 24px);bottom:15px}.hero-bottom svg{stroke:var(--accent);fill:none;stroke-width:1;width:24px;height:24px;animation:down 3s ease-in-out infinite}.english-note{font-family:var(--serif);font-size:18px;font-style:italic;letter-spacing:.01em}.products{padding:126px var(--page) 70px;max-width:1700px;margin:auto}.section-opening{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:76px}.section-opening h2{font-family:var(--cn);font-size:clamp(28px,3.2vw,44px);letter-spacing:-.025em}.section-opening>p{font-size:15px;color:var(--muted);padding-right:55px;line-height:1.85}.product{display:grid;grid-template-columns:1.2fr 1fr;gap:7vw;align-items:center;margin-bottom:144px}.product-visual{display:block;position:relative;overflow:hidden;aspect-ratio:1.28;border-radius:3px}.learn-visual{background:#e1e5d4;color:#324b32}.product-visual>svg{width:100%;height:100%;transition:transform 1.2s var(--ease)}.product-visual:hover>svg{transform:scale(1.05) rotate(-2deg)}.canvas-name{position:absolute;left:30px;bottom:28px;font-size:26px;font-weight:500;letter-spacing:-.06em}.canvas-name>span{font-family:var(--cn);display:block;font-size:13px;letter-spacing:.05em;margin-top:4px;font-weight:400}.visual-arrow{position:absolute;right:30px;bottom:32px;font-size:30px;font-weight:400;transition:transform .4s var(--ease)}.product-visual:hover .visual-arrow{transform:translate(4px,-4px)}.product-title-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.product h3{font-size:48px;letter-spacing:-.055em;font-weight:450}.small-spark{font-size:26px;vertical-align:middle;margin-left:17px;color:var(--accent);display:inline-block}.product-domain{font-size:13px;color:var(--muted)}.product h4{font-size:24px;font-family:var(--cn);font-weight:450;letter-spacing:-.03em;margin-bottom:18px}.product-copy>p{font-size:15px;color:var(--muted);margin-bottom:26px}.product-actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap}.underlink{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:12px 0;font-size:14px;font-weight:500}.underlink>span{font-size:21px}.underlink:after{transform:scaleX(1);height:1px;bottom:2px}.underlink:hover:after{transform:scaleX(.65);transform-origin:left}.subtle-link{font-size:13px;position:relative;padding:12px 0;color:var(--muted)}.learn-drawing{stroke:#567151;stroke-width:.9}.book-sun{stroke:#a9b494;stroke-dasharray:2 7}.book-lines{stroke:#6d8160;stroke-width:.65}.sprint-product{grid-template-columns:1fr 1.2fr}.sprint-product .product-visual{grid-column:2;grid-row:1}.sprint-product .product-copy{grid-column:1;grid-row:1;padding-left:5%}.sprint-visual{background:#e7e3da;color:#554f43}.sprint-drawing{stroke:#847962;stroke-width:.65}.sprint-route{stroke:#60553e;stroke-width:2}.umbra-product{margin-bottom:40px}.umbra-visual{background:#2d4239;color:#f2f1df;aspect-ratio:1.4}.umbra-drawing{stroke:#93a087;stroke-width:.65}.eclipse{fill:#2d4239;stroke:#bbc5a8;stroke-width:1}.umbra-drawing>.draw-path{stroke:#c9d0ac;stroke-width:1.2}.about{display:grid;grid-template-columns:.9fr 1fr;gap:8vw;align-items:center;padding:110px calc(var(--page) + 4vw) 145px}.about-symbol{max-width:350px;justify-self:center;width:100%;color:var(--accent)}.about-symbol svg{width:100%;stroke:currentColor;stroke-width:.55}.about h2{font-size:18px;font-family:var(--cn);margin-bottom:27px}.about-statement{font-size:clamp(24px,2.7vw,36px);line-height:1.7;letter-spacing:-.04em;margin-bottom:24px;font-weight:450}.about p:not(.about-statement){color:var(--muted);font-size:15px}.serif-note{font-family:var(--serif);font-size:23px;font-style:italic;display:block;margin-top:25px}.survey{position:relative;overflow:hidden;background:var(--accent);color:var(--accent-ink);min-height:530px;padding:85px var(--page);display:flex;align-items:center}.survey-copy{position:relative;z-index:1}.survey h2{font-size:clamp(32px,4vw,54px);font-family:var(--cn);line-height:1.5;letter-spacing:-.03em;font-weight:400}.survey p{margin-top:22px;font-size:15px;color:#d0d7ca}.light{background:var(--bg);color:var(--accent);margin-top:29px}.light:hover{background:#dce4ce;transform:translateY(-3px)}.survey-flower{position:absolute;width:560px;right:6vw;top:-5px;stroke:#9cab88;stroke-width:.8;opacity:.85}.footer{padding:52px var(--page) 24px}.footer-top,.footer-bottom{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted)}.footer-top p{font-size:16px;letter-spacing:.07em}.back-top{padding:12px}.back-top:hover{color:var(--accent);transform:translateY(-2px)}.footer-wordmark{font-size:clamp(70px,16.3vw,260px);font-weight:500;letter-spacing:-.075em;line-height:1.3;display:block;white-space:nowrap;margin:10px 0 22px}.footer-wordmark>span{font-family:var(--serif);font-style:italic;font-weight:500;letter-spacing:-.07em}.footer-wordmark>sup{font-size:20px;vertical-align:top;display:inline-block;letter-spacing:0;margin:25px 0 0 12px}.footer-bottom .text-button{font-size:13px}.footer-bottom>span:nth-child(2){font-family:var(--serif);font-size:18px;font-style:italic}dialog{border:none;padding:48px;max-width:480px;width:calc(100% - 32px);background:var(--bg);color:var(--ink);border-radius:4px;max-height:90svh;overflow:auto}dialog[open]{animation:dialog-in .45s var(--ease)}dialog::backdrop{background:#15241cc2;backdrop-filter:blur(8px)}.dialog-close{position:absolute;right:18px;top:14px;font-size:30px;font-weight:400;width:40px;height:40px}.dialog-close:hover{transform:rotate(90deg);transition:transform .3s}.login-emblem{font-size:46px;color:var(--accent)}dialog .serif-note{font-size:21px;margin:15px 0 10px}dialog h2{font-size:29px;letter-spacing:-.04em;font-family:var(--cn)}.login-intro{font-size:14px;margin:15px 0 25px;color:var(--muted)}label{font-size:13px;display:block;margin-bottom:10px}input{background:transparent;border:1px solid #a6b09f;border-radius:3px;width:100%;height:50px;padding:12px;color:var(--ink);font-size:16px}input:focus{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:0}.password-label{display:flex;justify-content:space-between;align-items:center;margin-top:21px}.password-label button{font-size:13px;margin-bottom:10px;color:var(--muted)}.form-error{font-size:13px;color:#9a3525;min-height:25px;margin:10px 0}.login-note{font-size:13px;color:var(--muted);margin-top:22px;text-align:center}form .button{width:100%}.noscript{padding:20px;text-align:center}.draw-on-scroll path{stroke-dasharray:1400;stroke-dashoffset:0}.motion-ready .draw-on-scroll.visible path{animation:line-draw 2.8s var(--ease) both;animation-delay:var(--delay,0s)}.motion-ready .draw-on-scroll .draw-path{stroke-dasharray:1}.motion-ready .draw-on-scroll.visible .draw-path{animation:path-draw 2.5s var(--ease) both}.reveal-pending{opacity:1;transform:none}[data-reveal]{transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--reveal-delay,0ms)}.hero-copy h1 span,.hero-copy h1 em,.hero-chinese,.hero-description,.hero .button{animation:rise 1.1s var(--ease) both}.hero h1 em{animation-delay:.12s}.hero-chinese{animation-delay:.23s}.hero-description{animation-delay:.33s}.hero .button{animation-delay:.43s}.workspace{padding:65px var(--page) 110px;min-height:calc(100svh - 108px)}.workspace-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:50px}.workspace h1{font-size:clamp(40px,5vw,68px);letter-spacing:-.05em;font-family:var(--cn);line-height:1.5}.workspace .serif-note{font-size:32px;margin-top:10px}.account-label{font-size:14px;color:var(--muted)}.tool-search{max-width:420px;position:relative;margin-bottom:35px}.tool-search input{padding-right:45px;height:55px}.tool-search span{position:absolute;right:18px;top:16px;color:var(--muted)}.tool-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.tool{background:#e4e8db;border-radius:3px;min-height:210px;padding:30px;display:flex;flex-direction:column;align-items:flex-start;position:relative;transition:transform .5s var(--ease),background .5s}.tool:hover{transform:translateY(-5px);background:#dce3cf}.tool-icon{font-family:var(--serif);font-size:40px;line-height:1;color:var(--accent);margin-bottom:20px}.tool h2{font-size:26px;letter-spacing:-.04em}.tool p{font-size:14px;color:var(--muted);margin-top:3px}.tool>span:last-child{position:absolute;right:30px;top:30px;font-size:24px}.workspace-note{margin-top:26px;color:var(--muted);font-size:13px}.empty-search{padding:50px 0;color:var(--muted)}.workspace-error{padding:70px var(--page)}[hidden]{display:none!important}
@keyframes draw-stone{from{stroke-dashoffset:1500;opacity:0}to{stroke-dashoffset:0;opacity:1}}@keyframes line-draw{from{stroke-dashoffset:1400}to{stroke-dashoffset:0}}@keyframes path-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes stone-float{0%,100%{translate:0 0;rotate:-3deg}50%{translate:0 -14px;rotate:2deg}}@keyframes rise{from{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes down{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes dialog-in{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}@keyframes page-in{from{opacity:0}to{opacity:1}}@view-transition{navigation:auto}::view-transition-old(root){animation:.25s ease both page-in reverse}::view-transition-new(root){animation:.45s ease both page-in}
@media(min-width:1600px){.hero{max-width:1700px;margin:auto}.hero-art{height:640px}.stone{top:-50px}.hero{padding-top:90px}}
@media(max-width:1100px){.desktop-nav{gap:24px}.hero{padding-top:65px;min-height:690px;grid-template-columns:1.05fr .95fr}.hero-art{height:500px;align-self:center}.stone{width:130%;left:-20%;top:0}.hero h1{font-size:8.4vw}.product{gap:5vw}.product-title-row{display:block}.product-domain{display:block;margin-top:7px}.product h3{font-size:42px}.survey-flower{right:-80px;width:500px;opacity:.55}.product-copy>p{font-size:14px}}
@media(max-width:760px){.site-header{height:84px}.brand{font-size:24px;gap:9px}.brand-mark{width:30px;height:34px}.desktop-nav,.site-header>.login-trigger{display:none}.menu-toggle{display:flex;width:44px;height:44px;flex-direction:column;justify-content:center;gap:6px;padding:9px}.menu-toggle span{width:26px;height:1px;background:var(--ink);transition:transform .3s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.mobile-menu{position:absolute;z-index:4;left:0;right:0;top:84px;background:var(--bg);padding:16px var(--page) 32px;display:flex;flex-direction:column;gap:8px;box-shadow:0 12px 16px #232b2510}.mobile-menu>a,.mobile-menu>button{font-size:18px;display:flex;justify-content:space-between;padding:16px 0;text-align:left}.hero{padding-top:40px;display:block;min-height:0}.hero-copy{padding-top:0}.hero h1{font-size:clamp(62px,12.4vw,92px)}.hero-chinese{margin-top:25px;font-size:20px}.hero-description{font-size:14px;margin-top:10px}.hero .button{margin-top:25px}.hero-art{width:74%;height:auto;aspect-ratio:1;max-width:400px;margin:-10px -12px 0 auto}.stone{width:118%;left:-5%;top:-20px}.art-orbit{inset:10% 0 10% 8%}.cross-one{right:0;top:0}.cross-two{bottom:15%;left:1%}.redraw{bottom:-5px;right:0}.redraw span{font-size:13px}.hero-bottom{padding:22px 0 26px;margin-top:0;font-size:13px}.hero-bottom>a{position:static;transform:none;padding:8px}.english-note{display:none}.products{padding-top:77px;padding-bottom:20px}.section-opening{display:block;margin-bottom:35px}.section-opening h2{font-size:28px}.section-opening>p{margin-top:18px;font-size:14px}.product,.sprint-product{display:flex;flex-direction:column;gap:26px;margin-bottom:65px;align-items:stretch}.product-visual{width:100%;aspect-ratio:1.22}.product-copy{padding:0 3px}.product-title-row{display:flex;align-items:center;margin-bottom:20px}.product h3{font-size:38px}.product-domain{font-size:13px;overflow-wrap:anywhere;margin:0}.product h4{font-size:22px;margin-bottom:12px}.product-copy>p{font-size:14px;margin-bottom:13px}.sprint-product .product-copy{padding-left:3px}.small-spark{font-size:22px;margin-left:12px}.canvas-name{left:24px;bottom:22px;font-size:25px}.visual-arrow{right:24px;bottom:26px}.about{display:flex;gap:35px;flex-direction:column;padding:5px var(--page) 75px;align-items:stretch}.about-symbol{width:190px;margin:0 auto}.about h2{font-size:17px;margin-bottom:22px}.about-statement{font-size:26px}.about p:not(.about-statement){font-size:14px}.serif-note{font-size:22px}.survey{padding:55px var(--page) 240px;min-height:0}.survey h2{font-size:32px}.survey p{font-size:14px}.survey-flower{width:300px;top:auto;bottom:-85px;right:-10px;opacity:.65}.survey .button{margin-top:24px}.footer{padding-top:34px}.footer-top p{font-size:14px}.footer-wordmark{font-size:17vw;margin:28px 0 25px}.footer-wordmark>sup{font-size:12px;margin:10px 0 0 6px}.footer-bottom{flex-wrap:wrap;gap:7px}.footer-bottom>span:nth-child(2){order:3;width:100%;font-size:16px}.footer-bottom .text-button{margin-left:auto}dialog{padding:35px 26px}.workspace{padding-top:35px}.workspace-intro{display:block}.workspace h1{font-size:38px}.workspace .serif-note{font-size:27px}.account-label{margin-top:22px;overflow-wrap:anywhere}.tool-grid{grid-template-columns:1fr}.tool{min-height:195px}.workspace .tool-search{max-width:none}.workspace-header>.text-button{display:flex}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal-pending{opacity:1;transform:none}.motion-ready .draw-on-scroll:not(.visible) path,.stone path{stroke-dashoffset:0!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

svg.small-spark{width:24px;height:24px;stroke:currentColor;stroke-width:1.2}svg.login-emblem{width:46px;height:46px;stroke:currentColor;stroke-width:1.3}
svg.tool-icon{height:40px;width:40px;stroke:var(--accent);stroke-width:1.2}

[data-reveal].visible{animation:rise .9s var(--ease) both;animation-delay:var(--reveal-delay,0ms)}
.admin-nav{display:flex;gap:10px;margin-bottom:30px;border-bottom:1px solid var(--line);padding-bottom:12px;flex-wrap:wrap}
.admin-tab{padding:8px 18px;font-size:14px;color:var(--muted);border-radius:3px;transition:all .25s var(--ease);border:1px solid transparent}
.admin-tab:hover{color:var(--ink);background:#e4e8db}
.admin-tab.active{color:var(--accent-ink);background:var(--accent);font-weight:500;border-color:var(--accent)}
.admin-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}
.admin-header-row h2{font-size:22px;letter-spacing:-.03em}
.admin-card{background:#e7e9dd;border:1px solid var(--line);border-radius:4px;overflow-x:auto}
.admin-table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}
.admin-table th,.admin-table td{padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:middle}
.admin-table th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#dfe4d4}
.admin-table tr:last-child td{border-bottom:none}
.admin-table tr:hover td{background:#dfe5d5}
.admin-cell-tool{display:flex;align-items:center;gap:12px}
.admin-cell-tool svg{width:24px;height:24px;stroke:var(--accent);stroke-width:1.2;flex-shrink:0}
.admin-badge{display:inline-block;padding:3px 9px;font-size:12px;border-radius:10px;background:#d7dcce;color:var(--muted)}
.admin-badge.primary{background:var(--accent);color:var(--accent-ink)}
.admin-badge.admin{background:#405a4e;color:#fff}
.admin-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn-sm{padding:6px 14px;font-size:13px;border-radius:3px;border:1px solid #a6b09f;background:transparent;cursor:pointer;transition:all .2s;color:var(--ink)}
.btn-sm:hover{background:var(--bg);border-color:var(--accent)}
.btn-sm.danger{color:#9a3525;border-color:#d49f97}
.btn-sm.danger:hover{background:#f8e7e5;border-color:#9a3525}
.btn-primary-sm{background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);padding:8px 18px;font-size:13px;border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .2s}
.btn-primary-sm:hover{background:#3c5b4d}
select.input-field{background:transparent;border:1px solid #a6b09f;border-radius:3px;width:100%;height:50px;padding:0 12px;color:var(--ink);font-size:16px}
select.input-field:focus{border-color:var(--accent);outline:1px solid var(--accent)}
input.readonly{background:#dfe4d4;border-color:#c3c9b8;cursor:not-allowed;color:var(--muted)}
.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}

