@import "https://fonts.googleapis.com/css2?family=Dancing+Script:wght@600;700&family=DM+Mono:wght@400;500&family=Lato:wght@400;700;900&family=Manrope:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,700&display=swap";:root{color:#003367;font-synthesis:none;text-rendering:optimizelegibility;background:#f6f0e4;font-family:Manrope,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,a{font:inherit;color:inherit}::selection{color:#fff;background:#c02135}:root{--ink:#003367;--cream:#f6f0e4;--paper:#fffaf0;--red:#e65335;--gold:#eca825}.shell{width:min(1160px,100% - 64px);margin:0 auto}.hero-section{background:var(--cream);border-bottom:1px solid #15312e30;min-height:100svh;position:relative;overflow:hidden}.hero-section:before{content:"";opacity:.18;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");position:absolute;inset:0}.topline{letter-spacing:.2em;z-index:2;border-bottom:1px solid #15312e59;justify-content:space-between;width:min(1160px,100% - 64px);margin:auto;padding:26px 0 16px;font:500 11px/1 DM Mono,monospace;display:flex;position:relative}.japanese{letter-spacing:.35em;font-size:13px}.hero-grid{z-index:2;grid-template-columns:1.03fr .97fr;align-items:center;gap:72px;min-height:calc(100svh - 100px);padding:70px 0 100px;display:grid;position:relative}.eyebrow{color:var(--red);text-transform:uppercase;letter-spacing:.22em;margin:0 0 22px;font:500 11px/1.4 DM Mono,monospace}h1,h2{text-transform:uppercase;letter-spacing:-.065em;margin:0;font-size:clamp(57px,6.2vw,90px);font-weight:700;line-height:.92}h1 em,h2 em{color:var(--red);text-transform:none;letter-spacing:-.04em;font:italic 700 .95em/1 Playfair Display,serif}.invite-line{align-items:center;gap:16px;margin:38px 0 16px;display:flex}.invite-line span{letter-spacing:.14em;text-transform:uppercase;font:500 11px DM Mono,monospace}.invite-line strong{border-bottom:2px solid var(--ink);min-width:180px;color:var(--red);padding:0 8px 5px;font:italic 700 24px Playfair Display,serif}.lead{color:#405652;max-width:520px;font-size:15px;line-height:1.7}.hero-actions,.closing-actions{align-items:center;gap:26px;margin-top:32px;display:flex}.primary,.secondary{cursor:pointer;border:0;justify-content:center;align-items:center;gap:10px;padding:15px 22px;font-size:13px;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex}.primary{color:#fff;background:var(--ink);box-shadow:5px 5px 0 var(--gold)}.primary:hover{box-shadow:8px 8px 0 var(--gold);transform:translate(-2px,-2px)}.text-link{border-bottom:1px solid;align-items:center;gap:8px;padding-bottom:3px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.portrait-wrap{justify-self:center;width:min(430px,100%);position:relative;transform:rotate(2.2deg)}.portrait-card{background:#fffdf7;padding:14px 14px 24px;box-shadow:10px 16px 35px #26302a2e}.portrait-card img{aspect-ratio:1/1.04;object-fit:cover;filter:saturate(.8)contrast(1.04);width:100%;display:block}.portrait-caption{text-align:center;flex-direction:column;padding:20px 5px 0;display:flex}.portrait-caption span{color:var(--red);letter-spacing:.2em;text-transform:uppercase;font:500 10px DM Mono,monospace}.portrait-caption strong{margin:4px 0 3px;font:italic 700 31px Playfair Display,serif}.portrait-caption small{text-transform:uppercase;letter-spacing:.12em;font:500 10px DM Mono,monospace}.tape{z-index:2;clip-path:polygon(4% 2%,98% 0,95% 96%,1% 100%);background:#eca825bf;width:100px;height:28px;position:absolute;top:-12px;left:50%;transform:translate(-50%)rotate(-4deg)}.doodle-code{background:var(--red);color:#fff;padding:10px;font:500 10px/1.55 DM Mono,monospace;position:absolute;bottom:42px;right:-74px;transform:rotate(-6deg)}.sun{background:var(--red);opacity:.08;border-radius:50%;position:absolute}.sun-one{width:360px;height:360px;top:5%;right:-120px}.sun-two{opacity:.14;width:120px;height:120px;bottom:20%;left:-45px}.crane{fill:#e6533514;width:145px;stroke:var(--red);stroke-width:1.4px;z-index:1;position:absolute;top:11%;left:44%;transform:rotate(-8deg)}.sakura{color:var(--red);opacity:.35;font-size:38px;position:absolute}.sakura-one{top:22%;left:4%;transform:rotate(18deg)}.sakura-two{font-size:27px;bottom:15%;right:4%}.scroll-note{letter-spacing:.1em;text-transform:uppercase;font:500 10px DM Mono,monospace;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.scroll-note span{color:var(--red);margin-left:8px}.details-section{background:var(--ink);color:#f8f2e7;padding:120px 0}.details-grid{grid-template-columns:.8fr 1.2fr;align-items:center;gap:100px;display:grid}.section-title h2,.memory-heading h2,.closing-card h2{font-size:clamp(46px,5vw,72px)}.section-title>p:last-child{color:#bdc9c4;max-width:440px;margin:30px 0 0;font-size:14px;line-height:1.75}.ticket{color:var(--ink);background:var(--paper);box-shadow:12px 12px 0 var(--red);grid-template-columns:1fr 130px;display:grid;transform:rotate(-1deg)}.ticket-main{padding:36px 42px}.ticket-row{border-bottom:1px dashed #a8ada5;grid-template-columns:26px 1fr;gap:18px;padding:18px 0;display:grid}.ticket-row:last-child{border-bottom:0}.ticket-row svg{color:var(--red);margin-top:3px}.ticket-row div{flex-direction:column;display:flex}.ticket-row span{text-transform:uppercase;letter-spacing:.16em;color:#6f7d78;margin-bottom:5px;font:500 9px DM Mono,monospace}.ticket-row strong{font-size:15px}.ticket-row small{color:#677772;margin-top:5px;font-size:11px}.ticket-stub{border-left:1px dashed #8d9892;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.ticket-stub:before,.ticket-stub:after{content:"";background:var(--ink);border-radius:50%;width:24px;height:24px;position:absolute;left:-13px}.ticket-stub:before{top:-13px}.ticket-stub:after{bottom:-13px}.ticket-stub>span{letter-spacing:.17em;font:500 8px DM Mono,monospace}.ticket-stub b{margin:15px 0 3px;font-size:46px;line-height:1}.ticket-stub small{text-align:center;font:500 9px/1.3 DM Mono,monospace}.barcode{background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 4px,var(--ink) 4px 5px,transparent 5px 8px);width:55px;height:24px;margin-top:18px}.memories-section{background:#e9dfcc;padding:120px 0 145px;overflow:hidden}.memory-heading{grid-template-columns:1fr 2fr .7fr;align-items:end;margin-bottom:70px;display:grid}.memory-heading .eyebrow{align-self:start}.memory-heading span{text-align:right;letter-spacing:.12em;color:var(--red);font:500 10px/1.8 DM Mono,monospace}.photo-grid{grid-template-columns:1.08fr .92fr;gap:38px;display:grid;position:relative}.memory-photo{cursor:zoom-in;background:#fffaf0;border:0;padding:12px 12px 18px;transition:all .25s;box-shadow:7px 10px 22px #2e372f26}.memory-photo:hover{transform:rotate(0)translateY(-5px)!important}.memory-photo img{object-fit:cover;width:100%;height:100%;max-height:410px;display:block}.memory-photo span{align-items:end;gap:8px;height:42px;font:italic 700 15px Playfair Display,serif;display:flex}.photo-1{transform:rotate(-2deg)}.photo-2{margin-top:80px;transform:rotate(2.3deg)}.laptop{z-index:2;filter:drop-shadow(8px 8px 8px #202a2633);width:180px;position:absolute;bottom:-75px;left:46%;transform:rotate(-7deg)}.screen{color:#c7d6ce;background:#172624;border:6px solid #323737;border-radius:7px 7px 2px 2px;height:108px;padding:13px;position:relative}.screen>span{color:#aab4b0;position:absolute;bottom:4px;right:8px}.screen-code{font:500 8px/1.7 DM Mono,monospace}.screen-code i{color:#e67b63}.screen-code b{color:#e8bd52}.keyboard{clip-path:polygon(4% 0,96% 0,100% 100%,0 100%);background:#aeb4b0;border-radius:0 0 8px 8px;height:11px}.closing-section{background:var(--cream);padding:100px 0}.closing-card{text-align:center;background:var(--paper);box-shadow:10px 10px 0 var(--gold);border:1px solid #15312e40;padding:70px 30px;position:relative}.closing-card h2{margin:auto}.closing-card>p:not(.eyebrow){color:#53635f;margin:25px auto 0;font-size:14px}.closing-actions{justify-content:center}.secondary{border:1px solid var(--ink);background:0 0}.secondary:hover{background:var(--ink);color:#fff}.signature{color:var(--red);margin-top:55px;font:italic 700 30px Playfair Display,serif}.signature span{color:var(--ink);letter-spacing:.12em;font:500 9px DM Mono,monospace}.closing-crane{color:var(--red);opacity:.08;font:700 78px serif;position:absolute;top:10%;right:8%}footer{background:var(--ink);color:#d9e1dd;letter-spacing:.13em;text-transform:uppercase;justify-content:space-between;padding:24px max(32px,50% - 580px);font:500 9px DM Mono,monospace;display:flex}.lightbox{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#081614eb;place-items:center;padding:50px;display:grid;position:fixed;inset:0}.lightbox img{object-fit:contain;max-width:min(1100px,100%);max-height:85vh;box-shadow:0 20px 70px #000}.lightbox button{color:#fff;cursor:pointer;background:0 0;border:0;padding:10px;position:absolute;top:20px;right:25px}@media (width<=850px){.shell,.topline{width:min(100% - 36px,650px)}.hero-grid{grid-template-columns:1fr;gap:70px;padding:75px 0 120px}.hero-copy{text-align:center}.lead{margin:auto}.invite-line,.hero-actions{justify-content:center}.portrait-wrap{width:min(390px,90%)}.doodle-code{right:-20px}.crane{top:12%;left:66%}.details-grid{grid-template-columns:1fr;gap:60px}.section-title{text-align:center}.section-title>p:last-child{margin:28px auto 0}.memory-heading{text-align:center;grid-template-columns:1fr;gap:18px}.memory-heading span{text-align:center}.photo-grid{gap:20px}.laptop{left:42%}}@media (width<=560px){.topline{padding-top:19px}.hero-grid{padding-top:55px}.hero-copy h1{font-size:48px}.invite-line{flex-direction:column;gap:8px;margin-top:30px}.invite-line strong{font-size:22px}.hero-actions{flex-direction:column;gap:20px}.portrait-caption strong{font-size:27px}.details-section,.memories-section{padding:85px 0}.ticket{box-shadow:7px 7px 0 var(--red);grid-template-columns:1fr 78px}.ticket-main{padding:22px 20px}.ticket-row{gap:10px}.ticket-row strong{font-size:12px}.ticket-stub b{font-size:36px}.photo-grid{grid-template-columns:1fr}.photo-2{margin-top:10px}.laptop{display:none}.memory-photo img{height:250px}.closing-section{padding:55px 0}.closing-card{padding:60px 18px}.closing-actions{flex-direction:column}.closing-actions>*{width:100%}footer{text-align:center;flex-direction:column;gap:16px}.lightbox{padding:16px}.sakura-one{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.primary,.memory-photo{transition:none}}@media (width<=560px){.hero-copy h1{letter-spacing:-.055em;font-size:40px}}.hero-section{background-color:#f7efdf;background-image:linear-gradient(90deg,#0000 49.8%,#8f34200b 50%,#0000 50.2%),linear-gradient(#fff8,#fff8),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath d='M0 35.5h36M35.5 0v36' stroke='%23a87554' stroke-opacity='.08'/%3E%3C/svg%3E")}.hero-copy{clip-path:polygon(0 1%,7% 0,14% 1%,23% 0,34% 1%,45% 0,56% 1%,67% 0,79% 1%,89% 0,100% 1%,99% 13%,100% 28%,99% 45%,100% 60%,99% 74%,100% 89%,99% 100%,86% 99%,72% 100%,59% 99%,45% 100%,31% 99%,17% 100%,0 99%,1% 84%,0 68%,1% 51%,0 34%,1% 17%);background:#fffaf0e8;padding:42px 45px 45px;position:relative;box-shadow:3px 5px 18px #6f4e3420}.hust-mark{flex-direction:column;width:max-content;margin-bottom:24px;display:flex;transform:rotate(-1deg)}.hust-mark b{color:#a9212b;letter-spacing:-.05em;font-size:41px;line-height:.9}.hust-mark span{letter-spacing:.04em;margin-top:6px;font:700 8px Manrope,sans-serif}.hero-copy .eyebrow{margin-bottom:8px}.hero-copy h1{text-transform:none;font-size:clamp(82px,8vw,120px);line-height:.86}.hero-copy h1 em{color:#9e1f29;white-space:nowrap;font-family:Dancing Script,cursive}.hero-subtitle{text-align:center;margin:12px 0 24px;font:700 clamp(21px,2vw,29px)/1.25 Dancing Script,cursive;transform:rotate(-2deg)}.invite-line{margin-top:20px}.portrait-card{clip-path:polygon(1% 0,16% 1%,31% 0,47% 1%,65% 0,80% 1%,99% 0,100% 18%,99% 37%,100% 55%,99% 73%,100% 100%,82% 99%,65% 100%,45% 99%,24% 100%,0 99%,1% 78%,0 57%,1% 36%,0 18%)}.portrait-card img{filter:saturate(.92)contrast(1.03)}.torn-photo:before{content:"";z-index:-1;clip-path:polygon(2% 5%,98% 0,100% 89%,0 100%);background:#aed6f0;position:absolute;inset:-18px -25px 42%;transform:rotate(-3deg)}.japanese-note{z-index:3;writing-mode:vertical-rl;letter-spacing:.15em;color:#17312d;font:600 18px/1.8 Dancing Script,cursive;position:absolute;top:18%;right:2.5%}.japanese-note span{color:var(--red);margin-top:8px}.sakura-branch{z-index:4;pointer-events:none;position:absolute;overflow:visible}.branch-main{fill:none;stroke:#52342c;stroke-width:8px;stroke-linecap:round}.petals{fill:#f29aaa;stroke:#bd4a61;stroke-width:.8px}.petals .flower-center{fill:#e4b333;stroke:none}.branch-top{width:380px;top:-15px;left:-25px;transform:rotate(5deg)}.details-section{color:var(--ink);background:#f8eadf radial-gradient(#bc7f6b1f 1px,#0000 1px) 0 0/18px 18px;position:relative;overflow:hidden}.details-section:before{content:"";border:1px dashed #a7807370;position:absolute;inset:38px 3%}.branch-details{width:300px;bottom:-30px;right:-80px;transform:rotate(185deg)}.section-title{z-index:2;position:relative}.section-title>p:last-child{color:#53635f;background:#fffaf0c9;padding:22px;transform:rotate(-1deg);box-shadow:4px 4px #efb5bc}.ticket{z-index:2;background:#fffaf0;position:relative;box-shadow:12px 12px #b9d9e9}.ticket-stub:before,.ticket-stub:after{background:#f8eadf}.ticket-stub{background:#f3cbd0}.ticket-row:nth-child(2){background:#f8dce01f}.memory-heading h2 em,.closing-card h2 em{font-family:Dancing Script,cursive}.memory-photo{clip-path:polygon(0 1%,12% 0,25% 1%,38% 0,50% 1%,64% 0,78% 1%,90% 0,100% 1%,99% 100%,84% 99%,67% 100%,51% 99%,35% 100%,18% 99%,0 100%)}.closing-section{background:#f6eadb;position:relative;overflow:hidden}.closing-section:before{content:"桜　卒業　夢　未来";text-align:center;letter-spacing:.4em;color:#9e1f2909;font:700 70px serif;position:absolute;inset:auto 0 20px}.closing-card{clip-path:polygon(1% 0,18% 1%,35% 0,52% 1%,70% 0,86% 1%,100% 0,99% 100%,82% 99%,66% 100%,48% 99%,30% 100%,14% 99%,0 100%);border:0}@media (width<=1100px){.japanese-note{display:none}.branch-top{opacity:.85;width:300px}.hero-copy{padding:38px 34px}.hero-copy h1{font-size:85px}}@media (width<=850px){.branch-top{width:230px;top:40px;left:-65px}.hero-copy{margin-top:25px}.hust-mark{margin-left:auto;margin-right:auto}.hero-copy h1{font-size:88px}.hero-subtitle{font-size:25px}.details-section:before{inset:25px 12px}}@media (width<=560px){.hero-copy{padding:34px 20px 38px}.hero-copy h1{font-size:68px}.hero-subtitle{font-size:22px}.hust-mark b{font-size:34px}.branch-top{width:200px;top:55px;left:-80px}.branch-details{width:220px;right:-100px}.details-grid{z-index:2;position:relative}}.invite-maker{background:#ead7cf radial-gradient(#9e1f2914 1px,#0000 1px) 0 0/16px 16px;padding:100px 24px;position:relative;overflow:hidden}.maker-card{z-index:2;text-align:center;clip-path:polygon(0 1%,12% 0,25% 1%,39% 0,53% 1%,68% 0,82% 1%,100% 0,99% 100%,84% 99%,69% 100%,52% 99%,36% 100%,18% 99%,0 100%);background:#fffaf0;width:min(760px,100%);margin:auto;padding:62px 70px;position:relative;box-shadow:12px 12px #b9d9e9}.maker-card h2{font-size:clamp(38px,5vw,58px)}.maker-card h2 em{font-family:Dancing Script,cursive}.maker-card>p:not(.eyebrow){color:#596965;max-width:550px;margin:24px auto 34px;font-size:14px;line-height:1.7}.maker-japanese{letter-spacing:.18em;color:#a9212b;font:500 10px DM Mono,monospace;position:absolute;top:22px;right:30px}.maker-card form{text-align:left}.maker-card label{letter-spacing:.16em;text-transform:uppercase;margin:0 0 9px;font:500 9px DM Mono,monospace;display:block}.maker-input{border-bottom:2px solid var(--ink);background:#f7eddf;display:flex}.maker-input input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;padding:17px 20px;font:700 17px Manrope,sans-serif}.maker-input input::placeholder{color:#8e9995;font-weight:400}.maker-input button{background:var(--red);color:#fff;cursor:pointer;white-space:nowrap;border:0;align-items:center;gap:10px;padding:0 24px;font-size:13px;font-weight:700;transition:all .2s;display:flex}.maker-input button:hover{background:#a9212b}.maker-input input:focus{box-shadow:inset 0 0 0 2px #b9d9e9}.branch-maker{width:310px;bottom:-45px;left:-65px;transform:rotate(10deg)}@media (width<=560px){.invite-maker{padding:70px 18px}.maker-card{padding:55px 20px 42px}.maker-input{border:0;flex-direction:column}.maker-input input{border-bottom:2px solid var(--ink);text-align:center}.maker-input button{justify-content:center;padding:16px}.maker-japanese{right:18px}.branch-maker{width:230px;left:-100px}}.creator-page{background-color:#f4e9dc;background-image:linear-gradient(#fff7,#fff7),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M0 31.5h32M31.5 0v32' stroke='%23a87554' stroke-opacity='.12'/%3E%3C/svg%3E");place-items:center;min-height:100svh;padding:55px 24px;display:grid;position:relative;overflow:hidden}.creator-page:before{content:"";background:#e9b9b233;border-radius:50%;width:480px;height:480px;position:absolute;top:-170px;right:-160px}.creator-branch-top{width:340px;top:-35px;left:-70px;transform:rotate(8deg)}.pin-card{z-index:5;text-align:center;clip-path:polygon(0 1%,14% 0,29% 1%,45% 0,61% 1%,78% 0,100% 1%,99% 100%,82% 99%,66% 100%,49% 99%,31% 100%,15% 99%,0 100%);background:#fffaf0;width:min(430px,100%);padding:50px 58px 46px;position:relative;box-shadow:12px 12px #b9d9e9}.pin-card h1{letter-spacing:-.045em;text-transform:none;font-size:44px}.pin-card>p:not(.eyebrow){color:#60706c;margin:18px auto 28px;font-size:13px;line-height:1.6}.pin-seal{color:#a9212b;border:2px solid #a9212b;border-radius:50%;place-items:center;width:52px;height:52px;margin:-8px auto 24px;font:700 24px serif;display:grid;transform:rotate(-5deg)}.pin-display{justify-content:center;gap:18px;margin:22px 0 27px;display:flex}.pin-display span{border:2px solid var(--ink);border-radius:50%;width:14px;height:14px;transition:all .15s}.pin-display span.filled{background:var(--red);border-color:var(--red);transform:scale(1.1)}.pin-display.has-error{animation:.3s pin-shake}.pin-pad{grid-template-columns:repeat(3,1fr);gap:10px;width:230px;margin:auto;display:grid}.pin-pad button{cursor:pointer;background:#f5eadb;border:1px solid #15312e42;height:54px;font:700 18px DM Mono,monospace;transition:all .15s}.pin-pad button:hover{background:#f1c7c6;transform:translateY(-2px)}.pin-pad .delete-key{color:#a9212b;font-size:22px}.pin-error{color:#a9212b!important;height:18px!important;margin:14px 0 10px!important;font-size:11px!important}.unlock-button{background:var(--ink);color:#fff;cursor:pointer;width:230px;box-shadow:5px 5px 0 var(--gold);border:0;justify-content:center;align-items:center;gap:9px;margin:auto;padding:15px;font-size:13px;font-weight:700;display:flex}.unlock-button:disabled{cursor:not-allowed;opacity:.45;box-shadow:none}.creator-maker-card{width:min(760px,100%)}.url-result{text-align:left;background:#edf4f3;border:1px dashed #52706b;grid-template-columns:1fr auto;align-items:center;gap:10px 16px;margin-top:34px;padding:20px;display:grid}.url-result>span{text-transform:uppercase;letter-spacing:.15em;color:#677a76;grid-column:1/-1;font:500 9px DM Mono,monospace}.url-result a{overflow-wrap:anywhere;color:#a9212b;min-width:0;font:500 12px/1.5 DM Mono,monospace}.url-result button{background:var(--ink);color:#fff;cursor:pointer;white-space:nowrap;border:0;padding:10px 13px;font-size:11px;font-weight:700}@keyframes pin-shake{25%{transform:translate(-7px)}50%{transform:translate(7px)}75%{transform:translate(-4px)}}@media (width<=560px){.creator-page{padding:35px 18px}.creator-branch-top{width:230px;top:-25px;left:-95px}.pin-card{padding:42px 22px 38px}.pin-card h1{font-size:38px}.creator-maker-card{padding:55px 20px 42px}.url-result{grid-template-columns:1fr}.url-result>span{grid-column:auto}.url-result button{padding:13px}.creator-page .maker-input{border:0;flex-direction:column}.creator-page .maker-input input{border-bottom:2px solid var(--ink);text-align:center}.creator-page .maker-input button{justify-content:center;padding:16px}}.hust-mark,.hust-mark *,.topline span:first-child,.portrait-caption small,.ticket-row:last-child strong,.ticket-row:last-child small,footer span:first-child{color:#c02135;font-family:Lato,sans-serif}.hust-mark b{color:#c02135;font-weight:900}.hust-mark span{color:#c02135;font-family:Lato,sans-serif;font-weight:900}.section-title h2 em{color:#c02135;letter-spacing:-.055em;font-family:Lato,sans-serif;font-style:normal;font-weight:900}.ticket-row:last-child svg{color:#c02135}.ticket-row>div>span{letter-spacing:.14em;font-family:Lato,sans-serif;font-size:10px;font-weight:900}.portrait-caption>span{font-family:Lato,sans-serif;font-size:12px;font-weight:900}.portrait-caption>small{font-weight:900}.lead,.section-title>p:last-child,.closing-card>p:not(.eyebrow),.maker-card>p:not(.eyebrow),.pin-card>p:not(.eyebrow){color:#345b80}.japanese-note{color:#003367}.topline{border-bottom-color:#00336759}.details-section:before{border-color:#00336742}.ticket-row{border-bottom-color:#00336755}.ticket-stub{border-left-color:#00336755}.maker-input,.maker-input input,.url-result{border-color:#003367}.url-result{background:#edf3f8}.pin-pad button{border-color:#00336742}.screen{background:#00264d}.calendar-modal{z-index:50;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#001d3dcc;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.calendar-card{clip-path:polygon(0 1%,15% 0,31% 1%,48% 0,64% 1%,81% 0,100% 1%,99% 100%,82% 99%,65% 100%,47% 99%,30% 100%,14% 99%,0 100%);background:#fffaf0;width:min(470px,100%);padding:44px 42px 40px;position:relative;box-shadow:10px 10px #efb5bc}.calendar-close{color:#003367;cursor:pointer;background:0 0;border:0;padding:7px;position:absolute;top:17px;right:18px}.calendar-stamp{color:#c02135;border:2px solid #c02135;border-radius:50%;place-items:center;width:50px;height:50px;margin-bottom:22px;display:grid;transform:rotate(-5deg)}.calendar-card .eyebrow{margin-bottom:10px}.calendar-card h3{color:#003367;letter-spacing:-.04em;margin:0;font-size:35px}.calendar-card>p:not(.eyebrow){color:#52708e;margin:9px 0 27px;font-size:13px}.calendar-option{color:#003367;text-align:left;cursor:pointer;background:#f7eddf;border:1px solid #00336738;grid-template-columns:44px 1fr 20px;align-items:center;gap:15px;width:100%;padding:15px 14px;text-decoration:none;display:grid}.calendar-option+.calendar-option{margin-top:10px}.calendar-option:hover{border-color:#c02135;transform:translate(3px)}.calendar-option>span:nth-child(2){flex-direction:column;gap:3px;display:flex}.calendar-option strong{font-size:13px}.calendar-option small{color:#6a7f93;font-size:10px}.google-calendar-icon,.apple-calendar-icon{color:#c02135;background:#fff;border:1px solid #d6dce2;place-items:center;width:40px;height:40px;font:900 14px Lato,sans-serif!important;display:grid!important}.google-calendar-icon{border-top:5px solid #4285f4}.apple-calendar-icon{color:#003367;font-size:21px!important}.apple-option{font:inherit}.calendar-option svg{justify-self:end}@media (width<=560px){.calendar-card{padding:39px 20px 30px}.calendar-card h3{font-size:30px}.calendar-option{grid-template-columns:40px 1fr 18px;gap:11px;padding:13px 10px}.calendar-option small{font-size:9px}}.sakura-fall{z-index:15;pointer-events:none;position:fixed;inset:0;overflow:hidden}.sakura-fall span{left:var(--x);width:var(--size);height:calc(var(--size)*.72);opacity:0;animation:sakura-falling var(--duration) linear var(--delay) infinite,sakura-sway 3.8s ease-in-out calc(var(--delay)*.3) infinite alternate;position:absolute;top:-8vh}.sakura-fall .petal{transform-origin:70% 70%;background:linear-gradient(135deg,#ffd6de 10%,#f394a8 72%);border:1px solid #d86d85;border-radius:90% 12%;box-shadow:1px 2px 3px #7e36562b}.sakura-fall .flower{color:#f08da4;width:auto;height:auto;font-size:var(--size);text-shadow:0 1px #b94762,1px 2px 4px #7e365638;line-height:1}@keyframes sakura-falling{0%{opacity:0;translate:0 -10vh;rotate:0deg}8%{opacity:.85}48%{translate:var(--drift) 48vh;opacity:.8;rotate:190deg}92%{opacity:.72}to{translate:var(--drift-end) 112vh;opacity:0;rotate:430deg}}@keyframes sakura-sway{0%{margin-left:-18px}to{margin-left:18px}}@media (width<=560px){.sakura-fall span:nth-child(2n){display:none}.sakura-fall{z-index:10}}@media (prefers-reduced-motion:reduce){.sakura-fall{display:none}}.sakura-fall span{height:var(--size);animation:sakura-falling var(--duration) linear var(--delay) infinite,sakura-sway 3.8s ease-in-out var(--delay) infinite alternate}.sakura-branch{object-fit:contain;mix-blend-mode:multiply;filter:drop-shadow(2px 5px 5px #542b2614);height:auto}.branch-top{width:460px;top:-35px;left:-85px}.branch-details{width:390px;bottom:-85px;right:-110px}.creator-branch-top{width:420px;top:-70px;left:-120px}@media (width<=850px){.branch-top{width:330px;top:15px;left:-105px}.creator-branch-top{width:300px;top:-45px;left:-115px}}@media (width<=560px){.branch-top{width:260px;top:45px;left:-100px}.branch-details{width:280px;bottom:-55px;right:-120px}.creator-branch-top{width:250px;top:-30px;left:-110px}}.sakura-branch{filter:none;mix-blend-mode:normal}.branch-top{z-index:8}@media (width>=851px){.branch-top{top:20px}}@media (width<=560px){.branch-top{left:-60px}}.map-section{background:#e8ddcc radial-gradient(#00336716 1px,#0000 1px) 0 0/20px 20px;padding:115px 0;position:relative;overflow:hidden}.map-layout{z-index:2;grid-template-columns:.72fr 1.28fr;align-items:center;gap:75px;display:grid;position:relative}.map-copy h2{font-size:clamp(47px,5vw,70px)}.map-copy h2 em{color:#c02135;letter-spacing:-.055em;font-family:Lato,sans-serif;font-style:normal;font-weight:900}.map-copy>p:not(.eyebrow){color:#345b80;align-items:flex-start;gap:9px;margin:28px 0 30px;font-size:14px;line-height:1.6;display:flex}.map-copy>p svg{color:#c02135;flex:none;margin-top:2px}.map-frame-wrap{background:#fffaf0;padding:13px 13px 18px;position:relative;transform:rotate(1deg);box-shadow:11px 13px #c02135}.map-frame-wrap iframe{filter:saturate(.8)contrast(1.03);border:0;width:100%;height:410px;display:block}.map-caption{text-align:center;color:#c02135;letter-spacing:.16em;padding:13px 5px 1px;font:700 10px Lato,sans-serif;display:block}.map-tape{z-index:2;clip-path:polygon(4% 2%,98% 0,95% 96%,1% 100%);background:#eca825c9;width:105px;height:28px;position:absolute;top:-12px;left:50%;transform:translate(-50%)rotate(-3deg)}.branch-map{z-index:3;width:350px;bottom:-90px;right:-105px;transform:rotate(175deg)}@media (width<=850px){.map-section{padding:90px 0}.map-layout{grid-template-columns:1fr;gap:55px}.map-copy{text-align:center}.map-copy>p:not(.eyebrow){justify-content:center}.map-copy .primary{display:inline-flex}.map-frame-wrap iframe{height:360px}.branch-map{width:270px;bottom:-60px;right:-105px}}@media (width<=560px){.map-section{padding:75px 0}.map-layout{gap:42px}.map-copy h2{font-size:43px}.map-frame-wrap{padding:9px 9px 14px;box-shadow:7px 8px #c02135}.map-frame-wrap iframe{height:300px}.map-caption{font-size:8px}.branch-map{width:220px;bottom:-45px;right:-100px}}.directions-section{background:#f7efdf;padding:115px 0 125px;position:relative;overflow:hidden}.directions-section:before{content:"";pointer-events:none;border:1px dashed #00336735;position:absolute;inset:36px 3%}.directions-heading{z-index:2;grid-template-columns:1.3fr .7fr;align-items:end;gap:70px;margin-bottom:58px;display:grid;position:relative}.directions-heading h2{font-size:clamp(48px,5.4vw,76px)}.directions-heading h2 em{color:#c02135;font-family:Dancing Script,cursive}.directions-heading>p{color:#345b80;max-width:420px;margin:0 0 5px;font-size:14px;line-height:1.75}.directions-board{z-index:2;background:#fffaf0;padding:13px;position:relative;transform:rotate(-.45deg);box-shadow:10px 12px #b9d9e9}.directions-board img{width:100%;height:auto;display:block}.directions-tape{z-index:3;clip-path:polygon(4% 2%,98% 0,95% 96%,1% 100%);background:#eca825cc;width:110px;height:29px;position:absolute;top:-13px}.route-legend{z-index:3;grid-template-columns:1fr 1fr;gap:22px;width:92%;margin:-5px auto 0;display:grid;position:relative}.route-card{background:#fffaf0;border-top:5px solid;grid-template-columns:58px 1fr;gap:16px;padding:23px 25px;display:grid;box-shadow:5px 6px 16px #3d302321}.route-card.car-route{border-color:#d52235;transform:rotate(-1deg)}.route-card.bike-route{border-color:#164ca1;transform:rotate(1deg)}.route-icon{background:#f5e7d8;border-radius:50%;place-items:center;width:54px;height:54px;font-size:28px;display:grid}.route-card div{flex-direction:column;display:flex}.route-card small{letter-spacing:.13em;text-transform:uppercase;margin-bottom:3px;font:700 9px Lato,sans-serif}.route-card strong{color:#003367;font:900 17px Lato,sans-serif}.route-card p{color:#56708a;margin:7px 0 0;font-size:12px;line-height:1.6}@media (width<=850px){.directions-section{padding:90px 0}.directions-heading{text-align:center;grid-template-columns:1fr;gap:20px;margin-bottom:45px}.directions-heading>p{margin:auto}.route-legend{grid-template-columns:1fr;width:95%;margin-top:18px}.directions-section:before{inset:25px 12px}}@media (width<=560px){.directions-section{padding:75px 0}.directions-heading h2{font-size:43px}.directions-board{padding:6px;overflow:auto;box-shadow:6px 7px #b9d9e9}.directions-board img{width:760px;max-width:none}.directions-tape{width:75px;height:22px}.route-legend{gap:13px;width:100%}.route-card{grid-template-columns:46px 1fr;gap:12px;padding:18px 15px}.route-icon{width:44px;height:44px;font-size:23px}.route-card strong{font-size:15px}.route-card p{font-size:11px}}html{scroll-behavior:auto}.directions-section{color:#fff;background:#003367;padding:110px 0}.directions-section:before{display:none}.directions-section>.shell{grid-template-rows:auto 1fr;grid-template-columns:330px minmax(0,1fr);align-items:start;gap:42px 55px;display:grid}.directions-heading{grid-column:1;margin:0;display:block}.directions-heading .eyebrow{color:#f3a8b6}.directions-heading h2{letter-spacing:-.05em;color:#fff;font-size:50px;line-height:.98}.directions-heading h2 em{color:#f3a8b6;margin-top:8px;font-size:1.05em;display:block}.directions-heading>p{color:#c8d8e8;margin:25px 0 0;font-size:13px;line-height:1.75}.directions-board{background:#fffaf0;grid-area:1/2/3;margin:0;padding:10px;transform:none;box-shadow:10px 10px #c02135}.directions-board img{width:100%;height:auto}.map-zoom-link{color:inherit;text-decoration:none;display:block;position:relative}.map-zoom-link>span{color:#fff;letter-spacing:.08em;text-transform:uppercase;background:#003367e8;padding:8px 11px;font:700 9px Lato,sans-serif;position:absolute;bottom:12px;right:12px}.directions-tape{width:94px;height:25px}.directions-tape.tape-left{left:12%;transform:rotate(-3deg)}.directions-tape.tape-right{right:11%;transform:rotate(3deg)}.route-legend{flex-direction:column;grid-column:1;gap:13px;width:100%;margin:0;display:flex}.route-card{box-shadow:none;border-top:0;border-left:5px solid;grid-template-columns:46px 1fr;gap:13px;padding:17px 16px;transform:none!important}.route-card.car-route{border-color:#d52235}.route-card.bike-route{border-color:#3c74cf}.route-icon{background:#f5e7d8;width:43px;height:43px;font-size:22px}.route-card small{font-size:8px}.route-card strong{font-size:14px}.route-card p{font-size:10px;line-height:1.5}.car-route small{color:#d52235}.bike-route small{color:#164ca1}@media (width<=900px){.directions-section{padding:85px 0}.directions-section>.shell{grid-template-columns:1fr;gap:30px}.directions-heading{text-align:center;grid-column:1}.directions-heading h2{font-size:48px}.directions-heading>p{max-width:520px;margin:22px auto 0}.directions-board{order:2;grid-area:auto/1}.route-legend{order:3;grid-column:1;grid-template-columns:1fr 1fr;display:grid}.directions-heading{order:1}}@media (width<=560px){.directions-section{padding:70px 0}.directions-section>.shell{gap:25px}.directions-heading h2{font-size:40px}.directions-board{padding:5px;overflow:visible;box-shadow:6px 6px #c02135}.directions-board img{width:100%;max-width:100%}.directions-tape{display:none}.map-zoom-link>span{padding:6px 8px;font-size:7px;bottom:6px;right:6px}.route-legend{grid-template-columns:1fr;gap:10px}.route-card{grid-template-columns:42px 1fr;padding:14px}.route-icon{width:39px;height:39px;font-size:20px}.route-card p{font-size:10px}}.animated-campus-map{isolation:isolate;background:#e7ddcb;overflow:hidden}.animated-campus-map>img{z-index:1;position:relative}.route-overlay{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.route-halo,.route-path{fill:none;stroke-linecap:round;stroke-linejoin:round}.route-halo{stroke:#fffdf4;stroke-width:17px;opacity:.92}.route-path{stroke-width:8px;stroke-dasharray:21 16;filter:drop-shadow(0 3px 2px #001b3580);animation:1s linear infinite route-guidance}.route-path-red{stroke:#d52235}.route-path-blue{stroke:#1764c0}.route-traveller circle{fill:#fffdf4;stroke-width:6px}.route-traveller use{color:inherit}.traveller-red{color:#d52235}.traveller-red circle{stroke:#d52235}.traveller-blue{color:#1764c0}.traveller-blue circle{stroke:#1764c0}.destination-marker>circle:not(.destination-pulse){fill:#c02135;stroke:#fffdf4;stroke-width:7px}.destination-pulse{fill:#c02135;opacity:.45;transform-origin:50%;animation:1.7s ease-out infinite destination-pulse}.animated-campus-map>span{z-index:4}.animated-campus-map:after{content:"Hai lối đi · Một điểm hẹn";z-index:3;color:#003367;letter-spacing:.1em;text-transform:uppercase;background:#fffaf0e8;padding:8px 11px;font:900 9px Lato,sans-serif;position:absolute;top:14px;left:14px;box-shadow:3px 3px #c02135}.parking-marker{color:#003367}.parking-pin{fill:#fffaf0;stroke:#003367;stroke-width:7px}.parking-marker use{color:#003367}.parking-callout-line{fill:none;stroke:#003367;stroke-width:5px;stroke-linecap:round}.parking-label-bg{fill:#fffaf0;stroke:#003367;stroke-width:4px}.parking-label{fill:#003367;letter-spacing:.01em;font:900 24px Lato,sans-serif}.parking-spot circle{fill:#003367;stroke:#fffaf0;stroke-width:5px}.parking-spot>path{fill:none;stroke:#003367;stroke-width:5px;stroke-linecap:round}.parking-spot rect{fill:#fffaf0;stroke:#003367;stroke-width:4px}.parking-p{fill:#fff;font:900 23px Lato,sans-serif}.parking-spot-label{fill:#003367;font:900 18px Lato,sans-serif}.gate-marker circle{stroke:#fffaf0;stroke-width:5px}.gate-marker path{fill:none;stroke-width:5px;stroke-linecap:round}.gate-marker rect{fill:#fffaf0;stroke-width:4px}.gate-marker text{font:900 19px Lato,sans-serif}.gate-marker-red circle{fill:#d52235}.gate-marker-red path,.gate-marker-red rect{stroke:#d52235}.gate-marker-red text{fill:#d52235}.gate-marker-blue circle{fill:#1764c0}.gate-marker-blue path,.gate-marker-blue rect{stroke:#1764c0}.gate-marker-blue text{fill:#1764c0}@keyframes route-guidance{to{stroke-dashoffset:-42px}}@keyframes destination-pulse{0%{opacity:.7;transform:scale(.55)}85%,to{opacity:0;transform:scale(1.55)}}@media (width<=560px){.route-halo{stroke-width:21px}.route-path{stroke-width:11px;stroke-dasharray:26 20}.animated-campus-map:after{padding:6px 8px;font-size:6px;top:8px;left:8px}.map-zoom-link.animated-campus-map>span{z-index:4}}@media (prefers-reduced-motion:reduce){.route-path,.destination-pulse{animation:none}.route-traveller{display:none}}.parking-guide{color:#003367;background:#fffaf0;grid-column:1/-1;grid-template-columns:92px 1fr;align-items:start;gap:27px;margin-top:8px;padding:30px 34px;display:grid;box-shadow:9px 9px #c02135}.parking-guide-sign{border:6px solid #003367;border-radius:15px;place-items:center;width:78px;height:78px;font:900 48px/1 Lato,sans-serif;display:grid}.parking-guide-kicker{color:#c02135;letter-spacing:.16em;text-transform:uppercase;margin:0 0 7px;font:900 9px/1.3 Lato,sans-serif}.parking-guide h3{margin:0;font:900 25px/1.15 Lato,sans-serif}.parking-guide-steps{grid-template-columns:1fr 1fr;gap:25px;margin-top:21px;display:grid}.parking-guide-steps p{color:#4c6881;grid-template-columns:32px 1fr;gap:11px;margin:0;font-size:12px;line-height:1.65;display:grid}.parking-guide-steps b{color:#fff;background:#003367;border-radius:50%;place-items:center;width:30px;height:30px;font:900 10px Lato,sans-serif;display:grid}.parking-guide-steps strong{color:#c02135;font-family:Lato,sans-serif;font-weight:900}@media (width<=900px){.parking-guide{order:4;grid-template-columns:78px 1fr}.parking-guide-sign{width:66px;height:66px;font-size:40px}.parking-guide-steps{gap:18px}}@media (width<=560px){.parking-guide{grid-template-columns:52px 1fr;gap:16px;padding:22px 18px;box-shadow:6px 6px #c02135}.parking-guide-sign{border-width:4px;border-radius:10px;width:48px;height:48px;font-size:29px}.parking-guide h3{font-size:21px}.parking-guide-steps{grid-template-columns:1fr;gap:14px;margin-top:17px}.parking-guide-steps p{font-size:11px}}.contact-card{border-top:1px dashed #0033674d;width:min(680px,100%);margin:38px auto 0;padding-top:28px}.contact-heading{justify-content:center;align-items:center;gap:13px;margin-bottom:17px;display:flex}.contact-heading small{color:#c02135;letter-spacing:.14em;text-transform:uppercase;font:900 9px Lato,sans-serif}.contact-heading strong{color:#003367;font:900 15px Lato,sans-serif}.contact-links{grid-template-columns:1fr 1fr;gap:12px;display:grid}.contact-links a{color:#003367;text-align:left;background:#f7eddf;border:1px solid #0033672e;grid-template-columns:42px 1fr;align-items:center;gap:12px;padding:13px 16px;text-decoration:none;transition:all .2s;display:grid}.contact-links a:hover{border-color:#c02135;transform:translateY(-2px);box-shadow:3px 4px #efb5bc}.contact-icon{color:#fff;background:#003367;border-radius:50%;place-items:center;width:38px;height:38px;font:900 18px Lato,sans-serif;display:grid}.facebook-icon{background:#1877f2;font-size:24px}.contact-links a>span:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.contact-links small{color:#718397;letter-spacing:.12em;text-transform:uppercase;font:700 8px Lato,sans-serif}.contact-links b{overflow-wrap:anywhere;font:900 13px Lato,sans-serif}@media (width<=560px){.contact-card{margin-top:30px;padding-top:24px}.contact-heading{flex-direction:column;gap:4px}.contact-links{grid-template-columns:1fr}.contact-links a{padding:12px}}.ticket-contact-row small{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ticket-contact-row small a{color:#003367;border-bottom:1px solid #00336759;font:800 11px Lato,sans-serif;text-decoration:none}.ticket-contact-row small a:hover{color:#c02135;border-color:#c02135}.ticket-contact-row small i{color:#c02135;font-style:normal}.floating-call{z-index:30;color:#fff;background:#c02135;border:2px solid #fffaf0;border-radius:999px;align-items:center;gap:10px;padding:14px 18px;font:900 12px Lato,sans-serif;text-decoration:none;transition:all .2s;display:flex;position:fixed;bottom:24px;right:max(22px,50vw - 640px);box-shadow:0 8px 24px #001c3c4d}.floating-call:hover{background:#003367;transform:translateY(-3px);box-shadow:0 11px 28px #001c3c66}.floating-call svg{flex:none}@media (width<=560px){.floating-call{border-radius:50%;justify-content:center;width:54px;height:54px;padding:0;bottom:16px;right:16px}.floating-call span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}
