@charset "UTF-8";
:root{--ink:#172321;--muted:#55635e;--paper:#f6f5f0;--white:#fff;--blue:#1748c7;--line:#d8ddd5;--soft:#e9eee6;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;--radius:5px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--blue);text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #8c3e00;outline-offset:4px}button:focus-visible{outline-color:#8c3e00}img{display:block;max-width:100%}h1,h2,h3,p{margin:0 0 1rem}h1,h2,h3{line-height:1.12;font-weight:500;letter-spacing:-.045em}h1{font-size:clamp(2.5rem,5.5vw,5.6rem)}h2{font-size:clamp(2rem,3.5vw,3.6rem)}h3{font-size:1.3rem;letter-spacing:-.025em}p:last-child{margin-bottom:0}.muted{color:var(--muted)}.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.serif{font-family:var(--serif);font-style:italic}.container{width:min(1240px,calc(100% - 112px));margin:auto}.narrow{max-width:780px}.section{padding:100px 0}.line{border-top:1px solid var(--line)}.flex{display:flex;gap:16px;align-items:center}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack>*+*{margin-top:20px}.gap-sm{gap:8px}.button,button.primary,button.secondary,button.danger{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:48px;padding:11px 22px;border:1px solid transparent;border-radius:var(--radius);font-size:.9rem;font-weight:600;text-decoration:none;line-height:1.4;transition:background .18s,transform .18s}.button:hover{transform:translateY(-2px)}.primary,.button.primary{background:var(--blue);color:white}.primary:hover{background:#123b9f}.secondary,.button.secondary{background:transparent;color:var(--ink);border-color:#a8b3a7}.secondary:hover{background:var(--soft)}.danger{color:#9e2424;border-color:#c16b6b;background:#fff}.link-button{border:0;background:none;color:var(--blue);padding:10px 0;text-decoration:underline;text-underline-offset:4px;min-height:44px}.icon-button{border:1px solid var(--line);background:none;width:44px;height:44px;border-radius:50%;font-size:1.4rem;color:var(--ink)}.pill{display:inline-block;background:var(--soft);color:#30422e;font-size:.7rem;line-height:1.4;letter-spacing:.035em;padding:6px 9px;border-radius:3px}.pill.blue{color:#123b9f;background:#e7edff}.pill.amber{background:#fff0d2;color:#774711}.pill.red{color:#8a2424;background:#fee8e8}.preview-note{padding:7px 24px;text-align:center;font-size:.75rem;background:#e9eddf;color:#344630}.site-header{height:88px;background:var(--paper);display:flex;align-items:center;position:relative;z-index:5;border-bottom:1px solid var(--line)}.header-inner{width:calc(100% - 112px);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{color:var(--ink);text-decoration:none;display:inline-flex;gap:10px;align-items:center;font-size:1.65rem;letter-spacing:-.065em;font-weight:700}.brand-symbol{display:inline-flex;width:34px;height:34px;background:var(--blue);color:#fff;align-items:center;justify-content:center;border-radius:50%;font-weight:700;font-size:1.2rem;letter-spacing:-.07em}.brand small{display:block;font-size:.56rem;letter-spacing:.16em;font-weight:400;line-height:1.4;text-transform:uppercase}.site-nav{display:flex;align-items:center;gap:30px}.site-nav>a:not(.button){font-size:.85rem;text-decoration:none;color:var(--ink)}.site-nav>a:hover{text-decoration:underline}.mobile-menu{display:none}.hero{position:relative;min-height:min(730px,calc(100svh - 112px));display:flex;align-items:center;isolation:isolate;background:#263c36;color:white;overflow:hidden}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 54%;z-index:-3;animation:photo-in 1.3s ease-out}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,23,19,.9),rgba(8,22,19,.68) 44%,rgba(10,22,17,.1));z-index:-2}.hero-inner{padding:70px 0 110px}.hero .eyebrow{color:#dce6d9;margin-bottom:28px}.hero-brand{font-size:clamp(4.5rem,10vw,10rem);letter-spacing:-.08em;line-height:.95;font-weight:500;margin-left:-.06em;animation:rise .7s ease both}.hero h1{font:normal clamp(2rem,3.9vw,3.9rem)/1.1 var(--serif);max-width:660px;letter-spacing:-.035em;margin:24px 0}.hero p:not(.eyebrow){max-width:400px;font-size:.95rem;color:#e2e9df}.hero-actions{margin-top:32px;animation:rise .85s ease both}.hero .secondary{border-color:#e1e7db;color:#fff}.hero .secondary:hover{background:#ffffff1a}.hero-bottom{position:absolute;bottom:26px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;font-size:.72rem;letter-spacing:.06em;color:#ecf1e7}.hero-bottom span+span:before{content:"/";padding:0 18px;color:#afbca6}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:44px}.section-heading h2{max-width:600px;margin-bottom:0}.section-heading p{max-width:370px;font-size:.95rem}.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}.path-item{border-top:1px solid #9ca998;padding-top:22px}.path-item .step{font-family:var(--serif);font-style:italic;font-size:2.7rem;color:var(--blue);margin-bottom:30px}.path-item p{color:var(--muted);font-size:.93rem;max-width:330px}.opportunity-list{border-top:1px solid var(--line)}.opportunity{display:grid;grid-template-columns:1.6fr 1fr 1fr auto;gap:24px;padding:28px 0;border-bottom:1px solid var(--line);align-items:center}.opportunity h3{margin-bottom:8px}.opportunity p{font-size:.85rem;color:var(--muted);margin:0}.opportunity .count{font:2.2rem/1.2 var(--serif);color:var(--blue)}.empty{padding:35px;border-left:3px solid var(--blue);background:#eeefe7}.empty h3{margin-bottom:10px}.empty p{color:var(--muted);max-width:620px}.feature-split{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.learning-panel{padding:50px;background:#e8ecde;min-height:400px;display:flex;flex-direction:column;justify-content:space-between}.learning-panel .japanese{font-size:4rem;letter-spacing:.04em;font-family:var(--serif);color:#355038}.learning-steps{margin-top:20px}.learning-step{border-top:1px solid #bac4b2;padding:16px 0;display:flex;justify-content:space-between;font-size:.88rem}.partner-line{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;border-top:1px solid var(--line);padding-top:30px}.partner-line h3{font-size:1.1rem;letter-spacing:-.02em}.partner-line p{font-size:.82rem;color:var(--muted)}.cta-band{background:var(--blue);color:white;padding:70px 0}.cta-band h2{max-width:750px}.cta-band .button{background:white;color:var(--blue)}.site-footer{padding:45px 0 28px}.footer-top{display:flex;justify-content:space-between;gap:40px;padding-bottom:30px}.footer-top p{font-size:.85rem;max-width:380px;color:var(--muted);margin-top:16px}.footer-links{display:flex;gap:12px 24px;flex-wrap:wrap;max-width:540px;justify-content:flex-end;align-content:flex-start}.footer-links a,.footer-links button{font-size:.78rem;color:var(--muted)}.footer-bottom{border-top:1px solid var(--line);padding-top:22px;font-size:.7rem;color:var(--muted);display:flex;justify-content:space-between;gap:20px}.skip-link{position:fixed;left:20px;top:10px;transform:translateY(-150%);background:white;padding:10px 20px;z-index:100}.skip-link:focus{transform:none}.auth-layout{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100svh - 88px)}.auth-story{background:#233b32;color:white;padding:70px 60px;position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end}.auth-story:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#14281ce8,#14281c22),url('/assets/kyoto.jpg') center/cover;z-index:-1}.auth-story h2{max-width:470px;font-family:var(--serif);font-size:3.2rem}.auth-story p{font-size:.9rem;max-width:380px;color:#e1e8dc}.auth-form{padding:55px 65px;max-width:620px;width:100%;margin:auto}.auth-form h1{font-size:2.7rem}.field{display:flex;flex-direction:column;gap:7px;margin:0 0 20px}.field label,.field>span{font-size:.82rem;font-weight:600}.field input,.field select,.field textarea{min-height:48px;width:100%;background:#fff;border:1px solid #a6b2a7;border-radius:3px;padding:11px 12px;color:var(--ink)}.field input[type=file]{font-size:.83rem}.field textarea{min-height:110px;resize:vertical}.field small{color:var(--muted);font-size:.75rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.form-grid .full{grid-column:1/-1}.check{display:flex;align-items:flex-start;gap:10px;font-size:.82rem;margin:15px 0}.check input{width:18px;height:18px;flex-shrink:0;margin-top:4px;accent-color:var(--blue)}.form-error{color:#9e2424;padding:12px 0;font-size:.88rem;min-height:20px}.portal-shell{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:calc(100svh - 88px)}.sidebar{border-right:1px solid var(--line);padding:34px 24px;display:flex;flex-direction:column;gap:7px;background:#eff0e9}.sidebar .eyebrow{margin:12px 12px 18px;font-size:.63rem}.sidebar a{display:flex;align-items:center;gap:13px;min-height:45px;padding:9px 13px;border-radius:4px;text-decoration:none;color:var(--muted);font-size:.85rem}.sidebar a:hover{background:#e0e6d9}.sidebar a[aria-current=page]{background:white;color:var(--blue);box-shadow:0 1px 4px #17232107}.nav-icon{font-size:1.1rem;min-width:20px;text-align:center}.sidebar .sidebar-note{font-size:.73rem;color:var(--muted);border-top:1px solid var(--line);margin-top:28px;padding:20px 12px;line-height:1.7}.portal-main{padding:45px min(5vw,70px) 80px;min-width:0;max-width:1500px;width:100%}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:34px}.page-heading h1{font-size:2.7rem}.page-heading p{color:var(--muted);font-size:.9rem;max-width:700px}.portal-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:42px}.panel{padding:28px;background:white;border:1px solid var(--line);border-radius:4px}.panel h2,.workspace-section h2{font-size:1.4rem;margin-bottom:20px;letter-spacing:-.035em}.workspace-section{margin-bottom:38px}.metric-row{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);margin-bottom:36px}.metric{padding:24px 10px 24px 0}.metric .value{font:2.7rem/1.2 var(--serif)}.metric .label{font-size:.75rem;color:var(--muted);margin-top:8px}.progress-track{height:7px;background:#dfe5dc;margin:20px 0;border-radius:8px;overflow:hidden}.progress-bar{height:100%;background:var(--blue);width:0;transition:width .5s}.task-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 0;border-bottom:1px solid var(--line);font-size:.85rem}.task-row:last-child{border-bottom:0}.task-row p{margin:0;font-size:.78rem;color:var(--muted)}.task-number{font:1.2rem var(--serif);color:var(--blue);margin-right:14px}.note-box{font-size:.85rem;background:#e9edde;border-left:3px solid #6d814d;padding:16px 20px;margin:22px 0}.note-box.warning{background:#fff0dc;border-color:#94651e}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:.82rem}th,td{padding:16px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600}th:first-child,td:first-child{padding-left:0}td .link-button{font-size:.8rem}.record-row{padding:24px 0;border-bottom:1px solid var(--line)}.record-row:first-child{border-top:1px solid var(--line)}.record-row h3{font-size:1.1rem}.record-row .meta{font-size:.77rem;color:var(--muted)}.record-row .actions{display:flex;gap:15px;flex-wrap:wrap;margin-top:15px}.detail-list{display:grid;grid-template-columns:180px 1fr;gap:12px 22px;font-size:.88rem}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;overflow-wrap:anywhere}.section-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:30px;overflow-x:auto}.section-tabs a{font-size:.83rem;white-space:nowrap;padding:10px 0 15px;text-decoration:none;color:var(--muted)}.section-tabs a[aria-current=page]{color:var(--blue);border-bottom:2px solid var(--blue)}.policy{padding:65px 0 90px;max-width:830px}.policy h1{font-size:3rem;margin:16px 0 26px}.policy h2{font-size:1.35rem;margin-top:30px;letter-spacing:-.025em}.policy p,.policy li{font-size:.94rem;color:#39483f}.policy nav{display:flex;flex-wrap:wrap;gap:12px 22px;margin:25px 0}.policy nav a{font-size:.83rem}dialog{width:min(680px,calc(100% - 32px));max-height:90svh;border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:32px;color:var(--ink)}dialog::backdrop{background:#10251dd0}dialog h2{font-size:1.8rem;padding-right:30px}dialog .close{position:absolute;right:18px;top:18px}dialog p{font-size:.9rem}#notice:not(:empty){position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#172e24;color:white;padding:15px 24px;border-radius:4px;z-index:40;max-width:calc(100% - 32px);font-size:.85rem;box-shadow:0 4px 30px #0002}#notice.error{background:#7c2825}.loading{padding:60px;font-size:.9rem;color:var(--muted)}.welcome{border-bottom:1px solid var(--line);padding:0 0 30px;margin-bottom:30px}.welcome h2{font-family:var(--serif)}.course-list{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.course-item{border-top:2px solid var(--blue);padding-top:22px}.course-item p{font-size:.84rem;color:var(--muted)}.course-item h3{margin:14px 0}.small{font-size:.78rem}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.text-wrap{overflow-wrap:anywhere}.action-link{font-weight:600;font-size:.85rem;text-decoration:none;display:inline-flex;gap:16px;min-height:44px;align-items:center}.action-link:hover{text-decoration:underline}.reveal{animation:rise .6s ease both}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes photo-in{from{transform:scale(1.04)}to{transform:scale(1)}}
@media(min-width:1500px){.hero-inner{padding-block:90px 130px}.hero{min-height:760px}}
@media(max-width:1000px){.container,.header-inner{width:calc(100% - 64px)}.site-nav{gap:18px}.portal-shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding:25px 12px}.portal-main{padding:35px 30px 60px}.portal-grid{grid-template-columns:1fr}.feature-split{gap:45px}.auth-form{padding:40px}.auth-story{padding:40px}.partner-line{grid-template-columns:1fr 1fr}.opportunity{grid-template-columns:1.5fr 1fr auto}.opportunity .date{display:none}.course-list{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.container,.header-inner{width:calc(100% - 40px)}.site-header{height:76px}.brand{font-size:1.4rem}.brand-symbol{width:30px;height:30px}.site-nav{display:none}.site-nav.open{display:flex;position:absolute;top:76px;left:0;right:0;background:var(--paper);padding:24px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}.mobile-menu{display:block}.hero{min-height:640px;max-height:none}.hero-inner{padding:50px 0 120px}.hero-brand{font-size:5.5rem}.hero h1{font-size:2.55rem;max-width:320px}.hero-photo{object-position:60% center}.hero:before{background:linear-gradient(90deg,#071713e8,#07171399 70%,#07171333)}.hero-bottom{bottom:25px;font-size:.63rem;display:block}.hero-bottom>div{margin-bottom:8px}.hero-actions{flex-wrap:wrap}.hero-actions .button{font-size:.85rem;padding:12px 18px}.section{padding:60px 0}.section-heading{display:block;margin-bottom:30px}.section-heading p{margin-top:22px}.path-grid{grid-template-columns:1fr;gap:32px}.path-item .step{margin-bottom:15px}.path-item{display:grid;grid-template-columns:48px 1fr;gap:0 15px}.path-item h3{margin-top:6px}.path-item p{grid-column:2}.feature-split{grid-template-columns:1fr;gap:35px}.learning-panel{padding:30px;min-height:340px}.partner-line{gap:28px}.opportunity{grid-template-columns:1fr auto;gap:15px}.opportunity .places{grid-column:1}.opportunity>.button{grid-column:2;grid-row:1/3}.footer-top,.footer-bottom{display:block}.footer-links{justify-content:flex-start;margin-top:25px}.footer-bottom span{display:block;margin-bottom:10px}.cta-band{padding:50px 0}.cta-band .flex{display:block}.cta-band .button{margin-top:15px}.auth-layout{display:block;min-height:calc(100svh - 76px)}.auth-story{display:none}.auth-form{padding:45px 24px}.auth-form h1{font-size:2.3rem}.portal-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:12px 16px;display:flex;flex-direction:row;overflow-x:auto;gap:4px}.sidebar .eyebrow,.sidebar-note{display:none}.sidebar a{white-space:nowrap;min-height:44px;padding:8px 10px;font-size:.76rem}.sidebar .nav-icon{display:none}.portal-main{padding:30px 20px 60px}.page-heading{display:block}.page-heading h1{font-size:2.15rem}.page-heading>.button{margin-top:15px}.form-grid{grid-template-columns:1fr}.metric .value{font-size:2.1rem}.metric .label{font-size:.68rem}.panel{padding:22px}.detail-list{grid-template-columns:1fr;gap:4px}.detail-list dd{margin-bottom:14px}.course-list{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}.policy{padding-block:40px 70px}.policy h1{font-size:2.3rem}.task-row{align-items:flex-start}.task-row .button{min-width:85px;padding:10px}.page-heading .flex{margin-top:15px}.preview-note{font-size:.65rem;padding:6px 15px}.hero-bottom span+span:before{padding:0 10px}.hero-brand{font-size:clamp(4.25rem,17vw,6rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{.site-header,.sidebar,.site-footer,.button,.preview-note,#notice{display:none!important}.portal-shell{display:block}.portal-main{padding:0}.container{width:100%}body{background:white}.hero{min-height:auto}.hero-photo{display:none}.hero{color:black;background:white}.hero:before{display:none}a{color:inherit}.policy{padding:0}}

[tabindex="-1"]:focus{outline:none}

/* Keep native controls clear of the camera island and home indicator. */
.native-app body{padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}

/* Language controls remain available when mobile navigation is closed. */
.language-picker{margin-left:auto;flex:0 0 auto}.language-picker select{font:inherit;font-size:.85rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;min-height:44px;padding:8px 26px 8px 10px;max-width:125px}
:lang(si) body{font-family:"Noto Sans Sinhala","Sinhala Sangam MN","Iskoola Pota",system-ui,sans-serif;line-height:1.75}
:lang(ja) body{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif;line-height:1.8}
:lang(si) .eyebrow,:lang(ja) .eyebrow{letter-spacing:.03em}
:lang(si) h1,:lang(si) h2,:lang(si) h3{line-height:1.5;letter-spacing:0}
:lang(ja) h1,:lang(ja) h2,:lang(ja) h3{line-height:1.45;letter-spacing:0;line-break:strict}
:lang(si) .serif,:lang(ja) .serif{font-family:inherit;font-style:normal}
:lang(si) .hero h1,:lang(ja) .hero h1{font-size:clamp(2.1rem,4.6vw,4.5rem)}
:lang(si) .hero-brand,:lang(ja) .hero-brand{font-family:Arial,sans-serif}
:lang(si) .site-nav,:lang(ja) .site-nav{font-size:.85rem;gap:18px}
:lang(si) button,:lang(si) .button,:lang(ja) button,:lang(ja) .button{white-space:normal}
@media(max-width:900px){.language-picker{margin-left:auto;margin-right:10px}.language-picker select{max-width:105px}.brand{flex-shrink:1}.brand small{font-size:.55rem}:lang(si) .hero h1,:lang(ja) .hero h1{font-size:clamp(2rem,7vw,3rem)}:lang(si) .hero-brand,:lang(ja) .hero-brand{font-size:clamp(3.8rem,15vw,7rem)}}
@media(max-width:600px){.header-inner{width:calc(100% - 32px);gap:8px}.site-header .brand{font-size:1.15rem;gap:7px;min-width:0}.site-header .brand-symbol{width:28px;height:28px;flex:0 0 28px}.site-header .brand small{font-size:.47rem;letter-spacing:.06em;max-width:108px}.language-picker{margin-right:0;flex:0 0 96px}.language-picker select{width:96px;max-width:96px;font-size:.8rem;padding-left:8px}.mobile-menu{flex:0 0 44px}:lang(si) .brand small,:lang(ja) .brand small{letter-spacing:0;line-height:1.5}}

.sidebar-signout{min-height:44px;flex-shrink:0;white-space:nowrap;text-align:left;margin-top:8px}@media(max-width:700px){.sidebar-signout{margin-top:0;padding:8px 10px;font-size:.76rem}}

.table-scroll:focus-visible{outline:3px solid #8c3e00;outline-offset:4px}

.message-text,.request-detail{white-space:pre-wrap;overflow-wrap:anywhere}
