/* Public visitor journeys. Existing brand palette and original assets are retained. */
[hidden]{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link{position:fixed;top:-100px;left:16px;z-index:999999;background:#fff;padding:14px;border:2px solid var(--brown)}
.skip-link:focus{top:12px}
.pencil-scroll-container{display:none}
button,input,textarea,select{font:inherit}
button,a,input,textarea{touch-action:manipulation}
button{cursor:pointer}
input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #285943;outline-offset:3px}
#header{gap:12px;padding:12px max(20px,3vw);min-height:76px}
#header .gnb{gap:4px;margin-left:auto}
#header .mtab{font-size:14px;padding:12px 10px}
#header .nav-active{box-shadow:inset 0 -3px var(--brown);color:var(--brown)}
.header-search,.hamburger-btn,.cart-icon-btn{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--brown);font-size:19px;flex-shrink:0}
.nav-more{position:relative;font-size:13px;white-space:nowrap;color:var(--brown)}
.nav-more summary{cursor:pointer;padding:14px 7px;list-style:none}
.nav-more summary::after{content:' ▾'}
#header .gnb-sub{display:flex;position:absolute;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;width:220px;background:#fff;border:1px solid #ddcfc4;border-radius:14px;box-shadow:0 8px 24px #503d2d16;margin:0;padding:8px;opacity:1}
#header .gnb-sub a{padding:13px;white-space:normal;border-radius:8px}
#header .gnb-sub a:hover{background:#f6f0e9}
.page-trail{max-width:1180px;margin:88px auto 0;padding:0 28px;color:#6b5546;font-size:13px;position:relative;z-index:1}
.interior-view .content-area{padding-top:0}
.interior-view :is(.sec-common,.sec-program,.sec-projects,.sec-card-finder,.sec-game,.pub-container){padding-top:32px}
.interior-view #page-authors{padding-top:32px}
.page-trail a{padding:10px 0;display:inline-block;text-decoration:underline;text-underline-offset:4px}
.mobile-nav-panel{width:min(340px,90vw);padding:24px 24px 36px;gap:0;overflow-y:auto;overscroll-behavior:contain;right:0;transform:translateX(100%);pointer-events:none;transition:transform .2s ease}
.mobile-nav-panel.active{transform:translateX(0);pointer-events:auto}
.mobile-nav-panel a{padding:13px 8px;min-height:44px;font-size:16px;border-bottom:1px solid #eadfd5;text-decoration:none}
.mobile-menu-close{align-self:flex-end;min-height:44px;padding:8px;background:transparent;border:0;color:var(--brown)}
.mobile-nav-panel .mnav-cta{margin-top:16px;padding:14px;border:0;border-radius:12px;background:var(--accent);color:#fff}
.sec-home{padding-top:35px;align-items:start;gap:30px;grid-template-columns:1fr 1.3fr}
.home-copy{padding-top:20px}
.home-h1{font-size:clamp(38px,4.2vw,60px)!important;line-height:1.2}
.home-desc{font-size:16px;line-height:1.85;word-break:keep-all}
.home-purpose{font-size:15px;line-height:1.7;margin:18px 0}
.journey-links{gap:9px}
.journey-links .btn-core{font-size:15px;min-height:48px;box-shadow:none;text-align:left;width:100%;padding:14px 18px;border-radius:12px}
.journey-links a:nth-child(2){background:#f2e8dc;color:var(--brown)}
.journey-links a:nth-child(3){background:#fff;color:var(--brown);border:1px solid #d1bca8}
.stage{min-height:510px!important}
.stage-text{padding-bottom:30px}
.st-new-tag,.st-time{display:none}
.stage-book{bottom:90px!important}
.stage-char{bottom:32px!important}
.stage-cassette{bottom:60px!important;width:25%!important}
.stage-notify{display:none}
.newsletter-strip{max-width:1124px;margin:28px auto 0;padding:24px;background:#f6f0e7;border:1px solid #e6d6c4;border-radius:16px;display:grid;grid-template-columns:1fr 260px auto;gap:16px;align-items:center;color:var(--brown)}
.newsletter-strip strong,.newsletter-strip small{display:block;line-height:1.7}
.newsletter-strip small{font-size:13px;margin-top:4px}
.newsletter-strip .st-notify-input{min-width:0;width:100%}
.home-evidence{margin-top:16px}
.sec-common,.sec-program{max-width:1320px;margin:0 auto;padding:100px max(24px,5vw) 70px}
.pg-head{gap:32px;margin-bottom:28px}
.pg-head .pg-title{font-size:clamp(28px,3.4vw,42px);line-height:1.35}
.pg-head .pg-sub{font-size:16px;line-height:1.7}
.category-tabs{justify-content:flex-start;margin:28px 0 16px;gap:8px}
.cat-btn,.program-filters button{min-height:44px;padding:10px 20px;border:1px solid #d8c8b9;border-radius:999px;background:#fff;color:var(--brown);font-weight:700}
.cat-btn.active,.program-filters button.active{background:var(--brown);color:#fff;border-color:var(--brown)}
.library-tools{display:flex;align-items:center;gap:12px;margin:20px 0 28px;font-size:14px;color:var(--brown)}
.library-tools input{padding:12px 15px;border:1px solid #ccbaa9;border-radius:10px;max-width:360px;min-width:0;width:100%;background:#fff;min-height:44px}
.library-tools label{white-space:nowrap;font-weight:700}
.library-tools #libraryCount{margin-left:auto;white-space:nowrap}
.library-wrapper{padding:0;overflow:visible}
.library-wrapper::after{display:none}
.category-tabs{padding:0}
#bookContainer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 24px;overflow:visible;width:100%;padding:0;margin:0}
button.book-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-width:0;width:100%;height:auto;margin:0;padding:0 0 14px;border-radius:12px;transition:transform .15s}
button.book-card:hover{transform:translateY(-3px)}
.book-card .book-img-wrap{width:100%;height:250px;background:#f6f2ed;border-radius:12px;display:flex;align-items:center;justify-content:center;margin:0 0 14px;padding:20px}
.book-card .book-img{width:100%;max-width:180px;height:100%;object-fit:contain;max-height:none}
.book-card .b-title{font-size:17px;line-height:1.5;word-break:keep-all;margin:5px 0;white-space:normal;display:block;width:100%;height:auto}
.book-type{font-size:12px;color:#76604f}
.book-card .b-author{font-size:13px;color:#6a5749;margin:0;display:block}
.book-card .b-price{font-size:15px;font-weight:700;color:var(--brown);margin:10px 0 0;display:block}
.book-view{font-size:12px;margin-top:10px;color:#695546}
.library-finder{display:block;margin:32px 0 0;padding:18px 20px;border-radius:12px;background:#f5eee6;color:var(--brown);font-size:15px;line-height:1.7;text-decoration:underline;text-underline-offset:4px}
.load-state,.ux-empty{padding:24px;background:#faf6f0;border-radius:12px;margin:20px 0;font-size:15px;line-height:1.7;color:var(--brown)}
.load-state button,.ux-empty button{min-height:44px;padding:8px 16px;border:1px solid #bda18c;background:#fff;border-radius:10px;color:var(--brown);margin:8px}
.program-toolbar{margin:28px 0}
.program-filters{display:flex;gap:8px;flex-wrap:wrap}
.program-toolbar p{margin-top:16px;font-size:14px;line-height:1.7;color:#6c584b;word-break:keep-all}
.prog-grid-wrap{display:block;overflow:visible;padding:0;height:auto}
.sec-program .prog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:24px;transform:none;will-change:auto}
.sec-program .prog-card{width:100%;height:auto;border:1px solid #ddcbbb;background:#fbf8f3;border-radius:18px;box-shadow:none;color:var(--brown);text-align:left;font:inherit}
.prog-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #4e332510}
.pc-header{padding:18px 22px 0;border:0;letter-spacing:0;justify-content:flex-start}
.program-state{font-size:12px;font-weight:700;border-radius:999px;padding:6px 11px;background:#eee6dc;color:#654c38}
.state-in_progress,.state-open{background:#e4f0e8;color:#285943}
.pc-img-area{height:120px;flex:none;background:transparent;border:0;border-radius:0;margin:8px 20px 0;font-size:52px}
.pc-img-area img{padding:0;height:120px;max-width:100%;object-fit:contain}
.pc-body{display:flex;flex-direction:column;text-align:left;padding:18px 22px 22px;flex:1}
.pc-title{font-size:21px;line-height:1.5;font-weight:700;margin:0 0 12px}
.pc-date,.pc-instructor{font-size:14px;line-height:1.8;display:block}
.pc-enrollment{font-size:13px;line-height:1.6;margin:12px 0 0;color:#76604f}
.prog-btn-card{display:block;background:none;color:var(--brown);padding:16px 0 0;margin:14px 0 0;border-top:1px solid #e3d7cb;border-radius:0;font-weight:700;text-align:left;min-height:44px}
.pc-stat-bar{display:none}
.overlay-bg,.notice-modal-overlay{padding:20px;overscroll-behavior:contain;overflow-y:auto;align-items:flex-start}
.overlay-bg>div:not(.nav-arrow),.notice-modal{margin:auto;max-width:100%;max-height:calc(100dvh - 40px);overflow:auto;overscroll-behavior:contain}
.em-wrapper{width:520px;text-align:left;padding:36px 30px}
.em-close,.nm-close{width:44px;height:44px;min-width:44px;min-height:44px;display:grid;place-items:center;border-radius:50%;background:#fff;top:12px;right:12px;z-index:5}
.em-wrapper>.em-close,.notice-modal>.nm-close{position:sticky;top:0;float:right;margin:-20px -10px 0 8px}
.project-detail-nav{position:sticky;top:-16px;background:#fff;z-index:3;padding:8px 0}
.nm-close,.nm-close:hover{color:var(--brown);transform:none}
.new-modal-wrapper{width:1040px;max-height:calc(100dvh - 40px);border-radius:20px;display:flex;flex-direction:column;overflow:hidden!important}
.nm-header-banner{background:#fff;min-height:68px;padding:12px 70px 12px 22px;border-bottom:1px solid #eadfd5;flex-shrink:0}
.book-back{background:none;border:0;padding:10px;color:var(--brown);min-height:44px;font-weight:700}
.nm-body{min-height:0;flex:1;overflow-y:auto;padding:30px;gap:32px;align-items:flex-start}
.nm-left{width:30%;flex-shrink:0;text-align:center}
.nm-book-shadow{width:100%;max-width:260px;max-height:370px;object-fit:contain}
.nm-right{flex:1;min-width:0}
.nm-title-text{font-size:28px;line-height:1.45;word-break:keep-all}
.nm-author-text{font-size:15px;line-height:1.7}
.nm-price{font-size:20px;margin-top:14px;font-weight:700;color:var(--brown)}
.nm-desc-text{font-size:15px;line-height:1.85;word-break:keep-all}
.nm-footer{flex-shrink:0;display:flex;gap:10px;padding:16px 24px;background:#fff;border-top:1px solid #e3d7cb;margin:0}
.nm-shop-btn{min-height:48px;border-radius:12px;font-size:14px;padding:12px 16px;flex:1;justify-content:center}
.nm-shop-btn:disabled{opacity:.55;cursor:not-allowed}
.nm-share-btn span{white-space:nowrap}
#programModal{padding:20px;align-items:flex-start}
#programModal .pm-wrapper{margin:auto;width:940px;padding:20px 28px 28px;overflow:auto}
#programModal .pm-wrapper{border-width:1px!important;border-color:#d8c7b7!important;box-shadow:0 12px 40px #0002!important;background:#fff!important}
.pm-title{font-family:inherit!important;text-shadow:none!important;transform:none!important;border:0!important;background:transparent!important;box-shadow:none!important}
.pm-nav{top:-20px;background:#fff;z-index:3;padding:8px 0;border-bottom:1px solid #eadfd5;border-radius:0}
.pm-nav button,.project-detail-nav button{min-height:44px}
.pm-center-box{margin-top:20px}.pm-title{font-size:32px;line-height:1.45;padding:12px 0}
.pm-badge{font-size:13px;line-height:1.6;white-space:normal}
.pm-grid-layout{gap:16px}.pm-info-box{padding:20px;box-shadow:none;border:1px solid #e5d6c7}
.pm-ib-desc{font-size:15px;line-height:1.85;word-break:keep-all}.pm-quick-facts{font-size:14px;line-height:1.7;flex-wrap:wrap}
.pm-apply-btn{margin-top:20px;font-size:16px;min-height:50px}
.ux-field-label{display:block;font-size:14px;font-weight:700;color:var(--brown);margin:16px 0 7px}
.ux-public-note{font-size:13px;line-height:1.7;padding:14px;background:#f5eee6;border-radius:10px;color:#665447}
.em-nickname,.em-textarea{font-size:16px;min-height:48px;margin:0;padding:12px 14px;width:100%}
.em-consent-row{font-size:14px;line-height:1.7;margin-top:18px;align-items:start}
.auth-switch-text button{background:none;border:0;color:var(--accent);text-decoration:underline;padding:10px;min-height:44px}
.cart-item-qty button{min-width:44px;min-height:44px}.cart-item-remove{min-width:44px;min-height:44px;background:none;border:0}
.ux-search-panel{width:760px;background:#fff;border-radius:20px;padding:32px;position:relative;min-height:360px}
.ux-search-panel h2{font-size:26px;color:var(--brown);margin:8px 44px 12px 0;word-break:keep-all}
.ux-search-panel>p{font-size:14px;line-height:1.7;color:#6a5749;margin-bottom:24px}
.ux-search-panel .search-wrapper{max-width:none;width:100%;margin:0}
.ux-search-panel .search-results{position:static;border-radius:12px;box-shadow:none;max-height:48dvh;margin-top:14px}
.ux-search-panel .search-input{font-size:16px;padding:14px;min-width:0}
.ux-search-panel .search-box{display:flex;border:1px solid #bca690;border-radius:12px;overflow:hidden}
.ux-search-panel .search-btn{min-width:60px;border-radius:0}
.sr-item{cursor:pointer;min-height:60px}.sr-item[aria-selected=true]{background:#f0eadf;outline:2px solid #285943;outline-offset:-3px}
#searchCount{font-size:13px;color:#6a5749;margin-top:14px}
.ux-toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:900000;background:#3d3026;color:#fff;border-radius:12px;max-width:calc(100vw - 36px);padding:14px 20px;font-size:14px;line-height:1.6;box-shadow:0 5px 20px #0002;pointer-events:none;opacity:0;transition:opacity .15s}
.ux-toast.visible{opacity:1}
.chat-tooltip{display:none!important}
.chat-launcher{width:52px;height:52px;bottom:max(20px,env(safe-area-inset-bottom));right:20px;box-shadow:0 3px 15px #0002}
.top-btn{width:44px;height:44px;right:84px;bottom:24px;font-size:18px}
.chat-window{max-width:calc(100vw - 32px);max-height:calc(100dvh - 160px);right:16px;bottom:86px}
.chat-options{overflow:auto;max-height:180px}.chat-btn{min-height:44px;font-size:13px}
.footer-quick{max-width:1180px;display:flex;gap:24px;flex-wrap:wrap;margin:0 auto 28px;border-bottom:1px solid #dbcdbc;padding-bottom:20px}
.footer-quick a{min-height:44px;display:inline-flex;align-items:center;color:var(--brown);font-size:15px;font-weight:700;text-decoration:underline;text-underline-offset:5px}
.footer-info{line-height:1.9;overflow-wrap:anywhere}.footer-text-btn{min-height:44px}
.project-card,.project-featured,.team-person{box-shadow:none!important}
.project-card:hover{transform:translateY(-3px)}
.project-title{font-size:clamp(28px,3.4vw,42px);line-height:1.4;word-break:keep-all}
.project-filters button{min-height:44px}.project-detail-wrap{width:960px}
.project-detail-grid{gap:16px}.project-detail-box{line-height:1.85}
@media(max-width:1100px){#header .gnb{gap:0}#header .mtab{font-size:13px;padding:12px 8px}.nav-more{display:none}}
@media(max-width:900px){#header .gnb{display:none}.hamburger-btn{display:block}#header{gap:6px}.logo-img{height:32px}#header .auth-nav-btn{margin-left:auto}.sec-home{grid-template-columns:1fr;padding-top:25px}.home-copy{padding-top:0}.home-h1{font-size:42px!important}.stage{min-height:510px!important}.newsletter-strip{grid-template-columns:1fr auto;margin:20px}.newsletter-strip>div{grid-column:1/-1}#bookContainer{grid-template-columns:repeat(3,minmax(0,1fr))}.page-trail{margin-top:90px}}
@media(max-width:600px){
 #header{min-height:68px;padding:10px 16px}.logo-img{height:28px}.auth-nav-btn{font-size:0!important;min-width:44px;min-height:44px;padding:0!important}.auth-nav-btn i{font-size:17px}.header-search,.hamburger-btn,.cart-icon-btn{min-width:40px;min-height:44px}.cart-badge{right:0}
 .sec-home{padding:22px 20px 0;gap:24px}.home-h1{font-size:38px!important;margin:16px 0}.home-desc{font-size:15px}.hero-badge{font-size:12px!important}.home-purpose{font-size:14px;margin:14px 0}.home-purpose br,.home-desc br{display:none}
 .journey-links .btn-core{font-size:14px;padding:12px 16px;min-height:46px}.stage{min-height:460px!important;border-radius:20px}.stage-text{padding:22px!important;max-width:65%}.st-title{font-size:42px!important}.st-tag{font-size:15px!important}.st-meta{font-size:11px}.stage-book{right:8px!important;width:40%!important;bottom:105px!important}.stage-char{right:15px!important;bottom:24px!important;width:30%!important}.stage-cassette{left:24px!important;bottom:22px!important;width:22%!important}.st-cta-row{flex-direction:column;align-items:flex-start;gap:10px}.st-cta,.st-cta-ghost{font-size:13px;padding:12px!important;white-space:normal;min-height:44px}
 .newsletter-strip{margin:24px 20px;padding:20px;gap:12px}.newsletter-strip .st-notify-input{font-size:16px}.newsletter-strip strong{font-size:15px}.newsletter-strip .st-notify-btn{font-size:13px;min-height:44px}.portals-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 20px}.portal-card{padding:16px;border-radius:18px}.portal-card h3{font-size:15px;line-height:1.5}.stage{padding:22px!important}.stage-text{padding:0!important}.res-btn-group{flex-wrap:wrap}
 .home-evidence{padding:20px;margin:8px auto}.home-evidence h2{font-size:25px}.evidence-grid>a{padding:22px}.evidence-grid strong{font-size:20px}
 .sec-common,.sec-program{padding:90px 20px 40px}.pg-head{gap:20px}.pg-head .img-slot{max-height:160px}.pg-head .pg-title{font-size:28px}.pg-sub{font-size:15px!important}.page-trail{margin:78px auto 0;padding:0 20px}
 #bookContainer{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}.book-card .book-img-wrap{height:180px;padding:16px}.book-card .b-title{font-size:15px}.book-card .b-author{font-size:12px}.book-card .b-price{font-size:14px}.book-view{font-size:11px}.library-tools{flex-wrap:wrap;gap:8px}.library-tools label{width:100%}.library-tools input{width:calc(100% - 50px)}.category-tabs{margin-top:18px}.cat-btn{font-size:14px;padding:10px 18px}.library-finder{font-size:14px;padding:16px}
 .sec-program .prog-grid{grid-template-columns:1fr;gap:18px}.pc-header{padding:18px 20px 0}.pc-img-area{height:80px;font-size:42px;position:absolute;right:10px;top:10px;width:68px}.pc-img-area img{height:80px}.pc-title{font-size:20px;padding-right:60px}.pc-body{padding:18px 20px 20px}.pc-date{font-size:13px}.pc-instructor{font-size:13px}.program-filters button{font-size:13px;padding:10px 13px}.program-toolbar p{font-size:13px}
 .overlay-bg,.notice-modal-overlay,#programModal{padding:10px}.overlay-bg>div:not(.nav-arrow),.notice-modal{max-height:calc(100dvh - 20px)}.new-modal-wrapper{max-height:calc(100dvh - 20px);width:100%;border-radius:16px}.nm-header-banner{padding:10px 62px 10px 12px;min-height:64px}.nm-body{flex-direction:column;padding:22px;gap:20px}.nm-left{width:100%;text-align:center}.nm-book-shadow{max-width:140px;max-height:210px}.nm-title-text{font-size:24px}.nm-title-box{margin-bottom:20px}.nm-footer{padding:12px;gap:6px}.nm-shop-btn{font-size:12px;padding:10px 6px;min-width:0}.nm-footer .nm-share-btn{flex:0 0 56px}.nm-price{font-size:18px}.nm-desc-text{font-size:14px}
 #programModal .pm-wrapper{padding:16px;width:100%}.pm-nav{top:-16px}.pm-title{font-size:25px}.pm-grid-layout{grid-template-columns:1fr}.pm-info-box{padding:18px}.pm-ib-desc{font-size:14px}.pm-quick-facts{gap:10px;align-items:flex-start;flex-direction:column;margin-bottom:20px}.pm-nav button{font-size:13px;padding:8px}.pm-badge{font-size:12px}.pm-apply-btn{font-size:14px}
 .em-wrapper{padding:42px 22px 26px;width:100%}.em-title{font-size:25px}.em-subtitle{font-size:14px}.co-order-guide{font-size:13px}.em-consent-row{flex-wrap:wrap}.ux-search-panel{padding:28px 18px}.ux-search-panel h2{font-size:22px}.ux-search-panel .search-results{max-height:50dvh}.sr-badge{font-size:11px}.sr-title{font-size:14px}.sr-sub{font-size:12px}.ux-search-panel .search-input{padding:12px;font-size:16px}.nm-share-btn i{display:none}
 .project-wrap{padding-left:20px;padding-right:20px}.project-detail-wrap{padding:16px}.project-detail-grid{grid-template-columns:1fr}.project-detail-title{font-size:25px}.footer-quick{gap:8px 20px}.footer-quick a{font-size:13px}.footer-info{font-size:12px}.chat-launcher{width:46px;height:46px;right:16px;bottom:16px}.top-btn{right:74px;bottom:17px}
}
@media(max-width:360px){#header{gap:2px;padding:10px 12px}.logo-img{height:25px}.stage{min-height:470px!important}.stage-text{padding:18px!important;max-width:69%}.st-new-line{font-size:13px}.st-meta{flex-wrap:wrap}.book-card .book-img-wrap{height:155px;padding:12px}.pc-title{font-size:18px}.program-filters{gap:6px}.program-filters button{padding:9px 11px;font-size:12px}.newsletter-strip{grid-template-columns:1fr}.newsletter-strip>div{grid-column:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
