diff --git a/W1/bg.png b/W1/bg.png
new file mode 100644
index 0000000..4212c30
Binary files /dev/null and b/W1/bg.png differ
diff --git a/W1/index.html b/W1/index.html
new file mode 100644
index 0000000..5df5fa5
--- /dev/null
+++ b/W1/index.html
@@ -0,0 +1,136 @@
+
+
+
+
+
+ Sign Up • Paint Quote System
+
+
+
+
+
+ Welcome to Paint Quote System
+
+ Consequat adipisicing ea do labore irure adipisicing occaecat cupidatat
+ excepteur duis mo
+
+
+
+
+
+
Sign Up
+
Enter details to create your account
+
+
+
+
+
+
+
+
+
+
diff --git a/W1/styles.css b/W1/styles.css
new file mode 100644
index 0000000..b866dcc
--- /dev/null
+++ b/W1/styles.css
@@ -0,0 +1,170 @@
+:root{
+ --bg: #f5f3ef;
+ --ink: #0f172a;
+ --muted: #64748b;
+ --brand: #0d6ea8;
+ --brand-weak: #e0f2ff;
+ --panel: #ffffff;
+ --border: #e5e7eb;
+ --danger: #dc2626;
+ --danger-weak: #fee2e2;
+ --radius: 16px;
+ --shadow: 0 14px 40px rgba(2, 8, 23, .15);
+}
+
+*,
+*::before,
+*::after{ box-sizing: border-box; }
+
+html, body{
+ height: 100%;
+ margin: 0;
+ color: var(--ink);
+ background: var(--bg);
+ font: 16px/1.5 ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI",
+ Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji",
+ "Segoe UI Emoji", "Segoe UI Symbol";
+}
+
+.bg-photo{
+ background-image: url("bg.png");
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+}
+
+.shell{
+ min-height: 100dvh;
+ display: grid;
+ grid-template-columns: 1.15fr 0.8fr;
+ align-items: center;
+ gap: 5px;
+ padding: 48px clamp(30px, 6vw, 64px);
+ backdrop-filter: saturate(1.05);
+}
+
+.hero{
+ max-width: 620px;
+ justify-self: start;
+}
+.hero-title{
+ font-weight: 600;
+ font-size: clamp(28px, 2.2vw, 42px);
+ letter-spacing: .2px;
+ position: relative;
+ margin: 0;
+ display: inline-block;
+ color: #173b47;
+}
+.hero-title::after {
+ content: "";
+ display: block;
+ height: 1.8px;
+ margin: 15px 0 15px;
+ width: 100%;
+ background: currentColor;
+ opacity: .35;
+ border-radius: 2px;
+}
+.hero-desc{
+ margin: 0;
+ color: #173b47;
+ max-width: 46ch;
+}
+
+.card{
+ justify-self: end;
+ width: min(560px, 100%);
+ background: var(--panel);
+ border-radius: var(--radius);
+ box-shadow: var(--shadow);
+ border: 1px solid rgba(15,23,42,.05);
+ margin-right: 6vw;
+}
+.card-inner{
+ padding: 36px clamp(24px, 4vw, 44px);
+}
+.card-title{
+ margin: 0 0 6px;
+ text-align: center;
+ font-size: clamp(22px, 2.2vw, 30px);
+ font-weight: 600;
+}
+.card-subtitle{
+ margin: 0 0 24px;
+ text-align: center;
+ color: var(--muted);
+}
+
+.form{ display: grid; gap: 16px; }
+.field{ display: grid; gap: 8px; }
+.field label{ font-size: 14px; color: #374151; }
+
+.field input{
+ width: 100%;
+ padding: 12px 14px;
+ border-radius: 10px;
+ border: 1px solid var(--border);
+ outline: none;
+ background: #fff;
+ font-size: 15px;
+ transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
+}
+.field input::placeholder{ color: #9aa4b2; }
+.field input:focus-visible{
+ border-color: var(--brand);
+ box-shadow: 0 0 0 3px var(--brand-weak);
+}
+
+.error{
+ display: none;
+ margin-top: 6px;
+ font-size: 13px;
+ color: var(--danger);
+}
+.error.is-visible{ display: block; }
+
+.field input.is-error{
+ border-color: var(--danger);
+ box-shadow: 0 0 0 3px var(--danger-weak);
+}
+
+.btn{
+ appearance: none;
+ border: 0;
+ border-radius: 10px;
+ padding: 14px 18px;
+ font-weight: 600;
+ font-size: 16px;
+ cursor: pointer;
+ margin-top: 2vh;
+}
+.btn-primary{
+ background: var(--brand);
+ color: #fff;
+ box-shadow: 0 10px 22px rgba(13,110,168,.25);
+ transition: filter .15s ease, transform .02s ease, box-shadow .15s ease;
+}
+.btn-primary:hover{ filter: brightness(1.03); }
+.btn-primary:active{ transform: translateY(1px); }
+
+.footnote{
+ margin: 12px 0 0;
+ text-align: center;
+ color: var(--muted);
+ font-size: 14px;
+}
+.link{ color: var(--brand); text-decoration: none; }
+.link:hover{ text-decoration: underline; }
+
+/* 响应式 */
+@media (max-width: 900px){
+ .shell{
+ grid-template-columns: 1fr;
+ gap: 24px;
+ padding: 28px 18px 40px;
+ backdrop-filter: none;
+ }
+ .hero{ order: 1; max-width: 680px; justify-self: center; }
+ .card{ order: 2; justify-self: center; }
+}